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 12:43:56 UTC

[1/6] isis git commit: ISIS-1674: updates documentation to reference helloworld archetype where necessary.

Repository: isis
Updated Branches:
  refs/heads/master fc6d72b60 -> 1c6f349ae


http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_war-packaging.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_war-packaging.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_war-packaging.adoc
index 69186ad..91c6f80 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_war-packaging.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_war-packaging.adoc
@@ -6,13 +6,19 @@
 
 
 
-As discussed in xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] and elsewhere, the `org.apache.isis.WebServer` provides the ability to run your app from an embedded jetty.  This is great for prototyping.  The class resides in the `isis-core-webserver` module, which also has the dependency on jetty.
+As discussed in xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] and elsewhere, the `org.apache.isis.WebServer` provides the ability to run your app from an embedded jetty.
+This is great for prototyping.
+The class resides in the `isis-core-webserver` module, which also has the dependency on jetty.
 
-In 1.9.0 we have upgraded the jetty dependency to use Jetty 9.2.0 (`org.eclipse.jetty.aggregate:jetty-all:9.2.11.v20150529`, to be precise).  One consequence of this is that the packaged WAR file will not boot on Tomcat.
+In 1.9.0 we have upgraded the jetty dependency to use Jetty 9.2.0 (`org.eclipse.jetty.aggregate:jetty-all:9.2.11.v20150529`, to be precise).
+One consequence of this is that the packaged WAR file will not boot on Tomcat.
 
-One fix is to simply remove the `isis-core-webserver` module as a dependency of your webapp module, however this will prevent you from using our `org.apache.isis.WebServer` launcher.  That's not necessarily a bad thing; you could continue to use `jetty:run`, say.  But it might be a change to your development workflow that you don't want.
+One fix is to simply remove the `isis-core-webserver` module as a dependency of your webapp module, however this will prevent you from using our `org.apache.isis.WebServer` launcher.
+That's not necessarily a bad thing; you could continue to use `jetty:run`, say.
+But it might be a change to your development workflow that you don't want.
 
-Alternatively you can change your webapp's `pom.xml` so that when the war is packaged up it excludes the jetty files.  To do this, locate the `maven-war-plugin` module definition (under `<build>/<plugins>` and add to its `<configuration>` section:
+Alternatively you can change your webapp's `pom.xml` so that when the war is packaged up it excludes the jetty files.
+To do this, locate the `maven-war-plugin` module definition (under `<build>/<plugins>` and add to its `<configuration>` section:
 
 [source,xml]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/pages/common-use-cases/common-use-cases.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/pages/common-use-cases/common-use-cases.adoc b/adocs/documentation/src/main/asciidoc/pages/common-use-cases/common-use-cases.adoc
index f7f7464..1bc7d94 100644
--- a/adocs/documentation/src/main/asciidoc/pages/common-use-cases/common-use-cases.adoc
+++ b/adocs/documentation/src/main/asciidoc/pages/common-use-cases/common-use-cases.adoc
@@ -23,19 +23,25 @@ Once you've sketched out your domain model, you can then either start-over using
 
 One of the original motivations for Apache Isis itself was to be able automatically generate a user interface for a domain object model.
 
-Apache Isis' has a pluggable architecture allowing different user interface technologies. The principal implementation (as configured by the xref:../../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype]) is the xref:../../guides/ugvw/ugvw.adoc#[Wicket viewer]. This provides an appealing default user interface, with the ability to customize the user interface by writing new http://wicket.apache.org[Apache Wicket] components. Some third-party components can be found in the (non-ASF) link:http://www.isisaddons.org[Isis Addons] (non-ASF) project, integrating the Wicket viewer with https://github.com/isisaddons/isis-wicket-gmap3[google maps], https://github.com/isisaddons/isis-wicket-fullcalendar2[a full calendar] and a https://github.com/isisaddons/isis-wicket-excel[export to Excel] component.
+Apache Isis' has a pluggable architecture allowing different user interface technologies.
+ The principal implementation (as configured by the xref:../../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype]) is the xref:../../guides/ugvw/ugvw.adoc#[Wicket viewer].
+  This provides an appealing default user interface, with the ability to customize the user interface by writing new http://wicket.apache.org[Apache Wicket] components. Some third-party components can be found in the (non-ASF) link:http://www.isisaddons.org[Isis Addons] (non-ASF) project, integrating the Wicket viewer with https://github.com/isisaddons/isis-wicket-gmap3[google maps], https://github.com/isisaddons/isis-wicket-fullcalendar2[a full calendar] and a https://github.com/isisaddons/isis-wicket-excel[export to Excel] component.
 
 
-Deploying on Apache Isis means that the framework also manages object persistence. Again this is pluggable, but the principal implementation is the JDO/DataNucleus objectstore. Because JDO supports both SQL and NoSQL databases, you can then deploy on a variety of platforms, including the link:https://developers.google.com/appengine/[Google App Engine (GAE)] and link:http://neo4j.com/[Neo4J].
+Deploying on Apache Isis means that the framework also manages object persistence.
+Again this is pluggable, but the principal implementation is the JDO/DataNucleus objectstore.
+Because JDO supports both SQL and NoSQL databases, you can then deploy on a variety of platforms, including the link:https://developers.google.com/appengine/[Google App Engine (GAE)] and link:http://neo4j.com/[Neo4J].
 
 
 
 
 == Deploy as a RESTful web service
 
-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.
+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.
 
-The http://restfulobjects.org[Restful Objects specification] defines a means by a domain object model can be exposed as RESTful resources using JSON representations over HTTP. Apache Isis' xref:../../guides/ugvro/ugvro.adoc#[RestfulObjects viewer] is an implementation of that spec, making any Apache Isis domain object automatically available via REST.
+The http://restfulobjects.org[Restful Objects specification] defines a means by a domain object model can be exposed as RESTful resources using JSON representations over HTTP.
+Apache Isis' xref:../../guides/ugvro/ugvro.adoc#[RestfulObjects viewer] is an implementation of that spec, making any Apache Isis domain object automatically available via REST.
 
 There are two main use cases for deploying Apache Isis as a RESTful web service are:
 
@@ -47,18 +53,22 @@ For example, using Javascript/JQuery, or an RIA technology such as Flex, JavaFX,
 
 REST is designed to be machine-readable, and so is an excellent choice for synchronous data interchange scenarios.
 
-As for the auto-generated webapps, the framework manages object persistence, for example using the JDO/DataNucleus objectstore. It is perfectly possible to deploy the RESTful API alongside an auto-generated webapp; both work from the same domain object model.
+As for the auto-generated webapps, the framework manages object persistence, for example using the JDO/DataNucleus objectstore.
+It is perfectly possible to deploy the RESTful API alongside an auto-generated webapp; both work from the same domain object model.
 
 
 
 
 == Deploy on your own platform
 
-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 `org.apache.isis.applib` classes, mostly to pick up annotations such as `@Disabled`. The idea is to make it easy to be able to write take a domain object prototyped and/or tested using Apache Isis, but to deploy on some other framework's runtime.
+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 `org.apache.isis.applib` classes, mostly to pick up annotations such as `@Disabled`.
+The idea is to make it easy to be able to write take a domain object prototyped and/or tested using Apache Isis, but to deploy on some other framework's runtime.
 
-If you are interested in taking this approach, note that there is one important interface that must be implemented by your own framework, namely `DomainObjectContainer`. This interface represents the one-and-only "touchpoint" between the domain objects and the runtime. If you inspect the methods then you'll see it covers such concerns as persistence, and of raising warnings or errors.
+If you are interested in taking this approach, then you will need to provide your own implementations of any framework-provided services used by your code.
 
-Apache Isis' own runtime injects an (implementation of this) interface into each and every domain object. You will likely need to do something similar within your own framework, (or come up with an equivalent mechanism, eg Service Locator pattern).
+Apache Isis' own runtime injects an (implementation of this) interface into each and every domain object.
+You will likely need to do something similar within your own framework, (or come up with an equivalent mechanism, eg Service Locator pattern).
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/isis-in-pictures.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/isis-in-pictures.adoc b/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/isis-in-pictures.adoc
index f3974cf..62ef677 100644
--- a/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/isis-in-pictures.adoc
+++ b/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/isis-in-pictures.adoc
@@ -15,6 +15,11 @@ The corresponding domain classes from which this UI was built can be found https
 The todoapp also integrates with a number of other link:http://www.isisaddons.org[Isis Addons] modules.
 Because we expect that most apps will end up using one or more of these addons, we've chosen to include screenshots of those too.
 
+[NOTE]
+====
+These screenshots based on Apache Isis 1.13.x.
+====
+
 
 == Basics
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/pages/more-thanks/more-thanks.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/pages/more-thanks/more-thanks.adoc b/adocs/documentation/src/main/asciidoc/pages/more-thanks/more-thanks.adoc
index 9bd860d..ab15dd1 100644
--- a/adocs/documentation/src/main/asciidoc/pages/more-thanks/more-thanks.adoc
+++ b/adocs/documentation/src/main/asciidoc/pages/more-thanks/more-thanks.adoc
@@ -28,7 +28,6 @@ In addition to the http://www.apache.org/foundation/thanks.html[support given to
 |image::{_imagesdir}more-thanks/icons8-logo.png[link="http://icons8.com"]
 |Icons8, for selected icons on this website and in the link:https://github.com/apache/isis/tree/master/example/application/simpleapp/dom/src/main/resources/images[simpleapp] used to generate the link:./simpleapp-archetype.html[simpleapp archetype]
 
-
 |===
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_lookup.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_lookup.java b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_lookup.java
index cffd71e..7626f9d 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_lookup.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_lookup.java
@@ -25,17 +25,16 @@ import org.apache.isis.applib.annotation.Contributed;
 import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.SemanticsOf;
 
-@Mixin(method = "exec")
+@Mixin(method = "act")
 public class BookmarkHolder_lookup {
 
-    public static class ActionDomainEvent extends IsisApplibModule.ActionDomainEvent<BookmarkHolder_lookup> {}
-
     private final BookmarkHolder bookmarkHolder;
 
     public BookmarkHolder_lookup(final BookmarkHolder bookmarkHolder) {
         this.bookmarkHolder = bookmarkHolder;
     }
 
+    public static class ActionDomainEvent extends IsisApplibModule.ActionDomainEvent<BookmarkHolder_lookup> {}
 
     @Action(
             domainEvent = ActionDomainEvent.class,
@@ -45,7 +44,7 @@ public class BookmarkHolder_lookup {
             contributed = Contributed.AS_ACTION,
             cssClassFa = "fa-bookmark"
     )
-    public Object exec() {
+    public Object act() {
         return bookmarkService.lookup(bookmarkHolder);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_object.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_object.java b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_object.java
index be7e87d..f4051be 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_object.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_object.java
@@ -25,7 +25,7 @@ import org.apache.isis.applib.annotation.Contributed;
 import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.SemanticsOf;
 
-@Mixin(method = "exec")
+@Mixin(method = "prop")
 public class BookmarkHolder_object {
 
     private final BookmarkHolder bookmarkHolder;
@@ -43,7 +43,7 @@ public class BookmarkHolder_object {
     @ActionLayout(
         contributed = Contributed.AS_ASSOCIATION
     )
-    public Object exec() {
+    public Object prop() {
         return bookmarkService.lookup(bookmarkHolder);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/core/applib/src/main/java/org/apache/isis/applib/services/dto/Dto_downloadXml.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/dto/Dto_downloadXml.java b/core/applib/src/main/java/org/apache/isis/applib/services/dto/Dto_downloadXml.java
index ed00bec..37eebc9 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/dto/Dto_downloadXml.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/dto/Dto_downloadXml.java
@@ -16,10 +16,9 @@
  */
 package org.apache.isis.applib.services.dto;
 
-import javax.inject.Inject;
-
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Contributed;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.ParameterLayout;
@@ -28,7 +27,7 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.jaxb.JaxbService;
 import org.apache.isis.applib.value.Clob;
 
-@Mixin
+@Mixin(method="act")
 public class Dto_downloadXml {
 
     private final Dto dto;
@@ -45,10 +44,11 @@ public class Dto_downloadXml {
             restrictTo = RestrictTo.PROTOTYPING
     )
     @ActionLayout(
+            contributed = Contributed.AS_ACTION,
             cssClassFa = "fa-download"
     )
     @MemberOrder(sequence = "500.1")
-    public Object $$(
+    public Object act(
             @ParameterLayout(named = "File name")
             final String fileName) {
 
@@ -56,7 +56,7 @@ public class Dto_downloadXml {
         return new Clob(Util.withSuffix(fileName, "xml"), "text/xml", xml);
     }
 
-    public String default0$$() {
+    public String default0Act() {
         return Util.withSuffix(dto.getClass().getName(), "xml");
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/core/applib/src/main/java/org/apache/isis/applib/services/dto/Dto_downloadXsd.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/dto/Dto_downloadXsd.java b/core/applib/src/main/java/org/apache/isis/applib/services/dto/Dto_downloadXsd.java
index a273d90..e76dad8 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/dto/Dto_downloadXsd.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/dto/Dto_downloadXsd.java
@@ -25,22 +25,22 @@ import java.util.zip.ZipOutputStream;
 
 import javax.activation.MimeType;
 import javax.activation.MimeTypeParseException;
-import javax.inject.Inject;
 
-import org.apache.isis.applib.DomainObjectContainer;
 import org.apache.isis.applib.FatalException;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Contributed;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.RestrictTo;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.jaxb.JaxbService;
+import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.applib.value.Blob;
 import org.apache.isis.applib.value.Clob;
 
-@Mixin
+@Mixin(method="act")
 public class Dto_downloadXsd {
 
     private final Dto dto;
@@ -64,10 +64,11 @@ public class Dto_downloadXsd {
             restrictTo = RestrictTo.PROTOTYPING
     )
     @ActionLayout(
+            contributed = Contributed.AS_ACTION,
             cssClassFa = "fa-download"
     )
     @MemberOrder(sequence = "500.2")
-    public Object $$(
+    public Object act(
             @ParameterLayout(named = "File name")
             final String fileName,
             final JaxbService.IsisSchemas isisSchemas) {
@@ -75,7 +76,8 @@ public class Dto_downloadXsd {
         final Map<String, String> map = jaxbService.toXsd(dto, isisSchemas);
 
         if(map.isEmpty()) {
-            container.warnUser("No schemas were generated for " + dto.getClass().getName() + "; programming error?");
+            messageService.warnUser(String.format(
+                    "No schemas were generated for %s; programming error?", dto.getClass().getName()));
             return null;
         }
 
@@ -105,11 +107,11 @@ public class Dto_downloadXsd {
         }
     }
 
-    public String default0$$() {
+    public String default0Act() {
         return Util.withSuffix(dto.getClass().getName(), "xsd");
     }
 
-    public JaxbService.IsisSchemas default1$$() {
+    public JaxbService.IsisSchemas default1Act() {
         return JaxbService.IsisSchemas.IGNORE;
     }
 
@@ -119,7 +121,7 @@ public class Dto_downloadXsd {
 
 
     @javax.inject.Inject
-    DomainObjectContainer container;
+    MessageService messageService;
 
     @javax.inject.Inject
     JaxbService jaxbService;

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_downloadLayoutXml.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_downloadLayoutXml.java b/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_downloadLayoutXml.java
index f1bcaf8..47b7c27 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_downloadLayoutXml.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_downloadLayoutXml.java
@@ -18,15 +18,15 @@ package org.apache.isis.applib.services.layout;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Contributed;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.RestrictTo;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.services.jaxb.JaxbService;
 import org.apache.isis.applib.value.Clob;
 
-@Mixin
+@Mixin(method="act")
 public class Object_downloadLayoutXml {
 
     private final Object object;
@@ -43,11 +43,12 @@ public class Object_downloadLayoutXml {
             restrictTo = RestrictTo.PROTOTYPING
     )
     @ActionLayout(
+            contributed = Contributed.AS_ACTION,
             cssClassFa = "fa-download",
             position = ActionLayout.Position.PANEL_DROPDOWN
     )
     @MemberOrder(name = "datanucleusIdLong", sequence = "700.1")
-    public Object $$(
+    public Object act(
             @ParameterLayout(named = "File name")
             final String fileName,
             final LayoutService.Style style) {
@@ -56,17 +57,14 @@ public class Object_downloadLayoutXml {
         return new Clob(Util.withSuffix(fileName, style.name().toLowerCase() + ".xml"), "text/xml", xml);
     }
 
-    public String default0$$() {
+    public String default0Act() {
         return Util.withSuffix(object.getClass().getSimpleName(), "layout");
     }
-    public LayoutService.Style default1$$() {
+    public LayoutService.Style default1Act() {
         return LayoutService.Style.NORMALIZED;
     }
 
     @javax.inject.Inject
     LayoutService layoutService;
 
-    @javax.inject.Inject
-    JaxbService jaxbService;
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_rebuildMetamodel.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_rebuildMetamodel.java b/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_rebuildMetamodel.java
index 05a9618..92212dd 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_rebuildMetamodel.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_rebuildMetamodel.java
@@ -18,13 +18,14 @@ package org.apache.isis.applib.services.layout;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Contributed;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.RestrictTo;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.metamodel.MetaModelService;
 
-@Mixin
+@Mixin(method="act")
 public class Object_rebuildMetamodel {
 
     private final Object object;
@@ -41,11 +42,12 @@ public class Object_rebuildMetamodel {
             restrictTo = RestrictTo.PROTOTYPING
     )
     @ActionLayout(
+            contributed = Contributed.AS_ACTION,
             cssClassFa = "fa-refresh",
             position = ActionLayout.Position.PANEL_DROPDOWN
     )
     @MemberOrder(name = "datanucleusIdLong", sequence = "800.1")
-    public void $$() {
+    public void act() {
         metaModelService.rebuild(object.getClass());
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java b/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java
index 2996a81..a5f11d5 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java
@@ -54,7 +54,7 @@ public class SwaggerServiceMenu {
             cssClassFa = "fa-download"
     )
     @MemberOrder(sequence="500.600.1")
-    public Clob downloadSwaggerSpec(
+    public Clob downloadSwaggerSchemaDefinition(
             @ParameterLayout(named = "Filename")
             final String fileNamePrefix,
             final SwaggerService.Visibility visibility,
@@ -64,13 +64,13 @@ public class SwaggerServiceMenu {
         return new Clob(fileName, format.mediaType(), spec);
     }
 
-    public String default0DownloadSwaggerSpec() {
+    public String default0DownloadSwaggerSchemaDefinition() {
         return "swagger";
     }
-    public SwaggerService.Visibility default1DownloadSwaggerSpec() {
+    public SwaggerService.Visibility default1DownloadSwaggerSchemaDefinition() {
         return SwaggerService.Visibility.PRIVATE;
     }
-    public SwaggerService.Format default2DownloadSwaggerSpec() {
+    public SwaggerService.Format default2DownloadSwaggerSchemaDefinition() {
         return SwaggerService.Format.YAML;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusIdLong.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusIdLong.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusIdLong.java
index ca0e4be..344a43b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusIdLong.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusIdLong.java
@@ -32,7 +32,7 @@ import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.annotation.Where;
 
-@Mixin(method = "exec")
+@Mixin(method = "prop")
 public class Persistable_datanucleusIdLong {
 
     private final Persistable persistable;
@@ -55,7 +55,7 @@ public class Persistable_datanucleusIdLong {
             hidden = Where.ALL_TABLES
     )
     @MemberOrder(name = "Metadata", sequence = "800.1")
-    public Long exec() {
+    public Long prop() {
         final Object objectId = JDOHelper.getObjectId(persistable);
         if(objectId instanceof DatastoreId) {
             final DatastoreId datastoreId = (DatastoreId) objectId;
@@ -65,8 +65,8 @@ public class Persistable_datanucleusIdLong {
         return null;
     }
 
-    public boolean hideExec() {
-        return exec() == null;
+    public boolean hideProp() {
+        return prop() == null;
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusVersionLong.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusVersionLong.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusVersionLong.java
index 5fd83c4..70563a4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusVersionLong.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusVersionLong.java
@@ -31,7 +31,7 @@ import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.annotation.Where;
 
-@Mixin(method = "exec")
+@Mixin(method = "prop")
 public class Persistable_datanucleusVersionLong {
 
     private final Persistable persistable;
@@ -54,13 +54,13 @@ public class Persistable_datanucleusVersionLong {
             hidden = Where.ALL_TABLES
     )
     @MemberOrder(name = "Metadata", sequence = "800.2")
-    public Long exec() {
+    public Long prop() {
         final Object version = JDOHelper.getVersion(persistable);
         return version != null && version instanceof Long ? (Long) version : null;
     }
 
-    public boolean hideExec() {
-        return exec() == null;
+    public boolean hideProp() {
+        return prop() == null;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusVersionTimestamp.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusVersionTimestamp.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusVersionTimestamp.java
index f19ac00..9d8f2e3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusVersionTimestamp.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_datanucleusVersionTimestamp.java
@@ -31,7 +31,7 @@ import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.annotation.Where;
 
-@Mixin(method = "exec")
+@Mixin(method = "prop")
 public class Persistable_datanucleusVersionTimestamp {
 
     private final Persistable persistable;
@@ -54,13 +54,13 @@ public class Persistable_datanucleusVersionTimestamp {
             hidden = Where.ALL_TABLES
     )
     @MemberOrder(name = "Metadata", sequence = "800.2")
-    public java.sql.Timestamp exec() {
+    public java.sql.Timestamp prop() {
         final Object version = JDOHelper.getVersion(persistable);
         return version != null && version instanceof java.sql.Timestamp ? (java.sql.Timestamp) version : null;
     }
 
-    public boolean hideExec() {
-        return exec() == null;
+    public boolean hideProp() {
+        return prop() == null;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_downloadJdoMetadata.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_downloadJdoMetadata.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_downloadJdoMetadata.java
index f84bbf4..ab729ff 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_downloadJdoMetadata.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_downloadJdoMetadata.java
@@ -28,6 +28,7 @@ import org.datanucleus.enhancement.Persistable;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Contributed;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.ParameterLayout;
@@ -36,7 +37,7 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
 import org.apache.isis.applib.value.Clob;
 
-@Mixin(method = "exec")
+@Mixin(method = "act")
 public class Persistable_downloadJdoMetadata {
 
     private final Persistable persistable;
@@ -53,12 +54,13 @@ public class Persistable_downloadJdoMetadata {
             restrictTo = RestrictTo.PROTOTYPING
     )
     @ActionLayout(
+            contributed = Contributed.AS_ACTION,
             cssClassFa = "fa-download",
             position = ActionLayout.Position.PANEL_DROPDOWN
     )
     @MemberOrder(name = "datanucleusIdLong", sequence = "710.1")
-    public Clob exec(
-            @ParameterLayout(named = ".jdo file name")
+    public Clob act(
+            @ParameterLayout(named = "File name")
             final String fileName) throws JAXBException, IOException {
 
         final Class<? extends Persistable> objClass = persistable.getClass();
@@ -70,7 +72,7 @@ public class Persistable_downloadJdoMetadata {
         return new Clob(Util.withSuffix(fileName, "jdo"), "text/xml", xml);
     }
 
-    public String default0Exec() {
+    public String default0Act() {
         return Util.withSuffix(persistable.getClass().getName(), "jdo");
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/Object_clearHints.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/Object_clearHints.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/Object_clearHints.java
index 00d419d..97e9f05 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/Object_clearHints.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/Object_clearHints.java
@@ -18,10 +18,9 @@
  */
 package org.apache.isis.viewer.wicket.viewer.services;
 
-import javax.inject.Inject;
-
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Contributed;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.SemanticsOf;
@@ -29,31 +28,28 @@ import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.hint.HintStore;
 
-@Mixin
+@Mixin(method="act")
 public class Object_clearHints {
 
-    public static class ActionDomainEvent
-            extends org.apache.isis.applib.services.eventbus.ActionDomainEvent<Object> {
-    }
-
     private final Object object;
 
     public Object_clearHints(Object object) {
         this.object = object;
     }
 
-    public static class ClearHintsDomainEvent extends ActionDomainEvent { }
+    public static class ActionDomainEvent extends org.apache.isis.applib.services.eventbus.ActionDomainEvent<Object> { }
 
     @Action(
-            domainEvent = ClearHintsDomainEvent.class,
+            domainEvent = ActionDomainEvent.class,
             semantics = SemanticsOf.IDEMPOTENT
     )
     @ActionLayout(
-            cssClassFa = "fa-trash",
+            contributed = Contributed.AS_ACTION,
+            cssClassFa = "fa-circle-o",
             position = ActionLayout.Position.PANEL_DROPDOWN
     )
     @MemberOrder(name = "datanucleusIdLong", sequence = "400.1")
-    public Object $$() {
+    public Object act() {
         if (getHintStoreUsingWicketSession() != null) {
             final Bookmark bookmark = bookmarkService.bookmarkFor(object);
             getHintStoreUsingWicketSession().removeAll(bookmark);
@@ -61,7 +57,7 @@ public class Object_clearHints {
         return object;
     }
 
-    public boolean hide$$() {
+    public boolean hideAct() {
         return getHintStoreUsingWicketSession() == null;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/example/application/helloworld/README.adoc
----------------------------------------------------------------------
diff --git a/example/application/helloworld/README.adoc b/example/application/helloworld/README.adoc
index 170828f..575ac2a 100644
--- a/example/application/helloworld/README.adoc
+++ b/example/application/helloworld/README.adoc
@@ -1,4 +1,4 @@
-= HelloWorld
+# HelloWorld
 
 This application was generated by the link:http://isis.apache.org[Apache Isis] link:http://isis.apache.org/guides/ugfun.html#_ugfun_getting-started_helloworld-archetype[helloworld archetype].
 It is intended as a starting point to learn what Apache Isis is all about.

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/example/application/helloworld/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/helloworld/pom.xml b/example/application/helloworld/pom.xml
index 60cdbe1..ebc1b23 100644
--- a/example/application/helloworld/pom.xml
+++ b/example/application/helloworld/pom.xml
@@ -35,10 +35,6 @@
 
     <packaging>war</packaging>
 
-    <prerequisites>
-        <maven>3.0.4</maven>
-    </prerequisites>
-
     <properties>
         <isis.version>1.15.0-SNAPSHOT</isis.version>
 
@@ -85,6 +81,10 @@
                         </mixin>
                         <mixin>
                             <groupId>com.danhaywood.mavenmixin</groupId>
+                            <artifactId>surefire</artifactId>
+                        </mixin>
+                        <mixin>
+                            <groupId>com.danhaywood.mavenmixin</groupId>
                             <artifactId>jettywar</artifactId>
                         </mixin>
                     </mixins>
@@ -121,6 +121,12 @@
             <artifactId>isis-mavendeps-intellij</artifactId>
             <type>pom</type>
         </dependency>
+        <dependency>
+            <groupId>org.apache.isis.mavendeps</groupId>
+            <artifactId>isis-mavendeps-testing</artifactId>
+            <scope>test</scope>
+            <type>pom</type>
+        </dependency>
 
         <dependency>
             <groupId>org.hsqldb</groupId>

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
----------------------------------------------------------------------
diff --git a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
index c7947d6..b685d9f 100644
--- a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
+++ b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
@@ -87,7 +87,7 @@ public class HelloWorldObject implements Comparable<HelloWorldObject> {
     public void delete() {
         final String title = titleService.titleOf(this);
         messageService.informUser(String.format("'%s' deleted", title));
-        repositoryService.remove(this);
+        repositoryService.removeAndFlush(this);
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
----------------------------------------------------------------------
diff --git a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
index 3559e60..5dc3e20 100644
--- a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
+++ b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
@@ -46,7 +46,7 @@ public class HelloWorldObjects {
             final String name) {
         final HelloWorldObject object = new HelloWorldObject(name);
         serviceRegistry.injectServicesInto(object);
-        repositoryService.persist(object);
+        repositoryService.persistAndFlush(object);
         return object;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/example/application/helloworld/src/main/webapp/about/index.html
----------------------------------------------------------------------
diff --git a/example/application/helloworld/src/main/webapp/about/index.html b/example/application/helloworld/src/main/webapp/about/index.html
index 140edbe..fe526f3 100644
--- a/example/application/helloworld/src/main/webapp/about/index.html
+++ b/example/application/helloworld/src/main/webapp/about/index.html
@@ -20,7 +20,7 @@
 <html>
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-        <title>Apache Isis&trade; SimpleApp</title>
+        <title>Apache Isis&trade; HelloWorld</title>
         
         <style type="text/css">
 body {

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java
----------------------------------------------------------------------
diff --git a/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java b/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java
new file mode 100644
index 0000000..43e2967
--- /dev/null
+++ b/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java
@@ -0,0 +1,69 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package domainapp.dom.impl;
+
+import org.jmock.Expectations;
+import org.jmock.auto.Mock;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.apache.isis.applib.services.message.MessageService;
+import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.applib.services.title.TitleService;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+
+import static org.hamcrest.CoreMatchers.containsString;
+
+public class HelloWorldObjectTest_delete {
+
+    @Rule
+    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
+
+    @Mock
+    TitleService mockTitleService;
+
+    @Mock
+    MessageService mockMessageService;
+
+    @Mock
+    RepositoryService mockRepositoryService;
+
+    @Test
+    public void happy_case() throws Exception {
+
+        // given
+        final HelloWorldObject object = new HelloWorldObject("Foo");
+        object.titleService = mockTitleService;
+        object.messageService = mockMessageService;
+        object.repositoryService = mockRepositoryService;
+
+        // expecting
+        context.checking(new Expectations() {{
+            allowing(mockTitleService).titleOf(object); will(returnValue("Foo"));
+
+            oneOf(mockMessageService).informUser(with(containsString("'Foo' deleted")));
+            oneOf(mockRepositoryService).removeAndFlush(object);
+        }});
+
+        // when
+        object.delete();
+    }
+
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java
----------------------------------------------------------------------
diff --git a/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java b/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java
new file mode 100644
index 0000000..7ae316f
--- /dev/null
+++ b/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java
@@ -0,0 +1,40 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package domainapp.dom.impl;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class HelloWorldObjectTest_updateName {
+
+    @Test
+    public void happy_case() throws Exception {
+        // given
+        final HelloWorldObject object = new HelloWorldObject("Foo");
+        assertThat(object.getName()).isEqualTo("Foo");
+
+        // when
+        object.updateName("Bar");
+
+        // then
+        assertThat(object.getName()).isEqualTo("Bar");
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/example/application/simpleapp/README.adoc
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/README.adoc b/example/application/simpleapp/README.adoc
index 5fb9fc0..76078b4 100644
--- a/example/application/simpleapp/README.adoc
+++ b/example/application/simpleapp/README.adoc
@@ -205,19 +205,18 @@ mvn -Dskip.mavenmixin-isisswagger
 By default, Swagger spec files are generated at `target/generated-resources/isis-swagger` (in the ``webapp`` module).
 ====
 
-* To package up the application as a docker image: +
+* To package up the application as a docker image (specifying the docker image name as a system property): +
 +
 [source,bash]
 ----
-mvn install -Dmavenmixin-docker
+mvn install -Dmavenmixin-docker -Ddocker-plugin.imageName=mycompany/myapp
 ----
 +
-This assumes that the `${docker-plugin.imageName}` property has been defined in the `webapp` module.
-Alternatively it can be specified on the command line using a system property, eg:
+Alternatively, define the `${docker-plugin.imageName}` in the `webapp` module and use simply: +
 +
 [source,bash]
 ----
-mvn install -Dmavenmixin-docker -Ddocker-plugin.imageName=mycompany/myapp
+mvn install -Dmavenmixin-docker
 ----
 +
 The packaged image can be viewed using `docker images`.
@@ -241,5 +240,5 @@ mvn -pl webapp deploy -Dmavenmixin-docker
 ----
 +
 This assumes that the `${docker-plugin.imageName}` property has been defined, _and_ also that docker registry credentials have been specified in `~/.m2/settings.xml`.
-See link:https://github.com/danhaywood/java-mavenmixin-docker#how-to-configure[mavenmixin-docker] for further details.
+Once more, see link:https://github.com/danhaywood/java-mavenmixin-docker#how-to-configure[mavenmixin-docker] for further details.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
index 7a95cd6..c7f99ab 100644
--- a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
+++ b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
@@ -137,7 +137,7 @@ public class SimpleObject_IntegTest extends SimpleModuleIntegTestAbstract {
         @Test
         public void should_be_populated() throws Exception {
             // when
-            final Long id = mixin(Persistable_datanucleusIdLong.class, simpleObject).exec();
+            final Long id = mixin(Persistable_datanucleusIdLong.class, simpleObject).prop();
 
             // then
             assertThat(id).isGreaterThanOrEqualTo(0);
@@ -149,7 +149,7 @@ public class SimpleObject_IntegTest extends SimpleModuleIntegTestAbstract {
         @Test
         public void should_be_populated() throws Exception {
             // when
-            final Timestamp timestamp = mixin(Persistable_datanucleusVersionTimestamp.class, simpleObject).exec();
+            final Timestamp timestamp = mixin(Persistable_datanucleusVersionTimestamp.class, simpleObject).prop();
             // then
             assertThat(timestamp).isNotNull();
         }

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/recreate_archetype_RELEASE.sh
----------------------------------------------------------------------
diff --git a/recreate_archetype_RELEASE.sh b/recreate_archetype_RELEASE.sh
index 62b5600..c10cec6 100644
--- a/recreate_archetype_RELEASE.sh
+++ b/recreate_archetype_RELEASE.sh
@@ -8,7 +8,7 @@ export ISISRC=RC1
 export ISISCPT=$(echo $ISISART | cut -d- -f2)
 export ISISCPN=$(echo $ISISART | cut -d- -f1)
 
-for a in simpleapp 
+for a in simpleapp helloworld
 do
 	pushd example/application/$a
 	export ISISART=$a-archetype

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/recreate_archetype_SNAPSHOT.sh
----------------------------------------------------------------------
diff --git a/recreate_archetype_SNAPSHOT.sh b/recreate_archetype_SNAPSHOT.sh
index 3b7ada3..0ede99f 100644
--- a/recreate_archetype_SNAPSHOT.sh
+++ b/recreate_archetype_SNAPSHOT.sh
@@ -8,7 +8,7 @@ export ISISRC=RC1
 export ISISCPT=$(echo $ISISART | cut -d- -f2)
 export ISISCPN=$(echo $ISISART | cut -d- -f1)
 
-for a in simpleapp 
+for a in simpleapp helloworld
 do
 	pushd example/application/$a
 	export ISISART=$a-archetype

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/scripts/updateGeneratedArchetypeSources.groovy
----------------------------------------------------------------------
diff --git a/scripts/updateGeneratedArchetypeSources.groovy b/scripts/updateGeneratedArchetypeSources.groovy
index 96d12bb..275f426 100644
--- a/scripts/updateGeneratedArchetypeSources.groovy
+++ b/scripts/updateGeneratedArchetypeSources.groovy
@@ -16,15 +16,18 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-import groovy.xml.StreamingMarkupBuilder
 import groovy.xml.XmlUtil
-import javax.xml.transform.*
-import javax.xml.transform.stream.*
+
+import javax.xml.transform.OutputKeys
+import javax.xml.transform.Transformer
+import javax.xml.transform.TransformerFactory
+import javax.xml.transform.stream.StreamResult
+import javax.xml.transform.stream.StreamSource
 
 
 def cli = new CliBuilder(usage: 'updateGeneratedArchetypeSources.groovy -n [name] -v [version]')
 cli.with {
-    n(longOpt: 'name', args: 1, required: true, argName: 'name', 'Application name (eg \'simple\' or \'quickstart\')')
+    n(longOpt: 'name', args: 1, required: true, argName: 'name', 'Application name (eg \'simpleapp\' or \'helloworld\')')
     v(longOpt: 'version', args: 1, required: true, argName: 'version', 'Isis core version to use as parent POM')
 }
 


[5/6] isis git commit: ISIS-1521: fixes up some bad/incorrect links

Posted by da...@apache.org.
ISIS-1521: fixes up some bad/incorrect links


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

Branch: refs/heads/master
Commit: 06ffb424f51aaea922eb27c371eccff13d0f0179
Parents: ddf0cc5
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Aug 1 13:22:07 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Aug 1 13:22:07 2017 +0100

----------------------------------------------------------------------
 README.adoc                                     | 59 +++++++++--------
 .../src/main/asciidoc/documentation.adoc        | 70 ++++++++++----------
 2 files changed, 65 insertions(+), 64 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/06ffb424/README.adoc
----------------------------------------------------------------------
diff --git a/README.adoc b/README.adoc
index 786ac63..f2dea44 100644
--- a/README.adoc
+++ b/README.adoc
@@ -2,7 +2,8 @@
 
 _http://isis.apache.org[Apache Isis] software is a framework for rapidly developing domain-driven apps in Java. Write your business logic in entities, domain services and repositories, and the framework dynamically generates a representation of that domain model as a webapp or a RESTful API._
 
-Get started using our "simpleapp" https://isis.apache.org/guides/ugfun.html#_ugfun_getting-started_simpleapp-archetype[Maven archetype].
+Start learning about Apache Isis using our https://isis.apache.org/guides/ugfun.html#_ugfun_getting-started_helloworld-archetype["Hello World"] Maven archetype.
+Build your own apps using our https://isis.apache.org/guides/ugfun.html#_ugfun_getting-started_simpleapp-archetype["SimpleApp"] Maven archetype.
 
 For help and support, join the http://isis.apache.org/support.html[mailing lists]. To contribute to our documentation, see our https://github.com/apache/isis/tree/master/adocs/documentation[Asciidoctor source].
 
@@ -19,19 +20,19 @@ The todoapp also integrates with a number of other http://www.isisaddons.org[Isi
 
 Apache Isis integrates with http://shiro.apache.org[Apache Shiro]. The core framework supports file-based realms, while the Isis Addons http://github.com/isisaddons/isis-module-security[security module] provides a well-features subdomain of users, roles and permissions against features derived from the Isis metamodel. The example todoapp integrates with the security module.
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/010-login.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/010-login.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/010-login.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/010-login.png"]
 
 === Install Fixtures
 
 Apache Isis has lots of features to help you prototype and then fully test your application. One such are fixture scripts, which allow pre-canned data to be installed in the running application. This is great to act as the starting point for identifying new stories; later on when the feature is being implemented, the same fixture script can be re-used within that feature's integration tests. (More on tests later).
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/020-install-fixtures.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/020-install-fixtures.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/020-install-fixtures.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/020-install-fixtures.png"]
 
 === Dashboard and View Models
 
 Most of the time the end-user interacts with representations of persistent domain entities, but Isis also supports view models which can aggregate data from multiple sources. The todoapp example uses a "dashboard" view model to list todo items not yet done vs those completed.
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/030-dashboard-view-model.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/030-dashboard-view-model.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/030-dashboard-view-model.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/030-dashboard-view-model.png"]
 
 In general we recommend to initially focus only on domain entities; this will help drive out a good domain model. Later on view models can be introduced in support of specific use cases.
 
@@ -39,7 +40,7 @@ In general we recommend to initially focus only on domain entities; this will he
 
 The screenshot below is of the todoapp's `ToDoItem` domain entity. Like all web pages, this UI is generated at runtime, directly from the domain object itself. There are no controllers or HTML to write.
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/040-domain-entity.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/040-domain-entity.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/040-domain-entity.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/040-domain-entity.png"]
 
 In addition to the domain entity, Apache Isis allows layout metadata hints to be provided, for example to specify the grouping of properties, the positioning of those groups into columns, the association of actions (the buttons) with properties or collections, the icons on the buttons, and so on. This metadata can be specified either as annotations or in JSON form; the benefit of the latter is that it can be updated (and the UI redrawn) without restarting the app.
 
@@ -49,7 +50,7 @@ Any production-ready app will require this metadata but (like the view models di
 
 By default properties on domain entities are editable, meaning they can be changed directly. In the todoapp example, the `ToDoItem`'s description is one such editable property:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/050-edit-property.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/050-edit-property.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/050-edit-property.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/050-edit-property.png"]
 
 Note that some of the properties are read-only even in edit mode; individual properties can be made non-editable. It is also possible to make all properties disabled and thus enforce changes only through actions (below).
 
@@ -57,7 +58,7 @@ Note that some of the properties are read-only even in edit mode; individual pro
 
 The other way to modify an entity is to an invoke an action. In the screenshot below the `ToDoItem`'s category and subcategory can be updated together using an action:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/060-invoke-action.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/060-invoke-action.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/060-invoke-action.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/060-invoke-action.png"]
 
 There are no limitations on what an action can do; it might just update a single object, it could update multiple objects. Or, it might not update any objects at all, but could instead perform some other activity, such as sending out email or printing a document.
 
@@ -69,11 +70,11 @@ As an alternative to placing actions (business logic) on a domain object, it can
 
 In the screenshot below the highlighted "export as xml" action, the "relative priority" property (and "previous" and "next" actions) the "similar to" collection and the two "as DTO" actions are all contributed by mixins:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/065-contributions.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/065-contributions.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/065-contributions.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/065-contributions.png"]
 
 The code snippet below shows how this works for the "as DTO v1.0" action:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/067-contributed-action.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/067-contributed-action.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/067-contributed-action.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/067-contributed-action.png"]
 
 
 
@@ -82,24 +83,24 @@ image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/as
 
 The Apache Isis viewer is implemented using http://wicket.apache.org[Apache Wicket], and has been architected to be extensible. For example, when a collection of objects is rendered, this is just one several views, as shown in the selector drop-down:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/070-pluggable-views.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/070-pluggable-views.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/070-pluggable-views.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/070-pluggable-views.png"]
 
 The Isis Addons' https://github.com/isisaddons/isis-wicket-gmap3[gmap3 component] will render any domain entity (such as `ToDoItem`) that implements its `Locatable` interface:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/080-gmap3-view.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/080-gmap3-view.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/080-gmap3-view.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/080-gmap3-view.png"]
 
 Simiarly the Isis Addons' https://github.com/isisaddons/isis-wicket-fullcalendar2[fullcalendar2 component] will render any domain entity (such as `ToDoItem`) that implements its `Calendarable` interface:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/090-fullcalendar2-view.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/090-fullcalendar2-view.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/090-fullcalendar2-view.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/090-fullcalendar2-view.png"]
 
 
 Yet another "view" (though this one is rather simpler is that provided by the Isis Addons https://github.com/isisaddons/isis-wicket-excel[excel component]. This provides a download button to the table as a spreadsheet:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/100-excel-view-and-docx.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/100-excel-view-and-docx.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/100-excel-view-and-docx.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/100-excel-view-and-docx.png"]
 
 The screenshot above also shows an "export to Word" action. This is _not_ a view but instead is a (contributed) action that uses the Isis Addons https://github.com/isisaddons/isis-module-docx[docx module] to perform a "mail-merge":
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/110-docx.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/110-docx.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/110-docx.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/110-docx.png"]
 
 
 
@@ -110,25 +111,25 @@ As well as providing extensions to the UI, the Isis addons provides a rich set o
 
 Under the activity menu are four sets of services which provide support for https://github.com/isisaddons/isis-module-sessionlogger[user session logging/auditing], https://github.com/isisaddons/isis-module-command[command profiling], https://github.com/isisaddons/isis-module-audit[(object change) auditing] (shown) and (inter-system) https://github.com/isisaddons/isis-module-publishing[event publishing]:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/120-auditing.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/120-auditing.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/120-auditing.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/120-auditing.png"]
 
 In the security menu is access to the rich set of functionality provided by the Isis addons https://github.com/isisaddons/isis-module-security[security module]:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/130-security.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/130-security.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/130-security.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/130-security.png"]
 
 In the prototyping menu is the ability to download a GNU gettext `.po` file for translation. This file can then be translated into multiple languages so that your app can support different locales. Note that this feature is part of Apache Isis core (it is not in Isis Addons):
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/140-i18n.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/140-i18n.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/140-i18n.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/140-i18n.png"]
 
 The Isis addons also provides a module for managing application and user https://github.com/isisaddons/isis-module-settings[settings]. Most apps (the todoapp example included) won't expose these services directly, but will usually wrap them in their own app-specific settings service that trivially delegates to the settings module's services:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/150-appsettings.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/150-appsettings.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/150-appsettings.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/150-appsettings.png"]
 
 === Multi-tenancy support
 
 Of the various Isis addons, the https://github.com/isisaddons/isis-module-security[security module] has the most features. One significant feature is the ability to associate users and objects with a "tenancy". The todoapp uses this feature so that different users' list of todo items are kept separate from one another. A user with administrator is able to switch their own "tenancy" to the tenancy of some other user, in order to access the objects in that tenancy:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/160-switch-tenancy.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/160-switch-tenancy.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/160-switch-tenancy.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/160-switch-tenancy.png"]
 
 For more details, see the https://github.com/isisaddons/isis-module-security[security module] README.
 
@@ -136,11 +137,11 @@ For more details, see the https://github.com/isisaddons/isis-module-security[sec
 
 Most of the https://github.com/isisaddons/isis-module-security[security module]'s services are on the security module, which would normally be provided only to administrators. Kept separate is the "me" action:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/170-me.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/170-me.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/170-me.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/170-me.png"]
 
 Assuming they have been granted permissions, this allows a user to access an entity representing their own user account:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/180-app-user-entity.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/180-app-user-entity.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/180-app-user-entity.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/180-app-user-entity.png"]
 
 If not all of these properties are required, then they can be hidden either using security or though Isis' internal event bus (described below). Conversely, additional properties can be "grafted onto" the user using the contributed properties/collections discussed previously.
 
@@ -148,7 +149,7 @@ If not all of these properties are required, then they can be hidden either usin
 
 Apache Isis' Wicket viewer uses link:http://getbootstrap.com[Twitter Bootstrap], which means that it can be themed. If more than one theme has been configured for the app, then the viewer allows the end-user to switch their theme:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/190-switch-theme.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/190-switch-theme.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/190-switch-theme.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/190-switch-theme.png"]
 
 
 
@@ -156,7 +157,7 @@ image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/as
 
 In addition to Isis' Wicket viewer, it also provides a fully fledged REST API, as an implementation of the http://restfulobjects.org[Restful Objects] specification. The screenshot below shows accessing this REST API using a Chrome plugin:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/200-rest-api.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/200-rest-api.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/200-rest-api.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/200-rest-api.png"]
 
 Like the Wicket viewer, the REST API is generated automatically from the domain objects (entities and view models).
 
@@ -166,16 +167,16 @@ Like the Wicket viewer, the REST API is generated automatically from the domain
 
 Earlier on we noted that Apache Isis allows fixtures to be installed through the UI. These same fixture scripts can be reused within integration tests. For example, the code snippet below shows how the `FixtureScripts` service injected into an integration test can then be used to set up data:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/210-fixture-scripts.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/210-fixture-scripts.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/210-fixture-scripts.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/210-fixture-scripts.png"]
 
 The tests themselves are run in junit. While these are integration tests (so talking to a real database), they are no more complex than a regular unit test:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/220-testing-happy-case.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/220-testing-happy-case.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/220-testing-happy-case.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/220-testing-happy-case.png"]
 
 
 To simulate the business rules enforced by Apache Isis, the domain object can be "wrapped" in a proxy. For example, if using the Wicket viewer then Apache Isis will enforce the rule (implemented in the `ToDoItem` class itself) that a completed item cannot have the "completed" action invoked upon it. The wrapper simulates this by throwing an appropriate exception:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/230-testing-wrapper-factory.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/230-testing-wrapper-factory.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/230-testing-wrapper-factory.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/230-testing-wrapper-factory.png"]
 
 
 
@@ -186,15 +187,15 @@ Contributions, discussed earlier, are an important tool in ensuring that the pac
 
 Another important tool to ensure your codebase remains maintainable is Isis' internal event bus. It is probably best explained by example; the code below says that the "complete" action should emit a `ToDoItem.Completed` event:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/240-domain-events.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/240-domain-events.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/240-domain-events.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/240-domain-events.png"]
 
 Domain service (application-scoped, stateless) can then subscribe to this event:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/250-domain-event-subscriber.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/250-domain-event-subscriber.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/250-domain-event-subscriber.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/250-domain-event-subscriber.png"]
 
 And this test verifies that completing an action causes the subscriber to be called:
 
-image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/260-domain-event-test.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/images/isis-in-pictures/260-domain-event-test.png"]
+image::https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/260-domain-event-test.png[link="https://raw.github.com/apache/isis/master/adocs/documentation/src/main/asciidoc/pages/isis-in-pictures/images/isis-in-pictures/260-domain-event-test.png"]
 
 In fact, the domain event is fired not once, but (up to) 5 times. It is called 3 times prior to execution, to check that the action is visible, enabled and that arguments are valid. It is then additionally called prior to execution, and also called after execution. What this means is that a subscriber can in either veto access to an action of some publishing object, and/or it can perform cascading updates if the action is allowed to proceed.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/06ffb424/adocs/documentation/src/main/asciidoc/documentation.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/documentation.adoc b/adocs/documentation/src/main/asciidoc/documentation.adoc
index 227c49f..d7b0ef5 100644
--- a/adocs/documentation/src/main/asciidoc/documentation.adoc
+++ b/adocs/documentation/src/main/asciidoc/documentation.adoc
@@ -25,24 +25,25 @@ pass:[<br/>]
 
 | *What is Apache Isis?*
 
-* *xref:pages/isis-in-pictures/isis-in-pictures.adoc#[What is Apache Isis?^] ... in pictures*
-* xref:pages/powered-by/powered-by.adoc#[Powered by Apache Isis^]
-* xref:pages/how-isis-works/how-isis-works.adoc#[How Apache Isis Works^] image:{_imagesdir}tv_show-25.png[width="25px" link="pages/how-isis-works/how-isis-works.html"]
-* xref:pages/common-use-cases/common-use-cases.adoc#[Common Use Cases^]
+* link:guides/ugfun/ugfun.html#_ugfun_getting-started_helloworld-archetype[Hello World archetype^]
+* *link:pages/isis-in-pictures/isis-in-pictures.html[Apache Isis in pictures^]*
+* link:pages/common-use-cases/common-use-cases.html[Common Use Cases^]
+* link:pages/powered-by/powered-by.html[Powered by Apache Isis^]
+* link:pages/how-isis-works/how-isis-works.html[How Apache Isis Works^] image:{_imagesdir}tv_show-25.png[width="25px" link="pages/how-isis-works/how-isis-works.html"]
 
 
 |*Learning More*
 
-* xref:pages/screencasts/screencasts.adoc#[Screencasts^] image:{_imagesdir}tv_show-25.png[width="25px" link="./pages/screencasts/screencasts.html"]
-* xref:pages/tg/tg.adoc#[Tutorials^]
-//* link:http://www.javadoc.io/doc/org.apache.isis.core/isis-core-applib/1.14.0[Javadoc (for Applib)^] (not ASF)
+* link:guides/ugfun/ugfun.html#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype^]
+* link:pages/screencasts/screencasts.html[Screencasts^] image:{_imagesdir}tv_show-25.png[width="25px" link="./pages/screencasts/screencasts.html"]
+* link:pages/tg/tg.html[Tutorials^]
 
 
 
 |*Resources:*
 
-* *xref:pages/cheat-sheet/cheat-sheet.adoc#[Cheat Sheet^]*
-* xref:pages/icons/icons.adoc#[Icons^]
+* *link:pages/cheat-sheet/cheat-sheet.html[Cheat Sheet^]*
+* link:pages/icons/icons.html[Icons^]
 
 *3rd-party add-ons (not ASF)*
 
@@ -58,36 +59,36 @@ pass:[<br/>]
 
 |*User Guides:*
 
-* *xref:guides/ugfun/ugfun.adoc#[Fundamentals^]*  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/ugfun/ugfun.pdf"]
-* xref:guides/ugvw/ugvw.adoc#[Wicket Viewer^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/ugvw/ugvw.pdf"]
-* xref:guides/ugvro/ugvro.adoc#[Restful Objects Viewer^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/ugvro/ugvro.pdf"]
-* xref:guides/ugodn/ugodn.adoc#[DataNucleus Object Store^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/ugvro/ugvro.pdf"]
-* xref:guides/ugsec/ugsec.adoc#[Security^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/ugsec/ugsec.pdf"]
-* *xref:guides/ugtst/ugtst.adoc#[Testing^]*  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/ugtst/ugtst.pdf"]
-* xref:guides/ugbtb/ugbtb.adoc#[Beyond the Basics^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/ugbtb/ugbtb.pdf"]
+* *link:guides/ugfun/ugfun.html[Fundamentals^]*  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/ugfun/ugfun.pdf"]
+* link:guides/ugvw/ugvw.html[Wicket Viewer^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/ugvw/ugvw.pdf"]
+* link:guides/ugvro/ugvro.html[Restful Objects Viewer^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/ugvro/ugvro.pdf"]
+* link:guides/ugodn/ugodn.html[DataNucleus Object Store^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/ugvro/ugvro.pdf"]
+* link:guides/ugsec/ugsec.html[Security^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/ugsec/ugsec.pdf"]
+* *link:guides/ugtst/ugtst.html[Testing^]*  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/ugtst/ugtst.pdf"]
+* link:guides/ugbtb/ugbtb.html[Beyond the Basics^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/ugbtb/ugbtb.pdf"]
 
 
 |*Reference Guides:*
 
-* *xref:guides/rgant/rgant.adoc#[Annotations^]*  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/rgant/rgant.pdf"]
-* *xref:guides/rgsvc/rgsvc.adoc#[Domain Services^]*  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/rgsvc/rgsvc.pdf"]
-* xref:guides/rgcfg/rgcfg.adoc#[Core Config'n Properties^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/rgcfg/rgcfg.pdf"]
-* xref:guides/rgcms/rgcms.adoc#[Classes, Methods and Schema^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/rgcms/rgcms.pdf"]
-* xref:guides/rgmvn/rgmvn.adoc#[Apache Isis Maven plugin^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/rgmvn/rgmvn.pdf"]
-* xref:guides/rgfis/rgfis.adoc#[Framework Internal Services^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/rgfis/rgfis.pdf"]
+* *link:guides/rgant/rgant.html[Annotations^]*  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/rgant/rgant.pdf"]
+* *link:guides/rgsvc/rgsvc.html[Domain Services^]*  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/rgsvc/rgsvc.pdf"]
+* link:guides/rgcfg/rgcfg.html[Core Config'n Properties^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/rgcfg/rgcfg.pdf"]
+* link:guides/rgcms/rgcms.html[Classes, Methods and Schema^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/rgcms/rgcms.pdf"]
+* link:guides/rgmvn/rgmvn.html[Apache Isis Maven plugin^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/rgmvn/rgmvn.pdf"]
+* link:guides/rgfis/rgfis.html[Framework Internal Services^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/rgfis/rgfis.pdf"]
 
 
 
 |*"Supporting" Guides:*
 
-* *xref:guides/dg/dg.adoc#[Developers' Guide^]*  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/dg/dg.pdf"]
-** Setting up xref:guides/dg/dg.adoc#_dg_ide_intellij[IntelliJ^] or xref:guides/dg/dg.html#_dg_ide_eclipse[Eclipse^]
-** xref:guides/dg/dg.adoc#_dg_contributing[Contributing patches^] (pull requests)
-** xref:guides/dg/dg.adoc#_dg_asciidoc-syntax[Asciidoc syntax^]
+* *link:guides/dg/dg.html[Developers' Guide^]*  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/dg/dg.pdf"]
+** Setting up link:guides/dg/dg.html#_dg_ide_intellij[IntelliJ^] or link:guides/dg/dg.html#_dg_ide_eclipse[Eclipse^]
+** link:guides/dg/dg.html#_dg_contributing[Contributing patches^] (pull requests)
+** link:guides/dg/dg.html#_dg_asciidoc-syntax[Asciidoc syntax^]
 
-* xref:guides/cgcom/cgcom.adoc#[Committers' Guide^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/cgcom/cgcom.pdf"]
-** xref:guides/cgcom/cgcom.adoc#_cgcom_cutting-a-release[Cutting a release^]
-** xref:guides/cgcom/cgcom.adoc#_cgcom_verifying-releases[Verifying a release^]
+* link:guides/cgcom/cgcom.html[Committers' Guide^]  image:{_imagesdir}PDF-50.png[width="20px" link="./guides/cgcom/cgcom.pdf"]
+** link:guides/cgcom/cgcom.html#_cgcom_cutting-a-release[Cutting a release^]
+** link:guides/cgcom/cgcom.html#_cgcom_verifying-releases[Verifying a release^]
 
 
 |===
@@ -100,8 +101,8 @@ pass:[<br/>]
 
 |*Releases:*
 
-* xref:release-notes/release-notes.adoc#[Release Notes^]
-* xref:migration-notes/migration-notes.adoc#[Migration Notes^]
+* link:release-notes/release-notes.html[Release Notes^]
+* link:migration-notes/migration-notes.html[Migration Notes^]
 
 *Get involved!*
 
@@ -111,10 +112,9 @@ pass:[<br/>]
 
 |*Going Deeper:*
 
-* xref:pages/articles-and-presentations/articles-and-presentations.adoc#[Articles, Conferences, Podcasts^]
-* xref:pages/books/books.adoc#[Books^]
-* xref:guides/ugfun/resources/core-concepts/Pawson-Naked-Objects-thesis.pdf[Naked Objects PhD thesis^] (Pawson)
-//* link:./downloadable-presentations/downloadable-presentations.html[Downloadable Presentations]
+* link:pages/articles-and-presentations/articles-and-presentations.html[Articles, Conferences, Podcasts^]
+* link:pages/books/books.html[Books^]
+* link:guides/ugfun/resources/core-concepts/Pawson-Naked-Objects-thesis.pdf[Naked Objects PhD thesis^] (Pawson)
 
 
 


[4/6] isis git commit: ISIS-1674: updates documentation to reference helloworld archetype where necessary.

Posted by da...@apache.org.
ISIS-1674: updates documentation to reference helloworld archetype where necessary.


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

Branch: refs/heads/master
Commit: ddf0cc5028122f2522f3e726a614b910b09683ac
Parents: fc6d72b
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Aug 1 13:21:41 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Aug 1 13:21:41 2017 +0100

----------------------------------------------------------------------
 .../src/main/asciidoc/downloads.adoc            |   6 +-
 .../guides/cgcom/_cgcom_cutting-a-release.adoc  | 213 ++++++++++++-
 .../cgcom/_cgcom_post-release-successful.adoc   | 171 ++++++-----
 .../cgcom/_cgcom_post-release-unsuccessful.adoc |   3 +
 .../guides/cgcom/_cgcom_verifying-releases.adoc |  44 ++-
 .../asciidoc/guides/dg/_dg_ide_eclipse.adoc     |   7 +-
 .../rgcfg/_rgcfg_specifying-components.adoc     |   3 +-
 .../asciidoc/guides/rgmvn/_rgmvn_intro.adoc     |  35 +--
 .../asciidoc/guides/rgmvn/_rgmvn_validate.adoc  |  21 +-
 ...bootstrapping-spi_ClassDiscoveryService.adoc |  17 +-
 ...ing_FixtureScriptsSpecificationProvider.adoc |  14 +-
 .../guides/ugbtb/_ugbtb_deployment_neo4j.adoc   |   3 +
 .../main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc | 107 ++++---
 .../guides/ugfun/_ugfun_getting-started.adoc    |  36 +--
 ...un_getting-started_datanucleus-enhancer.adoc |  73 +----
 ...un_getting-started_helloworld-archetype.adoc | 296 +++++++++++++++++++
 .../_ugfun_getting-started_prerequisites.adoc   |  28 ++
 ...fun_getting-started_simpleapp-archetype.adoc | 184 ++++++------
 .../_ugfun_programming-model_properties.adoc    |   2 +-
 .../helloworld-before-launch.png                | Bin 0 -> 38237 bytes
 .../ugfun/images/getting-started/helloworld.png | Bin 0 -> 30714 bytes
 .../simpleapp-webapp-before-launch.png          | Bin 0 -> 40147 bytes
 .../simpleapp-webapp-with-fixtures.png          | Bin 36797 -> 32657 bytes
 .../images/getting-started/simpleapp-webapp.png | Bin 33311 -> 32086 bytes
 .../using-hello-world/010-root-page.png         | Bin 0 -> 64409 bytes
 .../020-login-to-wicket-viewer.png              | Bin 0 -> 25150 bytes
 .../using-hello-world/030-home-page.png         | Bin 0 -> 42723 bytes
 .../040-create-object-from-menu.png             | Bin 0 -> 44895 bytes
 .../050-create-object-from-menu-prompt.png      | Bin 0 -> 48527 bytes
 .../using-hello-world/060-created-object.png    | Bin 0 -> 27737 bytes
 .../using-hello-world/070-update-name.png       | Bin 0 -> 28151 bytes
 .../using-hello-world/080-edit-notes.png        | Bin 0 -> 30637 bytes
 .../using-hello-world/090-delete-object.png     | Bin 0 -> 34082 bytes
 .../using-hello-world/100-object-deleted.png    | Bin 0 -> 21273 bytes
 .../200-swagger-ui-before-reload.png            | Bin 0 -> 18982 bytes
 .../210-helloworld-resources.png                | Bin 0 -> 63727 bytes
 .../220-create-object-thru-rest-api.png         | Bin 0 -> 62583 bytes
 ...230-create-object-thru-rest-api-response.png | Bin 0 -> 59458 bytes
 .../240-retrieve-object-using-rest-api.png      | Bin 0 -> 65829 bytes
 ...-retrieve-object-using-rest-api-response.png | Bin 0 -> 62611 bytes
 .../using-simple-app/010-root-page.png          | Bin 70336 -> 0 bytes
 .../020-login-to-wicket-viewer.png              | Bin 38080 -> 0 bytes
 .../030-home-page-run-fixture-scripts.png       | Bin 48682 -> 0 bytes
 .../using-simple-app/030-home-page.png          | Bin 0 -> 24943 bytes
 .../using-simple-app/040-first-object.png       | Bin 38474 -> 0 bytes
 .../040-run-fixture-script-menu.png             | Bin 0 -> 37569 bytes
 .../050-run-fixture-script-prompt.png           | Bin 0 -> 34941 bytes
 .../using-simple-app/050-update-name-prompt.png | Bin 47597 -> 0 bytes
 .../using-simple-app/060-object-updated.png     | Bin 39452 -> 0 bytes
 .../060-run-fixture-script-result.png           | Bin 0 -> 43088 bytes
 .../using-simple-app/070-home-page.png          | Bin 0 -> 26848 bytes
 .../using-simple-app/070-list-all-prompt.png    | Bin 42560 -> 0 bytes
 .../using-simple-app/080-list-all.png           | Bin 36487 -> 0 bytes
 .../using-simple-app/090-create.png             | Bin 41232 -> 0 bytes
 .../using-simple-app/100-create-prompt.png      | Bin 44741 -> 0 bytes
 .../using-simple-app/110-object-created.png     | Bin 39691 -> 0 bytes
 .../using-simple-app/120-list-all.png           | Bin 37239 -> 0 bytes
 .../220-login-to-restful-viewer.png             | Bin 72319 -> 0 bytes
 .../using-simple-app/230-home-page.png          | Bin 74329 -> 0 bytes
 .../using-simple-app/240-list-all-invoke.png    | Bin 78260 -> 0 bytes
 .../using-simple-app/250-list-all-results.png   | Bin 89138 -> 0 bytes
 ...g_disabling-persistence-by-reachability.adoc |  25 +-
 .../_ugsec_configuring-isis-to-use-shiro.adoc   |  27 +-
 ...c_shiro-realm-implementations_ini-realm.adoc |  19 +-
 .../src/main/asciidoc/guides/ugsec/ugsec.adoc   |  37 +--
 ...st_bdd-spec-support_maven-configuration.adoc |  10 +-
 ...tst_bdd-spec-support_writing-a-bdd-spec.adoc |  26 +-
 .../_ugtst_fixture-scripts_api-and-usage.adoc   |  80 ++---
 ..._ugtst_integ-test-support_bootstrapping.adoc |  24 +-
 ..._integ-test-support_maven-configuration.adoc |  13 +-
 ...t_unit-test-support_maven-configuration.adoc |  13 +-
 .../ugvw/_ugvw_customisation_about-page.adoc    |  18 +-
 .../guides/ugvw/_ugvw_layout_file-based.adoc    |  58 ++--
 .../_migration-notes_1.10.0-to-1.11.0.adoc      |  45 ++-
 .../_migration-notes_1.11.0-to-1.12.0.adoc      |  61 ++--
 ...o-1.9.0_bootstrapping-using-AppManifest.adoc |  15 +-
 ...n-notes_1.8.0-to-1.9.0_upgrading-to-dn4.adoc |  15 +-
 ...tion-notes_1.8.0-to-1.9.0_war-packaging.adoc |  14 +-
 .../common-use-cases/common-use-cases.adoc      |  26 +-
 .../isis-in-pictures/isis-in-pictures.adoc      |   5 +
 .../asciidoc/pages/more-thanks/more-thanks.adoc |   1 -
 .../bookmark/BookmarkHolder_lookup.java         |   7 +-
 .../bookmark/BookmarkHolder_object.java         |   4 +-
 .../applib/services/dto/Dto_downloadXml.java    |  10 +-
 .../applib/services/dto/Dto_downloadXsd.java    |  18 +-
 .../layout/Object_downloadLayoutXml.java        |  14 +-
 .../layout/Object_rebuildMetamodel.java         |   6 +-
 .../services/swagger/SwaggerServiceMenu.java    |   8 +-
 .../Persistable_datanucleusIdLong.java          |   8 +-
 .../Persistable_datanucleusVersionLong.java     |   8 +-
 ...Persistable_datanucleusVersionTimestamp.java |   8 +-
 .../Persistable_downloadJdoMetadata.java        |  10 +-
 .../viewer/services/Object_clearHints.java      |  20 +-
 example/application/helloworld/README.adoc      |   2 +-
 example/application/helloworld/pom.xml          |  14 +-
 .../domainapp/dom/impl/HelloWorldObject.java    |   2 +-
 .../domainapp/dom/impl/HelloWorldObjects.java   |   2 +-
 .../helloworld/src/main/webapp/about/index.html |   2 +-
 .../dom/impl/HelloWorldObjectTest_delete.java   |  69 +++++
 .../impl/HelloWorldObjectTest_updateName.java   |  40 +++
 example/application/simpleapp/README.adoc       |  11 +-
 .../tests/SimpleObject_IntegTest.java           |   4 +-
 recreate_archetype_RELEASE.sh                   |   2 +-
 recreate_archetype_SNAPSHOT.sh                  |   2 +-
 scripts/updateGeneratedArchetypeSources.groovy  |  11 +-
 105 files changed, 1416 insertions(+), 661 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/downloads.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/downloads.adoc b/adocs/documentation/src/main/asciidoc/downloads.adoc
index c75c375..5a56d3e 100644
--- a/adocs/documentation/src/main/asciidoc/downloads.adoc
+++ b/adocs/documentation/src/main/asciidoc/downloads.adoc
@@ -28,7 +28,11 @@ Core:
 * https://www.apache.org/dyn/closer.cgi/isis/isis-core/isis-1.14.0-source-release.zip[isis-1.14.0] (https://www.apache.org/dist/isis/isis-core/isis-1.14.0-source-release.zip.asc[asc], https://www.apache.org/dist/isis/isis-core/isis-1.14.0-source-release.zip.md5[md5])
 
 
-Archetype:
+HelloWorld Archetype (`1.15.0-SNAPSHOT` onwards):
+
+* https://www.apache.org/dyn/closer.cgi/isis/archetype/helloworld-archetype/helloworld-archetype-1.14.0-source-release.zip[helloworld-archetype-1.14.0] (https://www.apache.org/dist/isis/archetype/helloworld-archetype/helloworld-archetype-1.14.0-source-release.zip.asc[asc], https://www.apache.org/dist/isis/archetype/helloworld-archetype/helloworld-archetype-1.14.0-source-release.zip.md5[md5])
+
+SimpleApp Archetype:
 
 * https://www.apache.org/dyn/closer.cgi/isis/archetype/simpleapp-archetype/simpleapp-archetype-1.14.0-source-release.zip[simpleapp-archetype-1.14.0] (https://www.apache.org/dist/isis/archetype/simpleapp-archetype/simpleapp-archetype-1.14.0-source-release.zip.asc[asc], https://www.apache.org/dist/isis/archetype/simpleapp-archetype/simpleapp-archetype-1.14.0-source-release.zip.md5[md5])
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_cutting-a-release.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_cutting-a-release.adoc b/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_cutting-a-release.adoc
index c8a1cc4..49648c6 100644
--- a/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_cutting-a-release.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_cutting-a-release.adoc
@@ -365,12 +365,13 @@ You may (again) be prompted for gpg passphrase.  All being well this command wil
 
 
 
-[[__cgcom_cutting-a-release_releasing-the-archetype]]
-== Releasing the Archetype
+[[__cgcom_cutting-a-release_releasing-the-archetypes]]
+== Releasing the Archetypes
 
 Apache Isis archetypes are reverse engineered from example applications.
 Once reverse engineered, the source is checked into git (replacing any earlier version of the archetype) and released.
 
+There are currently two archetypes, `simpleapp` and `helloworld`.
 
 [NOTE]
 ====
@@ -382,6 +383,9 @@ The fix is to simple: just copy `mvn.cmd` to `mvn.bat`.
 ====
 
 
+[[__cgcom_cutting-a-release_releasing-the-archetypes_simpleapp_setup-environment-variables]]
+=== Releasing `simpleapp` archetype
+
 Switch to the directory containing the `simpleapp` example:
 
 [source,bash]
@@ -389,8 +393,8 @@ Switch to the directory containing the `simpleapp` example:
 cd ../example/application/simpleapp
 ----
 
-[[__cgcom_cutting-a-release_releasing-the-archetype_setup-environment-variables]]
-=== Setup environment variables
+[[__cgcom_cutting-a-release_releasing-the-archetypes_simpleapp_setup-environment-variables]]
+==== Setup environment variables
 
 Set additional environment variables for the `simpleapp-archetype` artifact:
 
@@ -407,8 +411,8 @@ env | grep ISIS | sort
 <1> `$ISISPAR` is the version of the Apache Isis core that will act as the archetype's parent. Usually this is the same as `$ISISREL`.
 
 
-[[__cgcom_cutting-a-release_releasing-the-archetype_check-the-example-app]]
-=== Check the example app
+[[__cgcom_cutting-a-release_releasing-the-archetypes_simpleapp_check-the-example-app]]
+==== Check the example app
 
 Update the parent `pom.xml` to reference the _released_ version of Apache Isis core, eg:
 
@@ -494,8 +498,8 @@ The Kitematic UI tool is handy for viewing and interacting with running containe
 In each case, check the about page and confirm has been built against non-SNAPSHOT versions of the Apache Isis jars.
 
 
-[[__cgcom_cutting-a-release_releasing-the-archetype_create-the-archetype]]
-=== Create the archetype
+[[__cgcom_cutting-a-release_releasing-the-archetypes_simpleapp_create-the-archetype]]
+==== Create the archetype
 
 Make sure you are in the correct directory and environment variables are correct.
 
@@ -518,7 +522,7 @@ The script automatically commits changes; if you wish use `git log` and
 `git diff` (or a tool such as SourceTree) to review changes made.
 
 
-[[__cgcom_cutting-a-release_releasing-the-archetype_release-prepare]]
+[[__cgcom_cutting-a-release_releasing-the-archetypes_simpleapp_release-prepare]]
 === Release prepare
 
 Switch to the *archetype* directory and execute the `release:prepare`:
@@ -535,8 +539,8 @@ mvn release:prepare -P apache-release \
 
 
 
-[[__cgcom_cutting-a-release_releasing-the-archetype_post-prepare-sanity-check]]
-=== Post-prepare sanity check
+[[__cgcom_cutting-a-release_releasing-the-archetypes_simpleapp_post-prepare-sanity-check]]
+==== Post-prepare sanity check
 
 This is a good point to test the archetype; nothing has yet been uploaded.
 
@@ -576,8 +580,191 @@ mvn -pl webapp jetty:run              # runs as mvn jetty plugin
 
 
 
-[[__cgcom_cutting-a-release_releasing-the-archetype_release-perform-upload]]
-=== Release Perform (upload)
+[[__cgcom_cutting-a-release_releasing-the-archetypes_simplapp_release-perform-upload]]
+==== Release Perform (upload)
+
+Back in the original session (in the *archetype* directory, `example/archetype/$ISISCPN`), execute `release:perform`:
+
+[source]
+----
+mvn release:perform -P apache-release \
+                -DworkingDirectory=$ISISTMP/checkout
+----
+
+This will upload the artifacts to the ASF Nexus repository.
+
+
+[[__cgcom_cutting-a-release_releasing-the-archetypes_helloworld_setup-environment-variables]]
+=== Releasing `helloworld` archetype
+
+We now repeat the procedure for the `helloworld` example app.
+
+Start by switching to the directory containing the `helloworld` example:
+
+[source,bash]
+----
+cd ../example/application/helloworld
+----
+
+[[__cgcom_cutting-a-release_releasing-the-archetypes_helloworld_setup-environment-variables]]
+==== Setup environment variables
+
+Update additional environment variables for the `helloworld-archetype` artifact:
+
+[source,bash]
+----
+export ISISART=helloworld-archetype
+export ISISPAR=$ISISREL
+
+export ISISCPT=$(echo $ISISART | cut -d- -f2)
+export ISISCPN=$(echo $ISISART | cut -d- -f1)
+
+env | grep ISIS | sort
+----
+
+
+[[__cgcom_cutting-a-release_releasing-the-archetypes_helloworld_check-the-example-app]]
+==== Check the example app
+
+Update the parent `pom.xml` to reference the _released_ version of Apache Isis core, eg:
+
+[source,xml]
+----
+<properties>
+    <isis.version>1.15.0</isis.version>
+    ...
+</properties>
+----
+
+
+Finally, double check that the app
+
+* builds:
++
+[source,bash]
+----
+mvn clean install
+----
+
+* can be run from an IDE
+** mainClass=`org.apache.isis.WebServer`
+** args=`-m domainapp.application.HelloWorldAppManifest`
+** run before: `mvn datanucleus:enhance -o` in the root module
+
+* can be run using the mvn jetty plugin:
++
+[source,bash]
+----
+mvn jetty:run
+----
+
+* can be deployed as a WAR
++
+[source,bash]
+----
+cp target/helloworld.war $CATALINA_HOME/webapps/ROOT.war
+pushd $CATALINA_HOME/bin
+sh startup.sh
+tail -f ../logs/catalina.out
+----
++
+quit using:
++
+[source,bash]
+----
+sh shutdown.sh
+popd
+----
+
+This too should be accessed at link:http://localhost:8080[localhost:8080].
+
+In each case, check the about page and confirm has been built against non-SNAPSHOT versions of the Apache Isis jars.
+
+
+[[__cgcom_cutting-a-release_releasing-the-archetypes_helloworld_create-the-archetype]]
+==== Create the archetype
+
+Make sure you are in the correct directory and environment variables are correct.
+
+To recreate the *helloworld* archetype:
+
+[source,bash]
+----
+cd example/application/helloworld
+env | grep ISIS | sort
+----
+
+Then, run the script:
+
+[source,bash]
+----
+sh ../../../scripts/recreate-archetype.sh $ISISJIRA
+----
+
+The script automatically commits changes; if you wish use `git log` and
+`git diff` (or a tool such as SourceTree) to review changes made.
+
+
+[[__cgcom_cutting-a-release_releasing-the-archetypes_helloworld_release-prepare]]
+=== Release prepare
+
+Switch to the *archetype* directory and execute the `release:prepare`:
+
+[source]
+----
+cd ../../../example/archetype/$ISISCPN
+rm -rf $ISISTMP/checkout
+mvn release:prepare -P apache-release \
+                -DreleaseVersion=$ISISREL \
+                -DdevelopmentVersion=$ISISDEV \
+                -Dtag=$ISISART-$ISISREL
+----
+
+
+
+[[__cgcom_cutting-a-release_releasing-the-archetypes_helloworld_post-prepare-sanity-check]]
+==== Post-prepare sanity check
+
+This is a good point to test the archetype; nothing has yet been uploaded.
+
+_In a different session_, create a new app from the archetype.  First set up environment variables:
+
+[source,bash]
+----
+export ISISTMP=/c/tmp    # or as required
+export ISISCPN=helloworld
+env | grep ISIS | sort
+----
+
+Then generate a new app from the archetype:
+
+[source,bash]
+----
+rm -rf $ISISTMP/test-$ISISCPN
+
+mkdir $ISISTMP/test-$ISISCPN
+cd $ISISTMP/test-$ISISCPN
+mvn archetype:generate  \
+    -D archetypeCatalog=local \
+    -D groupId=com.mycompany \
+    -D artifactId=myapp \
+    -D archetypeGroupId=org.apache.isis.archetype \
+    -D archetypeArtifactId=$ISISCPN-archetype
+----
+
+Build the newly generated app and test:
+
+[source,bash]
+----
+cd myapp
+mvn clean install -o
+mvn jetty:run
+----
+
+
+
+[[__cgcom_cutting-a-release_releasing-the-archetypes_simplapp_release-perform-upload]]
+==== Release Perform (upload)
 
 Back in the original session (in the *archetype* directory, `example/archetype/$ISISCPN`), execute `release:perform`:
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_post-release-successful.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_post-release-successful.adoc b/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_post-release-successful.adoc
index 0c2b2f1..6321b97 100644
--- a/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_post-release-successful.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_post-release-successful.adoc
@@ -12,7 +12,8 @@ The release process consists of:
 * members of the Apache Isis PMC xref:../cgcom/cgcom.adoc#_cgcom_verifying-releases[verifying] and voting on the release
 * the release manager performing post-release tasks, for either a successful or an xref:../cgcom/cgcom.adoc#_cgcom_post-release-unsuccessful[unsuccessful] vote (former documented below)
 
-For a vote to succeed, there must be +3 votes from PMC members, and the vote must have been open at least 72 hours.  If there are not +3 votes after this time then it is perfectly permissible to keep the vote open longer.
+For a vote to succeed, there must be +3 votes from PMC members, and the vote must have been open at least 72 hours.
+If there are not +3 votes after this time then it is perfectly permissible to keep the vote open longer.
 
 This section describes the steps to perform if the vote has been successful.
 
@@ -25,7 +26,7 @@ Post the results to the `dev@isis.a.o` mailing list:
 
 [source,bash]
 ----
-[RESULT] [VOTE] Apache Isis Core release 1.14.0
+[RESULT] [VOTE] Apache Isis Core release 1.15.0
 ----
 
 using the body (alter last line as appropriate):
@@ -53,8 +54,9 @@ You can do this using the `scripts/promoterctag.sh` script; for example:
 
 [source,bash]
 ----
-sh scripts/promoterctag.sh isis-1.14.0 RC1
-sh scripts/promoterctag.sh simpleapp-archetype-1.14.0 RC1
+sh scripts/promoterctag.sh isis-1.15.0 RC1
+sh scripts/promoterctag.sh helloworld-archetype-1.15.0 RC1
+sh scripts/promoterctag.sh simpleapp-archetype-1.15.0 RC1
 ----
 
 This script pushes the tag under `refs/tags/rel`.  As per Apache policy (communicated on 10th Jan 2016 to Apache PMCs),
@@ -79,9 +81,13 @@ This moves the release artifacts into an Apache releases repository; from there
 
 == Release Source Zip
 
-As described in the link:http://www.apache.org/dev/release-publishing.html#distribution_dist[Apache documentation], each Apache TLP has a `release/TLP-name` directory in the distribution Subversion repository at link:https://dist.apache.org/repos/dist[https://dist.apache.org/repos/dist]. Once a release vote passes, the release manager should `svn add` the artifacts (plus signature and hash files) into this location. The release is then automatically pushed to http://www.apache.org/dist/[http://www.apache.org/dist/] by `svnpubsub`. Only the most recent release of each supported release line should be contained here, old versions should be deleted.
+As described in the link:http://www.apache.org/dev/release-publishing.html#distribution_dist[Apache documentation], each Apache TLP has a `release/TLP-name` directory in the distribution Subversion repository at link:https://dist.apache.org/repos/dist[https://dist.apache.org/repos/dist].
+Once a release vote passes, the release manager should `svn add` the artifacts (plus signature and hash files) into this location.
+The release is then automatically pushed to http://www.apache.org/dist/[http://www.apache.org/dist/] by `svnpubsub`.
+Only the most recent release of each supported release line should be contained here, old versions should be deleted.
 
-Each project is responsible for the structure of its directory. The directory structure of Apache Isis reflects the directory structure in our git source code repo:
+Each project is responsible for the structure of its directory.
+The directory structure of Apache Isis reflects the directory structure in our git source code repo:
 
 [source]
 ----
@@ -99,7 +105,8 @@ If necessary, checkout this directory structure:
 svn co https://dist.apache.org/repos/dist/release/isis isis-dist
 ----
 
-Next, add the new release into the appropriate directory, and delete any previous release.  The `upd.sh` script (also downloadable from link:https://gist.github.com/danhaywood/aa79c18d993df1b1e2c5a9933e48bcbc[this gist]) can be used to automate this:
+Next, add the new release into the appropriate directory, and delete any previous release.
+The `upd.sh` script (also downloadable from link:https://gist.github.com/danhaywood/aa79c18d993df1b1e2c5a9933e48bcbc[this gist]) can be used to automate this:
 
 [source,bash]
 ----
@@ -137,6 +144,27 @@ popd
 
 
 #
+# helloworld-archetype
+#
+type="archetype"
+fullname="helloworld-archetype"
+pushd $type/$fullname
+
+curl -O $repo_root/$type/$fullname/$new_ver/$fullname-$new_ver-$md5
+svn add $fullname-$new_ver-$md5
+curl -O $repo_root/$type/$fullname/$new_ver/$fullname-$new_ver-$asc
+svn add $fullname-$new_ver-$asc
+curl -O $repo_root/$type/$fullname/$new_ver/$fullname-$new_ver-$zip
+svn add $fullname-$new_ver-$zip
+
+svn delete $fullname-$old_ver-$md5
+svn delete $fullname-$old_ver-$asc
+svn delete $fullname-$old_ver-$zip
+
+popd
+
+
+#
 # simpleapp-archetype
 #
 type="archetype"
@@ -159,14 +187,15 @@ popd
 
 [source,bash]
 ----
-sh upd.sh 1.14.0 1.15.0
+sh upd.sh 1.15.0 1.16.0
 ----
 
 The script downloads the artifacts from the Nexus release repository, adds the artifacts to subversion and deletes the previous version.
 
 
 
-Double check that the files are correct; there is sometimes a small delay in the files becoming available in the release repository.  It should be sufficient to check just the `md5` or `.asc` files that these look valid (aren't HTML 404 error pages):
+Double check that the files are correct; there is sometimes a small delay in the files becoming available in the release repository.
+It should be sufficient to check just the `md5` or `.asc` files that these look valid (aren't HTML 404 error pages):
 
 [source,bash]
 ----
@@ -192,13 +221,14 @@ From the root directory, generate the release notes for the current release, in
 
 [source,bash]
 ----
-sh scripts/jira-release-notes.sh ISIS 1.14.0 > /tmp/1
+sh scripts/jira-release-notes.sh ISIS 1.15.0 > /tmp/1
 ----
 
 
 === Close tickets
 
-Close all JIRA tickets for the release, or moved to future releases if not yet addressed. Any tickets that were partially implemented should be closed, and new tickets created for the functionality on the ticket not yet implemented.
+Close all JIRA tickets for the release, or moved to future releases if not yet addressed.
+Any tickets that were partially implemented should be closed, and new tickets created for the functionality on the ticket not yet implemented.
 
 
 
@@ -224,7 +254,8 @@ Log the new release in the link:https://reporter.apache.org/addrelease.html?isis
 
 Update the Apache Isis (asciidoc) website:
 
-* Paste in the JIRA-generated release notes generated above, adding to top of `adocs/documentation/src/main/asciidoc/release-notes.adoc`.  Also add a summary line for the release.
+* Paste in the JIRA-generated release notes generated above, adding to top of `adocs/documentation/src/main/asciidoc/release-notes.adoc`.
+Also add a summary line for the release.
 
 * Search for any `-SNAPSHOT` suffices, and remove
 
@@ -236,7 +267,8 @@ Update the Apache Isis (asciidoc) website:
 +
 A search for `archetypeGroupId=org.apache.isis.archetype` should find these pages.
 
-* update the link:../../doap_isis.rdf[DOAP RDF] file (which provides a machine-parseable description of the project) should also be updated with details of the new release. Validate using the http://www.w3.org/RDF/Validator/[W3C RDF Validator] service. +
+* update the link:../../doap_isis.rdf[DOAP RDF] file (which provides a machine-parseable description of the project) should also be updated with details of the new release.
+Validate using the http://www.w3.org/RDF/Validator/[W3C RDF Validator] service. +
 +
 For more information on DOAP files, see these http://projects.apache.org/doap.html[Apache policy docs].
 
@@ -248,7 +280,6 @@ Don't forget to commit the `.adoc` changes and publish to the isis-site repo.
 
 
 
-
 == Announce the release
 
 Announce the release to link:mailto:users@isis.apache.org[users mailing list].
@@ -257,14 +288,14 @@ For example, for a release of Apache Isis Core, use the following subject:
 
 [source,bash]
 ----
-[ANN] Apache Isis version 1.14.0 Released
+[ANN] Apache Isis version 1.15.0 Released
 ----
 
 And use the following body (summarizing the main points as required):
 
 [source]
 ----
-The Apache Isis team is pleased to announce the release of Apache Isis v1.14.0.
+The Apache Isis team is pleased to announce the release of Apache Isis v1.15.0.
 
 New features in this release include:
 * ...
@@ -278,8 +309,8 @@ Enjoy!
 
 --The Apache Isis team
 
-[1] http://isis.apache.org/release-notes.html#r1.14.0
-[2] http://isis.apache.org/migration-notes.html#_migration-notes_1.13.0-to-1.14.0
+[1] http://isis.apache.org/release-notes.html#r1.15.0
+[2] http://isis.apache.org/migration-notes.html#_migration-notes_1.14.0-to-1.15.0
 [3] http://search.maven.org
 [4] http://isis.apache.org/downloads.html
 ----
@@ -289,7 +320,8 @@ Enjoy!
 
 == Blog post
 
-link:https://blogs.apache.org/roller-ui/login.rol[Log onto] the http://blogs.apache.org/isis/[Apache blog] and create a new post. Copy-n-paste the above mailing list announcement should suffice.
+link:https://blogs.apache.org/roller-ui/login.rol[Log onto] the http://blogs.apache.org/isis/[Apache blog] and create a new post.
+Copy-n-paste the above mailing list announcement should suffice.
 
 
 
@@ -303,13 +335,13 @@ Because we release from a branch, the changes made in the branch (changes to `po
 ----
 git checkout master                           # update master with latest
 git pull
-git merge release-1.14.0-RC1                  # merge branch onto master
-git push origin --delete release-1.14.0-RC1   # remote branch no longer needed
-git branch -d release-1.14.0-RC1              # branch no longer needed
+git merge release-1.15.0-RC1                  # merge branch onto master
+git push origin --delete release-1.15.0-RC1   # remote branch no longer needed
+git branch -d release-1.15.0-RC1              # branch no longer needed
 ----
 
 
-Finally, update the simpleapp's root `pom.xml` to reference the next SNAPSHOT release (`1.15.0-SNAPSHOT`)
+Finally, update helloworld's `pom.xml` and simpleapp's root `pom.xml` to reference the next SNAPSHOT release (`1.16.0-SNAPSHOT`)
 
 
 
@@ -320,6 +352,7 @@ With the release complete, now is a good time to bump versions of dependencies (
 You will probably want to create a new JIRA ticket for these updates (or if minor then use the "catch-all" JIRA ticket raised earlier for the next release).
 
 
+
 === Update parent of Core
 
 Check (via link:http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache%22%20a%3A%22apache%22[search.maven.org]) whether there is a newer version of the Apache parent `org.apache:apache`.
@@ -342,7 +375,8 @@ where `NN` is the updated version number.
 
 === Update plugin versions
 
-The `maven-versions-plugin` should be used to determine if there are newer versions of any of the plugins used to build Apache Isis. Since this goes off to the internet, it may take a minute or two to run:
+The `maven-versions-plugin` should be used to determine if there are newer versions of any of the plugins used to build Apache Isis.
+Since this goes off to the internet, it may take a minute or two to run:
 
 [source,bash]
 ----
@@ -350,13 +384,15 @@ mvn versions:display-plugin-updates > /tmp/foo
 grep "\->" /tmp/foo | /bin/sort -u
 ----
 
-Review the generated output and make updates as you see fit. (However, if updating, please check by searching for known issues with newer versions).
+Review the generated output and make updates as you see fit.
+(However, if updating, please check by searching for known issues with newer versions).
 
 
 
 === Update dependency versions
 
-The `maven-versions-plugin` should be used to determine if there are newer versions of any of Isis' dependencies. Since this goes off to the internet, it may take a minute or two to run:
+The `maven-versions-plugin` should be used to determine if there are newer versions of any of Isis' dependencies.
+Since this goes off to the internet, it may take a minute or two to run:
 
 [source,bash]
 ----
@@ -364,7 +400,9 @@ mvn versions:display-dependency-updates > /tmp/foo
 grep "\->" /tmp/foo | /bin/sort -u
 ----
 
-Update any of the dependencies that are out-of-date. That said, do note that some dependencies may show up with a new dependency, when in fact the dependency is for an old, badly named version. Also, there may be new dependencies that you do not wish to move to, eg release candidates or milestones.
+Update any of the dependencies that are out-of-date.
+That said, do note that some dependencies may show up with a new dependency, when in fact the dependency is for an old, badly named version.
+Also, there may be new dependencies that you do not wish to move to, eg release candidates or milestones.
 
 For example, here is a report showing both of these cases:
 
@@ -388,7 +426,8 @@ For these artifacts you will need to search http://search.maven.org[Maven centra
 
 == Code formatting
 
-This is also a good time to make source code has been cleaned up and formatted according to the Apache Isis and ASF conventions. Use link:../dg/resources/eclipse/templates/Apache-code-style-formatting.xml[this] Eclipse template and link:../dg/resources/eclipse/isis.importorder[this] import order.
+This is also a good time to make source code has been cleaned up and formatted according to the Apache Isis and ASF conventions.
+Use link:../dg/resources/eclipse/templates/Apache-code-style-formatting.xml[this] Eclipse template and link:../dg/resources/eclipse/isis.importorder[this] import order.
 
 
 
@@ -434,15 +473,15 @@ The `org.incode:incode-parent` Maven module is used as a parent for both sets of
 +
 [source,bash]
 ----
-sh bumpver_isis.sh 1.14.0
+sh bumpver_isis.sh 1.15.0
 ----
 
 * update the README
 
 ** replace each version with next (ie the "How to Configure/Use" section, and the "Release to Maven Central" section at the end):
 
-*** replace 1.14.0-SNAPSHOT with 1.15.0-SNAPSHOT
-*** replace 1.13.0          with 1.14.0
+*** replace 1.15.0-SNAPSHOT with 1.16.0-SNAPSHOT
+*** replace 1.14.0          with 1.15.0
 
 ** update the "Change Log" section
 
@@ -450,7 +489,7 @@ sh bumpver_isis.sh 1.14.0
 +
 [source,bash]
 ----
-sh release.sh "1.14.0" "1.15.0-SNAPSHOT" "dan@haywood-associates.co.uk" "this is not really my password"
+sh release.sh "1.15.0" "1.16.0-SNAPSHOT" "dan@haywood-associates.co.uk" "this is not really my password"
 ----
 
 
@@ -464,15 +503,15 @@ The three `org.incode:mavendeps-isisXXX` module should be released next.
 +
 [source,bash]
 ----
-foreach -g incodehq/mavendeps sh bumpver_isis.sh 1.14.0
+foreach -g incodehq/mavendeps sh bumpver_isis.sh 1.15.0
 ----
 
 * update the README
 
 ** replace each version with next (ie the "How to Configure/Use" section, and the "Release to Maven Central" section at the end):
 
-*** replace 1.14.0-SNAPSHOT with 1.15.0-SNAPSHOT
-*** replace 1.13.0          with 1.14.0
+*** replace 1.15.0-SNAPSHOT with 1.16.0-SNAPSHOT
+*** replace 1.14.0          with 1.15.0
 
 ** update the "Change Log" section
 
@@ -480,14 +519,14 @@ foreach -g incodehq/mavendeps sh bumpver_isis.sh 1.14.0
 +
 [source,bash]
 ----
-foreach -g incodehq/mavendeps sh sh release.sh "1.14.0" "1.15.0-SNAPSHOT" "dan@haywood-associates.co.uk" \"this is not really my password\"
+foreach -g incodehq/mavendeps sh sh release.sh "1.15.0" "1.16.0-SNAPSHOT" "dan@haywood-associates.co.uk" \"this is not really my password\"
 ----
 
 * update its dependency on Apache Isis to reference the next SNAPSHOT: +
 +
 [source,bash]
 ----
-foreach -g incodehq/mavendeps sh bumpver_isis.sh 1.15.0-SNAPSHOT
+foreach -g incodehq/mavendeps sh bumpver_isis.sh 1.16.0-SNAPSHOT
 ----
 
 
@@ -503,7 +542,7 @@ Using this link:https://gist.github.com/danhaywood/21b5b885433fd8bc440da3fab88c9
 +
 [source,bash]
 ----
-foreach -g isisaddons sh bumpver_isis.sh 1.14.0
+foreach -g isisaddons sh bumpver_isis.sh 1.15.0
 ----
 +
 and use: +
@@ -533,8 +572,8 @@ to review changes made.
 
 ** replace each version with next (ie the "How to Configure/Use" section, and the "Release to Maven Central" section at the end):
 
-*** replace `1.14.0` with `1.15.0`
-*** replace `1.13.0` with `1.14.0` as necessary (pretty much everywhere apart from the "Change Log")
+*** replace `1.15.0` with `1.16.0`
+*** replace `1.14.0` with `1.15.0` as necessary (pretty much everywhere apart from the "Change Log")
 
 ** update the "Change Log" section
 
@@ -542,14 +581,14 @@ to review changes made.
 +
 [source,bash]
 ----
-foreach -g isisaddons/isis-[mw] sh release.sh "1.14.0" "1.15.0-SNAPSHOT" "dan@haywood-associates.co.uk" \"this is not really my password\"
+foreach -g isisaddons/isis-[mw] sh release.sh "1.15.0" "1.16.0-SNAPSHOT" "dan@haywood-associates.co.uk" \"this is not really my password\"
 ----
 
 * In the parent directory where the `last_modified.sh` script has been saved (see xref:../cgcom/cgcom.adoc#__cgcom_post-release-successful_release-non-asf-modules_prereqs[above]), use to check that all modules were released successfully: +
 +
 [source,bash]
 ----
-foreach -g isisaddons/isis-[mw] sh ../../last-modified.sh 1.14.0
+foreach -g isisaddons/isis-[mw] sh ../../last-modified.sh 1.15.0
 ----
 +
 [IMPORTANT]
@@ -561,7 +600,7 @@ Wait at least 10 minutes to check; sync'ing to Maven central from the Sonatype O
 +
 [source,bash]
 ----
-foreach -g isisaddons/isis-[mw] "git push origin master && git push origin 1.14.0"
+foreach -g isisaddons/isis-[mw] "git push origin master && git push origin 1.15.0"
 ----
 
 
@@ -576,7 +615,7 @@ Using this link:https://gist.github.com/danhaywood/21b5b885433fd8bc440da3fab88c9
 +
 [source,bash]
 ----
-foreach -g incodehq/incode-module sh bumpver_isis.sh 1.14.0
+foreach -g incodehq/incode-module sh bumpver_isis.sh 1.15.0
 ----
 
 * update the README for each repository. +
@@ -590,8 +629,8 @@ eg if using Windows, then:
 
 ** Replace each version with next (ie the "How to Configure/Use" section, and the "Release to Maven Central" section at the end):
 
-*** replace `1.14.0` with `1.15.0`
-*** replace `1.13.0` with `1.14.0` as necessary (pretty much everywhere apart from the "Change Log")
+*** replace `1.15.0` with `1.16.0`
+*** replace `1.14.0` with `1.15.0` as necessary (pretty much everywhere apart from the "Change Log")
 
 ** update the "Change Log" section
 
@@ -618,14 +657,14 @@ For example, `incode-module-base` must be released prior to `incode-module-alias
 +
 [source,bash]
 ----
-foreach -g incodehq/incode-module-[a-w] sh release.sh "1.14.0" "1.15.0-SNAPSHOT" "dan@haywood-associates.co.uk" \"this is not really my password\"
+foreach -g incodehq/incode-module-[a-w] sh release.sh "1.15.0" "1.16.0-SNAPSHOT" "dan@haywood-associates.co.uk" \"this is not really my password\"
 ----
 
 * In the parent directory where the `last_modified.sh` script has been saved (see xref:../cgcom/cgcom.adoc#__cgcom_post-release-successful_release-non-asf-modules_prereqs[above]), use to check that all modules were released successfully: +
 +
 [source,bash]
 ----
-foreach -g incodehq/incode-module-[a-w] sh ../../last-modified.sh 1.14.0
+foreach -g incodehq/incode-module-[a-w] sh ../../last-modified.sh 1.15.0
 ----
 +
 [IMPORTANT]
@@ -637,29 +676,29 @@ Wait at least 10 minutes to check; sync'ing to Maven central from the Sonatype O
 +
 [source,bash]
 ----
-foreach -g incodehq/incode-module-[a-w] "git push origin master && git push origin 1.14.0"
+foreach -g incodehq/incode-module-[a-w] "git push origin master && git push origin 1.15.0"
 ----
 
 
 [[__cgcom_post-release-successful_release-non-asf-modules_incode-catalog_cross-module-dependencies]]
 ==== Cross-module dependencies
 
-As of v1.14.0, the list of dependencies that needed to be updated (across all modules) were:
-
-** `<isis-module-fakedata.version>1.14.0</isis-module-fakedata.version>`
-** `<isis-module-freemarker.version>1.14.0</isis-module-freemarker.version>`
-** `<isis-wicket-fullcalendar2-cpt.version>1.14.0</isis-wicket-fullcalendar2-cpt.version>`
-** `<isis-wicket-gmap3-cpt.version>1.14.0</isis-wicket-gmap3-cpt.version>`
-** `<isis-module-poly.version>1.14.0</isis-module-poly.version>`
-** `<isis-module-security.version>1.14.0</isis-module-security.version>`
-** `<incode-module-base.version>1.14.0</incode-module-base.version>`
-** `<incode-module-fixturesupport.version>1.14.0</incode-module-fixturesupport.version>`
-** `<incode-module-unittestsupport.version>1.14.0</incode-module-unittestsupport.version>`
-** `<incode-module-integtestsupport.version>1.14.0</incode-module-integtestsupport.version>`
-** `<incode-module-country.version>1.14.0</incode-module-country.version>`
-** `<incode-module-document.version>1.14.0</incode-module-document.version>`
-** `<incode-module-docrendering-freemarker.version>1.14.0</incode-module-docrendering-freemarker.version>`
-** `<incode-module-docrendering-stringinterpolator.version>1.14.0</incode-module-docrendering-stringinterpolator.version>`
-** `<incode-module-docrendering-xdocreport.version>1.14.0</incode-module-docrendering-xdocreport.version>`
+As of v1.15.0, the list of dependencies that needed to be updated (across all modules) were:
+
+** `<isis-module-fakedata.version>1.15.0</isis-module-fakedata.version>`
+** `<isis-module-freemarker.version>1.15.0</isis-module-freemarker.version>`
+** `<isis-wicket-fullcalendar2-cpt.version>1.15.0</isis-wicket-fullcalendar2-cpt.version>`
+** `<isis-wicket-gmap3-cpt.version>1.15.0</isis-wicket-gmap3-cpt.version>`
+** `<isis-module-poly.version>1.15.0</isis-module-poly.version>`
+** `<isis-module-security.version>1.15.0</isis-module-security.version>`
+** `<incode-module-base.version>1.15.0</incode-module-base.version>`
+** `<incode-module-fixturesupport.version>1.15.0</incode-module-fixturesupport.version>`
+** `<incode-module-unittestsupport.version>1.15.0</incode-module-unittestsupport.version>`
+** `<incode-module-integtestsupport.version>1.15.0</incode-module-integtestsupport.version>`
+** `<incode-module-country.version>1.15.0</incode-module-country.version>`
+** `<incode-module-document.version>1.15.0</incode-module-document.version>`
+** `<incode-module-docrendering-freemarker.version>1.15.0</incode-module-docrendering-freemarker.version>`
+** `<incode-module-docrendering-stringinterpolator.version>1.15.0</incode-module-docrendering-stringinterpolator.version>`
+** `<incode-module-docrendering-xdocreport.version>1.15.0</incode-module-docrendering-xdocreport.version>`
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_post-release-unsuccessful.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_post-release-unsuccessful.adoc b/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_post-release-unsuccessful.adoc
index 94b80f5..c414545 100644
--- a/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_post-release-unsuccessful.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_post-release-unsuccessful.adoc
@@ -61,6 +61,7 @@ git push --delete origin release-1.14.0-RC1
 [source,bash]
 ----
 git push --delete origin isis-1.14.0-RC1
+git push --delete origin helloworld-archetype-1.14.0-RC1
 git push --delete origin simpleapp-archetype-1.14.0-RC1
 ----
 
@@ -71,6 +72,8 @@ git push --delete origin simpleapp-archetype-1.14.0-RC1
 ----
 git tag -d isis-1.14.0
 git tag -d isis-1.14.0-RC1
+git tag -d helloworld-archetype-1.14.0
+git tag -d helloworld-archetype-1.14.0-RC1
 git tag -d simpleapp-archetype-1.14.0
 git tag -d simpleapp-archetype-1.14.0-RC1
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_verifying-releases.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_verifying-releases.adoc b/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_verifying-releases.adoc
index deace8a..60ee43c 100644
--- a/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_verifying-releases.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_verifying-releases.adoc
@@ -95,7 +95,7 @@ Confirm that the versions of the Isis artifacts now cached in your local reposit
 
 ==== Verifying binary artifacts
 
-You can verify the binary releases by configuring your local Maven install to point to the Maven staging repository (or repositories) and then using them, eg to run the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype1] and running the resultant app.
+You can verify the binary releases by configuring your local Maven install to point to the Maven staging repository (or repositories) and then using them, eg to run the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld archetype] or the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] and running the resultant app.
 
 Configuring your local Maven install amounts to updating the `~/.m2/settings.xml` file:
 
@@ -223,12 +223,14 @@ The script could be enhanced in many ways, feel free to contribute improvements!
 
 ==== Create an input file
 
-The input file is a plain `.txt` file containing all urls to the packages to be verified. Here's a sample of the release of Apache Isis 1.8.0:
+The input file is a plain `.txt` file containing all urls to the packages to be verified.
+Here's a sample of the release of Apache Isis 1.15.0:
 
 [source]
 ----
-https://repository.apache.org/content/repositories/orgapacheisis-063/org/apache/isis/core/isis/1.8.0/isis-1.8.0-source-release.zip
-https://repository.apache.org/content/repositories/orgapacheisis-065/org/apache/isis/archetype/simpleapp-archetype/1.8.0/simpleapp-archetype-1.8.0-source-release.zip
+https://repository.apache.org/content/repositories/orgapacheisis-063/org/apache/isis/core/isis/1.8.0/isis-1.15.0-source-release.zip
+https://repository.apache.org/content/repositories/orgapacheisis-065/org/apache/isis/archetype/helloworld-archetype/1.8.0/simpleapp-archetype-1.15.0-source-release.zip
+https://repository.apache.org/content/repositories/orgapacheisis-065/org/apache/isis/archetype/simpleapp-archetype/1.8.0/simpleapp-archetype-1.15.0-source-release.zip
 ----
 
 The actual list of packages to be verified will be provided through the mailing list.
@@ -271,16 +273,38 @@ In this report, each binary will have three links listed after its name '(licens
 
 
 
-== Test the archetype
+== Test the archetypes
 
 Assuming that everything builds ok, then test the archetypes (adjust version as necessary):
 
+* First the `helloworld` archetype: +
++
+[source,bash]
+----
+mvn archetype:generate  \
+    -D archetypeGroupId=org.apache.isis.archetype \
+    -D archetypeArtifactId=helloworld-archetype \
+    -D archetypeVersion=1.15.0 \
+    -D groupId=com.mycompany \
+    -D artifactId=myapp \
+    -D version=1.0-SNAPSHOT \
+    -B \
+    -o
+
+cd myapp
+mvn clean install jetty:run -o
+----
++
+Adjust the version as necessary.
+
+* Next, the `simpleapp` archetype: +
++
 [source,bash]
 ----
 mvn archetype:generate  \
     -D archetypeGroupId=org.apache.isis.archetype \
     -D archetypeArtifactId=simpleapp-archetype \
-    -D archetypeVersion=1.14.0 \
+    -D archetypeVersion=1.15.0 \
     -D groupId=com.mycompany \
     -D artifactId=myapp \
     -D version=1.0-SNAPSHOT \
@@ -288,12 +312,12 @@ mvn archetype:generate  \
     -o
 
 cd myapp
-mvn clean install -o
-cd webapp
-mvn jetty:run
+mvn clean install -o && mvn -pl jetty:run -o
 ----
++
+Adjust the version as necessary.
 
-Adjust the version as necessary.  If it runs up ok, then it's time to xref:../cgcom/cgcom.adoc#_cgcom_verifying-releases[vote]!
+If the archetypes run up ok, then it's time to xref:../cgcom/cgcom.adoc#_cgcom_verifying-releases[vote]!
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/dg/_dg_ide_eclipse.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/dg/_dg_ide_eclipse.adoc b/adocs/documentation/src/main/asciidoc/guides/dg/_dg_ide_eclipse.adoc
index 68eac51..f7f68ef 100644
--- a/adocs/documentation/src/main/asciidoc/guides/dg/_dg_ide_eclipse.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/dg/_dg_ide_eclipse.adoc
@@ -75,14 +75,15 @@ image::{_imagesdir}eclipse/eclipse-110-project-support.png[width="600px",link="{
 
 === Update the classpath
 
-DataNucleus' enhancer uses the domain object model's own classpath to reference DataNucleus JARs. So, even though your domain objects are unlikely to depend on DataNucleus, these references must still be present.
+DataNucleus' enhancer uses the domain object model's own classpath to reference DataNucleus JARs.
+So, even though your domain objects are unlikely to depend on DataNucleus, these references must still be present.
 
-See the earlier section on xref:../ugfun/ugfun.adoc#_ugfun_getting-started_datanucleus-enhancer[DataNucleus enhancer] for details of the contents of the `pom.xml`.  Chances are it is already set up from running the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
+See the earlier section on xref:../ugfun/ugfun.adoc#_ugfun_getting-started_datanucleus-enhancer[DataNucleus enhancer] for details of the contents of the `pom.xml`.
+Chances are it is already set up from running the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld] or the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp] archetype.
 
 
 Then, tell DataNucleus to use the project classpath:
 
-
 image::{_imagesdir}eclipse/eclipse-010-windows-preferences.png[width="750px",link="{_imagesdir}eclipse/eclipse-010-windows-preferences.png"]
 
 When the enhancer runs, it will print out to the console:

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc
index 77f5632..c1c5eca 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc
@@ -27,7 +27,8 @@ To specify the `AppManifest` as a configuration property, use:
 |`FQCN`
 |`o.a.i.applib.AppManifest` +
 
-By convention this implementation resides in an `myapp-app` Maven module (as opposed to `myapp-dom` or `myapp-fixture`).  See the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] for details.
+By convention this implementation resides in an `myapp-app` Maven module (as opposed to `myapp-dom` or `myapp-fixture`).
+See the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] for details.
 
 |===
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/rgmvn/_rgmvn_intro.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgmvn/_rgmvn_intro.adoc b/adocs/documentation/src/main/asciidoc/guides/rgmvn/_rgmvn_intro.adoc
index 35fdf85..8b301d6 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgmvn/_rgmvn_intro.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgmvn/_rgmvn_intro.adoc
@@ -9,7 +9,8 @@ The Apache Isis Maven plugin defines three goals:
 
 * `validate` +
 +
-Use to verify at build time that the metamodel of an application is valid.  This runs the `MetaModelValidator` that is also run when the application is started up.
+Use to verify at build time that the metamodel of an application is valid.
+This runs the `MetaModelValidator` that is also run when the application is started up.
 
 * `swagger` +
 +
@@ -21,22 +22,22 @@ Uses the xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_JaxbService[`JaxbServic
 +
 This is instead of and preferable to using the JAXB link:https://jaxb.java.net/2.2.4/docs/schemagen.html[schemagen] tool, because it uses the framework's support (via xref:../rgant/rgant.adoc#_rgant-XmlJavaTypeAdapter[`@XmlJavaTypeAdapter`]) to translate any references to domain objects into ``OidDto``s (as defined by the Apache Isis xref:../rgcms/rgcms.adoc#_rgcms_schema-common[common schema]).
 
-The `validate` goal is by default bound to the `test` phase, and the `swagger` goal is by default bound to the `package` phase; both are typically of your application's `dom` sub-module.  The `xsd` goal meanwhile defaults to the `generate-resources` phase, and this is generally used in a completely separate sub-module.  An example can be found in the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] example app; the separate submodule that uses the `xsd` goal is (also) called `todoapp-xsd`.
+The `validate` goal is by default bound to the `test` phase, and the `swagger` goal is by default bound to the `package` phase; both are typically of your application's `dom` sub-module.
+The `xsd` goal meanwhile defaults to the `generate-resources` phase, and this is generally used in a completely separate sub-module.
+An example can be found in the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] example app; the separate submodule that uses the `xsd` goal is (also) called `todoapp-xsd`.
 
-All of these goals require an xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`] to point the plugin at, so that
-it knows how to bootstrap an Isis runtime.  This is discussed below, followed by sections on configuring the two goals.
+All of these goals require an xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`] to point the plugin at, so that it knows how to bootstrap an Isis runtime.
+This is discussed below, followed by sections on configuring the two goals.
 
 
 
 [[__rgmvn_intro_app-manifest]]
 == `AppManifest`
 
-As noted in the introduction, all the goals require an xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`]
-to point the plugin at, so that it knows how to bootstrap an Isis runtime.
+As noted in the introduction, all the goals require an xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`] to point the plugin at, so that it knows how to bootstrap an Isis runtime.
 
-This can be extremely minimal; it isn't necessary to use the main `AppManifest` (in the `app` module) used to
-bootstrap the application, you can instead use a cut-down one.  This then allows the plugins to be run during the
-build of the `dom` module, rather than having to run in the context of the `integtest` module.
+This can be extremely minimal; it isn't necessary to use the main `AppManifest` (in the `app` module) used to bootstrap the application, you can instead use a cut-down one.
+This then allows the plugins to be run during the build of the `dom` module, rather than having to run in the context of the `integtest` module.
 
 For example, the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp]'s
 manifest is:
@@ -74,20 +75,16 @@ public final class DomainAppDomainModule { }
 ----
 
 
-The downside of using a minimal `AppManifest` in the ``dom`` module is that any contributed actions/associations will
-be ignored.
+The downside of using a minimal `AppManifest` in the ``dom`` module is that any contributed actions/associations will be ignored.
 
 We recommend the following:
 
-* run the `validate` goal in the `dom` submodule; this will give early warning if there are any syntactic errors in the
-  model, eg orphaned supporting methods
+* run the `validate` goal in the `dom` submodule; this will give early warning if there are any syntactic errors in the model, eg orphaned supporting methods
 
-* run the `swagger` goal in the `integtest` submodule; this ensures that the generated Swagger spec files correctly
-  include any contributed actions/associations.
+* run the `swagger` goal in the `integtest` submodule; this ensures that the generated Swagger spec files correctly include any contributed actions/associations.
 
-* run the `xsd` plugin in a new `xsd` submodule; contributed actions are irrelevant for this particular goal; having a
-separate submodule allows the configuration of both the `xsd` goal (to generate the XSD schemas) and any other XSD-related configuration to be kept in a single place.
+* run the `xsd` plugin in a new `xsd` submodule; contributed actions are irrelevant for this particular goal; having a separate submodule allows the configuration of both the `xsd` goal (to generate the XSD schemas) and any other XSD-related configuration to be kept in a single place.
 
-The xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] reflects these recommendations for
-the `validate` and `swagger` goals.  You can find an example of the `xsd` plugin in the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] application.
+The xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] reflects these recommendations for the `validate` and `swagger` goals.
+You can find an example of the `xsd` plugin in the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] application.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/rgmvn/_rgmvn_validate.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgmvn/_rgmvn_validate.adoc b/adocs/documentation/src/main/asciidoc/guides/rgmvn/_rgmvn_validate.adoc
index 0ddebca..e7376b7 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgmvn/_rgmvn_validate.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgmvn/_rgmvn_validate.adoc
@@ -8,14 +8,12 @@
 
 The Apache Isis programming model requires that a number of naming conventions are followed.
 
-For example, the validator will detect any orphaned supporting methods (eg `hideXxx()`) if the corresponding property
-or action has been renamed or deleted but the supporting method was not also updated.  Another example is that a class
-cannot have a title specified both using `title()` method and also using `@Title` annotation.
+For example, the validator will detect any orphaned supporting methods (eg `hideXxx()`) if the corresponding property or action has been renamed or deleted but the supporting method was not also updated.
+Another example is that a class cannot have a title specified both using `title()` method and also using `@Title` annotation.
 
 When running the application these are enforced by the `MetaModelValidator` component that detects these errors, failing fast.
 
-The purpose of the `validate` goal of the `isis-maven-plugin` is to enforce these naming conventions at build time,
-typically enforced by way of a continuous integration server.
+The purpose of the `validate` goal of the `isis-maven-plugin` is to enforce these naming conventions at build time, typically enforced by way of a continuous integration server.
 
 The `validate` goal defines a single property:
 
@@ -25,8 +23,8 @@ The sections below explain how to configure the plugin within an app.
 
 [NOTE]
 ====
-The instructions given here relate to `1.10.0`.   This goal was also released for `1.9.0`, but with a slightly
-different configuration; see the final section for differences.
+The instructions given here relate to `1.10.0`.
+This goal was also released for `1.9.0`, but with a slightly different configuration; see the final section for differences.
 ====
 
 
@@ -110,7 +108,8 @@ mvn test -Dskip.isis-validate
 
 == Example of failure
 
-In the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp] application the `SimpleObject` defines an `updateName` action.  This has a supporting method:
+In the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp] application the `SimpleObject` defines an `updateName` action.
+This has a supporting method:
 
 
 [source,java]
@@ -161,7 +160,8 @@ If one were to attempt to run the application, the same error would appear in th
 
 == Custom validation rules
 
-It is also possible to customize the validation, explained xref:../ugbtb/ugbtb.adoc#_ugbtb_programming-model_custom-validator[here].  For example, you could enforce project-specific conventions by implementing a custom `MetaModelValidator`, and registering using a configuration property.
+It is also possible to customize the validation, explained xref:../ugbtb/ugbtb.adoc#_ugbtb_programming-model_custom-validator[here].
+For example, you could enforce project-specific conventions by implementing a custom `MetaModelValidator`, and registering using a configuration property.
 
 To support this using `AppManifest`s, override its `getConfigurationProperties()` method:
 
@@ -180,7 +180,8 @@ public class DomainAppDomManifest implements AppManifest {
 
 == 1.9.0 version
 
-The `1.9.0` version of the plugin requires slightly different configuration.  Rather than using an `AppManifest`, instead the configuration directory containing `isis.properties` is specified:
+The `1.9.0` version of the plugin requires slightly different configuration.
+Rather than using an `AppManifest`, instead the configuration directory containing `isis.properties` is specified:
 
 [source,xml]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_bootstrapping-spi_ClassDiscoveryService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_bootstrapping-spi_ClassDiscoveryService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_bootstrapping-spi_ClassDiscoveryService.adoc
index 24ad22c..ee6f151 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_bootstrapping-spi_ClassDiscoveryService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_bootstrapping-spi_ClassDiscoveryService.adoc
@@ -6,7 +6,8 @@
 
 
 
-The `ClassDiscovery` service is used to automatically discover subclasses of any given type on the classpath.  The primary use case is to support "convention-over-configuration" designs that work with a minimum of configuration.
+The `ClassDiscovery` service is used to automatically discover subclasses of any given type on the classpath.
+The primary use case is to support "convention-over-configuration" designs that work with a minimum of configuration.
 
 This service is used by the xref:../rgcms/rgcms.adoc#_rgcms_classes_super_FixtureScripts[`FixtureScripts`] service to automatically locate any xref:../rgcms/rgcms.adoc#_rgcms_classes_super_FixtureScript[`FixtureScript`] implementations.
 
@@ -36,15 +37,16 @@ Isis provides an implementation of this service, namely `o.a.i.applib.services.c
 
 [NOTE]
 ====
-This implementation is also used to discover domain services annotated with xref:../rgant/rgant.adoc#_rgant-DomainService[`@DomainService`].  Currently this logic uses the implementation directly, so is not pluggable.  However, the entire `ServicesInstaller`
+This implementation is also used to discover domain services annotated with xref:../rgant/rgant.adoc#_rgant-DomainService[`@DomainService`].
+Currently this logic uses the implementation directly, so is not pluggable.
 ====
 
 
 
 == Usage
 
-The usage will vary depending upon the conventions of the design.  As of 1.9.0, the usage of the service has been
-centralized such that the packages to be scanned are located from the xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`]'s `#getModules()` method.
+The usage will vary depending upon the conventions of the design.
+As of 1.9.0, the usage of the service has been centralized such that the packages to be scanned are located from the xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`]'s `#getModules()` method.
 
 For example, the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype]'s app manifest includes:
 
@@ -71,12 +73,9 @@ Other usages of the `ClassDiscoveryService` are likely to work in a similar way,
 == Registering the Services
 
 Assuming that the `configuration-and-annotation` services installer is configured (implicit if using the
-`AppManifest` to xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) then Apache Isis' core
-implementation of `ClassDiscoveryService2` service is automatically registered and injected (it is annotated with
-`@DomainService`) so no further configuration is required.
+`AppManifest` to xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) then Apache Isis' core implementation of `ClassDiscoveryService2` service is automatically registered and injected (it is annotated with `@DomainService`) so no further configuration is required.
 
-To use an alternative implementation, use
-xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained
+To use an alternative implementation, use xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained
 in the xref:../rgsvc/rgsvc.adoc#__rgsvc_intro_overriding-the-services[introduction] to this guide).
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing_FixtureScriptsSpecificationProvider.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing_FixtureScriptsSpecificationProvider.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing_FixtureScriptsSpecificationProvider.adoc
index c14d79f..2e64fda 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing_FixtureScriptsSpecificationProvider.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing_FixtureScriptsSpecificationProvider.adoc
@@ -6,19 +6,15 @@
 
 
 
-The `FixtureScriptsSpecificationProvider` configures the
-xref:../rgsvc/rgsvc.adoc#_rgsvc_testing_FixtureScriptsDefault[`FixtureScriptsDefault`] domain service, providing the
-location to search for fixture scripts and other settings.
+The `FixtureScriptsSpecificationProvider` configures the xref:../rgsvc/rgsvc.adoc#_rgsvc_testing_FixtureScriptsDefault[`FixtureScriptsDefault`] domain service, providing the location to search for fixture scripts and other settings.
 
-The service is only used if the `FixtureScriptsDefault` service is instantiated as a fallback by the framework.  If
-the application provides its own subclass of xref:../rgcms/rgcms.adoc#_rgcms_classes_super_FixtureScripts[`FixtureScripts`]
-superclass, then this provider service is not used.
+The service is only used if the `FixtureScriptsDefault` service is instantiated as a fallback by the framework.
+If the application provides its own subclass of xref:../rgcms/rgcms.adoc#_rgcms_classes_super_FixtureScripts[`FixtureScripts`] superclass, then this provider service is not used.
 
 [TIP]
 ====
-Of the two designs, we encourage you to implement this "provider" SPI rather than subclass `FixtureScripts`.  The
-primary benefit (apart from decoupling responsibilities) is that it ensures that there is always an instance of
-`FixtureScripts` available for use.
+Of the two designs, we encourage you to implement this "provider" SPI rather than subclass `FixtureScripts`.
+The primary benefit (apart from decoupling responsibilities) is that it ensures that there is always an instance of `FixtureScripts` available for use.
 ====
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_neo4j.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_neo4j.adoc b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_neo4j.adoc
index c3c450d..15eed56 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_neo4j.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_neo4j.adoc
@@ -4,6 +4,7 @@
 :_basedir: ../../
 :_imagesdir: images/
 
+
 As of 1.8.0 Apache Isis has experimental support for Neo4J, courtesy of DataNucleus' http://www.datanucleus.org/products/datanucleus/datastores/neo4j.html[Neo4J Datastore] implementation.
 
 The xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] has been updated so that they can be optionally run under Neo4J.
@@ -15,6 +16,7 @@ In addition, the http://github.com/isisaddons/isis-app-neoapp[Isis addons' neoap
 
 The steps below describe the configuration steps required to update an existing app.
 
+
 == ConnectionURL
 
 In `persistor.properties`, update the JDO `ConnectionURL` property, eg:
@@ -46,6 +48,7 @@ Add the following dependency to the `webapp` project's `pom.xml`:
 
 In the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] this is defined under the "neo4j" profile so can be activated using `-P neo4j`.
 
+
 == Try it out!
 
 If you want to quickly try out neo4j for yourself:

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc
index 416efa2..475f34d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc
@@ -9,15 +9,18 @@ Apache Isis' support for internationlization (i18n) allows every element of the
 
 It also supports translations of messages raised imperatively, by which we mean as the result of a call to `title()` to obtain an object's title, or messages resulting from any business rule violations (eg xref:../rgcms/rgcms.adoc#_rgcms_methods_prefixes_disable[`disable...()`] or xref:../rgcms/rgcms.adoc#_rgcms_methods_prefixes_validate[`validate...()`], and so on.
 
-The xref:../ugvw/ugvw.adoc#[Wicket viewer] (that is, its labels and messages) is also internationalized using the same mechanism.  If no translations are available, then the Wicket viewer falls back to using Wicket resource bundles.
+The xref:../ugvw/ugvw.adoc#[Wicket viewer] (that is, its labels and messages) is also internationalized using the same mechanism.
+If no translations are available, then the Wicket viewer falls back to using Wicket resource bundles.
 
-Isis does not translate the values of your domain objects, though.  So, if you have a domain concept such as `Country` whose name is intended to be localized according to the current user, you will need to model this yourself.
+Isis does not translate the values of your domain objects, though.
+So, if you have a domain concept such as `Country` whose name is intended to be localized according to the current user, you will need to model this yourself.
 
 
 [[__ugbtb_i18n_implementation-approach]]
 == Implementation Approach
 
-Most Java frameworks tackle i18n by using Java's own `ResourceBundle` API.  However, there are some serious drawbacks in this approach, including:
+Most Java frameworks tackle i18n by using Java's own `ResourceBundle` API.
+However, there are some serious drawbacks in this approach, including:
 
 * if a string appears more than once (eg "name" or "description") then it must be translated everywhere it appears in every resource bundle file
 * there is no support for plural forms (see this link:http://stackoverflow.com/questions/14326653/java-internationalization-i18n-with-proper-plurals/14327683#14327683[SO answer])
@@ -27,14 +30,17 @@ Apache Isis therefore takes a different approach, drawing inspiration from GNU's
 
 * the `.pot` (portable object template) file holds the message text to be translated
 * this file is translated into multiple `.po` (portable object) files, one per supported locale
-* these `.po` files are renamed according to their locale, and placed into the 'appropriate' location to be picked up by the runtime.  The name of each `.po` resolved in a very similar way to resource bundles.
+* these `.po` files are renamed according to their locale, and placed into the 'appropriate' location to be picked up by the runtime.
+The name of each `.po` resolved in a very similar way to resource bundles.
 
-The format of the `.pot` and `.po` files is identical; the only difference is that the `.po` file has translations for each of the message strings.   These message strings can also have singular and plural forms.
+The format of the `.pot` and `.po` files is identical; the only difference is that the `.po` file has translations for each of the message strings.
+These message strings can also have singular and plural forms.
 
 
 [IMPORTANT]
 ====
-Although Apache Isis' implementation is modelled after GNU's API, it does _not_ use any GNU software.  This is for two reasons: (a) to simplify the toolchain/developer experience, and (b) because GNU software is usually GPL, which would be incompatible with the Apache license.
+Although Apache Isis' implementation is modelled after GNU's API, it does _not_ use any GNU software.
+This is for two reasons: (a) to simplify the toolchain/developer experience, and (b) because GNU software is usually GPL, which would be incompatible with the Apache license.
 ====
 
 This design tackles all the issues of ``ResourceBundle``s:
@@ -43,9 +49,11 @@ This design tackles all the issues of ``ResourceBundle``s:
 * the `.po` message format includes translations for (optional) plural form as well as singular form
 * there are lots of freely available editors https://www.google.co.uk/search?q=.po+file+editor[to be found], many summarized on this https://www.drupal.org/node/11131[Drupal.org] webpage. +
 +
-In fact, there are also online communities/platforms of translators to assist with translating files. One such is https://crowdin.com/[crowdin] (nb: this link does not imply endorsement).
+In fact, there are also online communities/platforms of translators to assist with translating files.
+One such is https://crowdin.com/[crowdin] (nb: this link does not imply endorsement).
 
-In Apache Isis' implementation, if the translation is missing from the `.po` file then the original message text from the `.pot` file will be returned.  In fact, it isn't even necessary for there to be any `.po` files; `.po` translations can be added piecemeal as the need arises.
+In Apache Isis' implementation, if the translation is missing from the `.po` file then the original message text from the `.pot` file will be returned.
+In fact, it isn't even necessary for there to be any `.po` files; `.po` translations can be added piecemeal as the need arises.
 
 
 
@@ -53,7 +61,8 @@ In Apache Isis' implementation, if the translation is missing from the `.po` fil
 [[__ugbtb_i18n_translation-service]]
 == `TranslationService`
 
-The cornerstone of Apache Isis' support for i18n is the `TranslationService` service. This is defined in the applib with the following API:
+The cornerstone of Apache Isis' support for i18n is the `TranslationService` service.
+This is defined in the applib with the following API:
 
 [source,java]
 ----
@@ -77,7 +86,9 @@ public interface TranslationService {
 <2> is to translate the plural form of the text
 <3> indicates whether the translation service is in read or write mode.
 
-The `translate(...)` methods are closely modelled on GNU's gettext API.  The first version is used when no translation is required, the second is when both a singular and plural form will be required, with the `num` parameter being used to select which is returned.  In both cases the `context` parameter provides some contextual information for the translator; this generally corresponds to the class member.
+The `translate(...)` methods are closely modelled on GNU's gettext API.
+The first version is used when no translation is required, the second is when both a singular and plural form will be required, with the `num` parameter being used to select which is returned.
+In both cases the `context` parameter provides some contextual information for the translator; this generally corresponds to the class member.
 
 The mode meanwhile determines the behaviour of the service.  More on this below.
 
@@ -87,32 +98,39 @@ The mode meanwhile determines the behaviour of the service.  More on this below.
 
 Isis provides a default implementation of `TranslationService`, namely `TranslationServicePo`.
 
-If the service is running in the normal read mode, then it simply provides translations for the locale of the current user.  This means locates the appropriate `.po` file (based on the requesting user's locale), finds the translation and returns it.
+If the service is running in the normal read mode, then it simply provides translations for the locale of the current user.
+This means locates the appropriate `.po` file (based on the requesting user's locale), finds the translation and returns it.
 
-If however the service is configured to run in write mode, then it instead records the fact that the message was requested to be translated (a little like a spy/mock in unit testing mock), and returns the original message. The service can then be queried to discover which messages need to be translated.  All requested translations are written into the `.pot` file.
+If however the service is configured to run in write mode, then it instead records the fact that the message was requested to be translated (a little like a spy/mock in unit testing mock), and returns the original message.
+The service can then be queried to discover which messages need to be translated.
+All requested translations are written into the `.pot` file.
 
 To make the service as convenient as possible to use, the service configures itself as follows:
 
-* if running in prototype mode xref:../rgcfg/rgcfg.adoc#_rgcfg_deployment-types[deployment type] or during integration tests, then the service runs in *write* mode, in which case it records all translations into the `.pot` file.  The `.pot` file is written out when the system is shutdown.
-* if running in server (production) mode xref:../rgcfg/rgcfg.adoc#_rgcfg_deployment-types[deployment type], then the service runs in *read* mode. It is also possible to set a configuration setting in `isis.properties` to force read mode even if running in prototype mode (useful to manually test/demo the translations).
-
-When running in write mode the original text is returned to the caller untranslated. If in read mode, then the translated `.po` files are read and translations provided as required.
-
+* if running in prototype mode xref:../rgcfg/rgcfg.adoc#_rgcfg_deployment-types[deployment type] or during integration tests, then the service runs in *write* mode, in which case it records all translations into the `.pot` file.
+The `.pot` file is written out when the system is shutdown.
+* if running in server (production) mode xref:../rgcfg/rgcfg.adoc#_rgcfg_deployment-types[deployment type], then the service runs in *read* mode.
+It is also possible to set a configuration setting in `isis.properties` to force read mode even if running in prototype mode (useful to manually test/demo the translations).
 
+When running in write mode the original text is returned to the caller untranslated.
+If in read mode, then the translated `.po` files are read and translations provided as required.
 
 
 
 [[__ugbtb_i18n_imperative-messages]]
 == Imperative messages
 
-The `TranslationService` 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 `TranslationService`.
+The `TranslationService` 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 `TranslationService`.
 
-However, for an application to be fully internationalized, any validation messages (from either `disableXxx()` or `validateXxx()` supporting methods) and also possibly an object's title (from the `title()` method) will also require translation. Moreover, these messages must be captured in the `.pot` file such that they can be translated.
+However, for an application to be fully internationalized, any validation messages (from either `disableXxx()` or `validateXxx()` supporting methods) and also possibly an object's title (from the `title()` method) will also require translation.
+Moreover, these messages must be captured in the `.pot` file such that they can be translated.
 
 
 === `TranslatableString`
 
-The first part of the puzzle is tackled by an extension to Apache Isis' programming model.  Whereas previously the `disableXxx()` / `validateXxx()` / `title()` methods could only return a `java.lang.String`, they may now optionally return a `TranslatableString` (defined in Isis applib) instead.
+The first part of the puzzle is tackled by an extension to Apache Isis' programming model.
+Whereas previously the `disableXxx()` / `validateXxx()` / `title()` methods could only return a `java.lang.String`, they may now optionally return a `TranslatableString` (defined in Isis applib) instead.
 
 Here's a (silly) example from the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype]:
 
@@ -201,7 +219,8 @@ public interface DomainObjectContainer {
 
 Another mechanism by which messages can be rendered to the user are as the result of exception messages thrown and recognized by an xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_ExceptionRecognizer[`ExceptionRecognizer`].
 
-In this case, if the exception implements `TranslatableException`, then the message will automatically be translated before being rendered.  The `TranslatableException` itself takes the form:
+In this case, if the exception implements `TranslatableException`, then the message will automatically be translated before being rendered.
+The `TranslatableException` itself takes the form:
 
 [source,java]
 ----
@@ -211,20 +230,19 @@ public interface TranslatableException {
 }
 
 ----
-<1> the message to translate.  If returns `null`, then the `Exception#getMessage()` is used as a fallback
+<1> the message to translate.
+If returns `null`, then the `Exception#getMessage()` is used as a fallback
 <2> the context to use when translating the message
 
 
 
 
-
-
-
 [[__ugbtb_i18n_wicket-viewer]]
 == Wicket Viewer
 
 The xref:../ugvw/ugvw.adoc#[Wicket viewer] (its labels and messages) is also internationalized using
-the `TranslationService`.  This is done through an Isis-specific implementation of the Wicket framework's `org.apache.wicket.Localizer` class, namely `LocalizerForIsis`.
+the `TranslationService`.
+This is done through an Isis-specific implementation of the Wicket framework's `org.apache.wicket.Localizer` class, namely `LocalizerForIsis`.
 
 The Wicket `Localizer` defines the following API:
 
@@ -244,13 +262,13 @@ public String getString(
 
 For example, `key` might be a value such as "okLabel", while `component` an internal class of the Wicket viewer, such as `EntityPropertiesForm`.
 
-The `LocalizerForIsis` implementation uses the `key` as the `msgId`, while the fully qualified class name of the
-`component` is used as a context.  There is one exception to this: if the component is the third-party select2
+The `LocalizerForIsis` implementation uses the `key` as the `msgId`, while the fully qualified class name of the `component` is used as a context.
+There is one exception to this: if the component is the third-party select2
 component (used for drop-downs), then that class name is used directly.
 
-In the main, using Isis' i18n support means simply adding the appropriate translations to the `translation.po` file,
-for each locale that you require.  If the translations are missing then the original translations from the Wicket
-resource bundles will be used instead.
+In the main, using Isis' i18n support means simply adding the appropriate translations to the `translation.po` file, for each locale that you require.
+If the translations are missing then the original translations from the Wicket resource bundles will be used instead.
+
 
 === Commonly used
 
@@ -509,7 +527,8 @@ public void failsValidation() throws Exception {
 
 Running this test will result in the framework calling the `validateUpdateName(...)` method, and thus to record that a translation is required in the `.pot` file.
 
-When the integration tests are complete (that is, when Apache Isis is shutdown), the `TranslationServicePo` will write out all captured translations to its log (more on this below). This will include all the translations captured from the Apache Isis metamodel, along with all translations as exercised by the integration tests.
+When the integration tests are complete (that is, when Apache Isis is shutdown), the `TranslationServicePo` will write out all captured translations to its log (more on this below).
+This will include all the translations captured from the Apache Isis metamodel, along with all translations as exercised by the integration tests.
 
 To ensure your app is fully internationalized app, you must therefore:
 
@@ -520,14 +539,13 @@ To ensure your app is fully internationalized app, you must therefore:
 ====
 We make no apologies for this requirement: one of the reasons that we decided to implement Apache Isis' i18n support in this way is because it encourages/requires the app to be properly tested.
 
-Behind the scenes Apache Isis uses a JUnit rule (`ExceptionRecognizerTranslate`) to intercept any exceptions that are thrown.  These are simply passed through to the registered xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_ExceptionRecognizer[`ExceptionRecognizer`]s so that any messages are recorded as requiring translation.
+Behind the scenes Apache Isis uses a JUnit rule (`ExceptionRecognizerTranslate`) to intercept any exceptions that are thrown.
+These are simply passed through to the registered xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_ExceptionRecognizer[`ExceptionRecognizer`]s so that any messages are recorded as requiring translation.
 ====
 
 
 
 
-
-
 == Escaped strings
 
 Translated messages can be escaped if required, eg to include embedded markup.
@@ -539,9 +557,7 @@ msgid "<i>Quantity</i>"
 msgstr "<i>Quantité</i>"
 ----
 
-For this to work, the `namedEscaped()` attribute must be specified using either the
-xref:../ugvw/ugvw.adoc#_ugvw_layout_file-based[layout file], or using an annotation such as
-xref:../rgant/rgant.adoc#_rgant-PropertyLayout[`@PropertyLayout`] or xref:../rgant/rgant.adoc#_rgant-ParameterLayout[`@ParameterLayout`].
+For this to work, the `namedEscaped()` attribute must be specified using either the xref:../ugvw/ugvw.adoc#_ugvw_layout_file-based[layout file], or using an annotation such as xref:../rgant/rgant.adoc#_rgant-PropertyLayout[`@PropertyLayout`] or xref:../rgant/rgant.adoc#_rgant-ParameterLayout[`@ParameterLayout`].
 
 For example:
 
@@ -583,7 +599,8 @@ Just to repeat, this is _not_ the `WEB-INF/logging.properties` file, it should i
 
 === Location of the `.po` files
 
-The default location of the translated `.po` files is in the `WEB-INF` directory. These are named and searched for similarly to regular Java resource bundles.
+The default location of the translated `.po` files is in the `WEB-INF` directory.
+These are named and searched for similarly to regular Java resource bundles.
 
 For example, assuming these translations:
 
@@ -607,7 +624,8 @@ The basename for translation files is always `translations`; this cannot be alte
 
 === Externalized translation files
 
-Normally Apache Isis configuration files are read from the `WEB-INF` file. However, Apache Isis can be configured to read config files from an xref:../ugbtb/ugbtb.adoc#_ugbtb_deployment_externalized-configuration[external directory]; this is also supported for translations.
+Normally Apache Isis configuration files are read from the `WEB-INF` file.
+However, Apache Isis can be configured to read config files from an xref:../ugbtb/ugbtb.adoc#_ugbtb_deployment_externalized-configuration[external directory]; this is also supported for translations.
 
 Thus, if in `web.xml` the external configuration directory has been set:
 
@@ -623,7 +641,8 @@ Then this directory will be used as the base for searching for translations (rat
 
 === Force read mode
 
-As noted above, if running in prototype mode then `TranslationServicePo` will be in write mode, if in production mode then will be in read mode. To force read mode (ie use translations) even if in prototype mode, add the following configuration property to `isis.properties`:
+As noted above, if running in prototype mode then `TranslationServicePo` will be in write mode, if in production mode then will be in read mode.
+To force read mode (ie use translations) even if in prototype mode, add the following configuration property to `isis.properties`:
 
 [source,ini]
 ----
@@ -642,13 +661,15 @@ A default implementation is provided by the Wicket viewer.
 
 [NOTE]
 ====
-Note that this default implementation does not support requests made through the Restful Objects viewer (there is no Wicket 'application' object available); the upshot is that requests through Restful Objects are never translated. Registering a different implementation of `LocaleProvider` that taps into appropriate REST (RestEasy?) APIs would be the way to address this.
+Note that this default implementation does not support requests made through the Restful Objects viewer (there is no Wicket 'application' object available); the upshot is that requests through Restful Objects are never translated.
+Registering a different implementation of `LocaleProvider` that taps into appropriate REST (RestEasy?) APIs would be the way to address this.
 ====
 
 
 === `TranslationsResolver`
 
-The `TranslationResolver` is used by the `TranslationService` implementation to lookup translations for a specified locale. It is this service that reads from the `WEB-INF/` (or externalized directory).
+The `TranslationResolver` is used by the `TranslationService` implementation to lookup translations for a specified locale.
+It is this service that reads from the `WEB-INF/` (or externalized directory).
 
 
 === `TranslationServicePoMenu`


[3/6] isis git commit: ISIS-1674: updates documentation to reference helloworld archetype where necessary.

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started.adoc
index 553ab0e..f11d1d3 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started.adoc
@@ -7,40 +7,34 @@
 
 
 
-To get you up and running quickly, Apache Isis provides a xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] to setup a simple application as the basis of your own apps.
-This is deliberately kept quite minimal so that you won't have to spend lots of time removing generated artifacts.
+To get you up and running quickly, Apache Isis provides two archetypes:
+
+* xref:../ugfun/ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld archetype] generates a one domain class application so you can quickly learn about Apache Isis by trying it out. +
++
+For simplisty, the generated application is a single Maven module containing both the business logic classes and the bootstrapping code.
+
+* xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype], a slightly more sophisticated one domain class version suitable for use as the basis of your own apps. +
++
+This is still quite minimal so that you won'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.
 
-In this chapter we also discuss the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_datanucleus-enhancer[DataNucleus enhancer].  link:http://www.datanucleus.org/[DataNucleus] is the reference implementation of the JDO (Java data objects) spec, and Apache Isis integrates with DataNucleus as its persistence layer.
+In this chapter we also discuss the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_datanucleus-enhancer[DataNucleus enhancer].
+link:http://www.datanucleus.org/[DataNucleus] is the reference implementation of the JDO (Java Data Objects) spec, and Apache Isis integrates with DataNucleus as its persistence layer.
 The enhancer performs post-processing on the bytecode of your persistent domain entities, such that they can be persisted by Apache Isis' JDO/DataNucleus objectstore.
 
 [NOTE]
 ====
-The xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] automatically configures the enhancer, so there's little you need to do at this stage.
+The xref:../ugfun/ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld] and xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp] archetypes automatically configures the enhancer, so there's little you need to do at this stage.
+
 Even so we feel it's a good idea to be aware of this critical part of Apache Isis runtime; if the enhancer does not run, then you'll find the app fails to start with (what will seem like) quite an obscure exception message.
 ====
 
 
 
 
-== Prerequisites
-
-Apache Isis is a Java based framework, so in terms of prerequisites, you'll need to install:
-
-* Java 7 or 8 JDK
-* link:http://maven.apache.org[Apache Maven] 3.0.5 or later
-
-You'll probably also want to use an IDE; the Apache Isis committers use either IntelliJ or Eclipse; in the xref:../dg/dg.adoc#_dg_ide[Developers' Guide] 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.
-
-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.
-
-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.
-
+include::_ugfun_getting-started_prerequisites[leveloffset=+1]
+include::_ugfun_getting-started_helloworld-archetype.adoc[leveloffset=+1]
 include::_ugfun_getting-started_simpleapp-archetype.adoc[leveloffset=+1]
 include::_ugfun_getting-started_datanucleus-enhancer.adoc[leveloffset=+1]
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_datanucleus-enhancer.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_datanucleus-enhancer.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_datanucleus-enhancer.adoc
index f6d7fdd..f3de3d1 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_datanucleus-enhancer.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_datanucleus-enhancer.adoc
@@ -6,7 +6,8 @@
 
 
 
-link:http://www.datanucleus.org/[DataNucleus] 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 link:http://neo4j.com/[Neo4J], link:http://www.mongodb.org/[MongoDB] and link:http://cassandra.apache.org/[Apache Cassandra].
+link:http://www.datanucleus.org/[DataNucleus] 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 link:http://neo4j.com/[Neo4J], link:http://www.mongodb.org/[MongoDB] and link:http://cassandra.apache.org/[Apache Cassandra].
 
 With such power comes a little bit of complexity to the development environment: all domain entities must be enhanced through the DataNucleus enhancer.
 
@@ -17,72 +18,15 @@ Bytecode enhancement is actually a requirement of the JDO spec; the process is d
 
 What this means is that the enhancer -- available as both a Maven plugin and as an Eclipse plugin -- must, one way or another, be integrated into your development environment.
 
-If working from the Maven command line, JDO enhancement is done using the `maven-datanucleus-plugin`.  As of 1.9.0, we put all the configuration into an (always active) profile:
+If working from the Maven command line, JDO enhancement is done using the `maven-datanucleus-plugin`.
 
-[TIP]
-====
-The configuration described below is automatically set up by the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
-====
-
-
-[source,xml]
-----
-<profile>
-    <id>enhance</id>
-    <activation>
-        <activeByDefault>true</activeByDefault>
-    </activation>
-    <properties>
-        <datanucleus-maven-plugin.version>4.0.1</datanucleus-maven-plugin.version>
-    </properties>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.datanucleus</groupId>
-                <artifactId>datanucleus-maven-plugin</artifactId>
-                <version>${datanucleus-maven-plugin.version}</version>
-                <configuration>
-                    <fork>false</fork>
-                    <log4jConfiguration>${basedir}/log4j.properties</log4jConfiguration>
-                    <verbose>true</verbose>
-                    <props>${basedir}/datanucleus.properties</props>
-                </configuration>
-                <executions>
-                    <execution>
-                        <phase>process-classes</phase>
-                        <goals>
-                            <goal>enhance</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-    <dependencies>
-        <dependency>
-            <groupId>org.datanucleus</groupId>
-            <artifactId>datanucleus-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.datanucleus</groupId>
-            <artifactId>datanucleus-jodatime</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.datanucleus</groupId>
-            <artifactId>datanucleus-api-jdo</artifactId>
-        </dependency>
-    </dependencies>
-</profile>
-----
-
-The xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype]  sets up the plugin correctly in the `dom` (domain object model) module.  (It's actually a little bit more complex to cater for users of the Eclipse IDE using Eclipse's m2e plugin).
+Both the xref:ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld] and xref:ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp] Maven archetypes generate applications that have this plugin pre-configured.
 
 
 
+== META-INF/persistence.xml
 
-== `META-INF/persistence.xml`
-
-It's also a good idea to ensure that the `dom` module has a JDO `META-INF/persistence.xml` file:
+It's also a good idea to ensure that every domain module(s) containing entities has a JDO `META-INF/persistence.xml` file:
 
 [source,xml]
 ----
@@ -95,9 +39,10 @@ It's also a good idea to ensure that the `dom` module has a JDO `META-INF/persis
     </persistence-unit>
 </persistence>
 ----
-<1> change as required; typically is the name of the app.
+<1> change as required; typically is the name of the domain module.
+
+Again, the applications generated by both the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld] and xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[Simpleapp] Maven archetypes do this.
 
-Again, the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] does this.
 
 [WARNING]
 ====

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc
new file mode 100644
index 0000000..83543f7
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc
@@ -0,0 +1,296 @@
+[[_ugfun_getting-started_helloworld-archetype]]
+= HelloWorld Archetype (`1.15.0-SNAPSHOT`)
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
+:_basedir: ../../
+:_imagesdir: images/
+
+
+The quickest way to start learning about Apache Isis is to run the `helloworld` archetype.
+This will generate a tiny Apache Isis app, consisting of a simple one-class domain model, called `HelloWorldObject`, and a supporting `HelloWorldObjects` domain service.
+Both the business logic and supporting bootstrapping classes are in a single Maven module (in different Java packages).
+
+[TIP]
+====
+We don't recommend that you use the helloworld archetype as the basis for your own applications.
+Instead, use the xref:ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[simpleapp archetype].
+This also creates a minimal application, but provides more structure and example tests, useful as you build out your own app.
+====
+
+
+[[_ugfun_getting-started_helloworld-archetype_generating-the-app]]
+== Generating the App
+
+Create a new directory, and `cd` into that directory.
+
+To build the app from the latest stable release, then run the following command:
+
+[source,bash]
+----
+mvn archetype:generate  \
+    -D archetypeGroupId=org.apache.isis.archetype \
+    -D archetypeArtifactId=helloworld-archetype \
+    -D archetypeVersion=1.15.0 \
+    -D groupId=com.mycompany \
+    -D artifactId=myapp \
+    -D version=1.0-SNAPSHOT \
+    -B
+----
+
+where:
+
+- `groupId` represents your own organization, and
+- `artifactId` is a unique identifier for this app within your organization.
+- `version` is the initial (snapshot) version of your app
+
+The archetype generation process will then run; it only takes a few seconds.
+
+We also maintain the archetype for the most current `-SNAPSHOT`; 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.
+
+The process is almost identical to that for stable releases, however the `archetype:generate` goal is called with slightly different arguments:
+
+[source,bash]
+----
+mvn archetype:generate  \
+    -D archetypeGroupId=org.apache.isis.archetype \
+    -D archetypeArtifactId=helloworld-archetype \
+    -D archetypeVersion=1.15.0-SNAPSHOT \
+    -D groupId=com.mycompany \
+    -D artifactId=myapp \
+    -D version=1.0-SNAPSHOT \
+    -D archetypeRepository=http://repository-estatio.forge.cloudbees.com/snapshot/ \
+    -B
+----
+
+where as before:
+
+- `groupId` represents your own organization, and
+- `artifactId` is a unique identifier for this app within your organization.
+- `version` is the initial (snapshot) version of your app
+
+but also:
+
+- `archetypeVersion` is the SNAPSHOT version of Apache Isis.
+- `archetypeRepository` specifies the location of our snapshot repo (hosted on link:http://www.cloudbees.com[CloudBees]), and
+
+The archetype generation process will then run; it only takes a few seconds.
+
+
+
+[[_ugfun_getting-started_helloworld-archetype_building-the-app]]
+== Building the App
+
+Switch into the root directory of your newly generated app, and build your app:
+
+[source,bash]
+----
+cd myapp
+mvn clean install
+----
+
+where `myapp` is the `artifactId` entered above.
+
+
+
+
+[[_ugfun_getting-started_helloworld-archetype_running-the-app]]
+== Running the App
+
+The `helloworld` archetype generates a single WAR file, configured to run both the xref:../ugvw/ugvw.adoc#[Wicket viewer] and the xref:../ugvro/ugvro.adoc#[Restful Objects viewer].
+The archetype also configures the DataNucleus/JDO Objectstore to use an in-memory HSQLDB connection.
+
+Once you've built the app, you can run the WAR in a variety of ways.
+
+
+=== Using mvn Jetty plugin
+
+First, you could run the WAR in a Maven-hosted Jetty instance, though you need to `cd` into the `webapp` module:
+
+[source,bash]
+----
+mvn jetty:run
+----
+
+
+You can also provide a system property to change the port:
+
+[source,bash]
+----
+mvn jetty:run -D jetty.port=9090
+----
+
+
+=== Using a regular servlet container
+
+You can also take the built WAR file and deploy it into a standalone servlet container such as [Tomcat](http://tomcat.apache.org).
+The default configuration does not require any configuration of the servlet container; just drop the WAR file into the `webapps` directory.
+
+
+
+=== From within the IDE
+
+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 xref:../dg/dg.adoc#_dg_ide[Developers' Guide] for details of setting up Eclipse or IntelliJ IDEA.
+Basically, though, it amounts to running `org.apache.isis.WebServer`, and ensuring that the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_datanucleus-enhancer[DataNucleus enhancer] has properly processed all domain entities.
+
+Here's what the setup looks like in IntelliJ IDEA:
+
+image::{_imagesdir}getting-started/helloworld.png[width="600px",link="{_imagesdir}getting-started/helloworld.png"]
+
+with the maven goal to run the DataNucleus enhancer (discussed in more detail xref:ugfun.adoc#_ugfun_getting-started_datanucleus-enhancer[here]) before launch defined as:
+
+image::{_imagesdir}getting-started/helloworld-before-launch.png[width="600px",link="{_imagesdir}getting-started/helloworld-before-launch.png"]
+
+
+
+[[_ugfun_getting-started_helloworld-archetype_using-the-app]]
+== Using the App
+
+When you start the app, you'll be presented with a welcome page from which you can access the webapp using either the xref:../ugvw/ugvw.adoc#[Wicket viewer] or the xref:../ugvro/ugvro.adoc#[Restful Objects viewer]:
+
+image::{_imagesdir}getting-started/using-hello-world/010-root-page.png[width="600px",link="{_imagesdir}getting-started/using-hello-world/010-root-page.png"]
+
+The Wicket viewer provides a human usable web UI (implemented, as you might have guessed from its name, using link:http://wicket.apache.org[Apache Wicket]), so choose that and navigate to the login page:
+
+image::{_imagesdir}getting-started/using-hello-world/020-login-to-wicket-viewer.png[width="600px",link="{_imagesdir}getting-started/using-hello-world/020-login-to-wicket-viewer.png"]
+
+The app itself is configured to run using xref:../ugsec/ugsec.adoc#[shiro security], as configured in the `WEB-INF/shiro.ini` config file.  You can login with:
+
+* username: _sven_
+* password: _pass_
+
+
+Once you've logged in you'll see the default home page:
+
+image::{_imagesdir}getting-started/using-hello-world/030-home-page.png[width="600px",link="{_imagesdir}getting-started/using-hello-world/030-home-page.png"]
+
+
+The application is configured to run with an in-memory database, so initially there is no data.
+Create an object using the menu:
+
+image::{_imagesdir}getting-started/using-hello-world/040-create-object-from-menu.png[width="600px",link="{_imagesdir}getting-started/using-hello-world/040-create-object-from-menu.png"]
+
+which brings up a modal dialog:
+
+image::{_imagesdir}getting-started/using-hello-world/050-create-object-from-menu-prompt.png[width="600px",link="{_imagesdir}getting-started/using-hello-world/050-create-object-from-menu-prompt.png"]
+
+hitting OK returns the created object:
+
+image::{_imagesdir}getting-started/using-hello-world/060-created-object.png[width="600px",link="{_imagesdir}getting-started/using-hello-world/060-created-object.png"]
+
+The above functionality is implemented by link:https://github.com/apache/isis/blob/master/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java#L43[this code]:
+
+[source,java]
+----
+@Action(semantics = SemanticsOf.NON_IDEMPOTENT)
+@MemberOrder(sequence = "1")
+public HelloWorldObject create(
+        @Parameter(maxLength = 40)
+        @ParameterLayout(named = "Name")
+        final String name) {
+    final HelloWorldObject object = new HelloWorldObject(name);
+    serviceRegistry.injectServicesInto(object);
+    repositoryService.persist(object);
+    return object;
+}
+----
+
+The `HelloWorldObject` contains a couple of properties, and a single action to update that property.
+
+* The `name` property is read-only, and can only be modified using the `updateName` action. +
++
+For example:
++
+image::{_imagesdir}getting-started/using-hello-world/070-update-name.png[width="600px",link="{_imagesdir}getting-started/using-hello-world/070-update-name.png"]
++
+The above functionality is implemented by link:https://github.com/apache/isis/blob/master/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java#L73[this code]: +
++
+[source,java]
+----
+@Action(
+    semantics = SemanticsOf.IDEMPOTENT,
+    command = CommandReification.ENABLED,
+    publishing = Publishing.ENABLED
+)
+public HelloWorldObject updateName(
+        @Parameter(maxLength = 40)
+        @ParameterLayout(named = "Name")
+        final String name) {
+    setName(name);
+    return this;
+}
+----
+
+* The `notes` property is editable, and can be edited in-place. +
++
+For example:
++
+image::{_imagesdir}getting-started/using-hello-world/080-edit-notes.png[width="600px",link="{_imagesdir}getting-started/using-hello-world/080-edit-notes.png"]
+
+It's also possible to delete an object:
+
+
+The above functionality is implemented by link:https://github.com/apache/isis/blob/master/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java#L87[this code]:
+
+[source,java]
+----
+@Action(semantics = SemanticsOf.NON_IDEMPOTENT_ARE_YOU_SURE)
+public void delete() {
+    final String title = titleService.titleOf(this);
+    messageService.informUser(String.format("'%s' deleted", title));
+    repositoryService.removeAndFlush(this);
+}
+----
+
+This uses three services provided by the framework; these are injected into the domain object automatically.
+
+
+Going back to the home page (link:http://localhost:8080[localhost:8080]) we can use link:https://swagger.io/[Swagger UI] as a front-end to the REST API provided by the Restful Objects viewer.
+
+image::{_imagesdir}getting-started/using-hello-world/200-swagger-ui-before-reload.png[width="600px",link="{_imagesdir}getting-started/using-hello-world/200-swagger-ui-before-reload.png"]
+
+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:
+
+image::{_imagesdir}getting-started/using-hello-world/210-helloworld-resources.png[width="600px",link="{_imagesdir}getting-started/using-hello-world/210-helloworld-resources.png"]
+
+For example, an object can be created using the resource that represents the `HelloWorldObjects#create` action:
+
+image::{_imagesdir}getting-started/using-hello-world/220-create-object-thru-rest-api.png[width="600px",link="{_imagesdir}getting-started/using-hello-world/220-create-object-thru-rest-api.png"]
+
+The response indicates that the object was successfully created:
+
+image::{_imagesdir}getting-started/using-hello-world/230-create-object-thru-rest-api-response.png[width="600px",link="{_imagesdir}getting-started/using-hello-world/230-create-object-thru-rest-api-response.png"]
+
+The Swagger UI also provides a resource to retrieve any object:
+
+image::{_imagesdir}getting-started/using-hello-world/240-retrieve-object-using-rest-api.png[width="600px",link="{_imagesdir}getting-started/using-hello-world/240-retrieve-object-using-rest-api.png"]
+
+This results in a representation of the domain object (as per the requested `Response Content Type`, ie `ACCEPT` header):
+
+image::{_imagesdir}getting-started/using-hello-world/250-retrieve-object-using-rest-api-response.png[width="600px",link="{_imagesdir}getting-started/using-hello-world/250-retrieve-object-using-rest-api-response.png"]
+
+
+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 link:http://www.restfulobjects.org[Restful Object spec].
+
+
+[[_ugfun_getting-started_helloworld-archetype_experimenting]]
+== Experimenting
+
+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 xref:../../documentation.adoc#[documentation] page.
+
+If you use IntelliJ IDEA or Eclipse, do also install the xref:../dg/dg.adoc#__dg_ide_intellij_live-templates[live templates (for IntelliJ)] / xref:../dg/dg.adoc#__dg_ide_eclipse_editor-templates[editor templates (for Eclipse)]; these will help you follow the Apache Isis naming conventions.
+
+If you run into issues, please don't hesitate to ask for help on the link:http://isis.apache.org/help.html[users mailing list].
+
+
+[[_ugfun_getting-started_helloworld-archetype_moving-on]]
+== Moving on
+
+When you are ready to start working on your own app, we _don't_ recommend building on top of the helloworld app.
+
+Instead, we suggest that you start with the xref:ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[simpleapp archetype] instead.
+Although a little more complex, it provides more structure and tests, all of which will help you as your application grows.
+
+

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_prerequisites.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_prerequisites.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_prerequisites.adoc
new file mode 100644
index 0000000..a90832e
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_prerequisites.adoc
@@ -0,0 +1,28 @@
+[[_ugfun_getting-started_prerequisites.adoc]]
+= Prerequisites
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
+:_basedir: ../../
+:_imagesdir: images/
+
+
+
+Apache Isis is a Java based framework, so in terms of prerequisites, you'll need to install:
+
+* Java 7 or 8 JDK
+* link:http://maven.apache.org[Apache Maven] 3.x
+
+You'll probably also want to use an IDE; the Apache Isis committers use either IntelliJ or Eclipse; in the xref:../dg/dg.adoc#_dg_ide[Developers' Guide] 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.
+
+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.
+
+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.
+
+
+include::_ugfun_getting-started_helloworld-archetype.adoc[leveloffset=+1]
+include::_ugfun_getting-started_simpleapp-archetype.adoc[leveloffset=+1]
+include::_ugfun_getting-started_datanucleus-enhancer.adoc[leveloffset=+1]
+

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
index c2b51a9..29c63d9 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
@@ -5,14 +5,32 @@
 :_imagesdir: images/
 
 
-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 `SimpleObject`, with a single property `name`.
+The quickest way to get started building an application "for real" is to run the `simpleapp` archetype.
+Like the xref:ugfun.adoc#_ugfun_getting-started_helloworld-archetype[helloworld archetype], this too will generate a very simple one-class domain model (an entity called `SimpleObject` with a couple of properties).
 
-There is also a corresponding `SimpleObjects` domain service which acts as a repository for `SimpleObject` entity.  From this you can easily rename these initial classes, and extend to build up your own Apache Isis domain application.
+However, the generated application also provides more structure to assist you as your application grows.
+For example:
 
-Finally, the domain service also includes a `HomePageViewModel` which acts as a home page for the app.
+* the application is multi-module, separating out the business logic (`module-simple` Maven module) from the bootstrapping modules (`application` Maven module and the `webapp` module)
 
+* the `SimpleObjectRepository` service (to create/retrieve instances) is separate from the `SimpleObjectMenu` menu service (for the UI); the former is delegated to by the latter.
 
+* a `HomePageViewModel` service acts as a home page for the app.
 
+* there are example integration tests, BDD tests as well as unit tests
+
+* there are example fixture scripts for use both when prototyping and used by the integration and BDD tests
+
+* the xref:../rgmvn.adoc#[Apache Isis Maven plugin] to xref:../rgmvn.adoc#_rgmvn_validate[validate] your domain model is pre-configured
+
+* Maven plugins to package your app as a Docker image is pre-configured
+
+
+From this you can easily rename these initial classes, and extend to build up your own Apache Isis domain application.
+
+
+
+[[_ugfun_getting-started_simpleapp-archetype_generating-the-app]]
 == Generating the App
 
 Create a new directory, and `cd` into that directory.
@@ -72,6 +90,7 @@ The archetype generation process will then run; it only takes a few seconds.
 
 
 
+[[_ugfun_getting-started_simpleapp-archetype_building-the-app]]
 == Building the App
 
 Switch into the root directory of your newly generated app, and build your app:
@@ -87,9 +106,11 @@ where `myapp` is the `artifactId` entered above.
 
 
 
+[[_ugfun_getting-started_simpleapp-archetype_running-the-app]]
 == Running the App
 
-The `simpleapp` archetype generates a single WAR file, configured to run both the xref:../ugvw/ugvw.adoc#[Wicket viewer] and the xref:../ugvro/ugvro.adoc#[Restful Objects viewer].  The archetype also configures the DataNucleus/JDO Objectstore to use an in-memory HSQLDB connection.
+The `simpleapp` archetype generates a single WAR file, configured to run both the xref:../ugvw/ugvw.adoc#[Wicket viewer] and the xref:../ugvro/ugvro.adoc#[Restful Objects viewer].
+The archetype also configures the DataNucleus/JDO Objectstore to use an in-memory HSQLDB connection.
 
 Once you've built the app, you can run the WAR in a variety of ways.
 
@@ -114,137 +135,126 @@ mvn -pl webapp jetty:run -D jetty.port=9090
 
 === Using a regular servlet container
 
-You can also take the built WAR file and deploy it into a standalone servlet container such as [Tomcat](http://tomcat.apache.org).  The default configuration does not require any configuration of the servlet container; just drop the WAR file into the `webapps` directory.
+You can also take the built WAR file and deploy it into a standalone servlet container such as [Tomcat](http://tomcat.apache.org).
+The default configuration does not require any configuration of the servlet container; just drop the WAR file into the `webapps` directory.
 
 
 
-=== From within the IDE
-
-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 xref:../dg/dg.adoc#_dg_ide[Developers' Guide] for details of setting up Eclipse or IntelliJ IDEA.  Basically, though, it amounts to running `org.apache.isis.WebServer`, and ensuring that the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_datanucleus-enhancer[DataNucleus enhancer] has properly processed all domain entities.
-
-Here's what the setup looks like in IntelliJ IDEA:
-
-image::{_imagesdir}getting-started/simpleapp-webapp.png[width="600px",link="{_imagesdir}getting-started/simpleapp-webapp.png"]
-
-
-
-== Running with Fixtures
-
-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 xref:../ugtst/ugtst.adoc#_ugtst_fixture-scripts[fixture script] on the command line.
-
-If you are running the app from an IDE, then you can specify the fixture script using the `--fixture` flag.  The archetype provides the `domainapp.fixture.scenarios.RecreateSimpleObjects` fixture script, for example:
-
-image::{_imagesdir}getting-started/simpleapp-webapp-with-fixtures.png[width="600px",link="{_imagesdir}getting-started/simpleapp-webapp-with-fixtures.png"]
-
-Alternatively, you can run with a different xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`] using the `--appManifest` (or `-m`) flag.  The archetype provides
-`domainapp.app.DomainAppAppManifestWithFixtures` which specifies the aforementioned `RecreateSimpleObjects` fixture.
-
-
-
-== Using the App
-
-[NOTE]
-====
-These screenshots are for v1.10.0.
-====
-
+=== Using Docker
 
-When you start the app, you'll be presented with a welcome page from which you can access the webapp using either the xref:../ugvw/ugvw.adoc#[Wicket viewer] or the xref:../ugvro/ugvro.adoc#[Restful Objects viewer]:
+It's also possible to package up the application as a docker image to run as a container.
 
-image::{_imagesdir}getting-started/using-simple-app/010-root-page.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/010-root-page.png"]
-
-
-The Wicket viewer provides a human usable web UI (implemented, as you might have guessed from its name, using link:http://wicket.apache.org[Apache Wicket]), so choose that and navigate to the login page:
-
-image::{_imagesdir}getting-started/using-simple-app/020-login-to-wicket-viewer.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/020-login-to-wicket-viewer.png"]
-
-The app itself is configured to run using xref:../ugsec/ugsec.adoc#[shiro security], as configured in the `WEB-INF/shiro.ini` config file.  You can login with:
-
-* username: _sven_
-* password: _pass_
-
-The application is configured to run with an in-memory database, and (unless you started the app with fixture scripts as described above), initially there is no data.  We can though run a fixture script from the app itself:
-
-image::{_imagesdir}getting-started/using-simple-app/030-home-page-run-fixture-scripts.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/030-home-page-run-fixture-scripts.png"]
-
-The fixture script creates three objects, and the action returns the first of these:
+* To package up the application as a docker image (specifying the docker image name as a system property): +
++
+[source,bash]
+----
+mvn install -Dmavenmixin-docker -Ddocker-plugin.imageName=mycompany/myapp
+----
++
+Alternatively, define the `${docker-plugin.imageName}` in the `webapp` module and use simply: +
++
+[source,bash]
+----
+mvn install -Dmavenmixin-docker
+----
++
+The packaged image can be viewed using `docker images`.
 
-image::{_imagesdir}getting-started/using-simple-app/040-first-object.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/040-first-object.png"]
+* To run a docker image previously packaged: +
++
+[source,bash]
+----
+docker container run -d -p 8080:8080 mycompany/myapp
+----
++
+This can then be accessed at link:http://localhost:8080[localhost:8080].
++
+See link:https://github.com/danhaywood/java-mavenmixin-docker#how-to-consume[mavenmixin-docker] for further details on how to run docker images.
 
-The application generated is deliberaetly very minimal; we don't want you to have to waste valuable time removing generated files.  The object contains a single "name" property, and a single action to update that property:
+* To upload the application as a docker image to link:https://hub.docker.com[docker hub] (or some other docker registry): +
++
+[source,bash]
+----
+mvn -pl webapp deploy -Dmavenmixin-docker
+----
++
+This assumes that the `${docker-plugin.imageName}` property has been defined, _and_ also that docker registry credentials have been specified in `~/.m2/settings.xml`.
+Once more, see link:https://github.com/danhaywood/java-mavenmixin-docker#how-to-configure[mavenmixin-docker] for further details.
 
-image::{_imagesdir}getting-started/using-simple-app/050-update-name-prompt.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/050-update-name-prompt.png"]
 
-When you hit OK, the object is updated:
 
-image::{_imagesdir}getting-started/using-simple-app/060-object-updated.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/060-object-updated.png"]
+=== From within the IDE
 
+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 xref:../dg/dg.adoc#_dg_ide[Developers' Guide] for details of setting up Eclipse or IntelliJ IDEA.
+Basically, though, it amounts to running `org.apache.isis.WebServer`, and ensuring that the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_datanucleus-enhancer[DataNucleus enhancer] has properly processed all domain entities.
 
-For your most signficant domain entities you'll likely have a domain service to retrieve or create instances of those obejcts.  In the generated app we have a "Simple Objects" domain service that lets us list all objects:
+Here's what the setup looks like in IntelliJ IDEA:
 
-image::{_imagesdir}getting-started/using-simple-app/070-list-all-prompt.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/070-list-all-prompt.png"]
+image::{_imagesdir}getting-started/simpleapp-webapp.png[width="600px",link="{_imagesdir}getting-started/simpleapp-webapp.png"]
 
-whereby we see the three objects created by the fixture script (one having been updated):
+with the maven goal to run the DataNucleus enhancer (discussed in more detail xref:ugfun.adoc#_ugfun_getting-started_datanucleus-enhancer[here]) before launch defined as:
 
-image::{_imagesdir}getting-started/using-simple-app/080-list-all.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/080-list-all.png"]
+image::{_imagesdir}getting-started/simpleapp-webapp-before-launch.png[width="600px",link="{_imagesdir}getting-started/simpleapp-webapp-before-launch.png"]
 
-and we can also use the domain service to create new instances:
 
-image::{_imagesdir}getting-started/using-simple-app/090-create.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/090-create.png"]
 
-prompting us for the mandatory information (the name):
+[[_ugfun_getting-started_simpleapp-archetype_running-with-fixtures]]
+== Running with Fixtures
 
-image::{_imagesdir}getting-started/using-simple-app/100-create-prompt.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/100-create-prompt.png"]
+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 xref:../ugtst/ugtst.adoc#_ugtst_fixture-scripts[fixture script] on the command line.
 
-which, of course, returns the newly created object:
+If you are running the app from an IDE, then you can specify the fixture script using the `--fixture` flag.  The archetype provides the `domainapp.fixture.scenarios.RecreateSimpleObjects` fixture script, for example:
 
-image::{_imagesdir}getting-started/using-simple-app/110-object-created.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/110-object-created.png"]
+image::{_imagesdir}getting-started/simpleapp-webapp-with-fixtures.png[width="600px",link="{_imagesdir}getting-started/simpleapp-webapp-with-fixtures.png"]
 
-When we list all objects again, we can see that the object was indeed created:
+Alternatively, you can run with a different xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`] using the `--appManifest` (or `-m`) flag.
+The archetype provides
+`domainapp.app.DomainAppAppManifestWithFixtures` which specifies the aforementioned `RecreateSimpleObjects` fixture.
 
-image::{_imagesdir}getting-started/using-simple-app/120-list-all.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/120-list-all.png"]
 
-Going back to the home page (link:http://localhost:8080[localhost:8080]) we can also access the Restful Objects viewer.  The generated application is configured to use HTTP Basic Auth:
 
-image::{_imagesdir}getting-started/using-simple-app/220-login-to-restful-viewer.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/220-login-to-restful-viewer.png"]
+== Using the App
 
-The Restful Objects viewer provides a REST API for computer-to-computer interaction, but we can still interact with it from a browser:
+The generated application is almost identical similar to that generated by xref:ugfun.adoc#_ugfun_getting-started_helloworld-archetype[helloworld archetype]; a description of how to use it can be found xref:ugfun.adoc#_ugfun_getting-started_helloworld-archetype_using-the-app[here].
 
-image::{_imagesdir}getting-started/using-simple-app/230-home-page.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/230-home-page.png"]
+One additional feature that the simpleapp contains over the helloworld app is a home page.
+This shows all domain objects (as installed by fixture scripts, described xref:ugfun.adoc#_ugfun_getting-started_simpleapp-archetype_running-with-fixtures[above]).
 
-[TIP]
-====
-Depending on your browser, you may need to install plugins.  For Chrome, we recommend json-view (which renders the JSON indented and automatically detects hyperlinks) and REST Postman.
-====
+image::{_imagesdir}getting-started/using-simple-app/030-home-page.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/030-home-page.png"]
 
-The REST API is a complete hypermedia API, in other words you can follow the links to access all the behaviour exposed in the regular Wicket app.  For example, we can navigate to the `listAll/invoke` resource:
+It's also possible to run fixture scripts from the app itself:
 
-image::{_imagesdir}getting-started/using-simple-app/240-list-all-invoke.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/240-list-all-invoke.png"]
+image::{_imagesdir}getting-started/using-simple-app/040-run-fixture-script-menu.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/040-run-fixture-script-menu.png"]
 
-which when invoked (with an HTTP GET) will return a representation of the domain objects.
+Some fixture scripts may allow their default behaviour to be tweaked ((eg specify how many objects to create):
 
-image::{_imagesdir}getting-started/using-simple-app/250-list-all-results.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/250-list-all-results.png"]
+image::{_imagesdir}getting-started/using-simple-app/050-run-fixture-script-prompt.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/050-run-fixture-script-prompt.png"]
 
+The table summarises the resultant fixtures that were run:
 
-To log in, use `sven/pass`.
+image::{_imagesdir}getting-started/using-simple-app/060-run-fixture-script-result.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/060-run-fixture-script-result.png"]
 
+Navigating back to the home page shows the newly created objects:
 
+image::{_imagesdir}getting-started/using-simple-app/070-home-page.png[width="600px",link="{_imagesdir}getting-started/using-simple-app/070-home-page.png"]
 
 
 
 == Modifying the App
 
-Once you are familiar with the generated app, you'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 xref:../../documentation.adoc#[documentation] page first).
+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 xref:../../documentation.adoc#[documentation] page.
 
 If you use IntelliJ IDEA or Eclipse, do also install the xref:../dg/dg.adoc#__dg_ide_intellij_live-templates[live templates (for IntelliJ)] / xref:../dg/dg.adoc#__dg_ide_eclipse_editor-templates[editor templates (for Eclipse)]; these will help you follow the Apache Isis naming conventions.
 
 
 
-
-
 == App Structure
 
-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 `SimpleObject` to `Customer`) without having to waste time deleting lots of generated code.
+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 `SimpleObject` to `Customer`) without having to waste time deleting lots of generated code.
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_properties.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_properties.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_properties.adoc
index 692335b..712dc92 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_properties.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_properties.adoc
@@ -27,7 +27,7 @@ It's also possible (using annotations) to define a link table to hold foreign ke
 Apache Isis recognises some of these annotations for JDO/DataNucleus and JAXB and infers some domain semantics from them (for example, the maximum allowable length of a string property).
 
 Since writing getter and setter methods adds quite a bit of boilerplate, it's common to use link:https://projectlombok.org/[Project Lombok] to code generate these methods at compile time (using Java's annotation processor) simply by adding the `@lombok.Getter` and `@lombok.Setter` annotations to the field.
-The xref:ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] uses this approach.
+The xref:ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld] and xref:ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp] archetypes use this approach.
 
 
 [[__ugfun_programming-model_properties_value-vs-reference-types]]

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/helloworld-before-launch.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/helloworld-before-launch.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/helloworld-before-launch.png
new file mode 100644
index 0000000..9e09d8f
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/helloworld-before-launch.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/helloworld.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/helloworld.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/helloworld.png
new file mode 100644
index 0000000..3f70ba1
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/helloworld.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/simpleapp-webapp-before-launch.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/simpleapp-webapp-before-launch.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/simpleapp-webapp-before-launch.png
new file mode 100644
index 0000000..de1ca7e
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/simpleapp-webapp-before-launch.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/simpleapp-webapp-with-fixtures.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/simpleapp-webapp-with-fixtures.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/simpleapp-webapp-with-fixtures.png
index 1dd885a..292698f 100644
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/simpleapp-webapp-with-fixtures.png and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/simpleapp-webapp-with-fixtures.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/simpleapp-webapp.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/simpleapp-webapp.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/simpleapp-webapp.png
index 771451b..482531b 100644
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/simpleapp-webapp.png and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/simpleapp-webapp.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/010-root-page.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/010-root-page.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/010-root-page.png
new file mode 100644
index 0000000..b5a91d7
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/010-root-page.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/020-login-to-wicket-viewer.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/020-login-to-wicket-viewer.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/020-login-to-wicket-viewer.png
new file mode 100644
index 0000000..f98dc5f
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/020-login-to-wicket-viewer.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/030-home-page.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/030-home-page.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/030-home-page.png
new file mode 100644
index 0000000..47b18fe
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/030-home-page.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/040-create-object-from-menu.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/040-create-object-from-menu.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/040-create-object-from-menu.png
new file mode 100644
index 0000000..c2d0dcf
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/040-create-object-from-menu.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/050-create-object-from-menu-prompt.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/050-create-object-from-menu-prompt.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/050-create-object-from-menu-prompt.png
new file mode 100644
index 0000000..f225db6
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/050-create-object-from-menu-prompt.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/060-created-object.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/060-created-object.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/060-created-object.png
new file mode 100644
index 0000000..b407187
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/060-created-object.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/070-update-name.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/070-update-name.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/070-update-name.png
new file mode 100644
index 0000000..e72cfa8
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/070-update-name.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/080-edit-notes.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/080-edit-notes.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/080-edit-notes.png
new file mode 100644
index 0000000..35a9813
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/080-edit-notes.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/090-delete-object.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/090-delete-object.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/090-delete-object.png
new file mode 100644
index 0000000..2156258
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/090-delete-object.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/100-object-deleted.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/100-object-deleted.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/100-object-deleted.png
new file mode 100644
index 0000000..46aa8e3
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/100-object-deleted.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/200-swagger-ui-before-reload.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/200-swagger-ui-before-reload.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/200-swagger-ui-before-reload.png
new file mode 100644
index 0000000..00fbac8
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/200-swagger-ui-before-reload.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/210-helloworld-resources.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/210-helloworld-resources.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/210-helloworld-resources.png
new file mode 100644
index 0000000..41c826e
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/210-helloworld-resources.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/220-create-object-thru-rest-api.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/220-create-object-thru-rest-api.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/220-create-object-thru-rest-api.png
new file mode 100644
index 0000000..f6dbc45
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/220-create-object-thru-rest-api.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/230-create-object-thru-rest-api-response.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/230-create-object-thru-rest-api-response.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/230-create-object-thru-rest-api-response.png
new file mode 100644
index 0000000..cf5fa41f
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/230-create-object-thru-rest-api-response.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/240-retrieve-object-using-rest-api.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/240-retrieve-object-using-rest-api.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/240-retrieve-object-using-rest-api.png
new file mode 100644
index 0000000..dab4cf0
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/240-retrieve-object-using-rest-api.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/250-retrieve-object-using-rest-api-response.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/250-retrieve-object-using-rest-api-response.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/250-retrieve-object-using-rest-api-response.png
new file mode 100644
index 0000000..825629c
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-hello-world/250-retrieve-object-using-rest-api-response.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/010-root-page.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/010-root-page.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/010-root-page.png
deleted file mode 100644
index 74e5ff9..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/010-root-page.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/020-login-to-wicket-viewer.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/020-login-to-wicket-viewer.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/020-login-to-wicket-viewer.png
deleted file mode 100644
index fc0d919..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/020-login-to-wicket-viewer.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/030-home-page-run-fixture-scripts.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/030-home-page-run-fixture-scripts.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/030-home-page-run-fixture-scripts.png
deleted file mode 100644
index 3a1bb54..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/030-home-page-run-fixture-scripts.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/030-home-page.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/030-home-page.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/030-home-page.png
new file mode 100644
index 0000000..db90e27
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/030-home-page.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/040-first-object.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/040-first-object.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/040-first-object.png
deleted file mode 100644
index bc999ee..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/040-first-object.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/040-run-fixture-script-menu.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/040-run-fixture-script-menu.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/040-run-fixture-script-menu.png
new file mode 100644
index 0000000..3d55dab
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/040-run-fixture-script-menu.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/050-run-fixture-script-prompt.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/050-run-fixture-script-prompt.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/050-run-fixture-script-prompt.png
new file mode 100644
index 0000000..fb8e703
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/050-run-fixture-script-prompt.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/050-update-name-prompt.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/050-update-name-prompt.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/050-update-name-prompt.png
deleted file mode 100644
index 166e533..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/050-update-name-prompt.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/060-object-updated.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/060-object-updated.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/060-object-updated.png
deleted file mode 100644
index d34888a..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/060-object-updated.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/060-run-fixture-script-result.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/060-run-fixture-script-result.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/060-run-fixture-script-result.png
new file mode 100644
index 0000000..b79034f
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/060-run-fixture-script-result.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/070-home-page.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/070-home-page.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/070-home-page.png
new file mode 100644
index 0000000..047b5a0
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/070-home-page.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/070-list-all-prompt.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/070-list-all-prompt.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/070-list-all-prompt.png
deleted file mode 100644
index 59cc275..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/070-list-all-prompt.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/080-list-all.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/080-list-all.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/080-list-all.png
deleted file mode 100644
index e3e67cf..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/080-list-all.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/090-create.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/090-create.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/090-create.png
deleted file mode 100644
index f5708ec..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/090-create.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/100-create-prompt.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/100-create-prompt.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/100-create-prompt.png
deleted file mode 100644
index 9829512..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/100-create-prompt.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/110-object-created.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/110-object-created.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/110-object-created.png
deleted file mode 100644
index 31696f3..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/110-object-created.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/120-list-all.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/120-list-all.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/120-list-all.png
deleted file mode 100644
index 75a4e04..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/120-list-all.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/220-login-to-restful-viewer.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/220-login-to-restful-viewer.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/220-login-to-restful-viewer.png
deleted file mode 100644
index 1b364b5..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/220-login-to-restful-viewer.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/230-home-page.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/230-home-page.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/230-home-page.png
deleted file mode 100644
index d032e68..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/230-home-page.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/240-list-all-invoke.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/240-list-all-invoke.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/240-list-all-invoke.png
deleted file mode 100644
index 57971ef..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/240-list-all-invoke.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/250-list-all-results.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/250-list-all-results.png b/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/250-list-all-results.png
deleted file mode 100644
index b8c8b8b..0000000
Binary files a/adocs/documentation/src/main/asciidoc/guides/ugfun/images/getting-started/using-simple-app/250-list-all-results.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugodn/_ugodn_configuring_disabling-persistence-by-reachability.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugodn/_ugodn_configuring_disabling-persistence-by-reachability.adoc b/adocs/documentation/src/main/asciidoc/guides/ugodn/_ugodn_configuring_disabling-persistence-by-reachability.adoc
index 4cb1f58..05dfa3f 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugodn/_ugodn_configuring_disabling-persistence-by-reachability.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugodn/_ugodn_configuring_disabling-persistence-by-reachability.adoc
@@ -4,17 +4,22 @@
 :_basedir: ../../
 :_imagesdir: images/
 
-By default, JDO/DataNucleus supports the concept of link:http://www.datanucleus.org/products/datanucleus/jdo/persistence.html#persistence_by_reachability[persistence-by-reachability]. That is, if
-a non-persistent entity is associated with an already-persistent entity, then DataNucleus will detect this and will automatically persist the associated object. Put another way: there is no need to call Apache Isis' `DomainObjectContainer#persist(.)` or `DomainObjectContainer#persistIfNotAlready(.)` methods.
+
+By default, JDO/DataNucleus supports the concept of link:http://www.datanucleus.org/products/datanucleus/jdo/persistence.html#persistence_by_reachability[persistence-by-reachability].
+That is, if a non-persistent entity is associated with an already-persistent entity, then DataNucleus will detect this and will automatically persist the associated object.
+Put another way: there is no need to call Apache Isis' `RepositoryService#persist(.)` or `RepositoryService#persistAndFlush(.)` methods.
 
 However, convenient though this feature is, you may find that it causes performance issues.
 
 [WARNING]
 ====
-DataNucleus' persistence-by-reachability may cause performance issues.  We strongly recommend that you disable it.
+DataNucleus' persistence-by-reachability may cause performance issues.
+We strongly recommend that you disable it.
 ====
 
-One scenario in particular where this performance issues can arise is if your entities implement the `java.lang.Comparable` interface, and you have used Apache Isis' xref:../rgcms/rgcms.adoc#_rgcms_classes_utility_ObjectContracts[`ObjectContracts`] utility class. The issue here is that `ObjectContracts` implementation can cause DataNucleus to recursively rehydrate a larger number of associated entities. (More detail below).
+One scenario in particular where this performance issues can arise is if your entities implement the `java.lang.Comparable` interface, and you have used Apache Isis' xref:../rgcms/rgcms.adoc#_rgcms_classes_utility_ObjectContracts[`ObjectContracts`] utility class.
+The issue here is that `ObjectContracts` implementation can cause DataNucleus to recursively rehydrate a larger number of associated entities.
+(More detail below).
 
 We therefore recommend that you disable persistence-by-reachability by adding the following to `persistor_datanucleus.properties`:
 
@@ -23,11 +28,9 @@ We therefore recommend that you disable persistence-by-reachability by adding th
 isis.persistor.datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit=false
 ----
 
-This change has been made to the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype]
-
-If you do disable this feature, then you will (of course) need to ensure that you explicitly persist all entities using the `DomainObjectContainer#persist(.)` or `DomainObjectContainer#persistIfNotAlready(.)` methods.
-
+This change has been made to both the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld] and xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp] archetypes.
 
+If you do disable this feature, then you will (of course) need to ensure that you explicitly persist all entities using the `RepositoryService#persist(.)` or `RepositoryService#persistAndFlush(.)` methods.
 
 
 
@@ -79,10 +82,12 @@ public class Party {
 
 DataNucleus's persistence-by-reachability algorithm adds the `AgreementRole` instances into a `SortedSet`, which causes `AgreementRole#compareTo()` to fire:
 
-* the evaluation of the "agreement" property delegates back to the `Agreement`, whose own `Agreement#compareTo()` uses the scalar `reference` property. As the `Agreement` is already in-memory, this does not trigger any further database queries
+* the evaluation of the "agreement" property delegates back to the `Agreement`, whose own `Agreement#compareTo()` uses the scalar `reference` property.
+As the `Agreement` is already in-memory, this does not trigger any further database queries
 
 * the evaluation of the "startDate" property is just a scalar property of the `AgreementRole`, so will already in-memory
 
-* the evaluation of the "party" property delegates back to the `Party`, whose own `Party#compareTo()` requires the uses the scalar `reference` property. However, since the `Party` is not yet in-memory, using the `reference` property triggers a database query to "rehydrate" the `Party` instance.
+* the evaluation of the "party" property delegates back to the `Party`, whose own `Party#compareTo()` requires the uses the scalar `reference` property.
+However, since the `Party` is not yet in-memory, using the `reference` property triggers a database query to "rehydrate" the `Party` instance.
 
 In other words, in figuring out whether `AgreementRole` requires the persistence-by-reachability algorithm to run, it causes the adjacent associated entity `Party` to also be retrieved.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_configuring-isis-to-use-shiro.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_configuring-isis-to-use-shiro.adoc b/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_configuring-isis-to-use-shiro.adoc
index ebaae1d..a3dfef3 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_configuring-isis-to-use-shiro.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_configuring-isis-to-use-shiro.adoc
@@ -5,13 +5,15 @@
 :_imagesdir: images/
 
 
-Apache Isis' security mechanism is configurable, specifying an `Authenticator` and an `Authorizor` (non-public) APIs.  The Shiro security mechanism is an integration wih Apache Shiro that implements both interfaces.
+Apache Isis' security mechanism is configurable, specifying an `Authenticator` and an `Authorizor` (non-public) APIs.
+The Shiro security mechanism is an integration wih Apache Shiro that implements both interfaces.
 
 [TIP]
 ====
-The xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] is pre-configured to use Apache Shiro, so much of what follows is set up already.
+Both the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld] and xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp] archetypes are pre-configured to use Apache Shiro, so much of what follows may well have been set up already.
 ====
 
+
 == Telling Apache Isis to use Shiro
 
 To tell Apache Isis to use Shiro, update the `WEB-INF/isis.properties` file:
@@ -26,26 +28,26 @@ This installs the appropriate implementation (the `ShiroAuthenticatorOrAuthorizo
 
 image::{_imagesdir}security/security-apis-impl/configure-isis-to-use-shiro.png[width="600px"]
 
-The figure above doesn't tell the whole story; we haven't yet seen how Shiro itself is configured to use realms.  The `ShiroAuthenticatorOrAuthorizor` is in essence the glue between the Apache Isis runtime and Shiro.
+The figure above doesn't tell the whole story; we haven't yet seen how Shiro itself is configured to use realms.
+The `ShiroAuthenticatorOrAuthorizor` is in essence the glue between the Apache Isis runtime and Shiro.
+
 
 == Configuring Shiro Authenticator
 
-The `ShiroAuthenticatorOrAuthorizor` class itself supports a single optional property.  This can
-be configured in `authentication_shiro.properties` file:
+The `ShiroAuthenticatorOrAuthorizor` class itself supports a single optional property.
+This can be configured in `authentication_shiro.properties` file:
 
 [source,ini]
 ----
 isis.authentication.shiro.autoLogoutIfAlreadyAuthenticated=false
 ----
 
-This configuration property only comes into effect for the xref:../ugvro/ugvro.adoc#[Restful Objects viewer]; if set then
-the Shiro subject - if found to be still authenticated - will be logged out anyway and then re-authenticated.
+This configuration property only comes into effect for the xref:../ugvro/ugvro.adoc#[Restful Objects viewer]; if set then the Shiro subject - if found to be still authenticated - will be logged out anyway and then re-authenticated.
 
 [WARNING]
 ====
-This auto-logout behaviour was the default prior to `1.13.0`, but is believed to be the root cause of some
-exceptions caused by a possible race condition.  There should generally be no need to change this property from its
-default (`false`).
+This auto-logout behaviour was the default prior to `1.13.0`, but is believed to be the root cause of some exceptions caused by a possible race condition.
+There should generally be no need to change this property from its default (`false`).
 ====
 
 
@@ -82,7 +84,8 @@ The `shiro.ini` file is used to specify the realm(s) that Shiro will delegate to
 securityManager.realms = $realmName
 ----
 
-Shiro's ini file supports a "poor-man's" dependency injection (link:https://shiro.apache.org/configuration.html[their words]), and so `$realmName` in the above example is a reference to a realm defined elsewhere in `shiro.ini`.  The subsequent sections describe the specifics for thevarious realm implementations available to you.
+Shiro's ini file supports a "poor-man's" dependency injection (link:https://shiro.apache.org/configuration.html[their words]), and so `$realmName` in the above example is a reference to a realm defined elsewhere in `shiro.ini`.
+The subsequent sections describe the specifics for thevarious realm implementations available to you.
 
 
 It's also possible to configure Shiro to support multiple realms.
@@ -94,5 +97,3 @@ securityManager.realms = $realm1,$realm2
 
 You can learn more about Shiro realms in the link:http://shiro.apache.org/realm.html[Shiro documentation].
 
-
-


[6/6] isis git commit: ISIS-1521: fixes up some bad bookmarks in the asciidoc

Posted by da...@apache.org.
ISIS-1521: fixes up some bad bookmarks in the asciidoc


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

Branch: refs/heads/master
Commit: 1c6f349aea1d76e2f35801379a044eba2ed5a64f
Parents: 06ffb42
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Aug 1 13:31:58 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Aug 1 13:31:58 2017 +0100

----------------------------------------------------------------------
 adocs/documentation/check-bookmarks.sh          | 18 +++++++++++++
 .../_cgcom_policies_versioning-policy.adoc      |  2 +-
 .../asciidoc/guides/dg/_dg_asciidoc-syntax.adoc | 28 ++++++++++----------
 .../rgant/_rgant-ViewModel_objectType.adoc      |  2 +-
 .../asciidoc/guides/rgant/_rgant_aaa_jdo.adoc   |  2 +-
 ...ms_classes_contributee_HasTransactionId.adoc |  2 +-
 .../_rgcms_classes_contributee_HasUserName.adoc |  2 +-
 .../rgcms/_rgcms_methods_lifecycle_created.adoc |  2 +-
 .../rgcms/_rgcms_methods_lifecycle_loaded.adoc  |  2 +-
 .../_rgcms_methods_lifecycle_persisted.adoc     |  2 +-
 .../_rgcms_methods_lifecycle_persisting.adoc    |  2 +-
 .../rgcms/_rgcms_methods_lifecycle_removed.adoc |  2 +-
 .../_rgcms_methods_lifecycle_removing.adoc      |  2 +-
 .../rgcms/_rgcms_methods_lifecycle_updated.adoc |  2 +-
 .../_rgcms_methods_lifecycle_updating.adoc      |  2 +-
 ...un_getting-started_helloworld-archetype.adoc | 12 ++++-----
 ...fun_getting-started_simpleapp-archetype.adoc |  8 +++---
 .../_migration-notes_1.6.0-to-1.7.0.adoc        |  2 +-
 .../_migration-notes_1.7.0-to-1.8.0.adoc        |  2 +-
 .../_migration-notes_1.8.0-to-1.9.0.adoc        |  2 +-
 .../release-notes/_release-notes_1.13.0.adoc    |  2 +-
 .../release-notes/_release-notes_1.8.0.adoc     |  2 +-
 .../release-notes/_release-notes_1.9.0.adoc     |  2 +-
 .../src/main/asciidoc/support.adoc              |  4 +--
 24 files changed, 63 insertions(+), 45 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/check-bookmarks.sh
----------------------------------------------------------------------
diff --git a/adocs/documentation/check-bookmarks.sh b/adocs/documentation/check-bookmarks.sh
new file mode 100644
index 0000000..1bed42c
--- /dev/null
+++ b/adocs/documentation/check-bookmarks.sh
@@ -0,0 +1,18 @@
+
+#root="src/main/asciidoc/guides/cgcom/cgcom.adoc"
+root="src"
+
+for adoc in $(find $root -name "*.adoc" -print) ; do
+
+    base_adoc=$(basename $adoc .adoc)
+    dir_adoc=$(dirname $adoc)
+	#echo "^\[\[_${base_adoc}\]\]$"
+
+    for incl in $(grep "^\[\[.*\]\]$" $adoc | grep -v "^\[\[${base_adoc}\]\]$" | grep -v "^\[\[_${base_adoc}\]\]$" | grep -v "^\[\[__" ); do
+
+		echo "$adoc : $incl"
+	
+    done
+
+
+done

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_policies_versioning-policy.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_policies_versioning-policy.adoc b/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_policies_versioning-policy.adoc
index 0ef6113..aed2c00 100644
--- a/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_policies_versioning-policy.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_policies_versioning-policy.adoc
@@ -1,4 +1,4 @@
-[[_cgcom_versioning-policy]]
+[[_cgcom_policies_versioning-policy]]
 = Versioning Policy
 :notice: licensed to the apache software foundation (asf) under one or more contributor license agreements. see the notice file distributed with this work for additional information regarding copyright ownership. the asf licenses this file to you under the apache license, version 2.0 (the "license"); you may not use this file except in compliance with the license. you may obtain a copy of the license at. http://www.apache.org/licenses/license-2.0 . unless required by applicable law or agreed to in writing, software distributed under the license is distributed on an "as is" basis, without warranties or  conditions of any kind, either express or implied. see the license for the specific language governing permissions and limitations under the license.
 :_basedir: ../../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/dg/_dg_asciidoc-syntax.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/dg/_dg_asciidoc-syntax.adoc b/adocs/documentation/src/main/asciidoc/guides/dg/_dg_asciidoc-syntax.adoc
index 99e0dc2..cdbaa7c 100644
--- a/adocs/documentation/src/main/asciidoc/guides/dg/_dg_asciidoc-syntax.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/dg/_dg_asciidoc-syntax.adoc
@@ -22,7 +22,7 @@ For more info, see:
 * link:http://www.methods.co.nz/asciidoc/userguide.html[asciidoc online user manual]
 
 
-[[__markup-docs_asciidoc_headings]]
+[[__dg_asciidoc-syntax_headings]]
 == Headings
 
 The number of preceding `=` signs indicates the heading level.
@@ -62,7 +62,7 @@ It's therefore a good place to summarize the content of the document.
 |===
 
 
-[[__markup-docs_asciidoc_paragraphs]]
+[[__dg_asciidoc_paragraphs]]
 == Paragraphs
 
 [cols="3a,2a", options="header"]
@@ -118,7 +118,7 @@ This will reduce change of merge conflicts, too.
 ****
 
 
-[[__markup-docs_asciidoc_bulleted-lists]]
+[[__dg_asciidoc_bulleted-lists]]
 == Bulleted lists
 
 [cols="3a,2a", options="header"]
@@ -164,7 +164,7 @@ More indenting
 |===
 
 
-[[__markup-docs_asciidoc_numbered-lists]]
+[[__dg_asciidoc_numbered-lists]]
 == Numbered lists
 
 There's no need to keep track of numbers, just use '1' or 'a' etc:
@@ -214,7 +214,7 @@ b. Another child bullet
 While it isn't necessary to maintain the ordering manually (could just use '1' for all bullets), this does generate warnings when the document is built.
 
 
-[[__markup-docs_asciidoc_links-and-xrefs]]
+[[__dg_asciidoc_links-and-xrefs]]
 == Links and Cross-references
 
 [cols="3a,2a,3a", options="header"]
@@ -258,7 +258,7 @@ xref:../../setting-up/concepts/concepts.adoc#_concepts_ci-as-a-service[CI as a s
 
 
 
-[[__markup-docs_asciidoc_tables]]
+[[__dg_asciidoc_tables]]
 == Tables
 
 ....
@@ -547,7 +547,7 @@ The `N.M+` notation tells Asciidoctor to span this cell over N columns and M row
 
 
 
-[[__markup-docs_asciidoc_admonitions]]
+[[__dg_asciidoc_admonitions]]
 == Admonitions
 
 Callout or highlight content of particular note.
@@ -625,7 +625,7 @@ Don't forget...
 |===
 
 
-[[__markup-docs_asciidoc_source-code]]
+[[__dg_asciidoc_source-code]]
 == Source code
 
 Use `[source]` macro to specify source content:
@@ -723,7 +723,7 @@ renders as:
 It's also possible to include source code snippets; see the guides linked previously
 
 
-[[__markup-docs_asciidoc_images]]
+[[__dg_asciidoc_images]]
 == Images
 
 Use the `image:` macro to reference images.
@@ -756,7 +756,7 @@ It's also possible to specify the width using `scaledwidth` (for PDF/HTML) or `w
 
 
 
-[[__markup-docs_asciidoc_child-documents]]
+[[__dg_asciidoc_child-documents]]
 == Child Documents
 
 
@@ -836,7 +836,7 @@ xxx-xxx/_images/.
 
 
 
-[[__markup-docs_asciidoc_metadata]]
+[[__dg_asciidoc_metadata]]
 == Metadata
 
 The top-level document must include the `_basedir` attribute; this points to the parent directory `src/main/asciidoc`.
@@ -857,7 +857,7 @@ For example, the `setting-up/concepts/concepts.adoc` file starts:
 
 
 
-[[__markup-docs_asciidoc_uml]]
+[[__dg_asciidoc_uml]]
 == UML diagrams
 
 Asciidoctor includes support for the link:http://plantuml.com/[plantuml], allowing simple UML diagrams to be easily sketched.
@@ -889,7 +889,7 @@ Car -- Person : < owns
 
 
 
-[[__markup-docs_asciidoc_ditaa]]
+[[__dg_asciidoc_ditaa]]
 == Ditaa diagrams
 
 Asciidoctor includes support for the link:http://ditaa.sourceforge.net/[ditaa], allowing boxes-and-lines diagrams to be easily sketched.
@@ -927,7 +927,7 @@ renders as:
 ----
 
 
-[[__markup-docs_asciidoc_graphviz]]
+[[__dg_asciidoc_graphviz]]
 == Graphviz diagrams
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-ViewModel_objectType.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-ViewModel_objectType.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-ViewModel_objectType.adoc
index 06c9f3c..1eb6b10 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-ViewModel_objectType.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-ViewModel_objectType.adoc
@@ -1,4 +1,4 @@
-[[_rgant-DomainObject_objectType]]
+[[_rgant-ViewModel_objectType]]
 = `objectType()`
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_jdo.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_jdo.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_jdo.adoc
index cab9628..2b8ea74 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_jdo.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_jdo.adoc
@@ -1,4 +1,4 @@
-[[_rgant_aaa_jee]]
+[[_rgant_aaa_jdo]]
 = JDO Annotations
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_contributee_HasTransactionId.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_contributee_HasTransactionId.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_contributee_HasTransactionId.adoc
index 24debad..caaf3bc 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_contributee_HasTransactionId.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_contributee_HasTransactionId.adoc
@@ -1,4 +1,4 @@
-[[_rgcms_classes_mixins_HasTransactionId]]
+[[_rgcms_classes_contributee_HasTransactionId]]
 = `HasTransactionId`
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_contributee_HasUserName.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_contributee_HasUserName.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_contributee_HasUserName.adoc
index 41e580e..293b746 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_contributee_HasUserName.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_contributee_HasUserName.adoc
@@ -1,4 +1,4 @@
-[[_rgcms_classes_mixins_HasUserName]]
+[[_rgcms_classes_contributee_HasUserName]]
 = `HasUsername`
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_created.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_created.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_created.adoc
index b6cc114..8edafb6 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_created.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_created.adoc
@@ -1,4 +1,4 @@
-[[_rgcms_methods_reserved_created]]
+[[_rgcms_methods_lifecycle_created]]
 = `created()`
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_loaded.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_loaded.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_loaded.adoc
index ee5a037..974d4a6 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_loaded.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_loaded.adoc
@@ -1,4 +1,4 @@
-[[_rgcms_methods_reserved_loaded]]
+[[_rgcms_methods_lifecycle_loaded]]
 = `loaded()`
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_persisted.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_persisted.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_persisted.adoc
index b223b66..772bc40 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_persisted.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_persisted.adoc
@@ -1,4 +1,4 @@
-[[_rgcms_methods_reserved_persisted]]
+[[_rgcms_methods_lifecycle_persisted]]
 = `persisted()`
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_persisting.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_persisting.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_persisting.adoc
index ca17131..a74e5ff 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_persisting.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_persisting.adoc
@@ -1,4 +1,4 @@
-[[_rgcms_methods_reserved_persisting]]
+[[_rgcms_methods_lifecycle_persisting]]
 = `persisting()`
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_removed.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_removed.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_removed.adoc
index 89d87e7..2aedfe5 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_removed.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_removed.adoc
@@ -1,4 +1,4 @@
-[[_rgcms_methods_reserved_removed]]
+[[_rgcms_methods_lifecycle_removed]]
 = `removed()`
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_removing.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_removing.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_removing.adoc
index 068db24..22d44fd 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_removing.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_removing.adoc
@@ -1,4 +1,4 @@
-[[_rgcms_methods_reserved_removing]]
+[[_rgcms_methods_lifecycle_removing]]
 = `removing()`
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_updated.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_updated.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_updated.adoc
index 3662ddb..53f682f 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_updated.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_updated.adoc
@@ -1,4 +1,4 @@
-[[_rgcms_methods_reserved_updated]]
+[[_rgcms_methods_lifecycle_updated]]
 = `updated()`
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_updating.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_updating.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_updating.adoc
index f39fedb..0f9115f 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_updating.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_updating.adoc
@@ -1,4 +1,4 @@
-[[_rgcms_methods_reserved_updating]]
+[[_rgcms_methods_lifecycle_updating]]
 = `updating()`
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc
index 83543f7..e61db92 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc
@@ -17,7 +17,7 @@ This also creates a minimal application, but provides more structure and example
 ====
 
 
-[[_ugfun_getting-started_helloworld-archetype_generating-the-app]]
+[[__ugfun_getting-started_helloworld-archetype_generating-the-app]]
 == Generating the App
 
 Create a new directory, and `cd` into that directory.
@@ -76,7 +76,7 @@ The archetype generation process will then run; it only takes a few seconds.
 
 
 
-[[_ugfun_getting-started_helloworld-archetype_building-the-app]]
+[[__ugfun_getting-started_helloworld-archetype_building-the-app]]
 == Building the App
 
 Switch into the root directory of your newly generated app, and build your app:
@@ -92,7 +92,7 @@ where `myapp` is the `artifactId` entered above.
 
 
 
-[[_ugfun_getting-started_helloworld-archetype_running-the-app]]
+[[__ugfun_getting-started_helloworld-archetype_running-the-app]]
 == Running the App
 
 The `helloworld` archetype generates a single WAR file, configured to run both the xref:../ugvw/ugvw.adoc#[Wicket viewer] and the xref:../ugvro/ugvro.adoc#[Restful Objects viewer].
@@ -142,7 +142,7 @@ image::{_imagesdir}getting-started/helloworld-before-launch.png[width="600px",li
 
 
 
-[[_ugfun_getting-started_helloworld-archetype_using-the-app]]
+[[__ugfun_getting-started_helloworld-archetype_using-the-app]]
 == Using the App
 
 When you start the app, you'll be presented with a welcome page from which you can access the webapp using either the xref:../ugvw/ugvw.adoc#[Wicket viewer] or the xref:../ugvro/ugvro.adoc#[Restful Objects viewer]:
@@ -274,7 +274,7 @@ The Swagger UI is provided as a convenience; the REST API is actually a complete
 The REST API implemented by Apache Isis is specified in the link:http://www.restfulobjects.org[Restful Object spec].
 
 
-[[_ugfun_getting-started_helloworld-archetype_experimenting]]
+[[__ugfun_getting-started_helloworld-archetype_experimenting]]
 == Experimenting
 
 Once you are familiar with the generated app, try modifying it.
@@ -285,7 +285,7 @@ If you use IntelliJ IDEA or Eclipse, do also install the xref:../dg/dg.adoc#__dg
 If you run into issues, please don't hesitate to ask for help on the link:http://isis.apache.org/help.html[users mailing list].
 
 
-[[_ugfun_getting-started_helloworld-archetype_moving-on]]
+[[__ugfun_getting-started_helloworld-archetype_moving-on]]
 == Moving on
 
 When you are ready to start working on your own app, we _don't_ recommend building on top of the helloworld app.

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
index 29c63d9..2ed88e6 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
@@ -30,7 +30,7 @@ From this you can easily rename these initial classes, and extend to build up yo
 
 
 
-[[_ugfun_getting-started_simpleapp-archetype_generating-the-app]]
+[[__ugfun_getting-started_simpleapp-archetype_generating-the-app]]
 == Generating the App
 
 Create a new directory, and `cd` into that directory.
@@ -90,7 +90,7 @@ The archetype generation process will then run; it only takes a few seconds.
 
 
 
-[[_ugfun_getting-started_simpleapp-archetype_building-the-app]]
+[[__ugfun_getting-started_simpleapp-archetype_building-the-app]]
 == Building the App
 
 Switch into the root directory of your newly generated app, and build your app:
@@ -106,7 +106,7 @@ where `myapp` is the `artifactId` entered above.
 
 
 
-[[_ugfun_getting-started_simpleapp-archetype_running-the-app]]
+[[__ugfun_getting-started_simpleapp-archetype_running-the-app]]
 == Running the App
 
 The `simpleapp` archetype generates a single WAR file, configured to run both the xref:../ugvw/ugvw.adoc#[Wicket viewer] and the xref:../ugvro/ugvro.adoc#[Restful Objects viewer].
@@ -199,7 +199,7 @@ image::{_imagesdir}getting-started/simpleapp-webapp-before-launch.png[width="600
 
 
 
-[[_ugfun_getting-started_simpleapp-archetype_running-with-fixtures]]
+[[__ugfun_getting-started_simpleapp-archetype_running-with-fixtures]]
 == Running with Fixtures
 
 It is also possible to start the application with a pre-defined set of data; useful for demos or manual exploratory testing.

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.6.0-to-1.7.0.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.6.0-to-1.7.0.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.6.0-to-1.7.0.adoc
index 54d67c2..7ce2790 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.6.0-to-1.7.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.6.0-to-1.7.0.adoc
@@ -1,4 +1,4 @@
-[[_release-notes_migration-notes_1.6.0-to-1.7.0]]
+[[_migration-notes_1.6.0-to-1.7.0]]
 = From v1.6.0 to 1.7.0
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.7.0-to-1.8.0.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.7.0-to-1.8.0.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.7.0-to-1.8.0.adoc
index d813dcf..a3c3a51 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.7.0-to-1.8.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.7.0-to-1.8.0.adoc
@@ -1,4 +1,4 @@
-[[_release-notes_migration-notes_1.7.0-to-1.8.0]]
+[[_migration-notes_1.7.0-to-1.8.0]]
 = From v1.7.0 to 1.8.0
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0.adoc
index 9b780bb..8684f4a 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0.adoc
@@ -1,4 +1,4 @@
-[[_release-notes_migration-notes_1.8.0-to-1.9.0]]
+[[_migration-notes_1.8.0-to-1.9.0]]
 = From v1.8.0 to 1.9.0
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :_basedir: ../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.13.0.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.13.0.adoc b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.13.0.adoc
index 17280c7..e7215d3 100644
--- a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.13.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.13.0.adoc
@@ -1,4 +1,4 @@
-[[_release-notes_1.13.1]]
+[[_release-notes_1.13.0]]
 = 1.13.0
 :notice: licensed to the apache software foundation (asf) under one or more contributor license agreements. see the notice file distributed with this work for additional information regarding copyright ownership. the asf licenses this file to you under the apache license, version 2.0 (the "license"); you may not use this file except in compliance with the license. you may obtain a copy of the license at. http://www.apache.org/licenses/license-2.0 . unless required by applicable law or agreed to in writing, software distributed under the license is distributed on an "as is" basis, without warranties or  conditions of any kind, either express or implied. see the license for the specific language governing permissions and limitations under the license.
 :_basedir: ../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.8.0.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.8.0.adoc b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.8.0.adoc
index d7f2a4f..688fac7 100644
--- a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.8.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.8.0.adoc
@@ -1,4 +1,4 @@
-[[_release-notes_1.10.0]]
+[[_release-notes_1.8.0]]
 = 1.8.0
 :notice: licensed to the apache software foundation (asf) under one or more contributor license agreements. see the notice file distributed with this work for additional information regarding copyright ownership. the asf licenses this file to you under the apache license, version 2.0 (the "license"); you may not use this file except in compliance with the license. you may obtain a copy of the license at. http://www.apache.org/licenses/license-2.0 . unless required by applicable law or agreed to in writing, software distributed under the license is distributed on an "as is" basis, without warranties or  conditions of any kind, either express or implied. see the license for the specific language governing permissions and limitations under the license.
 :_basedir: ../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.9.0.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.9.0.adoc b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.9.0.adoc
index 6663242..958d34b 100644
--- a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.9.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.9.0.adoc
@@ -1,4 +1,4 @@
-[[_release-notes_1.10.0]]
+[[_release-notes_1.9.0]]
 = 1.9.0
 :notice: licensed to the apache software foundation (asf) under one or more contributor license agreements. see the notice file distributed with this work for additional information regarding copyright ownership. the asf licenses this file to you under the apache license, version 2.0 (the "license"); you may not use this file except in compliance with the license. you may obtain a copy of the license at. http://www.apache.org/licenses/license-2.0 . unless required by applicable law or agreed to in writing, software distributed under the license is distributed on an "as is" basis, without warranties or  conditions of any kind, either express or implied. see the license for the specific language governing permissions and limitations under the license.
 :_basedir: ../

http://git-wip-us.apache.org/repos/asf/isis/blob/1c6f349a/adocs/documentation/src/main/asciidoc/support.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/support.adoc b/adocs/documentation/src/main/asciidoc/support.adoc
index 131d68d..96754bc 100644
--- a/adocs/documentation/src/main/asciidoc/support.adoc
+++ b/adocs/documentation/src/main/asciidoc/support.adoc
@@ -45,7 +45,7 @@ The Markmail archives span both our current (TLP) mailing lists and also our ori
 
 
 
-[[how-to-subscribe]]
+[[__support_how-to-subscribe]]
 == How to subscribe
 
 To subscribe to the `users` mailing list:
@@ -59,7 +59,7 @@ Then, to ask questions, simply mail to link:mailto:users@isis.apache.org[users@i
 If you ever want to unsubscribe, then you can send a mail to the `users-unsubscribe` email address.
 
 
-[[mailing-list-etiquette]]
+[[__support_mailing-list-etiquette]]
 == Mailing list etiquette
 
 Just a couple of rules/suggestions:


[2/6] isis git commit: ISIS-1674: updates documentation to reference helloworld archetype where necessary.

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_shiro-realm-implementations_ini-realm.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_shiro-realm-implementations_ini-realm.adoc b/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_shiro-realm-implementations_ini-realm.adoc
index d72defc..b7178af 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_shiro-realm-implementations_ini-realm.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_shiro-realm-implementations_ini-realm.adoc
@@ -7,13 +7,16 @@
 
 Probably the simplest realm to use is Shiro's built-in `IniRealm`, which reads from the (same) `WEB-INF/shiro.ini` file.
 
-This is suitable for prototyping, but isn't intended for production use, if only because user/password credentials are stored in plain text.  Nevertheless, it's a good starting point.  The app generated by the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] is configured to use this realm.
+This is suitable for prototyping, but isn't intended for production use, if only because user/password credentials are stored in plain text.
+Nevertheless, it's a good starting point.
+The app generated by both the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld] and xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp]  archetypes are configured to use this realm.
 
 The diagram below shows the Isis and components involved:
 
 image::{_imagesdir}security/security-apis-impl/configure-shiro-to-use-ini-realm.PNG[width="600px"]
 
-The realm is responsible for validating the user credentials, and then creates a Shiro link:http://shiro.apache.org/static/latest/apidocs/org/apache/shiro/subject/Subject.html[`Subject`] which represents the user (for the current request).  Apache Isis `Authenticator` component then interacts with the `Subject` in order to check permissions.
+The realm is responsible for validating the user credentials, and then creates a Shiro link:http://shiro.apache.org/static/latest/apidocs/org/apache/shiro/subject/Subject.html[`Subject`] which represents the user (for the current request).
+Apache Isis `Authenticator` component then interacts with the `Subject` in order to check permissions.
 
 
 
@@ -29,7 +32,8 @@ securityManager.realms = $iniRealm
 
 (Unlike other realms) there is no need to "define" `$iniRealm`; it is automatically available to us.
 
-Specifying `$iniRealm` means that the usernames/passwords, roles and permissions are read from the `shiro.ini` file itself.  Specifically:
+Specifying `$iniRealm` means that the usernames/passwords, roles and permissions are read from the `shiro.ini` file itself.
+Specifically:
 
 * the users/passwords and their roles from the `[users]` sections;
 * the roles are mapped to permissions in the `[roles]` section.
@@ -113,7 +117,8 @@ The format of the permissions string is configurable in Shiro, and Apache Isis u
 
 == Externalized IniRealm
 
-There's no requirement for all users/roles to be defined in the `shiro.ini` file.  Instead, a realm can be defined that loads its users/roles from some other resource.
+There's no requirement for all users/roles to be defined in the `shiro.ini` file.
+Instead, a realm can be defined that loads its users/roles from some other resource.
 
 For example:
 
@@ -125,9 +130,11 @@ realm1.resourcePath=classpath:webapp/realm1.ini # <2>
 <1> happens to (coincidentally) be the link:http://shiro.apache.org/static/latest/apidocs/org/apache/shiro/realm/text/IniRealm.html[same implementation] as Shiro's built-in $iniRealm
 <2> in this case load the users/roles from the `src/main/resources/webapp/realm1.ini` file.
 
-Note that a URL could be provided as the `resourcePath`, so a centralized config file could be used.  Even so, the
+Note that a URL could be provided as the `resourcePath`, so a centralized config file could be used.
+Even so, the
 
 [NOTE]
 ====
-If configured this way then the `[users]` and `[roles]` sections of `shiro.ini` become unused. Instead, the corresponding sections from for `realm1.ini` are used instead.
+If configured this way then the `[users]` and `[roles]` sections of `shiro.ini` become unused.
+Instead, the corresponding sections from for `realm1.ini` are used instead.
 ====

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugsec/ugsec.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugsec/ugsec.adoc b/adocs/documentation/src/main/asciidoc/guides/ugsec/ugsec.adoc
index 0edf472..265eba5 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugsec/ugsec.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugsec/ugsec.adoc
@@ -46,19 +46,27 @@ The remaining guides are:
 
 Apache Isis has built-in support for authentication and authorization:
 
-* By "authentication" we mean logging into the application using some credentials, typically a username and password.  Authentication also means looking up the set of roles to which a user belongs.
+* By "authentication" we mean logging into the application using some credentials, typically a username and password.
+Authentication also means looking up the set of roles to which a user belongs.
 
 * By "authorization" we mean permissions: granting roles to have access to features (object member) of the app.
 
-Isis has two levels of permissions.  _Read_ permission means that the user can view the object member; it will be rendered in the UI.  An action with only read permission will be shown disabled ("greyed out".  _Write_ permission means that the object member can be changed.  For actions this means that they can be invoked.
+Isis has two levels of permissions.
+_Read_ permission means that the user can view the object member; it will be rendered in the UI.  An action with only read permission will be shown disabled ("greyed out".
+_Write_ permission means that the object member can be changed.  For actions this means that they can be invoked.
 
-Isis provides an API for both authentication and authorization, and provides an implementation that integrates with link:http://shiro.apache.org[Apache Shiro].  Shiro in turn uses the concept of a _realm_ as a source for both authentication and optionally authorization.
+Isis provides an API for both authentication and authorization, and provides an implementation that integrates with link:http://shiro.apache.org[Apache Shiro].
+Shiro in turn uses the concept of a _realm_ as a source for both authentication and optionally authorization.
 
-Shiro ships with a simple text-based realm -- the `IniRealm` -- which reads users (and password), user roles and role permissions from the `WEB-INF/shiro.ini` file.  The xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] is configured to use this realm.
+Shiro ships with a simple text-based realm -- the `IniRealm` -- which reads users (and password), user roles and role permissions from the `WEB-INF/shiro.ini` file.
+The xref:../ugfun/ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld] and xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp] archetypes are both configured to use this realm.
 
-Shiro also ships with an implementation of an LDAP-based realm; LDAP is often used to manage user/passwords and corresponding user groups.  Apache Isis in turn extends this with its `IsisLdapRealm`, which provides more flexibility for both group/role and role/permissions management.
+Shiro also ships with an implementation of an LDAP-based realm; LDAP is often used to manage user/passwords and corresponding user groups.
+Apache Isis in turn extends this with its `IsisLdapRealm`, which provides more flexibility for both group/role and role/permissions management.
 
-In addition, the (non-ASF) link:http://www.isisaddons.org[Isis Addons] provides the http://github.com/isisaddons/isis-module-security[Isis addons' security] module, which also provides an implementation of the Shiro `Realm` API.  However, the security module also represents users, roles and permissions as domain objects, allowing them to be administered through Apache Isis itself.  Moreover, the security module can optionally delegate password management to a subsidiary (delegate) realm (usually LDAP as discussed above).
+In addition, the (non-ASF) link:http://www.isisaddons.org[Isis Addons] provides the http://github.com/isisaddons/isis-module-security[Isis addons' security] module, which also provides an implementation of the Shiro `Realm` API.
+However, the security module also represents users, roles and permissions as domain objects, allowing them to be administered through Apache Isis itself.
+Moreover, the security module can optionally delegate password management to a subsidiary (delegate) realm (usually LDAP as discussed above).
 
 In addition to Apache Isis' Shiro-based implementation of its authentication and authorization APIs, Isis also provides a "bypass" implementation, useful for quick-n-dirty prototyping when you want to in effect disable (bypass) security completely.
 
@@ -69,14 +77,12 @@ A further aspect of security is auditing: recording what data was modified by wh
 
 Apache Isis provides the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`]
 can be used to track the actions being invoked, and the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`]
-captures what data was modified as a result (auditing).  When ``Interaction``s are persisted (eg by way of
-(non-ASF) http://github.com/isisaddons/isis-module-publishmq[Isis addons' publishmq] module) this provides excellent
-traceability.  The (non-ASF) http://github.com/isisaddons/isis-module-audit[Isis addons' audit] module provides an
-implementation of the `AuditerService`.
-
-For earlier versions of the framework the
-xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`] can be used to capture actions, while the (deprecated)
-xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditingService[`AuditingService`] used to capture data modified.
+captures what data was modified as a result (auditing).
+When ``Interaction``s are persisted (eg by way of (non-ASF) http://github.com/isisaddons/isis-module-publishmq[Isis addons' publishmq] module) this provides excellent
+traceability.
+The (non-ASF) http://github.com/isisaddons/isis-module-audit[Isis addons' audit] module provides an implementation of the `AuditerService`.
+
+For earlier versions of the framework the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`] can be used to capture actions, while the (deprecated) xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditingService[`AuditingService`] used to capture data modified.
 ====
 
 
@@ -85,11 +91,8 @@ include::_ugsec_configuring-isis-to-use-shiro.adoc[leveloffset=+1]
 
 include::_ugsec_shiro-realm-implementations.adoc[leveloffset=+1]
 
-
-
 include::_ugsec_shiro-isis-enhanced-wildcard-permission.adoc[leveloffset=+1]
 
-
 include::_ugsec_hints-and-tips.adoc[leveloffset=+1]
 
 include::_ugsec_api-for-applications.adoc[leveloffset=+1]

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_bdd-spec-support_maven-configuration.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_bdd-spec-support_maven-configuration.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_bdd-spec-support_maven-configuration.adoc
index 7febe87..891d210 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_bdd-spec-support_maven-configuration.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_bdd-spec-support_maven-configuration.adoc
@@ -7,7 +7,8 @@
 
 
 
-Apache Isis' BDD spec support is automatically configured if you use the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].  To set it up manually, update the `pom.xml` of your domain object model module:
+Apache Isis' BDD spec support is automatically configured if you use the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
+To set it up manually, update the `pom.xml` of your domain object model module:
 
 [source,xml]
 ----
@@ -47,8 +48,13 @@ We also recommend that you configure the `maven-surefire-plugin` to pick up the
 </plugin>
 ----
 
+[NOTE]
+====
+As of 1.14.0, this configuration has been replaced to use mavenmixins.
+====
 
-You may also find it more convenient to place the `.feature` files in `src/test/java`, rather than `src/test/resources`.  If you wish to do this, then your integtest module's `pom.xml` must contain:
+You may also find it more convenient to place the `.feature` files in `src/test/java`, rather than `src/test/resources`.
+If you wish to do this, then your integtest module's `pom.xml` must contain:
 
 [source,xml]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_bdd-spec-support_writing-a-bdd-spec.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_bdd-spec-support_writing-a-bdd-spec.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_bdd-spec-support_writing-a-bdd-spec.adoc
index 6e5ffff..7faca21 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_bdd-spec-support_writing-a-bdd-spec.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_bdd-spec-support_writing-a-bdd-spec.adoc
@@ -11,11 +11,13 @@ BDD specifications contain:
 
 * a `XxxSpec.feature` file, describing the feature and the scenarios (given/when/then)s that constitute its acceptance criteria
 
-* a `RunSpecs.java` class file to run the specification (all boilerplate). This will run all `.feature` files in the same package or subpackages.
+* a `RunSpecs.java` class file to run the specification (all boilerplate).
+This will run all `.feature` files in the same package or subpackages.
 
 * one or several `XxxGlue` constituting the step definitions to be matched against. +
 +
-The "glue" (step definitions) are intended to be reused across features. We therefore recommend that they reside in a separate package, and are organized by the entity type upon which they act. +
+The "glue" (step definitions) are intended to be reused across features.
+We therefore recommend that they reside in a separate package, and are organized by the entity type upon which they act. +
 +
 For example, given a feature that involves `Customer` and `Order`, have the step definitions pertaining to `Customer` reside in `CustomerGlue`, and the step definitions pertaining to `Order` reside in `OrderGlue`. +
 +
@@ -38,18 +40,25 @@ Feature: List and Create New Simple Objects
     Then  there are 4 simple objects
 ----
 
-The `@SimpleObjectsFixture` is a custom tag we've specified to indicate the prerequisite fixtures to be loaded; more on this in a moment. The `@integration` tag, meanwhile, says that this feature should be run with integration-level scope.
+The `@SimpleObjectsFixture` is a custom tag we've specified to indicate the prerequisite fixtures to be loaded; more on this in a moment.
+The `@integration` tag, meanwhile, says that this feature should be run with integration-level scope.
 
 
 [NOTE]
 ====
-Although BDD specs are most commonly used for end-to-end tests (ie at the same scope as an integration test), the two concerns (expressability of a test to a business person vs granularity of the test) should not be conflated. There are a couple of http://silkandspinach.net/2013/01/18/a-testing-strategy/[good] blog http://claysnow.co.uk/the-testing-iceberg/[posts] discussing http://claysnow.co.uk/living-documentation-can-be-readable-and-fast/[this]. The basic idea is to avoid the overhead of a heavy-duty integration test if possible.
+Although BDD specs are most commonly used for end-to-end tests (ie at the same scope as an integration test), the two concerns (expressability of a test to a business person vs granularity of the test) should not be conflated.
+There are a couple of http://silkandspinach.net/2013/01/18/a-testing-strategy/[good] blog http://claysnow.co.uk/the-testing-iceberg/[posts] discussing http://claysnow.co.uk/living-documentation-can-be-readable-and-fast/[this].
+The basic idea is to avoid the overhead of a heavy-duty integration test if possible.
 
-Apache Isis does also support running BDD specs in unit test mode; by annotating the scenario with the `@unit` (rather than `@integration` tag).  When running under unit-level scope, the Apache Isis system is _not_ instantiated.  Instead, the `ScenarioExecution` class returns JMock mocks (except for the `WrapperFactory`, if configured).
+Apache Isis does also support running BDD specs in unit test mode; by annotating the scenario with the `@unit` (rather than `@integration` tag).
+When running under unit-level scope, the Apache Isis system is _not_ instantiated.
+Instead, the `ScenarioExecution` class returns JMock mocks (except for the `WrapperFactory`, if configured).
 
-To support unit testing scope Apache Isis provides the `InMemoryDB` class; a glorified hashmap of "persisted" objects.  Use of this utility class is optional.
+To support unit testing scope Apache Isis provides the `InMemoryDB` class; a glorified hashmap of "persisted" objects.
+Use of this utility class is optional.
 
-Writing a BDD spec that supports both modes of operation therefore takes more effort and we expect most users interested in BDD will use integration-testing scope; for these reasons we have chosen _not_ to include unit-testing support in the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].  For those who do require faster-executing test suite, it's worthwhile knowing that Apache Isis can support this.
+Writing a BDD spec that supports both modes of operation therefore takes more effort and we expect most users interested in BDD will use integration-testing scope; for these reasons we have chosen _not_ to include unit-testing support in the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
+For those who do require faster-executing test suite, it's worthwhile knowing that Apache Isis can support this.
 
 ====
 
@@ -109,7 +118,8 @@ public class CatalogOfFixturesGlue extends CukeGlueAbstract {
 
 Note that this is annotated with a tag (`@SimpleObjectsFixture`) so that the correct fixture runs. (We might have a whole variety of these).
 
-The step definitions pertaining to `SimpleObject` domain entity then reside in the https://github.com/apache/isis/blob/07fe61ef3fb029ae36427f60da2afeeb931e4f88/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/specglue/modules/simple/SimpleObjectGlue.java#L31[`SimpleObjectGlue`] class. This is where the heavy lifting gets done:
+The step definitions pertaining to `SimpleObject` domain entity then reside in the https://github.com/apache/isis/blob/07fe61ef3fb029ae36427f60da2afeeb931e4f88/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/specglue/modules/simple/SimpleObjectGlue.java#L31[`SimpleObjectGlue`] class.
+This is where the heavy lifting gets done:
 
 [source,java]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_api-and-usage.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_api-and-usage.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_api-and-usage.adoc
index 9170fe9..4697e88 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_api-and-usage.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_api-and-usage.adoc
@@ -9,7 +9,8 @@ There are two parts to using fixture scripts: the `FixtureScripts` domain servic
 
 * The role of the `FixtureScripts` domain service is to locate all fixture scripts from the classpath and to let them be invoked, either from an integration test/BDD spec or from the UI of your Isis app.
 
-* The role of `FixtureScript` meanwhile is to subclass for each of the scenarios that you want to define.  You can also subclass from `FixtureScript` to create helpers; more on this below.
+* The role of `FixtureScript` meanwhile is to subclass for each of the scenarios that you want to define.
+You can also subclass from `FixtureScript` to create helpers; more on this below.
 
 Let's look at `FixtureScripts` domain service in more detail first.
 
@@ -17,11 +18,16 @@ Let's look at `FixtureScripts` domain service in more detail first.
 
 There are two ways in which you can provide a `FixtureScripts` service.
 
-The original (pre-1.9.0) approach is to subclass subclass `FixtureScripts` domain service, with your subclass specifying which package to search for.  Various other settings can also be provided, and - being a custom class - you can also add in additional actions.  A common example is to provide a "one-shot" action to recreate a standard demo set of objects.
+The original (pre-1.9.0) approach is to subclass subclass `FixtureScripts` domain service, with your subclass specifying which package to search for.
+Various other settings can also be provided, and - being a custom class - you can also add in additional actions.
+A common example is to provide a "one-shot" action to recreate a standard demo set of objects.
 
-As of 1.9.0 there is an alternative design.  Instead of subclassing `FixtureScripts` you instead implement the xref:../rgsvc/rgsvc.adoc#_rgsvc_testing_FixtureScriptsSpecificationProvider[`FixtureScriptsSpecificationProvider`] SPI.  (As its name suggests), this provides a `FixtureScriptsSpecification` object that contains the same information as would otherwise have been in the `FixtureScripts` subclass.
+As of 1.9.0 there is an alternative design.
+Instead of subclassing `FixtureScripts` you instead implement the xref:../rgsvc/rgsvc.adoc#_rgsvc_testing_FixtureScriptsSpecificationProvider[`FixtureScriptsSpecificationProvider`] SPI.
+(As its name suggests), this provides a `FixtureScriptsSpecification` object that contains the same information as would otherwise have been in the `FixtureScripts` subclass.
 
-The actual implementation of the `FixtureScripts` service is then provided by the framework itself, namely the xref:../rgsvc/rgsvc.adoc#_rgsvc_testing_FixtureScriptsDefault[`FixtureScriptsDefault`] domain service, annotated to be rendered on the secondary "Prototyping" menu.  This uses the `FixtureScriptsSpecificationProvider` to adjust itself accordinly.
+The actual implementation of the `FixtureScripts` service is then provided by the framework itself, namely the xref:../rgsvc/rgsvc.adoc#_rgsvc_testing_FixtureScriptsDefault[`FixtureScriptsDefault`] domain service, annotated to be rendered on the secondary "Prototyping" menu.
+This uses the `FixtureScriptsSpecificationProvider` to adjust itself accordinly.
 
 For example, here's the `FixtureScriptsSpecificationProvider` service that's generated by the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype]:
 
@@ -48,7 +54,8 @@ public class DomainAppFixturesProvider implements FixtureScriptsSpecificationPro
 <5> if present, enables a "recreate objects and return first" action to be displayed in the UI
 
 
-The benefit of this design - decoupling the responsibilities of the superclass and the subclass - is that it ensures that there is always an instance of `FixtureScripts` available, even if the application itself doesn't provide one.  Some of the (non-ASF) link:http://www.isisaddons.org[Isis Addons] modules (eg http://github.com/isisaddons/isis-module-security[Isis addons' security] module) expect there to be a `FixtureScripts` service for seeding data, which has caused some confusion.
+The benefit of this design - decoupling the responsibilities of the superclass and the subclass - is that it ensures that there is always an instance of `FixtureScripts` available, even if the application itself doesn't provide one.
+Some of the (non-ASF) link:http://www.isisaddons.org[Isis Addons] modules (eg http://github.com/isisaddons/isis-module-security[Isis addons' security] module) expect there to be a `FixtureScripts` service for seeding data, which has caused some confusion.
 
 By way of comparison, if using the older pre-1.9.0 approach then you would create a subclass:
 
@@ -137,7 +144,9 @@ Let's now look at the `FixtureScript` class, where there's a bit more going on.
 
 == `FixtureScript`
 
-A fixture script is ultimately just a block of code that can be executed, so it's up to you how you implement it to set up the system.  However, we strongly recommend that you use it to invoke actions on business objects, in essence to replay what a real-life user would have done.  That way, the fixture script will remain valid even if the underlying implementation of the system changes in the future.
+A fixture script is ultimately just a block of code that can be executed, so it's up to you how you implement it to set up the system.
+However, we strongly recommend that you use it to invoke actions on business objects, in essence to replay what a real-life user would have done.
+That way, the fixture script will remain valid even if the underlying implementation of the system changes in the future.
 
 Here's the `RecreateSimpleObjects` fixture script from the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype]:
 
@@ -182,29 +191,35 @@ public class RecreateSimpleObjects extends FixtureScript {                   //
 }
 ----
 <1> inherit from `org.apache.isis.applib.fixturescripts.FixtureScript`
-<2> a hard-coded list of values for the names.  Note that the http://github.com/isisaddons/isis-module-fakedata[Isis addons' fakedata] module (non-ASF) could also have been used
+<2> a hard-coded list of values for the names.
+Note that the http://github.com/isisaddons/isis-module-fakedata[Isis addons' fakedata] module (non-ASF) could also have been used
 <3> whether the script is "discoverable"; in other words whether it should be rendered in the drop-down by the `FixtureScripts` service
-<4> input property: the number of objects to create, up to 10; for the calling test to specify, but note this is optional and has a default (see below).  It's important that a wrapper class is used (ie `java.lang.Integer`, not `int`)
+<4> input property: the number of objects to create, up to 10; for the calling test to specify, but note this is optional and has a default (see below).
+It's important that a wrapper class is used (ie `java.lang.Integer`, not `int`)
 <5> output property: the generated list of objects, for the calling test to grab
 <6> the mandatory execute(...) API
 <7> the `defaultParam(...)` (inherited from `FixtureScript`) will default the `number` property (using Java's Reflection API) if none was specified
-<8> call another fixture script (`SimpleObjectsTearDown`) using the provided `ExecutionContext`.  Note that although the fixture script is a view model, it's fine to simply instantiate it (rather than using `DomainObjectContainer#newTransientInstance(...)`).
+<8> call another fixture script (`SimpleObjectsTearDown`) using the provided `ExecutionContext`.
+Note that although the fixture script is a view model, it's fine to simply instantiate it (rather than using `FactoryService#instantiate(...)`).
 <9> calling another fixture script (`SimpleObjectCreate`) using the provided `ExecutionContext`
 <10> adding the created object to the list, for the calling object to use.
 
 
-Because this script has exposed a "number" property, it's possible to set this from within the UI.  For example:
+Because this script has exposed a "number" property, it's possible to set this from within the UI.
+For example:
 
 image::{_imagesdir}testing/fixture-scripts/prompt.png[width="700px"]
 
-
-When this is executed, the framework will parse the text and attempt to reflectively set the corresponding properties on the fixture result.  So, in this case, when the fixture script is executed we actually get 6 objects created:
+When this is executed, the framework will parse the text and attempt to reflectively set the corresponding properties on the fixture result.
+So, in this case, when the fixture script is executed we actually get 6 objects created:
 
 image::{_imagesdir}testing/fixture-scripts/result-list.png[width="700px"]
 
 
 
-It's commonplace for one fixture script to call another.  In the above example this script called `SimpleObjectsTearDown` and `SimpleObjectCreate`.  Let's take a quick look at `SimpleObjectCreate`:
+It's commonplace for one fixture script to call another.
+In the above example this script called `SimpleObjectsTearDown` and `SimpleObjectCreate`.
+Let's take a quick look at `SimpleObjectCreate`:
 
 [source,java]
 ----
@@ -245,8 +260,6 @@ public class SimpleObjectCreate extends FixtureScript {       // <1>
 
 
 
-
-
 == Using within Tests
 
 Fixture scripts can be called from integration tests just the same way that fixture scripts can call one another.
@@ -300,7 +313,8 @@ There are lots of ways to organize fixture scripts, but we've used them as eithe
 
 * in a "composite pattern" style, eg as in the https://github.com/estatio/estatio/blob/ea20a6ce257acede50de6ce4fd2ff29713fcd689/estatioapp/fixture/src/main/java/org/estatio/fixture/invoice/InvoiceForLeaseItemTypeOfDiscountOneQuarterForOxfMiracle005.java#L66)[Estatio open source app].
 
-These two styles are probably best illustrated with, well, some illustrations.  Here's a fixture script in the "flat" style for setting up a customer with some orders, a number of which has been placed:
+These two styles are probably best illustrated with, well, some illustrations.
+Here's a fixture script in the "flat" style for setting up a customer with some orders, a number of which has been placed:
 
 image::{_imagesdir}testing/fixture-scripts/flat-1.png[width="700px",link="{_imagesdir}testing/fixture-scripts/flat-1.png"]
 
@@ -312,41 +326,39 @@ image::{_imagesdir}testing/fixture-scripts/flat-2.png[width="500px",link="{_imag
 
 We can reuse the same fixture "customer" script, either calling it twice or (perhaps better) passing it an array of customer details to set up.
 
-With the composite style, we rely on each fixture script to set up its own prerequisites.  Thus:
+With the composite style, we rely on each fixture script to set up its own prerequisites.
+Thus:
 
 image::{_imagesdir}testing/fixture-scripts/composite.png[width="550px",link="{_imagesdir}testing/fixture-scripts/composite.png"]
 
-Back in the earlier section we noted the `MultipleExecutionStrategy` setting.  We can now explain the meaning of this: the enum value of `EXECUTE` is designed for the flat style (where every fixture script will be called), whereas the enum value of `IGNORE` is designed for the composite style, and ensures that any fixture scripts visited more than once (eg TearDown) are only every executed the first time.
+Back in the earlier section we noted the `MultipleExecutionStrategy` setting.
+We can now explain the meaning of this: the enum value of `EXECUTE` is designed for the flat style (where every fixture script will be called), whereas the enum value of `IGNORE` is designed for the composite style, and ensures that any fixture scripts visited more than once (eg TearDown) are only every executed the first time.
 
 As already noted , the app generated by the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] uses the flat structure, and we feel that it's a better at separating out the "how" (how we set up some graph of domain objects into a known state, eg a customer with shipped placed orders and a newly placed order) from the "what" (what data should we actually use for the customer's name, say).
 
-The composite style tends to combine these, which one could argue does not separate responsibilities well enough.  On the other hand, one could also make an argument that the composite style is a good way to implement precanned personas, eg "Joe", the customer who has a newly placed order, from "Mary" customer who has none.
+The composite style tends to combine these, which one could argue does not separate responsibilities well enough.
+On the other hand, one could also make an argument that the composite style is a good way to implement precanned personas, eg "Joe", the customer who has a newly placed order, from "Mary" customer who has none.
 
 
 === Further approaches
 
 As of there are two other approaches.
 
-The first is to take advantage of a new `MultipleExecutionStrategy`, namely `EXECUTE_ONCE_BY_VALUE`.  Under this strategy the determination as to whether to run a given fixture script is by comparing the fixture script against all others that have run.  If all fixture scripts implement value semantics, then they can effectively determine
-whether they need to run or not.
+The first is to take advantage of a new `MultipleExecutionStrategy`, namely `EXECUTE_ONCE_BY_VALUE`.  Under this strategy the determination as to whether to run a given fixture script is by comparing the fixture script against all others that have run.
+If all fixture scripts implement value semantics, then they can effectively determine whether they need to run or not.
 
-This strategy was introduced in order to better support the `ExcelFixture` fixture script (provided by the
-(non-ASF) http://github.com/isisaddons/isis-module-excel[Isis addons' excel] module.  The `ExcelFixture` takes an
-Excel spreadsheet and loads up each row.  For those cases where we wish to ensure that the same spreadsheet is not
-loaded more than once, the `IGNORE` strategy would have required that a trivial subclass of `ExcelFixture` is created
-for each and every spreadsheet.  The `EXECUTE_ONCE_BY_VALUE` on the other hand delegates the determination to the
-value semantics of the `ExcelFixture`, which is based on the contents of the spreadsheet.
+This strategy was introduced in order to better support the `ExcelFixture` fixture script (provided by the (non-ASF) http://github.com/isisaddons/isis-module-excel[Isis addons' excel] module.
+The `ExcelFixture` takes an Excel spreadsheet and loads up each row.
+For those cases where we wish to ensure that the same spreadsheet is not loaded more than once, the `IGNORE` strategy would have required that a trivial subclass of `ExcelFixture` is created for each and every spreadsheet.
+The `EXECUTE_ONCE_BY_VALUE` on the other hand delegates the determination to the value semantics of the `ExcelFixture`, which is based on the contents of the spreadsheet.
 
 [NOTE]
 ====
 Note that as of `1.10.0` the `IGNORE` enum has been deprecated, replaced by `EXECUTE_ONCE_BY_CLASS`
 ====
 
-The second approach is in recognition that there is, in fact, something of a design flaw with the concept of
-`MultipleExecutionStrategy`: it requires that all fixture scripts being run follow the same conventions.  There's a
-good argument that this shouldn't be a global "setting": the responsibility for determining whether a given fixture
-script should be executed should reside not in the `FixtureScripts` service but in the `FixtureScript` itself.
+The second approach is in recognition that there is, in fact, something of a design flaw with the concept of `MultipleExecutionStrategy`: it requires that all fixture scripts being run follow the same conventions.
+There's a good argument that this shouldn't be a global "setting": the responsibility for determining whether a given fixture script should be executed should reside not in the `FixtureScripts` service but in the `FixtureScript` itself.
 
-Thus, the `FixtureScripts.ExecutionContext` exposes the `getPreviouslyExecuted()` method that allows the fixture
-script to check for itself which fixture scripts have already been run, and act accordingly.  For this approach, the
-`MultipleExecutionStrategy` should be left as simply `EXECUTE`.
+Thus, the `FixtureScripts.ExecutionContext` exposes the `getPreviouslyExecuted()` method that allows the fixture script to check for itself which fixture scripts have already been run, and act accordingly.
+For this approach, the `MultipleExecutionStrategy` should be left as simply `EXECUTE`.

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
index 883b36e..7d546d2 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
@@ -5,11 +5,13 @@
 :_imagesdir: images/
 
 
-Integration tests instantiate an Apache Isis "runtime" (as a singleton) within a JUnit test.  Because (depending on the size of your app) it takes a little time to bootstrap Apache Isis, the framework caches the runtime on a thread-local from one test to the next.
+Integration tests instantiate an Apache Isis "runtime" (as a singleton) within a JUnit test.
+Because (depending on the size of your app) it takes a little time to bootstrap Apache Isis, the framework caches the runtime on a thread-local from one test to the next.
 
 Nevertheless, we do need to bootstrap the runtime for the very first test.
 
-As of 1.9.0 the bootstrapping of integration tests and webapps has been simplified through the xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`] class.  Since this isn't mandatory, for now we present both techniques.
+As of 1.9.0 the bootstrapping of integration tests and webapps has been simplified through the xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`] class.
+Since this isn't mandatory, for now we present both techniques.
 
 The example code in this section is taken from the app generated by the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
 
@@ -18,7 +20,8 @@ The example code in this section is taken from the app generated by the xref:../
 
 == System Initializer
 
-The bootstrapping itself is performed by a "system initializer" class.  This is responsible for instantiating the Apache Isis runtime, and binding it to a thread-local.
+The bootstrapping itself is performed by a "system initializer" class.
+This is responsible for instantiating the Apache Isis runtime, and binding it to a thread-local.
 
 === 1.13.0 (Improved intent)
 
@@ -51,9 +54,8 @@ public class DomainAppSystemInitializer {
 }
 ----
 
-While the code is slightly longer than previously, the responsibilities for returning the configuration properties to
-use for the test now reside in a single location.  The new `AppManifest.Util` class provides the helper methods to
-actually add in the appropriate config properties.
+While the code is slightly longer than previously, the responsibilities for returning the configuration properties to use for the test now reside in a single location.
+The new `AppManifest.Util` class provides the helper methods to actually add in the appropriate config properties.
 
 
 === 1.9.0 (`AppManifest`)
@@ -154,7 +156,8 @@ public class DomainAppSystemInitializer {
 
 Integration tests are configured programmatically, with a default set of properties to bootstrap the JDO/DataNucleus objectstore using an HSQLDB in-memory database.
 
-To remove a little bit of boilerplate, the `IsisConfigurationForJdoIntegTests` class (in the `org.apache.isis.objectstore.jdo.datanucleus` package) can be used to bootstrap the application.  If necessary, this class can be subclassed to override these defaults.
+To remove a little bit of boilerplate, the `IsisConfigurationForJdoIntegTests` class (in the `org.apache.isis.objectstore.jdo.datanucleus` package) can be used to bootstrap the application.
+If necessary, this class can be subclassed to override these defaults.
 
 
 .Default Configuration Properties for Integration Tests
@@ -242,7 +245,8 @@ See the link:http://www.datanucleus.org/products/accessplatform_4_1/persistence_
 
 == Abstract Class
 
-We recommend defining a base class for all your other classes to integration classes to inherit from.  The main responsibility of this class is tocall the system initializer, described earlier.  We only need the initialization to be performed once, so this call is performed in a `@BeforeClass` hook.
+We recommend defining a base class for all your other classes to integration classes to inherit from.  The main responsibility of this class is tocall the system initializer, described earlier.
+We only need the initialization to be performed once, so this call is performed in a `@BeforeClass` hook.
 
 The code below shows the general form:
 
@@ -298,9 +302,7 @@ Although not mandatory, this provides a number of helper/convenience methods and
 
 All of these rules could be inlined in your own base class; as we say, they are a convenience.
 
-The `IntegrationTestAbstract` also provides a number of helper/convenience methods, though most of these have been
-deprecated because the functionality they expose is now readily accessible through various domain services; most
-notably these are:
+The `IntegrationTestAbstract` also provides a number of helper/convenience methods, though most of these have been deprecated because the functionality they expose is now readily accessible through various domain services; most notably these are:
 
 * xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`] +
 +

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_maven-configuration.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_maven-configuration.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_maven-configuration.adoc
index 7b98813..22abee2 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_maven-configuration.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_maven-configuration.adoc
@@ -5,7 +5,8 @@
 :_imagesdir: images/
 
 
-Apache Isis' integration test support is automatically configured if you use the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].  To set it up manually, update the `pom.xml` of your domain object model module:
+Apache Isis' integration test support is automatically configured if you use the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
+To set it up manually, update the `pom.xml` of your domain object model module:
 
 [source,xml]
 ----
@@ -19,6 +20,11 @@ Apache Isis' integration test support is automatically configured if you use the
 </dependency>
 ----
 
+[NOTE]
+====
+As of `1.15.0-SNAPSHOT` this can also be done by adding a dependency to `org.apache.isis.mavendeps:isis-mavendeps-testing` module; see the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
+====
+
 We also recommend that you configure the `maven-surefire-plugin` to pick up the following class patterns:
 
 [source,xml]
@@ -44,3 +50,8 @@ We also recommend that you configure the `maven-surefire-plugin` to pick up the
     </configuration>
 </plugin>
 ----
+
+[NOTE]
+====
+As of `1.14.0` this can also be done using mavenmixins; see the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
+====

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_unit-test-support_maven-configuration.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_unit-test-support_maven-configuration.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_unit-test-support_maven-configuration.adoc
index d6bd084..4001898 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_unit-test-support_maven-configuration.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_unit-test-support_maven-configuration.adoc
@@ -5,7 +5,8 @@
 :_imagesdir: images/
 
 
-Apache Isis' unit test support is automatically configured if you use the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].  To set it up manually, update the `pom.xml` of your domain object model module:
+Apache Isis' unit test support is automatically configured if you use the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld] or the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp] archetypes.
+To set it up manually, update the `pom.xml` of your domain object model module:
 
 [source,xml]
 ----
@@ -18,6 +19,11 @@ Apache Isis' unit test support is automatically configured if you use the xref:.
 <1> Normally `test`; usual Maven scoping rules apply.
 
 
+[NOTE]
+====
+As of `1.15.0-SNAPSHOT` this can also be done by adding a dependency to `org.apache.isis.mavendeps:isis-mavendeps-testing` module; see the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
+====
+
 
 We also recommend that you configure the `maven-surefire-plugin` to pick up the following class patterns:
 
@@ -44,3 +50,8 @@ We also recommend that you configure the `maven-surefire-plugin` to pick up the
     </configuration>
 </plugin>
 ----
+
+[NOTE]
+====
+As of `1.14.0` this can also be done using mavenmixins; see the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
+====

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_customisation_about-page.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_customisation_about-page.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_customisation_about-page.adoc
index 3e4f01b..cd4429d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_customisation_about-page.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_customisation_about-page.adoc
@@ -6,7 +6,9 @@
 
 
 
-Isis' Wicket viewer has an About page that, by default, will provide a dump of the JARs that make up the webapp. This page will also show the manifest attributes of the WAR archive itself, if there are any. One of these attributes may also be used as the application version number.
+Isis' Wicket viewer has an About page that, by default, will provide a dump of the JARs that make up the webapp.
+This page will also show the manifest attributes of the WAR archive itself, if there are any.
+One of these attributes may also be used as the application version number.
 
 
 == Screenshot
@@ -20,19 +22,17 @@ image::{_imagesdir}about-page/about-page.png[width="800px",link="{_imagesdir}abo
 Note that this screenshot shows an earlier version of the xref:../ugvw/ugvw.adoc#[Wicket viewer] UI (specifically, pre 1.8.0).
 ====
 
-Note that the `Build-Time` attribute has been used as the version number. The Wicket viewer is hard-coded to search for specific attributes and use as the application version. In order, it searches for:
+Note that the `Build-Time` attribute has been used as the version number.
+The Wicket viewer is hard-coded to search for specific attributes and use as the application version.
+In order, it searches for:
 
 * `Implementation-Version`
 * `Build-Time`
 
 If none of these are found, then no version is displayed.
 
-== Configuration
 
-[TIP]
-====
-This configuration is included within the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
-====
+== Configuration
 
 === Adding attributes to the WAR's manifest
 
@@ -93,7 +93,9 @@ If you then build the webapp from the Maven command line (`mvn clean package`),
 
 The manifest attributes are provided to the rest of the application by way of the Wicket viewer's integration with Google Guice.
 
-In your subclass of `IsisWicketApplication`, there is a method `newIsisWicketModule()`. In this method you need to bind an `InputStream` that will read the manifest attributes. This is all boilerplate so you can just copy-n-paste:
+In your subclass of `IsisWicketApplication`, there is a method `newIsisWicketModule()`.
+In this method you need to bind an `InputStream` that will read the manifest attributes.
+This is all boilerplate so you can just copy-n-paste:
 
 [source,java]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
index 4554f10..ae055de 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
@@ -93,7 +93,9 @@ Most IDEs will automatically download the XSD schemas from the specified schema
 
 === Rows, full-width cols, and tabs
 
-The example layout consists of three rows: a row for the object/icon, a row containing a properties, and a row containing collections.   In all three cases the row contains a single column spanning the full width of the page.  For the property and collection rows, the column contains a tab group.
+The example layout consists of three rows: a row for the object/icon, a row containing a properties, and a row containing collections.
+In all three cases the row contains a single column spanning the full width of the page.
+For the property and collection rows, the column contains a tab group.
 
 This corresponds to the following XML:
 
@@ -124,13 +126,15 @@ This corresponds to the following XML:
 ----
 
 
-You will notice that one of the ``col``umns has an ``unreferencedActions`` attribute, while one of the ``tabGroup``s has a similar ``unreferencedCollections`` attribute.  This topic is discussed in more detail xref:../ugfun/ugfun.adoc#__ugvw_layout_file-based_unreferenced[below].
+You will notice that one of the ``col``umns has an ``unreferencedActions`` attribute, while one of the ``tabGroup``s has a similar ``unreferencedCollections`` attribute.
+This topic is discussed in more detail xref:../ugfun/ugfun.adoc#__ugvw_layout_file-based_unreferenced[below].
 
 
 
 === Fieldsets
 
-The first tab containing properties is divided into two columns, each of which holds a single fieldset of multiple properties.  Those properties in turn can have associated actions.
+The first tab containing properties is divided into two columns, each of which holds a single fieldset of multiple properties.
+Those properties in turn can have associated actions.
 
 This corresponds to the following XML:
 
@@ -163,9 +167,11 @@ This corresponds to the following XML:
 
 The tab defines two columns, each span of 6 (meaning half the width of the page).
 
-In the first column there is a single fieldset.  Notice how actions - such as `duplicate` and `delete` - can be associated with this fieldset directly, meaning that they should be rendered on the fieldset's top panel.
+In the first column there is a single fieldset.
+Notice how actions - such as `duplicate` and `delete` - can be associated with this fieldset directly, meaning that they should be rendered on the fieldset's top panel.
 
-Thereafter the fieldset lists the properties in order.  Actions can be associated with properties too; here they are rendered underneath or to the right of the field.
+Thereafter the fieldset lists the properties in order.
+Actions can be associated with properties too; here they are rendered underneath or to the right of the field.
 
 Note also the `unreferencedProperties` attribute for the fieldset; this topic is discussed in more detail xref:../ugfun/ugfun.adoc#__ugvw_layout_file-based_unreferenced[below].
 
@@ -217,18 +223,23 @@ The rules are:
 
 * `unreferencedActions` attribute can be specified either on a column or on a fieldset.  +
 +
-It would normally be typical to use the column holding the `<domainObject/>` icon/title, that is as shown in the example.  The unreferenced actions then appear as top-level actions for the domain object.
+It would normally be typical to use the column holding the `<domainObject/>` icon/title, that is as shown in the example.
+The unreferenced actions then appear as top-level actions for the domain object.
 
 * `unreferencedCollections` attribute can be specified either on a column or on a tabgroup. +
 +
-If specified on a column, then that column will contain each of the unreferenced collections, stacked one on top of the other.  If specified on a tab group, then a separate tab will be created for each collection, with that tab containing only that single collection.
+If specified on a column, then that column will contain each of the unreferenced collections, stacked one on top of the other.
+If specified on a tab group, then a separate tab will be created for each collection, with that tab containing only that single collection.
 
 * `unreferencedProperties` attribute can be specified only on a fieldset.
 
-The purpose of these attributes is to indicate where in the layout any unreferenced members should be rendered.  Every grid _must_ nominate one region for each of these three member types, the reason being that to ensure that the layout can be used even if it is incomplete with respect to the object members inferred from the Java source code.  This might be because the developer forgot to update the layout, or it might be because of a new mixin (property, collection or action) contributed to many objects.
+The purpose of these attributes is to indicate where in the layout any unreferenced members should be rendered.
+Every grid _must_ nominate one region for each of these three member types, the reason being that to ensure that the layout can be used even if it is incomplete with respect to the object members inferred from the Java source code.
+This might be because the developer forgot to update the layout, or it might be because of a new mixin (property, collection or action) contributed to many objects.
 
 
-The framework ensures that in any given grid exactly one region is specified for each of the three `unreferenced...` attributes.  If the grid fails this validation, then a warning message will be displayed, and the invalid XML logged.  The layout XML will then be ignored.
+The framework ensures that in any given grid exactly one region is specified for each of the three `unreferenced...` attributes.
+If the grid fails this validation, then a warning message will be displayed, and the invalid XML logged.  The layout XML will then be ignored.
 
 
 
@@ -276,9 +287,8 @@ In the middle column the `notYetComplete` collection is rendered in "calendar" v
 it is rendered in "table" view.
 
 
-It is also possible to reference object properties and actions more than once.  This might be useful for a complex
-domain object with multiple tabs; certain properties or actions might appear on a summary tab (that shows the
-most commonly used info), but also on detail tabs.
+It is also possible to reference object properties and actions more than once.
+This might be useful for a complex domain object with multiple tabs; certain properties or actions might appear on a summary tab (that shows the most commonly used info), but also on detail tabs.
 
 === Custom CSS
 
@@ -337,7 +347,8 @@ from the top of the page slightly, using the following CSS:
 
 == Migrating from earlier versions
 
-As noted earlier on, it is possible to download layout XML files using the xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_LayoutService[`LayoutService`] (exposed on the prototyping menu); this will download a ZIP file of layout XML files for all domain entities and view models.  Alternatively the layout XML for a single domain object can be downloaded using the xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins_Object[mixin action] (contributed to every domain object).
+As noted earlier on, it is possible to download layout XML files using the xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_LayoutService[`LayoutService`] (exposed on the prototyping menu); this will download a ZIP file of layout XML files for all domain entities and view models.
+Alternatively the layout XML for a single domain object can be downloaded using the xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins_Object[mixin action] (contributed to every domain object).
 
 There are four "styles":
 
@@ -347,10 +358,8 @@ There are four "styles":
 * minimal
 
 
-Ignorig the "current" style (which merely downloads the currently cached layout), the other three styles allow the
-developer to choose how much metadata is to be specified in the XML, and how much (if any) will be obtained
-elsewhere, either from annotations in the metamodel or from an earlier `.layout.json` file if present.  The table
-below summarises the choices:
+Ignorig the "current" style (which merely downloads the currently cached layout), the other three styles allow the developer to choose how much metadata is to be specified in the XML, and how much (if any) will be obtained elsewhere, either from annotations in the metamodel or from an earlier `.layout.json` file if present.
+The table below summarises the choices:
 
 .Table caption
 [cols="<.>,^.>,^.>,^.>", options="header"]
@@ -383,11 +392,15 @@ below summarises the choices:
 
 As a developer, you therefore have a choice as to how you provide the metadata required for customised layouts:
 
-* if you want all layout metadata to be read from the `.layout.xml` file, then download the "complete" version, and copy the file alongside the domain class.  You can then remove all `@MemberGroupLayout`, `@MemberOrder`, `@ActionLayout`, `@PropertyLayout` and `@CollectionLayout` annotations from the source code of the domain class.
+* if you want all layout metadata to be read from the `.layout.xml` file, then download the "complete" version, and copy the file alongside the domain class.
+You can then remove all `@MemberGroupLayout`, `@MemberOrder`, `@ActionLayout`, `@PropertyLayout` and `@CollectionLayout` annotations from the source code of the domain class.
 
-* if you want to use layout XML file to describe the grid (columns, tabs etc) and specify which object members are associated with those regions of the grid, then download the "normalized" version.  You can then remove the `@MemberGroupLayout` and `@MemberOrder` annotations from the source code of the domain class, but retain the `@ActionLayout`, `@PropertyLayout` and `@CollectionLayout` annotations.
+* if you want to use layout XML file to describe the grid (columns, tabs etc) and specify which object members are associated with those regions of the grid, then download the "normalized" version.
+You can then remove the `@MemberGroupLayout` and `@MemberOrder` annotations from the source code of the domain class, but retain the `@ActionLayout`, `@PropertyLayout` and `@CollectionLayout` annotations.
 
-* if you want to use layout XML file ONLY to describe the grid, then download the "minimal" version.  The grid regions will be empty in this version, and the framework will use the `@MemberOrder` annotation to bind object members to those regions.  The only annotation that can be safely removed from the source code with this style is the `@MemberGroupLayout` annotation.
+* if you want to use layout XML file ONLY to describe the grid, then download the "minimal" version.
+The grid regions will be empty in this version, and the framework will use the `@MemberOrder` annotation to bind object members to those regions.
+The only annotation that can be safely removed from the source code with this style is the `@MemberGroupLayout` annotation.
 
 
 Download either for a single domain object, or download all domain objects (entities and view models).
@@ -408,7 +421,8 @@ For more information about layouts, see:
 
 == Required updates to the dom project's pom.xml
 
-Any `.layout.xml` files must be compiled and available in the classpath.  Ensure the following is defined in the dom project's `pom.xml`:
+Any `.layout.xml` files must be compiled and available in the classpath.
+Ensure the following is defined in the dom project's `pom.xml`:
 
 [source.xml]
 ----
@@ -430,4 +444,4 @@ Any `.layout.xml` files must be compiled and available in the classpath.  Ensure
 </resources>
 ----
 
-If using an Apache Isis xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype], then the POM is already correctly configured.
+If using an Apache Isis xref:../ugfun/ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld] xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp] archetypes, then the POM is already correctly configured.

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.10.0-to-1.11.0.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.10.0-to-1.11.0.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.10.0-to-1.11.0.adoc
index 8b31d42..bc27945 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.10.0-to-1.11.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.10.0-to-1.11.0.adoc
@@ -5,22 +5,17 @@
 :_imagesdir: images/
 
 
-Existing projects written against v1.10.0 should run against v1.11.0 with few if any changes.  If you *do* encounter
-any difficulties then let us know via the xref:../support.adoc#[users mailing list], so we can support you and document
-issues here.
+Existing projects written against v1.10.0 should run against v1.11.0 with few if any changes.
+If you *do* encounter any difficulties then let us know via the xref:../support.adoc#[users mailing list], so we can support you and document issues here.
 
 
 
 == Swagger UI
 
-The new xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_metadata-api_SwaggerService[`SwaggerService`] allows link:http://swagger.io[Swagger] spec files
-to be generated from the Apache Isis metamodel.  These can be downloaded directly through the `SwaggerResource`
-(mapped to `/restful/swagger/public` and `/restful/swagger/private`) as well as from the Wicket UI through the
-`SwaggerServiceMenu`.
+The new xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_metadata-api_SwaggerService[`SwaggerService`] allows link:http://swagger.io[Swagger] spec files to be generated from the Apache Isis metamodel.
+These can be downloaded directly through the `SwaggerResource` (mapped to `/restful/swagger/public` and `/restful/swagger/private`) as well as from the Wicket UI through the `SwaggerServiceMenu`.
 
-In addition, the xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] now bundles
- link:https://github.com/swagger-api/swagger-ui[Swagger UI], which documents the main features of the REST API and
- allows it to be explored.
+In addition, the xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] now bundles link:https://github.com/swagger-api/swagger-ui[Swagger UI], which documents the main features of the REST API and allows it to be explored.
 
 To enable this in your application, first update the `web.xml`:
 
@@ -57,27 +52,24 @@ To enable this in your application, first update the `web.xml`:
 <2> issues a 401 status, but with the `WWW-Authenticate` challenge suppressed if requested from the Swagger UI
 <3> provides access to the RESTful resource that generates the Swagger spec.
 
-There is also an HTML page to load the Swagger UI itself; this resides in `src/main/webapp/swagger-ui/index.html`.  Copy the link:https://github.com/apache/isis/blob/master/example/application/simpleapp/webapp/src/main/webapp/swagger-ui/index.html[file from Apache Isis' repo], or from the app generated by the xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
+There is also an HTML page to load the Swagger UI itself; this resides in `src/main/webapp/swagger-ui/index.html`.
+Copy the link:https://github.com/apache/isis/blob/master/example/application/simpleapp/webapp/src/main/webapp/swagger-ui/index.html[file from Apache Isis' repo], or from the app generated by the xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
 
-The text of the simple app's `about/index.html` has also changed (the `<li`> for the `/restful` URL has been replaced with a `/swagger-ui` URL).  If you use link:https://github.com/apache/isis/blob/master/example/application/simpleapp/webapp/src/main/webapp/about/index.html[this file], then update it.
+The text of the simple app's `about/index.html` has also changed (the `<li`> for the `/restful` URL has been replaced with a `/swagger-ui` URL).
+If you use link:https://github.com/apache/isis/blob/master/example/application/simpleapp/webapp/src/main/webapp/about/index.html[this file], then update it.
 
-If your application is bootstrapped using an `AppManifest` (recommended;
-xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[here]) then the default implementation of the
-`SwaggerService` will automatically be discovered and registered.  However, if you are still using the older
-`isis.properties` configuration file to explicitly register services then you will need to add in this service.
+If your application is bootstrapped using an `AppManifest` (recommended; xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[here]) then the default implementation of the `SwaggerService` will automatically be discovered and registered.
+However, if you are still using the older `isis.properties` configuration file to explicitly register services then you will need to add in this service.
 
 
 
 == `RoutingService`
 
-The new xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_RoutingService[`RoutingService`] SPI service provides a plugin point to the
-xref:../guides/ugvw/ugvw.adoc#[Wicket viewer] so that a different object than that returned from an action invocation can be
-rendered.
+The new xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_RoutingService[`RoutingService`] SPI service provides a plugin point to the xref:../guides/ugvw/ugvw.adoc#[Wicket viewer] so that a different object than that returned from an action invocation can be rendered.
 
-The framework provides a default implementation of this service that will - instead of a void or a `null` result -
-render the home page (as per the xref:../guides/rgant/rgant.adoc#_rgant_HomePage[`@HomePage`] annotation) if there is one.  This
-is therefore a subtle change in the UI.  If you wish to retain the original behaviour (to return the "no results" page
-instead), then you should implement your own no-op implementation of this service:
+The framework provides a default implementation of this service that will - instead of a void or a `null` result - render the home page (as per the xref:../guides/rgant/rgant.adoc#_rgant_HomePage[`@HomePage`] annotation) if there is one.
+This is therefore a subtle change in the UI.
+If you wish to retain the original behaviour (to return the "no results" page instead), then you should implement your own no-op implementation of this service:
 
 [source,java]
 ----
@@ -92,11 +84,10 @@ public class IdentityRoutingService implements RoutingService {
 
 == Wicket Viewer i18n
 
-The xref:../guides/ugvw/ugvw.adoc#[Wicket viewer] (its labels, buttons, messages etc) can now be internationalized using the
-xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_TranslationService[`TranslationService`].
+The xref:../guides/ugvw/ugvw.adoc#[Wicket viewer] (its labels, buttons, messages etc) can now be internationalized using the xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_TranslationService[`TranslationService`].
 
-To enable this, new ``msgId``s and corresponding translations must be added to the `translations.po` file.  Full
-details of these ``msgId``s can be found in xref:../guides/ugbtb/ugbtb.adoc#__ugbtb_i18n_wicket-viewer[i18n] section of the "beyond the basics" guide.
+To enable this, new ``msgId``s and corresponding translations must be added to the `translations.po` file.
+Full details of these ``msgId``s can be found in xref:../guides/ugbtb/ugbtb.adoc#__ugbtb_i18n_wicket-viewer[i18n] section of the "beyond the basics" guide.
 
 If no translations are available, then the fallback is to use the previous mechanism, ie Wicket's original resource bundles.
 This feature can therefore be considered as optional.

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.11.0-to-1.12.0.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.11.0-to-1.12.0.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.11.0-to-1.12.0.adoc
index 787a16a..a172a9a 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.11.0-to-1.12.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.11.0-to-1.12.0.adoc
@@ -6,31 +6,25 @@
 
 
 
-Existing projects written against v1.11.x should run against v1.12.0 with few if any changes.  If you *do* encounter
-any difficulties then let us know via the xref:../support.adoc#[users mailing list], so we can support you and document
-issues here.
+Existing projects written against v1.11.x should run against v1.12.0 with few if any changes.
+If you *do* encounter any difficulties then let us know via the xref:../support.adoc#[users mailing list], so we can support you and document issues here.
 
 
 
 == Dynamic XML Layouts
 
-The major new feature in 1.12.0 is xref:../guides/ugvw/ugvw.adoc#_ugvw_layout_file-based[dynamic XML layouts], providing
-much enhanced support for custom layouts.
+The major new feature in 1.12.0 is xref:../guides/ugvw/ugvw.adoc#_ugvw_layout_file-based[dynamic XML layouts], providing much enhanced support for custom layouts.
 
-The new `Xxx.layout.xml` file is optional; without it domain objects will
-continue to be rendered as before, using metadata from annotations (xref:../guides/rgant/rgant.adoc#_rgant-DomainObjectLayout[`@DomainObjectLayout`],
-xref:../guides/rgant/rgant.adoc#_rgant-PropertyLayout[`@PropertyLayout`], xref:../guides/rgant/rgant.adoc#_rgant-CollectionLayout[`@CollectionLayout`],
-xref:../guides/rgant/rgant.adoc#_rgant-ActionLayout[`@ActionLayout`], xref:../guides/rgant/rgant.adoc#_rgant-MemberOrder[`@MemberOrder`] and
-xref:../guides/rgant/rgant.adoc#_rgant-MemberGroupLayout[`@MemberGroupLayout`]), and also from any xref:../guides/ugvw/ugvw.adoc#_ugvw_layout_file-based[`Xxx.layout.json`]
-file that might already exist.  There is therefore no requirement to move to the new more flexible XML-based layout.
+The new `Xxx.layout.xml` file is optional; without it domain objects will continue to be rendered as before, using metadata from annotations (xref:../guides/rgant/rgant.adoc#_rgant-DomainObjectLayout[`@DomainObjectLayout`], xref:../guides/rgant/rgant.adoc#_rgant-PropertyLayout[`@PropertyLayout`], xref:../guides/rgant/rgant.adoc#_rgant-CollectionLayout[`@CollectionLayout`], xref:../guides/rgant/rgant.adoc#_rgant-ActionLayout[`@ActionLayout`], xref:../guides/rgant/rgant.adoc#_rgant-MemberOrder[`@MemberOrder`] and xref:../guides/rgant/rgant.adoc#_rgant-MemberGroupLayout[`@MemberGroupLayout`]), and also from any xref:../guides/ugvw/ugvw.adoc#_ugvw_layout_file-based[`Xxx.layout.json`] file that might already exist.
+There is therefore no requirement to move to the new more flexible XML-based layout.
 
-If you do want to start using the new format, then you will find that 1.12.0 provides a mixin action (available in
-prototype mode only) called "download XML layout".  This will allow you to download the current layout file for the
-object being rendered.  This can then be saved alongside the class' Java source file.  Once a `Xxx.layout.xml` file
-is present, any existing `Xxx.layout.json` file will be ignored; any annotations though will continue to be honoured.
+If you do want to start using the new format, then you will find that 1.12.0 provides a mixin action (available in prototype mode only) called "download XML layout".
+This will allow you to download the current layout file for the object being rendered.
+This can then be saved alongside the class' Java source file.
+Once a `Xxx.layout.xml` file is present, any existing `Xxx.layout.json` file will be ignored; any annotations though will continue to be honoured.
 
-If you wish to migrate all your domain objects to use XML layouts, this can be done using the "download layouts (XML)"
-(on the "Prototyping" menu), as a single zip file.  This can then be unzipped into the `src/main/java` directory.
+If you wish to migrate all your domain objects to use XML layouts, this can be done using the "download layouts (XML)" (on the "Prototyping" menu), as a single zip file.
+This can then be unzipped into the `src/main/java` directory.
 
 
 == Mixins
@@ -47,33 +41,26 @@ If you wish to migrate all your domain objects to use XML layouts, this can be d
 
 These are in addition to the xref:../guides/rgcms/rgcms.adoc#__rgcms_classes_mixins_Persistable_downloadJdoMetadata[download JDO metadata] mixin action (prototype mode) provided in earlier versions of the framework.
 
-The properties are grouped in a "metadata" fieldset, and the mixin actions associated with that fieldset.  If the
-domain object is a view model rather than an entity (that is, has no id or version) then the actions will instead be rendered
-as top-level actions.
+The properties are grouped in a "metadata" fieldset, and the mixin actions associated with that fieldset.
+If the domain object is a view model rather than an entity (that is, has no id or version) then the actions will instead be rendered as top-level actions.
 
-Most of these mixin object members are visible only in prototype mode, though some are visible in production mode and
-so potentially visible to end-users.  If you wish to suppress these members from the view, you can either use xref:../guides/ugsec/ugsec.adoc#[security],
-or alternatively you can write xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_super_AbstractSubscriber[subscriber]s to veto the visibility
-of these members by subscribing to their respective domain events.
+Most of these mixin object members are visible only in prototype mode, though some are visible in production mode and so potentially visible to end-users.
+If you wish to suppress these members from the view, you can either use xref:../guides/ugsec/ugsec.adoc#[security], or alternatively you can write xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_super_AbstractSubscriber[subscriber]s to veto the visibility of these members by subscribing to their respective domain events.
 
 
 
 == JAXB view models are editable
 
-All xref:../guides/rgant/rgant.adoc#_rgant-XmlRootElement[`@XmlRootElement`] view models are now implicitly editable.  Therefore any
-view models that should be read-only should have editing attribute disabled using xref:../guides/rgant/rgant.adoc#_rgant-DomainObject_editing[`@DomainObject#editing()`] (or use a xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_super_AbstractSubscriber[subscriber] to veto editability).
-
+All xref:../guides/rgant/rgant.adoc#_rgant-XmlRootElement[`@XmlRootElement`] view models are now implicitly editable.
+Therefore any view models that should be read-only should have editing attribute disabled using xref:../guides/rgant/rgant.adoc#_rgant-DomainObject_editing[`@DomainObject#editing()`] (or use a xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_super_AbstractSubscriber[subscriber] to veto editability).
 
 
 == `DomainObjectContainer` domain service
 
-The xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]domain service has been deprecated, with
-its methods moved to a new set of more fine-grained domain services, such as
-xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`] and
+The xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]domain service has been deprecated, with its methods moved to a new set of more fine-grained domain services, such as xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`] and
 xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_MessageService[`MessageService`].
 
-The `DomainObjectContainer` service will continue to be supported until Apache Isis v2.0.0, but in the meantime, consider
-changing existing application code to use these new domain services.
+The `DomainObjectContainer` service will continue to be supported until Apache Isis v2.0.0, but in the meantime, consider changing existing application code to use these new domain services.
 
 Please note that when migrating from _rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer#persist()`] to xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService#persist()`], no exception will be thrown if the Domain Object is already persisted, so the behavior of xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService#persist()`] will be the same as that of xref:rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer#persistIfNotAlready()`].
 
@@ -82,18 +69,14 @@ Please note that when migrating from _rgsvc_core-domain-api_DomainObjectContaine
 == Removal of the `self-host` profile
 
 The `self-host` profile has been removed from the xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
-Instead, run the application using either the `org.apache.isis.WebServer` main class, or `mvn jetty:run`, or build the
-WAR and deploy to a servlet container such as Tomcat.
+Instead, run the application using either the `org.apache.isis.WebServer` main class, or `mvn jetty:run`, or build the WAR and deploy to a servlet container such as Tomcat.
 
 
 
 
 == `isis.viewer.wicket.disableModalDialogs` removed
 
-The Apache Isis Wicket viewer uses a modal dialog for action parameters.  Before this feature was implemented (prior
-to 1.4.0), action parameters were rendered on their own page.  This property was provided to re-enable the old
-behaviour.
+The Apache Isis Wicket viewer uses a modal dialog for action parameters.  Before this feature was implemented (prior to 1.4.0), action parameters were rendered on their own page.  This property was provided to re-enable the old behaviour.
 
-The property has now been removed and this feature removed; actions parameters are always now always shown in a
- modal dialog.
+The property has now been removed and this feature removed; actions parameters are always now always shown in a modal dialog.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_bootstrapping-using-AppManifest.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_bootstrapping-using-AppManifest.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_bootstrapping-using-AppManifest.adoc
index 65ccd9d..2f8e642 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_bootstrapping-using-AppManifest.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_bootstrapping-using-AppManifest.adoc
@@ -8,7 +8,8 @@
 
 Apache Isis 1.9.0 provides a simplified programmatic way of bootstrapping the application, that also unifies bootstrapping for integration tests.
 
-For now this new bootstrapping mechanism is optional (you don't have to change your code), but it may become mandatory in future releases.  The xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] has been updated to use this new mechanism.
+For now this new bootstrapping mechanism is optional (you don't have to change your code), but it may become mandatory in future releases.
+The xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] has been updated to use this new mechanism.
 
 The instructions below assume that your application is structured as per the simpleapp archetype.  Adjust accordingly.
 
@@ -16,7 +17,8 @@ The instructions below assume that your application is structured as per the sim
 
 == `myapp-dom` Module
 
-In your `myapp-dom` module (containing definitions of your persistent entities and domain services), create an empty class to represent the module.  This should be at the root package for the domain, eg:
+In your `myapp-dom` module (containing definitions of your persistent entities and domain services), create an empty class to represent the module.
+This should be at the root package for the domain, eg:
 
 [source,java]
 ----
@@ -80,7 +82,8 @@ Since `myapp-fixture` will reference `myapp-dom` there's no need for a direct re
 </dependency>
 ----
 
-* if your application uses any of the (non-ASF) link:http://www.isisaddons.org[Isis Addons] modules, then add dependencies to these modules in the `pom.xml`.  You should be able to copy-and-paste the dependencies from the `pom.xml` of your `myapp-webapp` module.
+* if your application uses any of the (non-ASF) link:http://www.isisaddons.org[Isis Addons] modules, then add dependencies to these modules in the `pom.xml`.
+You should be able to copy-and-paste the dependencies from the `pom.xml` of your `myapp-webapp` module.
 
 Create a module class for the `myapp` module also:
 
@@ -118,7 +121,8 @@ public class MyAppAppManifest implements AppManifest {
     public Map<String, String> getConfigurationProperties() { return null; }
 }
 ----
-<1> the module classes, whose packages specify the existence of domain services and/or persistent entities.  If your app uses (non-ASF) link:http://www.isisaddons.org[Isis Addons] modules, then include the module classes for these addons in `getModules()`.   For example, the (non-ASF) http://github.com/isisaddons/isis-module-security[Isis addons' security] module provides the `org.isisaddons.module.security.SecurityModule` class.
+<1> the module classes, whose packages specify the existence of domain services and/or persistent entities.  If your app uses (non-ASF) link:http://www.isisaddons.org[Isis Addons] modules, then include the module classes for these addons in `getModules()`.
+For example, the (non-ASF) http://github.com/isisaddons/isis-module-security[Isis addons' security] module provides the `org.isisaddons.module.security.SecurityModule` class.
 <2> any additional services, as per `isis.services` configuration property.
 
 
@@ -128,7 +132,8 @@ For details of the usages of the other methods in this interface, see the xref:.
 ====
 
 
-If in your `myapp-dom` module you have application-level services and view models (services that depend on persistent domain entities but not the other way around), then we recommend that you move this code to the new `myapp-app` module.  This makes the layering clearer, and avoids circular dependencies between  application-layer vs domain-layer logic.
+If in your `myapp-dom` module you have application-level services and view models (services that depend on persistent domain entities but not the other way around), then we recommend that you move this code to the new `myapp-app` module.
+This makes the layering clearer, and avoids circular dependencies between  application-layer vs domain-layer logic.
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ddf0cc50/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_upgrading-to-dn4.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_upgrading-to-dn4.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_upgrading-to-dn4.adoc
index 4252a6a..79daf9b 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_upgrading-to-dn4.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_upgrading-to-dn4.adoc
@@ -204,14 +204,18 @@ isis.persistor.datanucleus.impl.datanucleus.schema.validateConstraints=true
 
 [NOTE]
 ====
-Previously Apache Isis would automatically add the auto-create property if they were absent from `isis.properties`, set to "true".  The framework does still add the property, but now sets it to "false".  This is to prevent the framework from unexpectedly modifying a target database if the application was misconfigured and the auto-create property not defined.
+Previously Apache Isis would automatically add the auto-create property if they were absent from `isis.properties`, set to "true".
+The framework does still add the property, but now sets it to "false".
+This is to prevent the framework from unexpectedly modifying a target database if the application was misconfigured and the auto-create property not defined.
 
-The framework will also automatically add the auto-validate property.  Previously this was set to "true" and it is _still_ set to "true"; there is no risk of the target database being modified as a result of this auto-validate property being defaulted by the framework.
+The framework will also automatically add the auto-validate property.
+Previously this was set to "true" and it is _still_ set to "true"; there is no risk of the target database being modified as a result of this auto-validate property being defaulted by the framework.
 ====
 
 [IMPORTANT]
 ====
-Setting `autoCreateAll` to `true` is important to do when running with an in-memory database.  If you don't do this then the tables will be created lazily anyway by DataNucleus, but in some circumstances this can lead to deadlocks.
+Setting `autoCreateAll` to `true` is important to do when running with an in-memory database.
+If you don't do this then the tables will be created lazily anyway by DataNucleus, but in some circumstances this can lead to deadlocks.
 ====
 
 
@@ -233,7 +237,10 @@ isis.persistor.datanucleus.impl.datanucleus.identifier.case=MixedCase
 
 == Run `mvn clean` !
 
-Be careful to ensure that your classes are only enhanced by the DataNucleus 4 enhancer, and _not_ by the DataNucleus 3 enhancer.  Or even, be careful that they are not doubly enhanced.  One of our committers had this situation and it led to all sorts of bizarre issues.  The solution, it turned out, was actually just to do a full `mvn clean`.
+Be careful to ensure that your classes are only enhanced by the DataNucleus 4 enhancer, and _not_ by the DataNucleus 3 enhancer.
+Or even, be careful that they are not doubly enhanced.
+One of our committers had this situation and it led to all sorts of bizarre issues.
+The solution, it turned out, was actually just to do a full `mvn clean`.
 
 If you are struggling and suspect you may have misconfigured the enhancer plugin, then you can decompile the bytecode (eg in IntelliJ) and take a look: