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

[1/9] isis git commit: Fix links to jmock and junit templates

Repository: isis
Updated Branches:
  refs/heads/master b7b43693a -> 4111aac65


Fix links to jmock and junit templates


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

Branch: refs/heads/master
Commit: ebc9fed494b08d0e5fbc0aedb1bf1c93170db396
Parents: b7b4369
Author: Jeroen van der Wal <je...@stromboli.it>
Authored: Wed Jul 8 11:06:15 2015 +0200
Committer: Jeroen van der Wal <je...@stromboli.it>
Committed: Wed Jul 8 11:06:15 2015 +0200

----------------------------------------------------------------------
 .../src/main/asciidoc/editor-templates.adoc             | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/ebc9fed4/adocs/documentation/src/main/asciidoc/editor-templates.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/editor-templates.adoc b/adocs/documentation/src/main/asciidoc/editor-templates.adoc
index da0189d..62a08ec 100644
--- a/adocs/documentation/src/main/asciidoc/editor-templates.adoc
+++ b/adocs/documentation/src/main/asciidoc/editor-templates.adoc
@@ -31,14 +31,14 @@ The following table lists the templates to download
 
 |JUnit tests
 |ju
-|link:./resources/templates/junit-templates-idea.xml[Download]
-|link:./resources/templates/junit-templates.xml[Download]
+|link:./resources/templates/junit4-templates-idea.xml[Download]
+|link:./resources/templates/junit4-templates.xml[Download]
 
 
 |JMock tests
-|<tt>jm
-|link:./resources/templates/jmock-templates-idea.xml[Download]
-|link:./resources/templates/jmock-templates.xml[Download]
+|jm
+|link:./resources/templates/jmock2-templates-idea.xml[Download]
+|link:./resources/templates/jmock2-templates.xml[Download]
 
 |===
 
@@ -64,8 +64,6 @@ To install in Eclipse, go to `Windows > Preferences > Java > Editor > Templates`
 
 
 
-
-
 == Usage
 
 Enter the prefix (`is`, `ju`, `jm`) and the IDE will list all available templates in that category.  


[5/9] isis git commit: ISIS-1133: added blurb to user guide, ref guide, dev guide. Moved runtime config section from ug to rg. Also...

Posted by da...@apache.org.
ISIS-1133: added blurb to user guide, ref guide, dev guide.  Moved runtime config section from ug to rg.  Also...

... added material on deployment types and org.apache.isis.WebServer.


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

Branch: refs/heads/master
Commit: 7db023933ec06c9bc881d3d09cddfd7e0a3dadf6
Parents: 8de955d
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jul 9 11:13:41 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jul 9 11:29:56 2015 +0100

----------------------------------------------------------------------
 ...tes_1.8.0-to-1.9.0_exception-recognizer.adoc |   2 +-
 .../_rg_annotations_manpage-ActionLayout.adoc   |   2 +-
 ...notations_manpage-ActionLayout_cssClass.adoc |   2 +-
 .../_rg_annotations_manpage-Action_command.adoc |   2 +-
 ...g_annotations_manpage-Action_publishing.adoc |   2 +-
 ...g_annotations_manpage-Action_restrictTo.adoc |   2 +-
 ...rg_annotations_manpage-CollectionLayout.adoc |   2 +-
 ...tions_manpage-CollectionLayout_cssClass.adoc |   2 +-
 ...otations_manpage-CollectionLayout_paged.adoc |   2 +-
 ..._annotations_manpage-Collection_editing.adoc |   2 +-
 ..._annotations_manpage-DomainObjectLayout.adoc |   2 +-
 ...ons_manpage-DomainObjectLayout_cssClass.adoc |   2 +-
 ...ations_manpage-DomainObjectLayout_paged.adoc |   2 +-
 ...notations_manpage-DomainObject_auditing.adoc |   2 +-
 ...nnotations_manpage-DomainObject_editing.adoc |   2 +-
 ...tations_manpage-DomainObject_publishing.adoc |   2 +-
 ..._rg_annotations_manpage-ParameterLayout.adoc |   2 +-
 ...ations_manpage-ParameterLayout_cssClass.adoc |   2 +-
 .../_rg_annotations_manpage-PostConstruct.adoc  |   2 +-
 .../_rg_annotations_manpage-PropertyLayout.adoc |   4 +-
 ...tations_manpage-PropertyLayout_cssClass.adoc |   2 +-
 ...ns_manpage-PropertyLayout_labelPosition.adoc |   2 +-
 ...rg_annotations_manpage-Property_editing.adoc |   2 +-
 ..._rg_annotations_manpage-ViewModelLayout.adoc |   2 +-
 ...ations_manpage-ViewModelLayout_cssClass.adoc |   2 +-
 ...notations_manpage-ViewModelLayout_paged.adoc |   2 +-
 .../asciidoc/guides/_rg_methods_reserved.adoc   |   2 +-
 .../_rg_methods_reserved_manpage-cssClass.adoc  |   4 +-
 .../src/main/asciidoc/guides/_rg_runtime.adoc   |  29 ++
 .../_rg_runtime_application-specific.adoc       |  13 +
 ...me_application-specific_application-css.adoc |   8 +
 ...ime_application-specific_application-js.adoc |   9 +
 .../guides/_rg_runtime_configuration-files.adoc |  40 +++
 .../guides/_rg_runtime_configuring-core.adoc    | 273 +++++++++++++++++++
 .../_rg_runtime_configuring-datanucleus.adoc    |  18 ++
 ...s_disabling-persistence-by-reachability.adoc |  88 ++++++
 ...atanucleus_eagerly-registering-entities.adoc |  44 +++
 ...configuring-datanucleus_persistence-xml.adoc |  10 +
 ...time_configuring-datanucleus_properties.adoc |  64 +++++
 ...ring-datanucleus_using-jndi-data-source.adoc |  75 +++++
 .../guides/_rg_runtime_deployment-types.adoc    | 111 ++++++++
 .../_rg_runtime_specifying-components.adoc      |  72 +++++
 .../asciidoc/guides/_rg_runtime_web-xml.adoc    |  43 +++
 .../_rg_services-api_manpage-ClockService.adoc  |   4 +-
 ..._rg_services-api_manpage-CommandContext.adoc |   2 +-
 ...nObjectContainer_object-persistence-api.adoc |   2 +-
 ...ge-DomainObjectContainer_properties-api.adoc |   2 +-
 .../_rg_services-api_manpage-EmailService.adoc  |   2 +-
 ...rg_services-api_manpage-EventBusService.adoc |   2 +-
 ...s-spi_manpage-ContentNegotiationService.adoc |   4 +-
 ...ervices-spi_manpage-ExceptionRecognizer.adoc |   2 +-
 ...ces-spi_manpage-UserRegistrationService.adoc |   2 +-
 ...oncepts_philosophy_domain-driven-design.adoc |   2 -
 .../guides/_ug_deployment_cmd-line.adoc         | 114 +++++++-
 ...g_deployment_externalized-configuration.adoc |   2 +-
 .../asciidoc/guides/_ug_deployment_tomcat.adoc  |   2 +-
 ...g_how-tos_ui-hints_action-icons-and-css.adoc |   4 +-
 ..._ug_more-advanced_decoupling_db-schemas.adoc |   2 +-
 .../asciidoc/guides/_ug_more-advanced_i18n.adoc |   4 +-
 .../_ug_restfulobjects-viewer_features.adoc     |   2 +-
 .../src/main/asciidoc/guides/_ug_runtime.adoc   |  29 --
 .../_ug_runtime_application-specific.adoc       |  13 -
 ...me_application-specific_application-css.adoc |   8 -
 ...ime_application-specific_application-js.adoc |   9 -
 .../guides/_ug_runtime_configuration-files.adoc |  40 ---
 .../guides/_ug_runtime_configuring-core.adoc    | 273 -------------------
 .../_ug_runtime_configuring-datanucleus.adoc    |  18 --
 ...s_disabling-persistence-by-reachability.adoc |  88 ------
 ...atanucleus_eagerly-registering-entities.adoc |  44 ---
 ...configuring-datanucleus_persistence-xml.adoc |  10 -
 ...time_configuring-datanucleus_properties.adoc |  64 -----
 ...ring-datanucleus_using-jndi-data-source.adoc |  75 -----
 .../guides/_ug_runtime_deployment-types.adoc    |  17 --
 .../_ug_runtime_specifying-components.adoc      |  72 -----
 .../asciidoc/guides/_ug_runtime_web-xml.adoc    |  35 ---
 .../_ug_security_usage-by-isis-viewers.adoc     |   2 +-
 ..._wicket-viewer_customisation_brand-logo.adoc |   2 +-
 ...ewer_customisation_tweaking-css-classes.adoc |   4 +-
 .../guides/_ug_wicket-viewer_layout.adoc        |   2 +-
 .../src/main/asciidoc/guides/dg.adoc            |   9 +-
 .../src/main/asciidoc/guides/rg.adoc            |  13 +
 .../src/main/asciidoc/guides/ug.adoc            |  13 +-
 .../src/main/asciidoc/support.adoc              |   2 +-
 83 files changed, 1090 insertions(+), 863 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/_migration-notes_1.8.0-to-1.9.0_exception-recognizer.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/_migration-notes_1.8.0-to-1.9.0_exception-recognizer.adoc b/adocs/documentation/src/main/asciidoc/_migration-notes_1.8.0-to-1.9.0_exception-recognizer.adoc
index be4bd28..4f4a0cd 100644
--- a/adocs/documentation/src/main/asciidoc/_migration-notes_1.8.0-to-1.9.0_exception-recognizer.adoc
+++ b/adocs/documentation/src/main/asciidoc/_migration-notes_1.8.0-to-1.9.0_exception-recognizer.adoc
@@ -42,7 +42,7 @@ public class EstatioIntegTestBuilder extends IsisSystemForTest.Builder {
 
 If you fail to do this you will get an exception to the effect of duplicate service Ids being registered.
 
-Now that the `ExceptionRecognizerCompositeForJdoObjectStore` no longer needs to be explicitly registered, you might (very rarely) require the opposite situation, namely to disable the service.  As this can't be done by just removing it from `isis.poperties`, you instead can set a new xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.services.ExceptionRecognizerCompositeForJdoObjectStore.disable`:
+Now that the `ExceptionRecognizerCompositeForJdoObjectStore` no longer needs to be explicitly registered, you might (very rarely) require the opposite situation, namely to disable the service.  As this can't be done by just removing it from `isis.poperties`, you instead can set a new xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.services.ExceptionRecognizerCompositeForJdoObjectStore.disable`:
 
 [source,ini]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ActionLayout.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ActionLayout.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ActionLayout.adoc
index bac249d..060daef 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ActionLayout.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ActionLayout.adoc
@@ -34,7 +34,7 @@ For a domain service action to be contributed, the domain services must have a x
 
 |xref:rg.adoc#_rg_annotations_manpage-ActionLayout_cssClass[`cssClass()`]
 |Any string valid as a CSS class
-|an additional CSS class around the HTML that represents for the action, to allow targetted styling in xref:ug.adoc#_ug_runtime_application-specific_application-css[`application.css`]. +
+|an additional CSS class around the HTML that represents for the action, to allow targetted styling in xref:rg.adoc#_rg_runtime_application-specific_application-css[`application.css`]. +
 
 Supported by the xref:ug.adoc#_ug_wicket-viewer[Wicket viewer] but currently ignored by the xref:ug.adoc#_ug_restfulobjects-viewer[RestfulObjects viewer].
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ActionLayout_cssClass.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ActionLayout_cssClass.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ActionLayout_cssClass.adoc
index 58f7fc5..488afdc 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ActionLayout_cssClass.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ActionLayout_cssClass.adoc
@@ -6,7 +6,7 @@
 
 
 
-The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the action.   xref:ug.adoc#_ug_runtime_application-specific_application-css[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
+The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the action.   xref:rg.adoc#_rg_runtime_application-specific_application-css[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
 
 This attribute can also be applied to xref:rg.adoc#_rg_annotations_manpage-DomainObjectLayout_cssClass[domain objects], xref:rg.adoc#_rg_annotations_manpage-ViewModelLayout_cssClass[view models],  xref:rg.adoc#_rg_annotations_manpage-PropertyLayout_cssClass[properties],  xref:rg.adoc#_rg_annotations_manpage-CollectionLayout_cssClass[collections] and xref:rg.adoc#_rg_annotations_manpage-ParameterLayout_cssClass[parameters].
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_command.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_command.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_command.adoc
index b17e9f1..4fa39a2 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_command.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_command.adoc
@@ -30,7 +30,7 @@ If background ``Command``s are used, then an external scheduler, using xref:ug.a
 
 The `command()` attribute determines whether the action invocation should be reified into a `Command` object (by the xref:rg.adoc#_rg_services-api_manpage-CommandContext[`CommandContext`] service).
 
-The default is `AS_CONFIGURED`, meaning that the xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.services.command.actions` is used to determine the whether the action is reified:
+The default is `AS_CONFIGURED`, meaning that the xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.services.command.actions` is used to determine the whether the action is reified:
 
 * `all` +
 +

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_publishing.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_publishing.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_publishing.adoc
index 62119db..655616a 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_publishing.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_publishing.adoc
@@ -10,7 +10,7 @@
 The `publishing()` attribute determines whether and how an action invocation is published via the registered implementation of a xref:rg.adoc#_rg_services-spi_manpage-PublishingService[`PublishingService`]).  This attribute is also supported for xref:rg.adoc#_rg_annotations_manpage-DomainObject_publishing[domain objects], where it controls whether changed objects are published as events.
 
 A common use case is to notify external "downstream" systems of changes in the state of the Isis application.
-The default value for the attribute is `AS_CONFIGURED`, meaning that the xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.services.publish.actions` is used to determine the whether the action is published:
+The default value for the attribute is `AS_CONFIGURED`, meaning that the xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.services.publish.actions` is used to determine the whether the action is published:
 
 * `all` +
 +

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_restrictTo.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_restrictTo.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_restrictTo.adoc
index d526762..b889e81 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_restrictTo.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_restrictTo.adoc
@@ -7,7 +7,7 @@
 
 
 
-By default actions are available irrespective of the xref:ug.adoc#_ug_runtime_deployment-types[deployment mode].  The `restrictTo()` attribute specifies whether the action should instead be restricted to only available in prototyping mode.
+By default actions are available irrespective of the xref:rg.adoc#_rg_runtime_deployment-types[deployment mode].  The `restrictTo()` attribute specifies whether the action should instead be restricted to only available in prototyping mode.
 
 For example:
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout.adoc
index 1e4988c..e1d0d27 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout.adoc
@@ -21,7 +21,7 @@ The table below summarizes the annotation's attributes.
 
 |xref:rg.adoc#_rg_annotations_manpage-CollectionLayout_cssClass[`cssClass()`]
 |Any string valid as a CSS class
-|the css class that a collection should have, to allow more targetted styling in xref:ug.adoc#_ug_runtime_application-specific_application-css[`application.css`]
+|the css class that a collection should have, to allow more targetted styling in xref:rg.adoc#_rg_runtime_application-specific_application-css[`application.css`]
 
 
 |xref:rg.adoc#_rg_annotations_manpage-CollectionLayout_describedAs[`describedAs()`]

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout_cssClass.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout_cssClass.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout_cssClass.adoc
index fdef77e..81bc0a7 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout_cssClass.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout_cssClass.adoc
@@ -5,7 +5,7 @@
 :_imagesdir: images/
 
 
-The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the collection.   xref:ug.adoc#_ug_runtime_application-specific_application-css[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
+The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the collection.   xref:rg.adoc#_rg_runtime_application-specific_application-css[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
 
 This attribute can also be applied to xref:rg.adoc#_rg_annotations_manpage-DomainObjectLayout_cssClass[domain objects], xref:rg.adoc#_rg_annotations_manpage-ViewModelLayout_cssClass[view models], xref:rg.adoc#_rg_annotations_manpage-ActionLayout_cssClass[actions], xref:rg.adoc#_rg_annotations_manpage-PropertyLayout_cssClass[properties] and xref:rg.adoc#_rg_annotations_manpage-ParameterLayout_cssClass[parameters].
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout_paged.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout_paged.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout_paged.adoc
index 0b71332..481286b 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout_paged.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout_paged.adoc
@@ -27,7 +27,7 @@ public class Order {
 ----
 
 
-It is also possible to specify a global default for the page size of standalone collections, using the xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.viewer.paged.parented`.
+It is also possible to specify a global default for the page size of standalone collections, using the xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.viewer.paged.parented`.
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection_editing.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection_editing.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection_editing.adoc
index b379154..fc1dfac 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection_editing.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection_editing.adoc
@@ -21,7 +21,7 @@ Whether a collection is enabled or disabled depends upon these factors:
 
 * whether the domain object has been configured as immutable through the xref:rg.adoc#_rg_annotations_manpage-DomainObject_editing[`@DomainObject#editing()`] attribute
 
-* else (that is, if the domain object's editability is specified as being `AS_CONFIGURED`), then the value of the xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.objects.editing`.  If set to `false`, then the object's collections (and properties) are *not* editable
+* else (that is, if the domain object's editability is specified as being `AS_CONFIGURED`), then the value of the xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.objects.editing`.  If set to `false`, then the object's collections (and properties) are *not* editable
 
 * else, then the value of the `@Collection(editing=...)` attribute itself.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout.adoc
index cf27ca8..e9cd15d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout.adoc
@@ -34,7 +34,7 @@ The table below summarizes the annotation's attributes.
 
 |xref:rg.adoc#_rg_annotations_manpage-DomainObjectLayout_cssclass[`cssClass()`]
 |Any string valid as a CSS class
-|the css class that a domain class (type) should have, to allow more targetted styling in xref:ug.adoc#_ug_runtime_application-specific_application-css[`application.css`]
+|the css class that a domain class (type) should have, to allow more targetted styling in xref:rg.adoc#_rg_runtime_application-specific_application-css[`application.css`]
 
 
 |xref:rg.adoc#_rg_annotations_manpage-DomainObjectLayout_cssClassFa[`cssClassFa()`]

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout_cssClass.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout_cssClass.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout_cssClass.adoc
index ddd84c9..81b8f1c 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout_cssClass.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout_cssClass.adoc
@@ -6,7 +6,7 @@
 
 
 
-The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the domain object.   xref:ug.adoc#_ug_runtime_application-specific_application-css[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
+The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the domain object.   xref:rg.adoc#_rg_runtime_application-specific_application-css[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
 
 This attribute can also be applied to xref:rg.adoc#_rg_annotations_manpage-DomainObjectLayout_cssClass[domain objects], xref:rg.adoc#_rg_annotations_manpage-ViewModelLayout_cssClass[view models], xref:rg.adoc#_rg_annotations_manpage-ActionLayout_cssClass[actions] xref:rg.adoc#_rg_annotations_manpage-PropertyLayout_cssClass[properties],  xref:rg.adoc#_rg_annotations_manpage-CollectionLayout_cssClass[collections] and xref:rg.adoc#_rg_annotations_manpage-ParameterLayout_cssClass[parameters].
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout_paged.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout_paged.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout_paged.adoc
index 6963603..403dec7 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout_paged.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObjectLayout_paged.adoc
@@ -28,6 +28,6 @@ public class Order {
 ----
 
 
-It is also possible to specify a global default for the page size of standalone collections, using the xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.viewer.paged.standalone`.
+It is also possible to specify a global default for the page size of standalone collections, using the xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.viewer.paged.standalone`.
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_auditing.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_auditing.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_auditing.adoc
index 29adddc..60182ac 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_auditing.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_auditing.adoc
@@ -7,7 +7,7 @@
 
 The `auditing()` attribute indicates that if the object is modified, then each of its changed properties should be submitted to the xref:rg.adoc#_rg_services-spi_manpage-AuditingService[`AuditingService`], if one has been configured.
 
-The default value for the attribute is `AS_CONFIGURED`, meaning that the xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.services.audit.objects` is used to determine the whether the action is published:
+The default value for the attribute is `AS_CONFIGURED`, meaning that the xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.services.audit.objects` is used to determine the whether the action is published:
 
 * `all` +
 +

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_editing.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_editing.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_editing.adoc
index 6e8d5cd..d25be3c 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_editing.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_editing.adoc
@@ -8,7 +8,7 @@
 
 The `editing()` attribute determines whether a domain object's properties and collections are not editable (are read-only).
 
-The default is `AS_CONFIGURED`, meaning that the xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.objects.editing` is used to determine the whether the object is modifiable:
+The default is `AS_CONFIGURED`, meaning that the xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.objects.editing` is used to determine the whether the object is modifiable:
 
 * `true` +
 +

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_publishing.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_publishing.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_publishing.adoc
index 4672235..475d772 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_publishing.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-DomainObject_publishing.adoc
@@ -10,7 +10,7 @@ The `publishing()` attribute determines whether and how a modified object instan
 
 A common use case is to notify external "downstream" systems of changes in the state of the Isis application.
 
-The default value for the attribute is `AS_CONFIGURED`, meaning that the xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.services.publish.objects` is used to determine the whether the action is published:
+The default value for the attribute is `AS_CONFIGURED`, meaning that the xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.services.publish.objects` is used to determine the whether the action is published:
 
 * `all` +
 +

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ParameterLayout.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ParameterLayout.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ParameterLayout.adoc
index 82981b1..fc1ab78 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ParameterLayout.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ParameterLayout.adoc
@@ -21,7 +21,7 @@ The table below summarizes the annotation's attributes.
 
 |xref:rg.adoc#_rg_annotations_manpage-ParameterLayout_cssClass[`cssClass()`]
 |Any string valid as a CSS class
-|the css class that a parameter should have, to allow more targetted styling in xref:ug.adoc#_ug_runtime_application-specific_application-css[`application.css`]
+|the css class that a parameter should have, to allow more targetted styling in xref:rg.adoc#_rg_runtime_application-specific_application-css[`application.css`]
 
 
 |xref:rg.adoc#_rg_annotations_manpage-ParameterLayout_describedAs[`describedAs()`]

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ParameterLayout_cssClass.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ParameterLayout_cssClass.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ParameterLayout_cssClass.adoc
index e4a70dd..8edfbf1 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ParameterLayout_cssClass.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ParameterLayout_cssClass.adoc
@@ -7,7 +7,7 @@
 
 
 
-The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the action parameter.   xref:ug.adoc#_ug_runtime_application-specific_application-css[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
+The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the action parameter.   xref:rg.adoc#_rg_runtime_application-specific_application-css[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
 
 This attribute can also be applied to xref:rg.adoc#_rg_annotations_manpage-DomainObjectLayout_cssClass[domain objects], xref:rg.adoc#_rg_annotations_manpage-ViewModelLayout_cssClass[view models], xref:rg.adoc#_rg_annotations_manpage-ActionLayout_cssClass[actions] xref:rg.adoc#_rg_annotations_manpage-PropertyLayout_cssClass[properties],  xref:rg.adoc#_rg_annotations_manpage-CollectionLayout_cssClass[collections] and xref:rg.adoc#_rg_annotations_manpage-ParameterLayout_cssClass[parameters].
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PostConstruct.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PostConstruct.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PostConstruct.adoc
index 8769f86..7f87464 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PostConstruct.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PostConstruct.adoc
@@ -27,7 +27,7 @@ In the form shown above the method can either accept no arguments.  Alternativel
 @Programmatic
 public void postConstruct(Map<String,String> properties) { ... }
 ----
-Isis uses argument to pass in the configuration properties read from all xref:ug.adoc#_ug_runtime_configuration-files[configuration files]:
+Isis uses argument to pass in the configuration properties read from all xref:rg.adoc#_rg_runtime_configuration-files[configuration files]:
 
 [TIP]
 ====

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout.adoc
index 66080ff..0904e6e 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout.adoc
@@ -21,7 +21,7 @@ The table below summarizes the annotation's attributes.
 
 |xref:rg.adoc#_rg_annotations_manpage-PropertyLayout_cssClass[`cssClass()`]
 |Any string valid as a CSS class
-|the css class that a property should have, to allow more targetted styling in xref:ug.adoc#_ug_runtime_application-specific_application-css[`application.css`]
+|the css class that a property should have, to allow more targetted styling in xref:rg.adoc#_rg_runtime_application-specific_application-css[`application.css`]
 
 
 |xref:rg.adoc#_rg_annotations_manpage-PropertyLayout_describedAs[`describedAs()`]
@@ -42,7 +42,7 @@ The table below summarizes the annotation's attributes.
 
 Defaults is `LEFT`, unless xref:rg.adoc#_rg_annotations_manpage-PropertyLayout_multiLine[`multiLine`] in which case `TOP`.  The value `RIGHT` is only supported for boolean properties. +
 
-It is also possible to change the default through a xref:ug.adoc#_ug_runtime_configuring-core_isis-viewers-propertyLayout-labelPosition[configuration property]
+It is also possible to change the default through a xref:rg.adoc#_rg_runtime_configuring-core_isis-viewers-propertyLayout-labelPosition[configuration property]
 
 
 |xref:rg.adoc#_rg_annotations_manpage-PropertyLayout_multiLine[`multiLine()`]

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout_cssClass.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout_cssClass.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout_cssClass.adoc
index 0b8181d..00ceb01 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout_cssClass.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout_cssClass.adoc
@@ -5,7 +5,7 @@
 :_imagesdir: images/
 
 
-The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the property.   xref:ug.adoc#_ug_runtime_application-specific_application-css[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
+The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the property.   xref:rg.adoc#_rg_runtime_application-specific_application-css[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
 
 This attribute can also be applied to xref:rg.adoc#_rg_annotations_manpage-DomainObjectLayout_cssClass[domain objects], xref:rg.adoc#_rg_annotations_manpage-ViewModelLayout_cssClass[view models], xref:rg.adoc#_rg_annotations_manpage-ActionLayout_cssClass[actions] xref:rg.adoc#_rg_annotations_manpage-CollectionLayout_cssClass[collections] and xref:rg.adoc#_rg_annotations_manpage-ParameterLayout_cssClass[parameters].
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout_labelPosition.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout_labelPosition.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout_labelPosition.adoc
index fb7d45c..a4edb7d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout_labelPosition.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout_labelPosition.adoc
@@ -77,7 +77,7 @@ can be used instead, eg:
 ====
 If you want a consistent look-n-feel throughout the app, eg all property labels to the top, then it'd be rather frustrating to have to annotate every property.
 
-Instead, a default can be specified using a xref:ug.adoc#_ug_runtime_configuring-core[configuration property] in `isis.properties`:
+Instead, a default can be specified using a xref:rg.adoc#_rg_runtime_configuring-core[configuration property] in `isis.properties`:
 
 [source,ini]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property_editing.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property_editing.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property_editing.adoc
index 41367a7..3efd879 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property_editing.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property_editing.adoc
@@ -13,7 +13,7 @@ Whether a property is enabled or disabled depends upon these factors:
 
 * whether the domain object has been configured as immutable through the xref:rg.adoc#_rg_annotations_manpage-DomainObject_editing[`@DomainObject#editing()`] attribute
 
-* else (that is, if the domain object's editability is specified as being `AS_CONFIGURED`), then the value of the xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.objects.editing`.  If set to `false`, then the object's properties (and collections) are _not_ editable
+* else (that is, if the domain object's editability is specified as being `AS_CONFIGURED`), then the value of the xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.objects.editing`.  If set to `false`, then the object's properties (and collections) are _not_ editable
 
 * else, then the value of the `@Property(editing=...)` attribute itself
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout.adoc
index 33f8922..262204f 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout.adoc
@@ -22,7 +22,7 @@ The table below summarizes the annotation's attributes.
 
 |xref:rg.adoc#_rg_annotations_manpage-ViewModelLayout_cssclass[`cssClass()`]
 |Any string valid as a CSS class
-|the css class that a domain class (type) should have, to allow more targetted styling in xref:ug.adoc#_ug_runtime_application-specific_application-css[`application.css`]
+|the css class that a domain class (type) should have, to allow more targetted styling in xref:rg.adoc#_rg_runtime_application-specific_application-css[`application.css`]
 
 
 |xref:rg.adoc#_rg_annotations_manpage-ViewModelLayout_cssClassFa[`cssClassFa()`]

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout_cssClass.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout_cssClass.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout_cssClass.adoc
index c2f1173..2d7f345 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout_cssClass.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout_cssClass.adoc
@@ -6,7 +6,7 @@
 
 
 
-The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the view model.   xref:ug.adoc#_ug_runtime_application-specific_application-css[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
+The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the view model.   xref:rg.adoc#_rg_runtime_application-specific_application-css[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
 
 This attribute can also be applied to xref:rg.adoc#_rg_annotations_manpage-DomainObjectLayout_cssClass[domain objects], xref:rg.adoc#_rg_annotations_manpage-ActionLayout_cssClass[actions] xref:rg.adoc#_rg_annotations_manpage-PropertyLayout_cssClass[properties],  xref:rg.adoc#_rg_annotations_manpage-CollectionLayout_cssClass[collections] and xref:rg.adoc#_rg_annotations_manpage-ParameterLayout_cssClass[parameters].
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout_paged.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout_paged.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout_paged.adoc
index a04a100..2fe361d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout_paged.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-ViewModelLayout_paged.adoc
@@ -29,6 +29,6 @@ public class OrderAnalysis {
 ----
 
 
-It is also possible to specify a global default for the page size of standalone collections, using the xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.viewer.paged.standalone`.
+It is also possible to specify a global default for the page size of standalone collections, using the xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.viewer.paged.standalone`.
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_methods_reserved.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_reserved.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_reserved.adoc
index 9416dd5..7d285c6 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_reserved.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_reserved.adoc
@@ -16,7 +16,7 @@ The table below lists the reserved methods that are recognized as part of Apache
 |Description
 
 |xref:rg.adoc#_rg_methods_reserved_manpage-cssClass[`cssClass()`]
-|Provides a CSS class for this object instance.  In conjunction with xref:ug.adoc#_ug_runtime_application-specific_application-css[`application.css`], can therefore provide custom styling of an object instance wherever it is rendered. +
+|Provides a CSS class for this object instance.  In conjunction with xref:rg.adoc#_rg_runtime_application-specific_application-css[`application.css`], can therefore provide custom styling of an object instance wherever it is rendered. +
 
 See also xref:rg.adoc#_rg_methods_reserved_manpage-title[`title()`] and xref:rg.adoc#_rg_methods_reserved_manpage-iconName[`iconName()`].
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_methods_reserved_manpage-cssClass.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_reserved_manpage-cssClass.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_reserved_manpage-cssClass.adoc
index b6a0c22..785ac57 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_reserved_manpage-cssClass.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_reserved_manpage-cssClass.adoc
@@ -10,7 +10,7 @@ The `cssClass()` returns a CSS class for a particular object instance.
 
 The xref:ug.adoc#_ug_wicket-viewer[Wicket viewer] wraps the object's representation in a containing `<div>` with the class added.  This is done both for rendering the object either in a table or when rendering the object on its own page.
 
-In conjunction with xref:ug.adoc#_ug_runtime_application-specific_application-css[`application.css`], can therefore provide custom styling of an object instance wherever it is rendered. +
+In conjunction with xref:rg.adoc#_rg_runtime_application-specific_application-css[`application.css`], can therefore provide custom styling of an object instance wherever it is rendered. +
 
 
 For example, the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] uses this technique to add a strikethrough for completed todo items.  This is shown on the home page:
@@ -30,7 +30,7 @@ public class ToDoItem ... {
 }
 ----
 
-In the xref:ug.adoc#_ug_runtime_application-specific_application-css[application.css], the following styles were then added:
+In the xref:rg.adoc#_rg_runtime_application-specific_application-css[application.css], the following styles were then added:
 
 [source,css]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime.adoc
new file mode 100644
index 0000000..255287c
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime.adoc
@@ -0,0 +1,29 @@
+[[_rg_runtime]]
+= Runtime Configuration
+: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/
+
+
+Isis' own configuration properties are simple key-value pairs, typically held in the `WEBINF/isis.properties` file and other related files.  This chapter describes how to configure an Apache Isis application.
+
+[NOTE]
+====
+Configuration properties for the viewers can be found in the xref:ug.adoc#_ug_wicket-viewer[Wicket Viewer] chapter and the xref:ug.adoc#_ug_restfulobjects-viewer[RestfulObjects viewer] chapter.  Likewise[details of configuring security (Apache Shiro) can be found in the xref:ug.adoc#_ug_security[Security] chapter.
+
+Also, note that by default the configuration values are part of the built WAR file.  Details on how to override these configuration properties externally for different environments can be found in the xref:ug.adoc#_ug_deployment[Deployment] chapter.
+====
+
+
+include::_rg_runtime_deployment-types.adoc[leveloffset=+1]
+include::_rg_runtime_configuration-files.adoc[leveloffset=+1]
+include::_rg_runtime_specifying-components.adoc[leveloffset=+1]
+include::_rg_runtime_configuring-core.adoc[leveloffset=+1]
+include::_rg_runtime_configuring-datanucleus.adoc[leveloffset=+1]
+include::_rg_runtime_web-xml.adoc[leveloffset=+1]
+include::_rg_runtime_application-specific.adoc[leveloffset=+1]
+
+
+
+
+

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_application-specific.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_application-specific.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_application-specific.adoc
new file mode 100644
index 0000000..9f5be17
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_application-specific.adoc
@@ -0,0 +1,13 @@
+[[_rg_runtime_application-specific]]
+= Application-specific CSS and JS
+: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/
+
+NOTE: TODO
+
+
+include::_rg_runtime_application-specific_application-css.adoc[leveloffset=+1]
+include::_rg_runtime_application-specific_application-js.adoc[leveloffset=+1]
+
+

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_application-specific_application-css.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_application-specific_application-css.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_application-specific_application-css.adoc
new file mode 100644
index 0000000..93100f1
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_application-specific_application-css.adoc
@@ -0,0 +1,8 @@
+[[_rg_runtime_application-specific_application-css]]
+= `application.css`
+: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/
+
+NOTE: TODO - `WEB-INF/css/application.css`
+

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_application-specific_application-js.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_application-specific_application-js.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_application-specific_application-js.adoc
new file mode 100644
index 0000000..1699cf8
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_application-specific_application-js.adoc
@@ -0,0 +1,9 @@
+[[_rg_runtime_application-specific_application-js]]
+= `application.js`
+: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/
+
+
+
+NOTE: TODO - `WEB-INF/scripts/application.js`

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuration-files.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuration-files.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuration-files.adoc
new file mode 100644
index 0000000..0763961
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuration-files.adoc
@@ -0,0 +1,40 @@
+[[_rg_runtime_configuration-files]]
+= Configuration Files
+: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/
+
+
+When running an Apache Isis webapp, configuration properties are read from configuration files held in the `WEB-INF` directory.
+
+The `WEBINF/isis.properties` file is always read and must exist.
+
+In addition, the following other properties are searched for and if present also read:
+
+* `viewer_wicket.properties` - if the xref:ug.adoc#_ug_wicket-viewer[Wicket UI (viewer)] is in use
+
+* `viewer_restfulobjects.properties` - if the xref:ug.adoc#_ug_restfulobjects-viewer[Restful Objects REST API (viewer)] is in use
+
+* `viewer.properties` - for any shared UI configuration
+
+* `persistor_datanucleus.properties` - assuming the JDO/DataNucleus objectstore is in use
+
+* `persistor.properties` - for any other objectstore configuration.  +
++
+This typically is used to hold `JDBC` ``URL``s, which is arguably a slight violation of the file (because there's nothing in Apache Isis to say that persistors have to use `JDBC`.  However, it is generally convenient to put these `JDBC` settings into a single location.  If you want, they could reside inin any of `persistor_datanucleus.properties`, `persistor.properties` or (even) `isis.properties`
+
+* `authentication_shiro.properties`, `authorization_shiro.properties`
++
+assuming the Shiro Security is in use (but there are no security-related config properties currently; use shiro.ini for Shiro config)
+
+* `authentication.properties`, `authorization.properties` +
++
+for any other security-related config properties (but there are none currently).
+
+You can if you wish simply store all properties in the `isis.properties` file; but we think that breaking properties out into sections is preferable.
+
+
+
+
+
+

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-core.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-core.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-core.adoc
new file mode 100644
index 0000000..92fb91b
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-core.adoc
@@ -0,0 +1,273 @@
+[[_rg_runtime_configuring-core]]
+= Configuring Core
+: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/
+
+This section lists the core/runtime configuration properties recognized by Apache Isis.
+
+[NOTE]
+====
+Configuration properties for the JDO/DataNucleus objectstore can be found in the xref:rg.adoc#_rg_runtime_configuring-datanucleus[Configuring DataNucleus] section later in this chapter, while configuration properties for the viewers can be found in the their respective chapters, xref:ug.adoc#_ug_wicket-viewer_configuration-properties[here for Wicket viewer], and xref:ug.adoc#_ug_restfulobjects-viewer_configuration-properties[here for the Restful Objects viewer].
+====
+
+
+
+.Core Configuration Properties
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(default value)
+|Description
+
+|`isis.object.` +
+`editing`
+| `true`,`false` (`true`)
+|Whether objects' properties and collections can be edited directly (for objects annotated with xref:rg.adoc#_rg_annotations_manpage-DomainObject_editing[`@DomainObject#editing()`]); see xref:rg.adoc#_rg_runtime_configuring-core_isis-objects-editing[below] for further discussion.
+
+
+|`isis.persistor.` +
+`disableConcurrencyChecking`
+| `true`,`false` (`false`)
+| Disables concurrency checking globally.  +
+
+Only intended for "emergency use" as a workaround while pending fix/patch to Apache Isis itself.  (Note that there is no "datanucleus" in the property).
+
+|`isis.reflector.facet.` +
+`cssClass.patterns`
+|regex:css1,regex2:css2,...
+|Comma separated list of key:value pairs, where the key is a regex matching action names (eg `delete.*`) and the value is a link:http://getbootstrap.com/css/[Bootstrap] CSS button class (eg `btn-warning) to be applied (as per `@CssClass()`) to all action members matching the regex. +
+
+See xref:ug.adoc#_ug_how-tos_ui-hints_action-icons-and-css[UI hints] for more details.
+
+|`isis.reflector.facet.` +
+`cssClassFa.patterns`
+|regex:fa-icon,regex2:fa-icon2,...
+|Comma separated list of key:value pairs, where the key is a regex matching action names (eg `create.*`) and the value is a link:http://fortawesome.github.io/Font-Awesome/icons/[font-awesome] icon name (eg `fa-plus`) to be applied (as per `@CssClassFa()`) to all action members matching the regex. +
+
+See xref:ug.adoc#_ug_how-tos_ui-hints_action-icons-and-css[UI hints] for more details.
+
+|`isis.reflector.facets`
+|`FQCN`
+|Fully qualified class names of a custom implementation of `ProgrammingModel` interface. +
+
+See xref:ug.adoc#_ug_extending_programming-model_finetuning[finetuning the programming model] for more details.
+
+|`isis.reflector.facets.` +
+`exclude`
+|`FQCN`,`FQCN2`,...
+|Fully qualified class names of (existing, built-in) facet factory classes to be included to the programming model. +
+
+See xref:ug.adoc#_ug_extending_programming-model_finetuning[finetuning the programming model] for more details.
+
+|`isis.reflector.facets.` +
+`include`
+|`FQCN`,`FQCN2`,...
+|Fully qualified class names of (new, custom) facet factory classes to be included to the programming model. +
+See xref:ug.adoc#_ug_extending_programming-model_finetuning[finetuning the programming model] for more details.
+
+
+|`isis.reflector.` +
+`layoutMetadataReaders`
+|`FQCN`,`FQCN2`,...
+|Fully qualified class names of classes to be instantiated to read layout metadata, as used in for xref:rg.adoc#_rg_object-layout_dynamic[dynamic layout]s. +
+
+See xref:ug.adoc#_ug_extending_programming-model_layout-metadata-reader[Layout Metadata Reader] for more information.
+
+
+
+|`isis.reflector.validator`
+|`FQCN`
+|Custom implementation of `MetaModelValidator` (in the `org.apache.isis.core.metamodel.specloader.validator` package) +
+
+See xref:ug.adoc#_ug_extending_programming-model_custom-validator[Custom Validator] to learn more.
+
+|`isis.reflector.validator.` +
+`allowDeprecated`
+| `true`,`false` (`true`)
+| Whether deprecated annotations or naming conventions are tolerated or not.  If not, then a metamodel validation error will be triggered, meaning the app won't boot (fail-fast).
+
+|`isis.services`
+|`FQCN`,`FQCN2`,...
+|Fully qualified class names of classes to be instantiated as domain services.  +
+
+Each entry can be optionally prefixed by "n:" specifying the relative order on the menu (corresponds to xref:rg.adoc#_rg_annotations_manpage-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`]).
+
+
+|`isis.services.` +
+`audit.objects`
+| `all`, `none` (`all`)
+|Whether the changed properties of objects should be automatically audited (for objects annotated with xref:rg.adoc#_rg_annotations_manpage-DomainObject_auditing[`@DomainObject(auditing=Auditing.AS_CONFIGURED)`].
+
+|`isis.services.` +
+`command.actions`
+| `all`, `ignoreSafe`, `none` (`all`)
+|Whether actions should be automatically reified into commands (for actions annotated with xref:rg.adoc#_rg_annotations_manpage-Action_command[`@Action(command=CommandReification.AS_CONFIGURED)`].  +
+
+`ignoreQueryOnly` is an alias for `ignoreSafe`.
+
+
+|`isis.services.` +
+`container.disableAutoFlush`
+| `true`,`false` (`_false_`)
+|Whether the `DomainObjectContainer` should automatically flush pending changes prior to querying (via `allMatches()`, `firstMatch()` and so on).
+
+|`isis.services.` +
+`container.disableAutoFlush`
+| `true`,`false` (`_false_`)
+|Whether the `DomainObjectContainer` should automatically flush pending changes prior to querying (via `allMatches()`, `firstMatch()` and so on).
+
+
+
+|`ContentNegotiation-` +
+`ServiceXRoDomainType` +
+.prettyPrint
+| `true`,`false` (depends)
+|If a domain object has been mapped to the specified JAXB `x-ro-domain-type`, then determines whether the result is pretty-printed or not. +
++
+If no configuration property is available, then the defaults is determined by the xref:rg.adoc#_rg_runtime_deployment-types[deployment type]: production mode disables pretty printing, while prototype mode enables it.
+
+
+
+| `isis.service.` +
+`email.tls.enabled`
+| `true`,`false` (`_true_`)
+|Whether to enable TLS for the email SMTP connection (used by xref:rg.adoc#_rg_services-api_manpage-EmailService[`EmailService`]).  +
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+| `isis.service.` +
+`email.sender.hostname` +
+| host (`_smtp.gmail.com_`)
+|The hostname of the external SMTP provider (used by xref:rg.adoc#_rg_services-api_manpage-EmailService[`EmailService`]).  +
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+| `isis.service.` +
+`email.port` +
+| port number (`_587_`)
+|The port number for the SMTP service on the the external SMTP host (used by xref:rg.adoc#_rg_services-api_manpage-EmailService[`EmailService`]).  +
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+
+| `isis.service.` +
+`email.sender.address` +
+| email address
+|The email address to use for sending out email (used by xref:rg.adoc#_rg_services-api_manpage-EmailService[`EmailService`]).  *Mandatory*.  +
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+| `isis.service.` +
+`email.sender.password` +
+| email password
+|The corresponding password for the email address to use for sending out email (used by xref:rg.adoc#_rg_services-api_manpage-EmailService[`EmailService`]).  *Mandatory*.  +
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+
+| `isis.services.` +
+`eventbus.implementation` +
+| `guava`, `axon`, FQCN (`_guava_`)
+|which implementation to use by the xref:rg.adoc#_rg_services-api_manpage-EventBusService[`EventBusService`] as the underlying event bus.
+
+| `isis.services.` +
+`eventbus.allowLateRegistration` +
+| `true`, `false`, (`_false_`)
+|whether a domain service can register with the xref:rg.adoc#_rg_services-api_manpage-EventBusService[`EventBusService`] after any events have posted. +
+
+Since this almost certainly constitutes a bug in application code, by default this is disallowed.
+
+
+| `isis.services.` +
+`exceprecog.logRecognizedExceptions` +
+| `true`, `false`, (`_false_`)
+|whether recognized exceptions should also be logged. +
+
+Generally a recognized exception is one that is expected (for example a uniqueness constraint violated in the database) and which does not represent an error condition.  This property logs the exception anyway, useful for debugging.
+
+
+| `isis.services.` +
+`ExceptionRecognizerComposite-` +
+`ForJdoObjectStore.disable` +
+| `true`, `false`, (`_false_`)
+|whether to disable the default recognizers registered by `ExceptionRecognizerCompositeForJdoObjectStore`. +
+
+This implementation provides a default set of recognizers to convert RDBMS constraints into user-friendly messages.  In the (probably remote) chance that this functionality isn't required, they can be disabled through this flag.
+
+
+|`isis.services.` +
+`publish.objects`
+| `all`, `none` (`all`)
+|Whether changed objects should be automatically published (for objects annotated with xref:rg.adoc#_rg_annotations_manpage-DomainObject_publishing[`@DomainObject(publishing=Publishing.AS_CONFIGURED)`].
+
+|`isis.services.` +
+`publish.actions`
+| `all`, `ignoreSafe`, `none` (`all`)
+|Whether actions should be automatically published (for actions annotated with xref:rg.adoc#_rg_annotations_manpage-Action_publishing[`@Action(publishing=Publishing.AS_CONFIGURED)`]. +
+
+|`isis.services.` +
+`translation.po.mode`
+| `read`,`write`
+|Whether to force the `TranslationService` into either read or write mode. +
+
+See xref:ug.adoc#_ug_more-advanced_i18n[i18n support] to learn more about the translation service.
+
+|`isis.viewers.` +
+`paged.parented`
+|positive integer (12)
+|Default page size for parented collections (as owned by an object, eg `Customer#getOrders()`)
+
+|`isis.viewers.` +
+`paged.standalone`
+|positive integer (25)
+|Default page size for standalone collections (as returned from an action invocation)
+
+
+|`isis.viewers.` +
+`propertyLayout.labelPosition`
+|`TOP`, `LEFT` +
+(`LEFT`)
+|Default for label position for all properties if not explicitly specified using xref:rg.adoc#_rg_annotations_manpage-PropertyLayout_labelPosition[`@PropertyLayout#labelPosition()`]
+
+|===
+
+
+
+
+[[_rg_runtime_configuring-core_isis-objects-editing]]
+== `objects.editing`
+
+This configuration property in effect allows editing to be disabled globally for an application:
+
+[source,ini]
+----
+isis.objects.editing=false
+----
+
+We recommend enabling this feature; it will help drive out the underlying business operations (processes and procedures) that require objects to change; these can then be captured as business actions.
+
+
+
+[[_rg_runtime_configuring-core_isis-viewers-propertyLayout-labelPosition]]
+== `propertyLayout.labelPosition`
+
+If you want a consistent look-n-feel throughout the app, eg all property labels to the top, then it'd be rather
+frustrating to have to annotate every property.
+
+Instead, a default can be specified in `isis.properties`:
+
+[source,ini]
+----
+isis.viewers.propertyLayout.labelPosition=TOP
+----
+
+or
+
+[source,ini]
+----
+isis.viewers.propertyLayout.labelPosition=LEFT
+----
+
+If these are not present then Apache Isis will render according to internal defaults. At the time of writing, this means labels are to the left for all datatypes except multiline strings.

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus.adoc
new file mode 100644
index 0000000..c6d8115
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus.adoc
@@ -0,0 +1,18 @@
+[[_rg_runtime_configuring-datanucleus]]
+= Configuring DataNucleus
+: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 programmatically configures DataNucleus; any Apache Isis properties with the prefix `isis.persistor.datanucleus.impl` are passed through directly to the JDO/DataNucleus objectstore (with the prefix stripped off, of course).
+
+DataNucleus will for itself also and read the `META-INF/persistence.xml`; at a minimum this defines the name of the "persistence unit".  n theory it could also hold mappings, though in Apache Isis we tend to use annotations instead.
+
+Furthermore, DataNucleus will search for various other XML mapping files, eg `mappings.jdo`.  A full list can be found http://www.datanucleus.org/products/datanucleus/jdo/metadata.html[here].  The metadata in these XML can be used to override the annotations of annotated entities; see xref:ug.adoc#_ug_more-advanced_overriding-jdo-annotations[Overriding JDO Annotatons] for further discussion.
+
+
+include::_rg_runtime_configuring-datanucleus_properties.adoc[leveloffset=+1]
+include::_rg_runtime_configuring-datanucleus_persistence-xml.adoc[leveloffset=+1]
+include::_rg_runtime_configuring-datanucleus_eagerly-registering-entities.adoc[leveloffset=+1]
+include::_rg_runtime_configuring-datanucleus_disabling-persistence-by-reachability.adoc[leveloffset=+1]
+include::_rg_runtime_configuring-datanucleus_using-jndi-data-source.adoc[leveloffset=+1]

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_disabling-persistence-by-reachability.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_disabling-persistence-by-reachability.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_disabling-persistence-by-reachability.adoc
new file mode 100644
index 0000000..ba690ef
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_disabling-persistence-by-reachability.adoc
@@ -0,0 +1,88 @@
+[[_rg_runtime_configuring-datanucleus_disabling-persistence-by-reachability]]
+= Persistence by Reachability
+: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/
+
+By default, JDO/DataNucleus supports the concept of http://www.datanucleus.org/products/datanucleus/jdo/orm/cascading.html[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.
+
+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.
+====
+
+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:rg.adoc#_rg_classes_utility_manpage-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`:
+
+[source,ini]
+----
+isis.persistor.datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit=false
+----
+
+This change has been made to the xref:ug.adoc#_ug_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.
+
+
+
+
+
+== The issue in more detail
+
+Consider these entities (http://yuml.me/edit/b8681268[yuml.me/b8681268]):
+
+image::{_imagesdir}runtime/configuring-datanucleus/disabling-persistence-by-reachability/party-agreementrole-agreement.png[width="750px"]
+
+
+
+In the course of a transaction, the `Agreement` entity is loaded into memory (not necessarily modified), and then new ``AgreementRole``s are associated to it.
+
+All these entities implement `Comparable` using `ObjectContracts`, and the implementation of ``AgreementRole``'s (simplified) is:
+
+[source,java]
+----
+public class AgreementRole {
+    ...
+    public int compareTo(AgreementRole other) {
+        return ObjectContracts.compareTo(this, other, "agreement","startDate","party");
+    }
+}
+----
+
+while ``Agreement``'s is implemented as:
+
+[source,java]
+----
+public class Agreement {
+    ...
+    public int compareTo(Agreement other) {
+        return ObjectContracts.compareTo(this, other, "reference");
+    }
+}
+----
+
+and ``Party``'s is similarly implemented as:
+
+[source,java]
+----
+public class Party {
+    ...
+    public int compareTo(Party other) {
+        return ObjectContracts.compareTo(this, other, "reference");
+    }
+}
+----
+
+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 "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.
+
+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/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_eagerly-registering-entities.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_eagerly-registering-entities.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_eagerly-registering-entities.adoc
new file mode 100644
index 0000000..2d77a58
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_eagerly-registering-entities.adoc
@@ -0,0 +1,44 @@
+[[_rg_runtime_configuring-datanucleus_eagerly-registering-entities]]
+= Eagerly Registering Entities
+: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/
+
+Both Apache Isis and DataNucleus have their own metamodels of the domain entities. Apache Isis builds its metamodel by walking the graph of types from the services registered using `@DomainService` or explicitly registered in `isis.properties`. The JDO objectstore then takes these types and registers them with DataNucleus.
+
+In some cases, though, not every entity type is discoverable from the API of the service actions. This is especially the case if you have lots of subtypes (where the action method specifies only the supertype). In such cases the Isis and JDO metamodels is built lazily, when an instance of that (sub)type is first encountered.
+
+Isis is quite happy for the metamodel to be lazily created, and - to be fair - DataNucleus also works well in most cases. In some cases, though, we have found that the JDBC driver (eg HSQLDB) will deadlock if DataNucleus tries to submit some DDL (for a lazily discovered type) intermingled with DML (for updating).
+
+In any case, it's probably not good practice to have DataNucleus work this way. The `RegisterEntities` service can therefore be registered in order to do the eager registration. It searches for all `@PersistenceCapable` entities under specified package(s), and registers them all.
+
+[WARNING]
+====
+There's a chance that (from 1.6.0+) feature may be (partly?) broken; see https://issues.apache.org/jira/browse/ISIS-847[ISIS-847].
+====
+
+
+== Specify the Package Prefix(es)
+
+In the `persistor_datanucleus.properties`, specify the package prefix(es) of your application, to provide a hint for finding the `@PersistenceCapable` classes.
+
+The value of this property can be a comma-separated list (if there is more than one package or Maven module that holds persistable entities).
+
+
+== Integration Testing
+
+The `IsisConfigurationForJdoIntegTests`, recommended for use in xref:ug.adoc#_ug_testing_integ-test-support[Integration Testing] provides the `#addRegisterEntitiesPackagePrefix()` method to set up this configuration property:
+
+[source,java]
+.Integration test bootstrapping
+----
+private static class SimpleAppSystemBuilder extends IsisSystemForTest.Builder {
+    ...
+    private static IsisConfiguration testConfiguration() {
+        final IsisConfigurationForJdoIntegTests testConfiguration = new IsisConfigurationForJdoIntegTests();
+        testConfiguration.addRegisterEntitiesPackagePrefix("domainapp.dom.modules"); // <1>
+        return testConfiguration;
+    }
+}
+----
+<1> specify the package prefix(es) for integration testing.

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_persistence-xml.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_persistence-xml.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_persistence-xml.adoc
new file mode 100644
index 0000000..9227513
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_persistence-xml.adoc
@@ -0,0 +1,10 @@
+[[_rg_runtime_configuring-datanucleus_persistence-xml]]
+= `persistence.xml`
+: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/
+
+
+NOTE: TODO
+
+

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_properties.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_properties.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_properties.adoc
new file mode 100644
index 0000000..30ee938
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_properties.adoc
@@ -0,0 +1,64 @@
+[[_rg_runtime_configuring-datanucleus_properties]]
+= Configuration Properties
+: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/
+
+
+These configuration properties are typically stored in `WEB-INF/persistor_datanucleus.properties`.  However, you can place all configuration properties into `WEB-INF/isis.properties` if you wish (the configuration properties from all config files are merged together).
+
+== Configuration Properties for Apache Isis itself
+
+
+.JDO/DataNucleus Objectstore Configuration Properties
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(_default value_)
+|Description
+
+|`isis.persistor.` +
+`datanucleus.` +
+`classMetadataLoadedListener`
+|`FQCN`
+|The default (`o.a.i.os.jdo.dn.CreateSchemaObjectFromClassMetadata`) creates a DB schema object
+
+
+|`isis.persistor.datanucleus.` +
+`RegisterEntities.packagePrefix`
+| fully qualified package names (CSV)
+| of class names; specifies the entities early rather than allow DataNucleus to find the entities lazily.  Strongly recommended (subtle issues can sometimes arise if lazy discovery is used).
+Further xref:rg.adoc#_rg_runtime_configuring-datanucleus_eagerly-registering-entities[discussion below].
+
+|`isis.persistor.datanucleus.` +
+`PublishingService.serializedForm`
+| zipped
+|
+
+|===
+
+
+
+== Configuration Properties passed through directly to DataNucleus.
+
+.JDO/DataNucleus Objectstore Configuration Properties
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(_default value_)
+|Description
+
+|`isis.persistor.datanucleus.impl.*`
+|
+| Passed through directly to Datanucleus (with `isis.persistor.datanucleus.impl` prefix stripped)
+
+|`isis.persistor.datanucleus.impl.` +
+`datanucleus.persistenceByReachabilityAtCommit`
+|`false`
+|We recommend this setting is disabled.  +
+Further xref:rg.adoc#_rg_runtime_configuring-datanucleus_disabling-persistence-by-reachability[discussion below].
+
+|===
+


[4/9] isis git commit: ISIS-1133: added blurb to user guide, ref guide, dev guide. Moved runtime config section from ug to rg. Also...

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_using-jndi-data-source.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_using-jndi-data-source.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_using-jndi-data-source.adoc
new file mode 100644
index 0000000..1cac414
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_configuring-datanucleus_using-jndi-data-source.adoc
@@ -0,0 +1,75 @@
+[[_rg_runtime_configuring-datanucleus_using-jndi-data-source]]
+= Using JNDI DataSource
+: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/
+
+Isis' JDO objectstore can be configured either to connect to the database using its own connection pool, or by using a container-managed datasource.
+
+
+
+== Application managed
+
+Using a connection pool managed directly by the application (that is, by Apache Isis' JDO objectstore and ultimately by DataNucleus) requires a single set of configuration properties to be specified.
+
+In the `WEB-INF\persistor_datanucleus.properties` file, specify the connection driver, url, username and password.
+
+For example:
+
+[source,ini]
+----
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=net.sf.log4jdbc.DriverSpy
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:log4jdbc:hsqldb:mem:test
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=sa
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=
+----
+
+Those configuration properties that start with the prefix `isis.persistor.datanucleus.impl.` are passed through directly to DataNucleus (with the prefix removed).
+
+
+
+
+
+== Container managed (JNDI)
+
+Using a datasource managed by the servlet container requires three separate bits of configuration.
+
+Firstly, specify the name of the datasource in the `WEB-INF\persistor_datanucleus.properties` file. For example:
+
+If connection pool settings are also present in this file, they will simply be ignored. Any other configuration properties that start with the prefix `isis.persistor.datanucleus.impl.` are passed through directly to DataNucleus (with the prefix removed).
+
+Secondly, in the `WEB-INF/web.xml`, declare the resource reference:
+
+[source,xml]
+----
+<resource-ref>
+    <description>db</description>
+    <res-ref-name>jdbc/simpleapp</res-ref-name>
+    <res-type>javax.sql.DataSource</res-type>
+    <res-auth>Container</res-auth>
+</resource-ref>
+----
+
+Finally, declare the datasource as required by the servlet container. For example, if using Tomcat 7, the datasource can be specified by adding the following to `$TOMCAT_HOME/conf/context.xml`:
+
+[source,xml]
+----
+<Resource name="jdbc/simpleapp"
+  auth="Container"
+  type="javax.sql.DataSource"
+  maxActive="100"
+  maxIdle="30"
+  maxWait="10000"
+  username="sa"
+  password="p4ssword"
+  driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
+  url="jdbc:sqlserver://127.0.0.1:1433;instance=.;databaseName=simpleapp"/>
+----
+
+You will also need to make sure that the JDBC driver is on the servlet container's classpath. For Tomcat, this means copying the driver to `$TOMCAT_HOME/lib`.
+
+[NOTE]
+====
+According to Tomcat's documentation, it is supposedly possible to copy the `conf/context.xml` to the name of the webapp, eg `conf/mywebapp.xml`, and scope the connection to that webapp only.  I was unable to get this working, however.
+====
+

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_deployment-types.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_deployment-types.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_deployment-types.adoc
new file mode 100644
index 0000000..04c1363
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_deployment-types.adoc
@@ -0,0 +1,111 @@
+[[_rg_runtime_deployment-types]]
+= Deployment Types
+: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 distinguishes between the application being run in development mode vs running in production mode.  The framework calls this the "deployment type" (corresponding internally to the `DeploymentType` class).
+
+(For mostly historical reasons) development mode is actually called `SERVER_PROTOTYPE`, while production mode is called just `SERVER`.  (There is also a deprecated mode called `SERVER_EXPLORATION`; for all intents and purposes this can considered as an alias of `SERVER_PROTOTYPE`).
+
+When running in development/prototyping mode, certain capabilities are enabled; most notably any actions restricted to prototyping mode (using xref:rg.adoc#_rg_annotations_manpage-Action_restrictTo[`@Action#restrictTo()`]) will be available.
+
+
+
+== Using the Wicket Viewer
+
+Most of the you're likely to run Apache Isis using the xref:ug.adoc#_ug_wicket-viewer[Wicket viewer].  In this case Apache Isis' "deployment type" concept maps to Wicket's "configuration" concept:
+
+.Apache Isis' deployment type corresponds to Apache Wicket's configuration
+[cols="1,1,2", options="header"]
+|===
+| Apache Isis +
+(Deployment Type)
+| Apache Wicket +
+(Configuration)
+| Notes
+
+| `SERVER_PROTOTYPE`
+| `development`
+| running in development/prototyping mode
+
+| `SERVER`
+| `deployment`
+| running in production mode
+
+|===
+
+
+Wicket's mechanism for specifying the "configuration" is to use a context parameter in `web.xml`; Apache Isis automatically infers its own deployment type from this.  In other words:
+
+* to specify SERVER (production) mode, use: +
++
+[source,xml]
+.`web.xml`
+----
+<context-param>
+    <param-name>configuration</param-name>
+    <param-value>deployment</param-value>
+</context-param>
+----
+
+* to specify `SERVER_PROTOTYPING` (development) mode, use: +
++
+[source,xml]
+.`web.xml`
+----
+<context-param>
+    <param-name>configuration</param-name>
+    <param-value>deployment</param-value>
+</context-param>
+----
+
+
+== Restful Objects viewer only
+
+Most Apache Isis applications will consist of at least the xref:ug.adoc#_ug_wicket-viewer[Wicket viewer] and optionally the xref:ug.adoc#_ug_restfulobjects-viewer[RestfulObjects viewer].  When both viewers are deployed in the same app, then the bootstrapping is performed by Wicket, and so the deployment type is configured as described in the previous section.
+
+In some cases though you may be using Apache Isis to provide a REST API only, that is, you won't have deployed the Wicket viewer.  In these cases your app will be bootstrapped using  Apache Isis' xref:rg.adoc#_rg_runtime_web-xml_servlet-context-listener[ `IsisWebAppBootstrapper`].
+
+In this case the deployment type is specified through an Apache Isis-specific context parameter, called `isis.deploymentType`:
+
+* to specify `SERVER` (production) mode, use: +
++
+[source,xml]
+.`web.xml`
+----
+<context-param>
+    <param-name>isis.deploymentType</param-name>
+    <param-value>server</param-value>
+</context-param>
+----
+
+* to specify `SERVER_PROTOTYPE` (development) mode, use: +
++
+[source,xml]
+.`web.xml`
+----
+<context-param>
+    <param-name>isis.deploymentType</param-name>
+    <param-value>server-prototype</param-value>
+</context-param>
+----
+
+
+
+== Overriding the deployment type
+
+If bootstrapping the application using Apache Isis' xref:ug.adoc#_ug_deployment_cmd-line[`org.apache.isis.WebServer`] then it is possible to override the deployment type using the `-t` (or `--type`) flag.
+
+For example:
+
+[source,bash]
+----
+java -jar ... org.apache.isis.WebServer -t SERVER
+----
+
+where "..." is the (usually rather long) list of JAR files and class directories that will make up your application.
+
+This works for both the xref:ug.adoc#_ug_wicket-viewer[Wicket viewer] and the xref:ug.adoc#_ug_restfulobjects-viewer[RestfulObjects viewer].
+

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_specifying-components.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_specifying-components.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_specifying-components.adoc
new file mode 100644
index 0000000..0c40fa4
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_specifying-components.adoc
@@ -0,0 +1,72 @@
+[[_rg_runtime_configuring-components]]
+= Specifying components
+: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 `isis.properties` file has four configuration properties in particular that specify the major components of Apache Isis to use.
+
+They are:
+
+.Core Configuration Properties
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(_default value_)
+|Implements
+
+|`isis.authentication`
+|`shiro`, `bypass`, `FQCN` +
+(`_shiro_`)
+|`o.a.i.core.runtime.authentication.` `AuthenticationManagerInstaller`
+
+|`isis.authorization`
+|`shiro`, `bypass`, `FQCN` +
+(`_shiro_`)
+|`o.a.i.core.runtime.authorization.` `AuthorizationManagerInstaller`
+
+|`isis.persistor`
+|`datanucleus`, `inmemory`, `FQCN` +
+(`_datanucleus_`)
+|`o.a.i.core.runtime.installerregistry.installerapi.` `PersistenceMechanismInstaller`
+
+|`isis.services-installer`
+|`configuration`, `configuration-and-annotation`, `FQCN` +
+(`_configuration_`)
+|`org.apache.isis.core.runtime.services.` `ServicesInstaller` +
+
+The mechanism to discover and load domain services:
+
+* `configuration-and-annotation` will search for `@DomainService`-annotated classes and also read from `isis.services` configuration property
+
+* `configuration` will only read from the `isis.services` configuration property. +
+
+* Otherwise an alternative implementation of the `o.a.i.core.runtime.services.ServicesInstaller` internal API can be provided.
+
+
+
+|===
+
+[TIP]
+====
+The values "datanucleus", "shiro" etc are actually aliases for concrete implementations listed in Apache Isis' `installer-registry.properties` file (in `isis-core-runtime.jar`).
+====
+
+It is -- at least in theory -- possible to specify a fully qualified class name to replace any of these components.  This is probably feasible for the two security APIs and the `services-installer` API; but replacing the persistor (JDO/DataNucleus) is much trickier because we rely on the JDO/DN for certain functionality (such as object dirtying and lazy loading) that is not defined within this API.
+
+As for the viewers, these are specified indirectly by way of the filters and servlets in the `web.xml` file (discussed xref:rg.adoc#_rg_runtime_web-xml[below]).  However, the configuration of which viewers to initialize is declared through a context parameter:
+
+
+[source,xml]
+----
+<context-param>
+    <param-name>isis.viewers</param-name>
+    <param-value>wicket,restfulobjects</param-value>
+</context-param>
+----
+
+The net effect of this configuration is simply to ensure that the `viewer_wicket.properties` and/or the `viewer_restfulobjects.properties` files are read.
+

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_web-xml.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_web-xml.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_web-xml.adoc
new file mode 100644
index 0000000..72204d5
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_web-xml.adoc
@@ -0,0 +1,43 @@
+[[_rg_runtime_web-xml]]
+= `web.xml`
+: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/
+
+
+
+NOTE: TODO
+
+
+== Init Params
+
+`<isis.viewers>`
+
+
+
+[[_rg_runtime_web-xml_servlet-context-listener]]
+== Servlet Context Listener
+
+NOTE: TODO
+
+`IsisWebAppBootstrapper`
+
+
+
+== Filters
+
+NOTE: TODO
+
+
+
+
+== Servlets
+
+NOTE: TODO
+
+
+
+
+== Running RO Viewer only
+
+NOTE: TODO

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-ClockService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-ClockService.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-ClockService.adoc
index 21f1c86..2e8b4d8 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-ClockService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-ClockService.adoc
@@ -49,8 +49,8 @@ The default `ClockService` implementation in fact simply delegates to another cl
 
 * there are two subclasses implementations `Clock`, namely `SystemClock` and `FixtureClock`.
 * the first implementation that is instantiated registers itself as the singleton.
-* if running in xref:ug.adoc#_ug_runtime_deployment-types[production] (server) mode, then (unless another implementation has beaten it to the punch) the framework will instantiate the ``SystemClock`.  Once instantiated this cannot be replaced.
-* if running in xref:ug.adoc#_ug_runtime_deployment-types[prototype] mode, then the framework will instead instantiate `FixtureClock`.  This _can_ be replaced if required.
+* if running in xref:rg.adoc#_rg_runtime_deployment-types[production] (server) mode, then (unless another implementation has beaten it to the punch) the framework will instantiate the ``SystemClock`.  Once instantiated this cannot be replaced.
+* if running in xref:rg.adoc#_rg_runtime_deployment-types[prototype] mode, then the framework will instead instantiate `FixtureClock`.  This _can_ be replaced if required.
 
 The `FixtureClock` will behave as the system clock, unless its is explicitly set using `FixtureClock#setDate(...)` or `FixtureClock#setTime(...)` and so forth.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-CommandContext.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-CommandContext.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-CommandContext.adoc
index a97d19b..a382b34 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-CommandContext.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-CommandContext.adoc
@@ -122,7 +122,7 @@ public class ToDoItem ... {
 ====
 As an alternative to annotating every action with `@Action#command()`, alternatively this can be configured as the default using `isis.services.command.actions` configuration property.
 
-See xref:rg.adoc#_rg_annotations_manpage-Action_command[`@Action#command()`] and xref:ug.adoc#_ug_runtime_configuring-core[runtime configuration] for further details.
+See xref:rg.adoc#_rg_annotations_manpage-Action_command[`@Action#command()`] and xref:rg.adoc#_rg_runtime_configuring-core[runtime configuration] for further details.
 ====
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-DomainObjectContainer_object-persistence-api.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-DomainObjectContainer_object-persistence-api.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-DomainObjectContainer_object-persistence-api.adoc
index fb89e51..4772ef4 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-DomainObjectContainer_object-persistence-api.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-DomainObjectContainer_object-persistence-api.adoc
@@ -56,7 +56,7 @@ container.persistIfNotAlready(cust);
 
 You should be aware that by default Apache Isis queues up calls to `#persist()` and `#remove()`.  These are then executed either when the request completes (and the transaction commits), or if the queue is flushed.  This can be done either implicitly by the framework, or as the result of a direct call to `#flush()`.
 
-By default the framework itself will cause `#flush()` to be called whenever a query is executed by way of `#allMatches(Query)`, as documented xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer_generic-repository-api[above].  However, this behaviour can be disabled using the  xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.services.container.disableAutoFlush`.
+By default the framework itself will cause `#flush()` to be called whenever a query is executed by way of `#allMatches(Query)`, as documented xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer_generic-repository-api[above].  However, this behaviour can be disabled using the  xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.services.container.disableAutoFlush`.
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-DomainObjectContainer_properties-api.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-DomainObjectContainer_properties-api.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-DomainObjectContainer_properties-api.adoc
index 43b95d9..fb70834 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-DomainObjectContainer_properties-api.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-DomainObjectContainer_properties-api.adoc
@@ -9,7 +9,7 @@
 
 = Properties API
 
-The properties API allows domain objects to read the configuration properties aggregated from the various xref:ug.adoc#_ug_runtime_configuration-files[configuration files].
+The properties API allows domain objects to read the configuration properties aggregated from the various xref:rg.adoc#_rg_runtime_configuration-files[configuration files].
 
 [source,java]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EmailService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EmailService.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EmailService.adoc
index fd16f10..99f6ac3 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EmailService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EmailService.adoc
@@ -45,7 +45,7 @@ To use this service the following properties must be configured:
 * `isis.service.email.sender.address`
 * `isis.service.email.sender.password`
 
-and these properties may optionally be configured (each has a default to use gmail, documented xref:ug.adoc#_ug_runtime_configuring-core[here]):
+and these properties may optionally be configured (each has a default to use gmail, documented xref:rg.adoc#_rg_runtime_configuring-core[here]):
 
 * `isis.service.email.sender.hostname`
 * `isis.service.email.port`

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EventBusService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EventBusService.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EventBusService.adoc
index 181580e..bad2527 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EventBusService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EventBusService.adoc
@@ -323,7 +323,7 @@ If you do provide your own implementation of this SPI, be aware that your subscr
 
 The implementation of `EventBusService` provided by Apache Isis will by default use link:https://code.google.com/p/guava-libraries/[Guava]'s https://code.google.com/p/guava-libraries/wiki/EventBusExplained[`EventBus`] as the underlying in-memory event bus.  Alternatively the link:http://www.axonframework.org/[AxonFramework]'s link:http://www.axonframework.org/docs/2.4/single.html#d5e1489[SimpleEventBus] can be used.
 
-To specify which, add the xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.services.eventbus.implementation`:
+To specify which, add the xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.services.eventbus.implementation`:
 
 [source,ini]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-ContentNegotiationService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-ContentNegotiationService.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-ContentNegotiationService.adoc
index b152af2..0adf8e0 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-ContentNegotiationService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-ContentNegotiationService.adoc
@@ -171,14 +171,14 @@ image::{_imagesdir}reference-services-spi/ContentNegotiationService/accept-json.
 [_rg_services-spi_manpage-ContentNegotiationService_Configuration]]
 == Configuration
 
-The default `ContentNegotiationServiceXRoDomainType` implementation provides a xref:ug.adoc#_ug_runtime_configuring-core[configuration property] which controls whether a mapped domain object is pretty-printed (formatted, indented) or not:
+The default `ContentNegotiationServiceXRoDomainType` implementation provides a xref:rg.adoc#_rg_runtime_configuring-core[configuration property] which controls whether a mapped domain object is pretty-printed (formatted, indented) or not:
 
 [source,ini]
 ----
 isis.services.ContentNegotiationServiceXRoDomainType.prettyPrint=true
 ----
 
-If the property is not set, then the default depends on the xref:ug.adoc#_ug_runtime_deployment-types[deployment type]; production mode will disable pretty printing, while prototyping mode will enable it.
+If the property is not set, then the default depends on the xref:rg.adoc#_rg_runtime_deployment-types[deployment type]; production mode will disable pretty printing, while prototyping mode will enable it.
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-ExceptionRecognizer.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-ExceptionRecognizer.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-ExceptionRecognizer.adoc
index 04fbd03..7fbf4ab 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-ExceptionRecognizer.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-ExceptionRecognizer.adoc
@@ -121,5 +121,5 @@ Prior to 1.9.0, the `ExceptionRecognizerCompositeForJdoObjectStore` also require
 ====
 
 
-If the JDO exception recognizers are not required (rather unlikely), then they can be disabled en-masse using the xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.services.ExceptionRecognizerCompositeForJdoObjectStore.disable`.
+If the JDO exception recognizers are not required (rather unlikely), then they can be disabled en-masse using the xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.services.ExceptionRecognizerCompositeForJdoObjectStore.disable`.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-UserRegistrationService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-UserRegistrationService.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-UserRegistrationService.adoc
index 3cb9cec..7c43f8f 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-UserRegistrationService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_services-spi_manpage-UserRegistrationService.adoc
@@ -78,4 +78,4 @@ The most common use case is to allow users to sign-up through Apache Isis' Wicke
 * xref:rg.adoc#_rg_services-spi_manpage-EmailNotificationService[`EmailNotificationService`]
 * `UserRegistrationService` (this service)
 
-The `EmailService` in particular requires additional xref:ug.adoc#_ug_runtime_configuring-core[configuration properties] to specify the external SMTP service.
\ No newline at end of file
+The `EmailService` in particular requires additional xref:rg.adoc#_rg_runtime_configuring-core[configuration properties] to specify the external SMTP service.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_core-concepts_philosophy_domain-driven-design.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_core-concepts_philosophy_domain-driven-design.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_core-concepts_philosophy_domain-driven-design.adoc
index 764df57..e132bac 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_core-concepts_philosophy_domain-driven-design.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_core-concepts_philosophy_domain-driven-design.adoc
@@ -4,8 +4,6 @@
 :_basedir: ../
 :_imagesdir: images/
 
-This section describes some of the core ideas and architectural patterns upon which Apache Isis builds.
-
 There's no doubt that we developers love the challenge of understanding and deploying complex technologies. But understanding the nuances and subtleties of the business domain itself is just as great a challenge, perhaps more so. If we devoted our efforts to understanding and addressing those subtleties, we could build better, cleaner, and more maintainable software that did a better job for our stakeholders. And there's no doubt that our stakeholders would thank us for it.
 
 A couple of years back Eric Evans wrote his book link:http://www.amazon.co.uk/Domain-driven-Design-Tackling-Complexity-Software/dp/0321125215[Domain-Driven Design], which is well on its way to becoming a seminal work. In fact, most if not all of the ideas in Evans' book have been expressed before, but what he did was pull those ideas together to show how predominantly object-oriented techniques can be used to develop rich, deep, insightful, and ultimately useful business applications.

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_cmd-line.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_cmd-line.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_cmd-line.adoc
index 07db1d8..e63ae70 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_cmd-line.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_cmd-line.adoc
@@ -7,19 +7,119 @@
 NOTE: TODO
 
 
-## `WebServer` class
+== `WebServer` class
 
-`org.apache.isis.WebServer`
+The `org.apache.isis.WebServer` utility class provides a `main(String[])` method so that an Apache Isis application can be run from within the IDE or command line, without the need to package the app as a WAR file and deploying to a servlet container.  Internally the class it uses jetty to programmatically bootstrap the app.
 
-For example:
-* `--fixture`
-* `--services`
+The utility class also supports a number of command line arguments:
 
-etc...
+.Command line args for `org.apache.isis.Webserver`
+[cols="1,1,1,2", options="header"]
+|===
+| Flag 
+| Long format
+| Values (default)
+| Description
+
+|-t
+|--type
+|`server_prototype`,`server` +
+(`server`)
+|Deployment type
+
+|-f
+|--fixture
+|
+|
+
+|-u
+|--user
+|
+|
+
+|-p
+|--password
+|
+|
+
+|-D
+|
+|
+|Additional property, in form `-Dxxx=yyy`
+
+|-h
+|--help
+|
+|
+
+
+|===
+
+
+
+The utility class also supports a number of other flags, but their usage is extremely rare (and some may be removed in the future):
+
+.Command line args for `org.apache.isis.Webserver`
+[cols="1,1,1,2", options="header"]
+|===
+| Flag
+| Long format
+| Values (default)
+| Description
+
+
+|-l
+|--reflector
+|FQCN
+|Implementing `ObjectReflectorInstaller`
+
+|-r
+|--persistor
+|FQCN
+|implementing `PersistenceMechanismInstaller`
+
+|-c
+|--config
+|
+|
+
+|-s
+|--nosplash
+|
+|
+
+|
+|--diagnostics
+|
+|
+
+|
+|--version
+|
+|
+
+
+|
+|--debug
+|
+|
+
+|
+|--verbose
+|
+|
+
+|
+|--quiet
+|
+|
+
+
+|===
 
 
 
-## `Dummy` class
+== `Dummy` class
 
 `org.apache.isis.Dummy`
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_externalized-configuration.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_externalized-configuration.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_externalized-configuration.adoc
index 551e765..8323391 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_externalized-configuration.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_externalized-configuration.adoc
@@ -6,7 +6,7 @@
 
 
 
-As described xref:ug.adoc#_ug_runtime_configuration-files[here], by default Apache Isis itself bootstraps from the `isis.properties` configuration file.  It will also read configuration from the (optional) component/implementation-specific configuration files (such as
+As described xref:rg.adoc#_rg_runtime_configuration-files[here], by default Apache Isis itself bootstraps from the `isis.properties` configuration file.  It will also read configuration from the (optional) component/implementation-specific configuration files (such as
 `persistor_datanucleus.properties` or `viewer_wicket.properties`), and also (optional) component-specific configuration
 files (such as `persistor.properties` or `viewer.properties`).
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_tomcat.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_tomcat.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_tomcat.adoc
index 2841921..1728cfe 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_tomcat.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_deployment_tomcat.adoc
@@ -31,4 +31,4 @@ You can hint the JVM to unload dynamically created classes which ClassLoaders ar
 
 == Using a JNDI Datasource
 
-See the guidance in the xref:ug.adoc#_ug_runtime_configuring-datanucleus_using-jndi-data-source[configuring datanucleus] section.
\ No newline at end of file
+See the guidance in the xref:rg.adoc#_rg_runtime_configuring-datanucleus_using-jndi-data-source[configuring datanucleus] section.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_how-tos_ui-hints_action-icons-and-css.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_how-tos_ui-hints_action-icons-and-css.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_how-tos_ui-hints_action-icons-and-css.adoc
index 82474dc..ca7a0b1 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_how-tos_ui-hints_action-icons-and-css.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_how-tos_ui-hints_action-icons-and-css.adoc
@@ -21,7 +21,7 @@ Alternatively, you can specify these hints dynamically in the xref:rg.adoc#_rg_o
 
 Rather than annotating every action with xref:rg.adoc#_rg_annotations_manpage-ActionLayout_cssClassFa[`@ActionLayout#cssClassFa()`] and xref:rg.adoc#_rg_annotations_manpage-ActionLayout_cssClass[`@ActionLayout#cssClass()`] you can instead specify the UI hint globally using regular expressions.
 
-The xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.reflector.facet.cssClassFa.patterns` is a comma separated list of key:value pairs, eg:
+The xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.reflector.facet.cssClassFa.patterns` is a comma separated list of key:value pairs, eg:
 
 [source,ini]
 ----
@@ -40,7 +40,7 @@ isis.reflector.facet.cssClassFa.patterns=\
 where the key is a regex matching action names (eg `create.*`) and the value is a link:http://fortawesome.github.io/Font-Awesome/icons/[font-awesome] icon name (eg `fa-plus`) to be applied (as per `@CssClassFa()`) to all action members matching the regex.
 
 
-Similarly, the xref:ug.adoc#_ug_runtime_configuring-core[configuration property] `isis.reflector.facet.cssClass.patterns` is a comma separated list of key:value pairs, eg:
+Similarly, the xref:rg.adoc#_rg_runtime_configuring-core[configuration property] `isis.reflector.facet.cssClass.patterns` is a comma separated list of key:value pairs, eg:
 
 [source,ini]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_more-advanced_decoupling_db-schemas.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_more-advanced_decoupling_db-schemas.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_more-advanced_decoupling_db-schemas.adoc
index 6e91b1c..ccaab99 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_more-advanced_decoupling_db-schemas.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_more-advanced_decoupling_db-schemas.adoc
@@ -49,7 +49,7 @@ CREATE TABLE isisaudit."AuditEntry" (
 
 [TIP]
 ====
-If for some reason you don't want to use schemas (though we strongly recommend that you do), then note that you can override the `@PersistenceCapable` annotation by providing XML metadata (the `mappings.jdo` file); see the section on xref:ug.adoc#_ug_runtime_configuring-datanucleus[configuring DataNucleus Overriding Annotations] for more details.
+If for some reason you don't want to use schemas (though we strongly recommend that you do), then note that you can override the `@PersistenceCapable` annotation by providing XML metadata (the `mappings.jdo` file); see the section on xref:rg.adoc#_rg_runtime_configuring-datanucleus[configuring DataNucleus Overriding Annotations] for more details.
 ====
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_more-advanced_i18n.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_more-advanced_i18n.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_more-advanced_i18n.adoc
index ab9cecc..66c08c3 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_more-advanced_i18n.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_more-advanced_i18n.adoc
@@ -90,8 +90,8 @@ If however the service is configured to run in write mode, then it instead recor
 
 To make the service as convenient as possible to use, the service configures itself as follows:
 
-* if running in prototype mode xref:ug.adoc#_ug_runtime_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:ug.adoc#_ug_runtime_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).
+* if running in prototype mode xref:rg.adoc#_rg_runtime_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:rg.adoc#_rg_runtime_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.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_restfulobjects-viewer_features.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_restfulobjects-viewer_features.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_restfulobjects-viewer_features.adoc
index 9ad39e2..1da655b 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_restfulobjects-viewer_features.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_restfulobjects-viewer_features.adoc
@@ -16,7 +16,7 @@ The Restful Objects spec can be downloaded link:http://restfulobjects.org[here].
 
 == Pretty printing
 
-The JSON representations generated by the Restful Objects viewer are in compact form if the xref:ug.adoc#_ug_runtime_deployment-types[deployment type] is SERVER (ie production), but will automatically be "pretty printed" (in other words indented) if the deployment type is PROTOTYPE.
+The JSON representations generated by the Restful Objects viewer are in compact form if the xref:rg.adoc#_rg_runtime_deployment-types[deployment type] is SERVER (ie production), but will automatically be "pretty printed" (in other words indented) if the deployment type is PROTOTYPE.
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime.adoc
deleted file mode 100644
index eeef111..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime.adoc
+++ /dev/null
@@ -1,29 +0,0 @@
-[[_ug_runtime]]
-= Runtime
-: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/
-
-
-Isis' own configuration properties are simple key-value pairs, typically held in the `WEBINF/isis.properties` file and other related files.  This chapter describes how to configure an Apache Isis application.
-
-[NOTE]
-====
-Configuration properties for the viewers can be found in the xref:ug.adoc#_ug_wicket-viewer[Wicket Viewer] chapter and the xref:ug.adoc#_ug_restfulobjects-viewer[RestfulObjects viewer] chapter.  Likewise[details of configuring security (Apache Shiro) can be found in the xref:ug.adoc#_ug_security[Security] chapter.
-
-Also, note that by default the configuration values are part of the built WAR file.  Details on how to override these configuration properties externally for different environments can be found in the xref:ug.adoc#_ug_deployment[Deployment] chapter.
-====
-
-
-include::_ug_runtime_deployment-types.adoc[leveloffset=+1]
-include::_ug_runtime_configuration-files.adoc[leveloffset=+1]
-include::_ug_runtime_specifying-components.adoc[leveloffset=+1]
-include::_ug_runtime_configuring-core.adoc[leveloffset=+1]
-include::_ug_runtime_configuring-datanucleus.adoc[leveloffset=+1]
-include::_ug_runtime_web-xml.adoc[leveloffset=+1]
-include::_ug_runtime_application-specific.adoc[leveloffset=+1]
-
-
-
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_application-specific.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_application-specific.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_application-specific.adoc
deleted file mode 100644
index b8396b7..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_application-specific.adoc
+++ /dev/null
@@ -1,13 +0,0 @@
-[[_ug_runtime_application-specific]]
-= Application-specific CSS and JS
-: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/
-
-NOTE: TODO
-
-
-include::_ug_runtime_application-specific_application-css.adoc[leveloffset=+1]
-include::_ug_runtime_application-specific_application-js.adoc[leveloffset=+1]
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_application-specific_application-css.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_application-specific_application-css.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_application-specific_application-css.adoc
deleted file mode 100644
index 75cbaf9..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_application-specific_application-css.adoc
+++ /dev/null
@@ -1,8 +0,0 @@
-[[_ug_runtime_application-specific_application-css]]
-= `application.css`
-: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/
-
-NOTE: TODO - `WEB-INF/css/application.css`
-

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_application-specific_application-js.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_application-specific_application-js.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_application-specific_application-js.adoc
deleted file mode 100644
index 6f00726..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_application-specific_application-js.adoc
+++ /dev/null
@@ -1,9 +0,0 @@
-[[_ug_runtime_application-specific_application-js]]
-= `application.js`
-: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/
-
-
-
-NOTE: TODO - `WEB-INF/scripts/application.js`

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuration-files.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuration-files.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuration-files.adoc
deleted file mode 100644
index 58da346..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuration-files.adoc
+++ /dev/null
@@ -1,40 +0,0 @@
-[[_ug_runtime_configuration-files]]
-= Configuration Files
-: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/
-
-
-When running an Apache Isis webapp, configuration properties are read from configuration files held in the `WEB-INF` directory.
-
-The `WEBINF/isis.properties` file is always read and must exist.
-
-In addition, the following other properties are searched for and if present also read:
-
-* `viewer_wicket.properties` - if the xref:ug.adoc#_ug_wicket-viewer[Wicket UI (viewer)] is in use
-
-* `viewer_restfulobjects.properties` - if the xref:ug.adoc#_ug_restfulobjects-viewer[Restful Objects REST API (viewer)] is in use
-
-* `viewer.properties` - for any shared UI configuration
-
-* `persistor_datanucleus.properties` - assuming the JDO/DataNucleus objectstore is in use
-
-* `persistor.properties` - for any other objectstore configuration.  +
-+
-This typically is used to hold `JDBC` ``URL``s, which is arguably a slight violation of the file (because there's nothing in Apache Isis to say that persistors have to use `JDBC`.  However, it is generally convenient to put these `JDBC` settings into a single location.  If you want, they could reside inin any of `persistor_datanucleus.properties`, `persistor.properties` or (even) `isis.properties`
-
-* `authentication_shiro.properties`, `authorization_shiro.properties`
-+
-assuming the Shiro Security is in use (but there are no security-related config properties currently; use shiro.ini for Shiro config)
-
-* `authentication.properties`, `authorization.properties` +
-+
-for any other security-related config properties (but there are none currently).
-
-You can if you wish simply store all properties in the `isis.properties` file; but we think that breaking properties out into sections is preferable.
-
-
-
-
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-core.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-core.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-core.adoc
deleted file mode 100644
index 6dcbf88..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-core.adoc
+++ /dev/null
@@ -1,273 +0,0 @@
-[[_ug_runtime_configuring-core]]
-= Configuring Core
-: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/
-
-This section lists the core/runtime configuration properties recognized by Apache Isis.
-
-[NOTE]
-====
-Configuration properties for the JDO/DataNucleus objectstore can be found in the xref:ug.adoc#_ug_runtime_configuring-datanucleus[Configuring DataNucleus] section later in this chapter, while configuration properties for the viewers can be found in the their respective chapters, xref:ug.adoc#_ug_wicket-viewer_configuration-properties[here for Wicket viewer], and xref:ug.adoc#_ug_restfulobjects-viewer_configuration-properties[here for the Restful Objects viewer].
-====
-
-
-
-.Core Configuration Properties
-[cols="2a,1,3a", options="header"]
-|===
-|Property
-|Value +
-(default value)
-|Description
-
-|`isis.object.` +
-`editing`
-| `true`,`false` (`true`)
-|Whether objects' properties and collections can be edited directly (for objects annotated with xref:rg.adoc#_rg_annotations_manpage-DomainObject_editing[`@DomainObject#editing()`]); see xref:ug.adoc#_ug_runtime_configuring-core_isis-objects-editing[below] for further discussion.
-
-
-|`isis.persistor.` +
-`disableConcurrencyChecking`
-| `true`,`false` (`false`)
-| Disables concurrency checking globally.  +
-
-Only intended for "emergency use" as a workaround while pending fix/patch to Apache Isis itself.  (Note that there is no "datanucleus" in the property).
-
-|`isis.reflector.facet.` +
-`cssClass.patterns`
-|regex:css1,regex2:css2,...
-|Comma separated list of key:value pairs, where the key is a regex matching action names (eg `delete.*`) and the value is a link:http://getbootstrap.com/css/[Bootstrap] CSS button class (eg `btn-warning) to be applied (as per `@CssClass()`) to all action members matching the regex. +
-
-See xref:ug.adoc#_ug_how-tos_ui-hints_action-icons-and-css[UI hints] for more details.
-
-|`isis.reflector.facet.` +
-`cssClassFa.patterns`
-|regex:fa-icon,regex2:fa-icon2,...
-|Comma separated list of key:value pairs, where the key is a regex matching action names (eg `create.*`) and the value is a link:http://fortawesome.github.io/Font-Awesome/icons/[font-awesome] icon name (eg `fa-plus`) to be applied (as per `@CssClassFa()`) to all action members matching the regex. +
-
-See xref:ug.adoc#_ug_how-tos_ui-hints_action-icons-and-css[UI hints] for more details.
-
-|`isis.reflector.facets`
-|`FQCN`
-|Fully qualified class names of a custom implementation of `ProgrammingModel` interface. +
-
-See xref:ug.adoc#_ug_extending_programming-model_finetuning[finetuning the programming model] for more details.
-
-|`isis.reflector.facets.` +
-`exclude`
-|`FQCN`,`FQCN2`,...
-|Fully qualified class names of (existing, built-in) facet factory classes to be included to the programming model. +
-
-See xref:ug.adoc#_ug_extending_programming-model_finetuning[finetuning the programming model] for more details.
-
-|`isis.reflector.facets.` +
-`include`
-|`FQCN`,`FQCN2`,...
-|Fully qualified class names of (new, custom) facet factory classes to be included to the programming model. +
-See xref:ug.adoc#_ug_extending_programming-model_finetuning[finetuning the programming model] for more details.
-
-
-|`isis.reflector.` +
-`layoutMetadataReaders`
-|`FQCN`,`FQCN2`,...
-|Fully qualified class names of classes to be instantiated to read layout metadata, as used in for xref:rg.adoc#_rg_object-layout_dynamic[dynamic layout]s. +
-
-See xref:ug.adoc#_ug_extending_programming-model_layout-metadata-reader[Layout Metadata Reader] for more information.
-
-
-
-|`isis.reflector.validator`
-|`FQCN`
-|Custom implementation of `MetaModelValidator` (in the `org.apache.isis.core.metamodel.specloader.validator` package) +
-
-See xref:ug.adoc#_ug_extending_programming-model_custom-validator[Custom Validator] to learn more.
-
-|`isis.reflector.validator.` +
-`allowDeprecated`
-| `true`,`false` (`true`)
-| Whether deprecated annotations or naming conventions are tolerated or not.  If not, then a metamodel validation error will be triggered, meaning the app won't boot (fail-fast).
-
-|`isis.services`
-|`FQCN`,`FQCN2`,...
-|Fully qualified class names of classes to be instantiated as domain services.  +
-
-Each entry can be optionally prefixed by "n:" specifying the relative order on the menu (corresponds to xref:rg.adoc#_rg_annotations_manpage-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`]).
-
-
-|`isis.services.` +
-`audit.objects`
-| `all`, `none` (`all`)
-|Whether the changed properties of objects should be automatically audited (for objects annotated with xref:rg.adoc#_rg_annotations_manpage-DomainObject_auditing[`@DomainObject(auditing=Auditing.AS_CONFIGURED)`].
-
-|`isis.services.` +
-`command.actions`
-| `all`, `ignoreSafe`, `none` (`all`)
-|Whether actions should be automatically reified into commands (for actions annotated with xref:rg.adoc#_rg_annotations_manpage-Action_command[`@Action(command=CommandReification.AS_CONFIGURED)`].  +
-
-`ignoreQueryOnly` is an alias for `ignoreSafe`.
-
-
-|`isis.services.` +
-`container.disableAutoFlush`
-| `true`,`false` (`_false_`)
-|Whether the `DomainObjectContainer` should automatically flush pending changes prior to querying (via `allMatches()`, `firstMatch()` and so on).
-
-|`isis.services.` +
-`container.disableAutoFlush`
-| `true`,`false` (`_false_`)
-|Whether the `DomainObjectContainer` should automatically flush pending changes prior to querying (via `allMatches()`, `firstMatch()` and so on).
-
-
-
-|`ContentNegotiation-` +
-`ServiceXRoDomainType` +
-.prettyPrint
-| `true`,`false` (depends)
-|If a domain object has been mapped to the specified JAXB `x-ro-domain-type`, then determines whether the result is pretty-printed or not. +
-+
-If no configuration property is available, then the defaults is determined by the xref:ug.adoc#_ug_runtime_deployment-types[deployment type]: production mode disables pretty printing, while prototype mode enables it.
-
-
-
-| `isis.service.` +
-`email.tls.enabled`
-| `true`,`false` (`_true_`)
-|Whether to enable TLS for the email SMTP connection (used by xref:rg.adoc#_rg_services-api_manpage-EmailService[`EmailService`]).  +
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-| `isis.service.` +
-`email.sender.hostname` +
-| host (`_smtp.gmail.com_`)
-|The hostname of the external SMTP provider (used by xref:rg.adoc#_rg_services-api_manpage-EmailService[`EmailService`]).  +
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-| `isis.service.` +
-`email.port` +
-| port number (`_587_`)
-|The port number for the SMTP service on the the external SMTP host (used by xref:rg.adoc#_rg_services-api_manpage-EmailService[`EmailService`]).  +
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-
-| `isis.service.` +
-`email.sender.address` +
-| email address
-|The email address to use for sending out email (used by xref:rg.adoc#_rg_services-api_manpage-EmailService[`EmailService`]).  *Mandatory*.  +
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-| `isis.service.` +
-`email.sender.password` +
-| email password
-|The corresponding password for the email address to use for sending out email (used by xref:rg.adoc#_rg_services-api_manpage-EmailService[`EmailService`]).  *Mandatory*.  +
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-
-| `isis.services.` +
-`eventbus.implementation` +
-| `guava`, `axon`, FQCN (`_guava_`)
-|which implementation to use by the xref:rg.adoc#_rg_services-api_manpage-EventBusService[`EventBusService`] as the underlying event bus.
-
-| `isis.services.` +
-`eventbus.allowLateRegistration` +
-| `true`, `false`, (`_false_`)
-|whether a domain service can register with the xref:rg.adoc#_rg_services-api_manpage-EventBusService[`EventBusService`] after any events have posted. +
-
-Since this almost certainly constitutes a bug in application code, by default this is disallowed.
-
-
-| `isis.services.` +
-`exceprecog.logRecognizedExceptions` +
-| `true`, `false`, (`_false_`)
-|whether recognized exceptions should also be logged. +
-
-Generally a recognized exception is one that is expected (for example a uniqueness constraint violated in the database) and which does not represent an error condition.  This property logs the exception anyway, useful for debugging.
-
-
-| `isis.services.` +
-`ExceptionRecognizerComposite-` +
-`ForJdoObjectStore.disable` +
-| `true`, `false`, (`_false_`)
-|whether to disable the default recognizers registered by `ExceptionRecognizerCompositeForJdoObjectStore`. +
-
-This implementation provides a default set of recognizers to convert RDBMS constraints into user-friendly messages.  In the (probably remote) chance that this functionality isn't required, they can be disabled through this flag.
-
-
-|`isis.services.` +
-`publish.objects`
-| `all`, `none` (`all`)
-|Whether changed objects should be automatically published (for objects annotated with xref:rg.adoc#_rg_annotations_manpage-DomainObject_publishing[`@DomainObject(publishing=Publishing.AS_CONFIGURED)`].
-
-|`isis.services.` +
-`publish.actions`
-| `all`, `ignoreSafe`, `none` (`all`)
-|Whether actions should be automatically published (for actions annotated with xref:rg.adoc#_rg_annotations_manpage-Action_publishing[`@Action(publishing=Publishing.AS_CONFIGURED)`]. +
-
-|`isis.services.` +
-`translation.po.mode`
-| `read`,`write`
-|Whether to force the `TranslationService` into either read or write mode. +
-
-See xref:ug.adoc#_ug_more-advanced_i18n[i18n support] to learn more about the translation service.
-
-|`isis.viewers.` +
-`paged.parented`
-|positive integer (12)
-|Default page size for parented collections (as owned by an object, eg `Customer#getOrders()`)
-
-|`isis.viewers.` +
-`paged.standalone`
-|positive integer (25)
-|Default page size for standalone collections (as returned from an action invocation)
-
-
-|`isis.viewers.` +
-`propertyLayout.labelPosition`
-|`TOP`, `LEFT` +
-(`LEFT`)
-|Default for label position for all properties if not explicitly specified using xref:rg.adoc#_rg_annotations_manpage-PropertyLayout_labelPosition[`@PropertyLayout#labelPosition()`]
-
-|===
-
-
-
-
-[[_ug_runtime_configuring-core_isis-objects-editing]]
-== `objects.editing`
-
-This configuration property in effect allows editing to be disabled globally for an application:
-
-[source,ini]
-----
-isis.objects.editing=false
-----
-
-We recommend enabling this feature; it will help drive out the underlying business operations (processes and procedures) that require objects to change; these can then be captured as business actions.
-
-
-
-[[_ug_runtime_configuring-core_isis-viewers-propertyLayout-labelPosition]]
-== `propertyLayout.labelPosition`
-
-If you want a consistent look-n-feel throughout the app, eg all property labels to the top, then it'd be rather
-frustrating to have to annotate every property.
-
-Instead, a default can be specified in `isis.properties`:
-
-[source,ini]
-----
-isis.viewers.propertyLayout.labelPosition=TOP
-----
-
-or
-
-[source,ini]
-----
-isis.viewers.propertyLayout.labelPosition=LEFT
-----
-
-If these are not present then Apache Isis will render according to internal defaults. At the time of writing, this means labels are to the left for all datatypes except multiline strings.

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus.adoc
deleted file mode 100644
index f354b02..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus.adoc
+++ /dev/null
@@ -1,18 +0,0 @@
-[[_ug_runtime_configuring-datanucleus]]
-= Configuring DataNucleus
-: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 programmatically configures DataNucleus; any Apache Isis properties with the prefix `isis.persistor.datanucleus.impl` are passed through directly to the JDO/DataNucleus objectstore (with the prefix stripped off, of course).
-
-DataNucleus will for itself also and read the `META-INF/persistence.xml`; at a minimum this defines the name of the "persistence unit".  n theory it could also hold mappings, though in Apache Isis we tend to use annotations instead.
-
-Furthermore, DataNucleus will search for various other XML mapping files, eg `mappings.jdo`.  A full list can be found http://www.datanucleus.org/products/datanucleus/jdo/metadata.html[here].  The metadata in these XML can be used to override the annotations of annotated entities; see xref:ug.adoc#_ug_more-advanced_overriding-jdo-annotations[Overriding JDO Annotatons] for further discussion.
-
-
-include::_ug_runtime_configuring-datanucleus_properties.adoc[leveloffset=+1]
-include::_ug_runtime_configuring-datanucleus_persistence-xml.adoc[leveloffset=+1]
-include::_ug_runtime_configuring-datanucleus_eagerly-registering-entities.adoc[leveloffset=+1]
-include::_ug_runtime_configuring-datanucleus_disabling-persistence-by-reachability.adoc[leveloffset=+1]
-include::_ug_runtime_configuring-datanucleus_using-jndi-data-source.adoc[leveloffset=+1]

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_disabling-persistence-by-reachability.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_disabling-persistence-by-reachability.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_disabling-persistence-by-reachability.adoc
deleted file mode 100644
index 9edbc79..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_disabling-persistence-by-reachability.adoc
+++ /dev/null
@@ -1,88 +0,0 @@
-[[_ug_runtime_configuring-datanucleus_disabling-persistence-by-reachability]]
-= Persistence by Reachability
-: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/
-
-By default, JDO/DataNucleus supports the concept of http://www.datanucleus.org/products/datanucleus/jdo/orm/cascading.html[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.
-
-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.
-====
-
-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:rg.adoc#_rg_classes_utility_manpage-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`:
-
-[source,ini]
-----
-isis.persistor.datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit=false
-----
-
-This change has been made to the xref:ug.adoc#_ug_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.
-
-
-
-
-
-== The issue in more detail
-
-Consider these entities (http://yuml.me/edit/b8681268[yuml.me/b8681268]):
-
-image::{_imagesdir}runtime/configuring-datanucleus/disabling-persistence-by-reachability/party-agreementrole-agreement.png[width="750px"]
-
-
-
-In the course of a transaction, the `Agreement` entity is loaded into memory (not necessarily modified), and then new ``AgreementRole``s are associated to it.
-
-All these entities implement `Comparable` using `ObjectContracts`, and the implementation of ``AgreementRole``'s (simplified) is:
-
-[source,java]
-----
-public class AgreementRole {
-    ...
-    public int compareTo(AgreementRole other) {
-        return ObjectContracts.compareTo(this, other, "agreement","startDate","party");
-    }
-}
-----
-
-while ``Agreement``'s is implemented as:
-
-[source,java]
-----
-public class Agreement {
-    ...
-    public int compareTo(Agreement other) {
-        return ObjectContracts.compareTo(this, other, "reference");
-    }
-}
-----
-
-and ``Party``'s is similarly implemented as:
-
-[source,java]
-----
-public class Party {
-    ...
-    public int compareTo(Party other) {
-        return ObjectContracts.compareTo(this, other, "reference");
-    }
-}
-----
-
-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 "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.
-
-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/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_eagerly-registering-entities.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_eagerly-registering-entities.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_eagerly-registering-entities.adoc
deleted file mode 100644
index 6822d77..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_eagerly-registering-entities.adoc
+++ /dev/null
@@ -1,44 +0,0 @@
-[[_ug_runtime_configuring-datanucleus_eagerly-registering-entities]]
-= Eagerly Registering Entities
-: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/
-
-Both Apache Isis and DataNucleus have their own metamodels of the domain entities. Apache Isis builds its metamodel by walking the graph of types from the services registered using `@DomainService` or explicitly registered in `isis.properties`. The JDO objectstore then takes these types and registers them with DataNucleus.
-
-In some cases, though, not every entity type is discoverable from the API of the service actions. This is especially the case if you have lots of subtypes (where the action method specifies only the supertype). In such cases the Isis and JDO metamodels is built lazily, when an instance of that (sub)type is first encountered.
-
-Isis is quite happy for the metamodel to be lazily created, and - to be fair - DataNucleus also works well in most cases. In some cases, though, we have found that the JDBC driver (eg HSQLDB) will deadlock if DataNucleus tries to submit some DDL (for a lazily discovered type) intermingled with DML (for updating).
-
-In any case, it's probably not good practice to have DataNucleus work this way. The `RegisterEntities` service can therefore be registered in order to do the eager registration. It searches for all `@PersistenceCapable` entities under specified package(s), and registers them all.
-
-[WARNING]
-====
-There's a chance that (from 1.6.0+) feature may be (partly?) broken; see https://issues.apache.org/jira/browse/ISIS-847[ISIS-847].
-====
-
-
-== Specify the Package Prefix(es)
-
-In the `persistor_datanucleus.properties`, specify the package prefix(es) of your application, to provide a hint for finding the `@PersistenceCapable` classes.
-
-The value of this property can be a comma-separated list (if there is more than one package or Maven module that holds persistable entities).
-
-
-== Integration Testing
-
-The `IsisConfigurationForJdoIntegTests`, recommended for use in xref:ug.adoc#_ug_testing_integ-test-support[Integration Testing] provides the `#addRegisterEntitiesPackagePrefix()` method to set up this configuration property:
-
-[source,java]
-.Integration test bootstrapping
-----
-private static class SimpleAppSystemBuilder extends IsisSystemForTest.Builder {
-    ...
-    private static IsisConfiguration testConfiguration() {
-        final IsisConfigurationForJdoIntegTests testConfiguration = new IsisConfigurationForJdoIntegTests();
-        testConfiguration.addRegisterEntitiesPackagePrefix("domainapp.dom.modules"); // <1>
-        return testConfiguration;
-    }
-}
-----
-<1> specify the package prefix(es) for integration testing.

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_persistence-xml.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_persistence-xml.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_persistence-xml.adoc
deleted file mode 100644
index d50e295..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_persistence-xml.adoc
+++ /dev/null
@@ -1,10 +0,0 @@
-[[_ug_runtime_configuring-datanucleus_persistence-xml]]
-= `persistence.xml`
-: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/
-
-
-NOTE: TODO
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_properties.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_properties.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_properties.adoc
deleted file mode 100644
index 3d8700c..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_properties.adoc
+++ /dev/null
@@ -1,64 +0,0 @@
-[[_ug_runtime_configuring-datanucleus_properties]]
-= Configuration Properties
-: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/
-
-
-These configuration properties are typically stored in `WEB-INF/persistor_datanucleus.properties`.  However, you can place all configuration properties into `WEB-INF/isis.properties` if you wish (the configuration properties from all config files are merged together).
-
-== Configuration Properties for Apache Isis itself
-
-
-.JDO/DataNucleus Objectstore Configuration Properties
-[cols="2a,1,3a", options="header"]
-|===
-|Property
-|Value +
-(_default value_)
-|Description
-
-|`isis.persistor.` +
-`datanucleus.` +
-`classMetadataLoadedListener`
-|`FQCN`
-|The default (`o.a.i.os.jdo.dn.CreateSchemaObjectFromClassMetadata`) creates a DB schema object
-
-
-|`isis.persistor.datanucleus.` +
-`RegisterEntities.packagePrefix`
-| fully qualified package names (CSV)
-| of class names; specifies the entities early rather than allow DataNucleus to find the entities lazily.  Strongly recommended (subtle issues can sometimes arise if lazy discovery is used).
-Further xref:ug.adoc#_ug_runtime_configuring-datanucleus_eagerly-registering-entities[discussion below].
-
-|`isis.persistor.datanucleus.` +
-`PublishingService.serializedForm`
-| zipped
-|
-
-|===
-
-
-
-== Configuration Properties passed through directly to DataNucleus.
-
-.JDO/DataNucleus Objectstore Configuration Properties
-[cols="2a,1,3a", options="header"]
-|===
-|Property
-|Value +
-(_default value_)
-|Description
-
-|`isis.persistor.datanucleus.impl.*`
-|
-| Passed through directly to Datanucleus (with `isis.persistor.datanucleus.impl` prefix stripped)
-
-|`isis.persistor.datanucleus.impl.` +
-`datanucleus.persistenceByReachabilityAtCommit`
-|`false`
-|We recommend this setting is disabled.  +
-Further xref:ug.adoc#_ug_runtime_configuring-datanucleus_disabling-persistence-by-reachability[discussion below].
-
-|===
-

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_using-jndi-data-source.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_using-jndi-data-source.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_using-jndi-data-source.adoc
deleted file mode 100644
index e5ee392..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_configuring-datanucleus_using-jndi-data-source.adoc
+++ /dev/null
@@ -1,75 +0,0 @@
-[[_ug_runtime_configuring-datanucleus_using-jndi-data-source]]
-= Using JNDI DataSource
-: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/
-
-Isis' JDO objectstore can be configured either to connect to the database using its own connection pool, or by using a container-managed datasource.
-
-
-
-== Application managed
-
-Using a connection pool managed directly by the application (that is, by Apache Isis' JDO objectstore and ultimately by DataNucleus) requires a single set of configuration properties to be specified.
-
-In the `WEB-INF\persistor_datanucleus.properties` file, specify the connection driver, url, username and password.
-
-For example:
-
-[source,ini]
-----
-isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=net.sf.log4jdbc.DriverSpy
-isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:log4jdbc:hsqldb:mem:test
-isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=sa
-isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=
-----
-
-Those configuration properties that start with the prefix `isis.persistor.datanucleus.impl.` are passed through directly to DataNucleus (with the prefix removed).
-
-
-
-
-
-== Container managed (JNDI)
-
-Using a datasource managed by the servlet container requires three separate bits of configuration.
-
-Firstly, specify the name of the datasource in the `WEB-INF\persistor_datanucleus.properties` file. For example:
-
-If connection pool settings are also present in this file, they will simply be ignored. Any other configuration properties that start with the prefix `isis.persistor.datanucleus.impl.` are passed through directly to DataNucleus (with the prefix removed).
-
-Secondly, in the `WEB-INF/web.xml`, declare the resource reference:
-
-[source,xml]
-----
-<resource-ref>
-    <description>db</description>
-    <res-ref-name>jdbc/simpleapp</res-ref-name>
-    <res-type>javax.sql.DataSource</res-type>
-    <res-auth>Container</res-auth>
-</resource-ref>
-----
-
-Finally, declare the datasource as required by the servlet container. For example, if using Tomcat 7, the datasource can be specified by adding the following to `$TOMCAT_HOME/conf/context.xml`:
-
-[source,xml]
-----
-<Resource name="jdbc/simpleapp"
-  auth="Container"
-  type="javax.sql.DataSource"
-  maxActive="100"
-  maxIdle="30"
-  maxWait="10000"
-  username="sa"
-  password="p4ssword"
-  driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
-  url="jdbc:sqlserver://127.0.0.1:1433;instance=.;databaseName=simpleapp"/>
-----
-
-You will also need to make sure that the JDBC driver is on the servlet container's classpath. For Tomcat, this means copying the driver to `$TOMCAT_HOME/lib`.
-
-[NOTE]
-====
-According to Tomcat's documentation, it is supposedly possible to copy the `conf/context.xml` to the name of the webapp, eg `conf/mywebapp.xml`, and scope the connection to that webapp only.  I was unable to get this working, however.
-====
-

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_deployment-types.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_deployment-types.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_deployment-types.adoc
deleted file mode 100644
index 6eb6cd3..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_deployment-types.adoc
+++ /dev/null
@@ -1,17 +0,0 @@
-[[_ug_runtime_deployment-types]]
-= Deployment Types
-: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/
-
-
-
-NOTE: TODO - xref:rg.adoc#_rg_annotations_manpage-Action_restrictTo[`@Action#restrictTo()`]
-
-
-
-Can be set to:
-
-* `SERVER` - broadly corresponds to Wicket's `PRODUCTION` mode
-* `PROTOTYPING` - the default; broadly corresponds to Wicket's `DEVELOPMENT` mode
-* `OTHER`


[7/9] isis git commit: ISIS-1170: better exception if a class has no properties/collections at all.

Posted by da...@apache.org.
ISIS-1170: better exception if a class has no properties/collections at all.


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

Branch: refs/heads/master
Commit: a4989fd5f008758370ef09cc6589cb39e780655f
Parents: edc4fa7
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jul 9 11:28:43 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jul 9 11:29:59 2015 +0100

----------------------------------------------------------------------
 .../apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java | 7 +++++++
 1 file changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/a4989fd5/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
index 72b4fc6..69dc4b6 100644
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
+++ b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
@@ -29,6 +29,8 @@ import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.model.AbstractReadOnlyModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.Strings;
+
+import org.apache.isis.applib.NonRecoverableException;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -143,6 +145,11 @@ public class EntityPage extends PageAbstract {
         final List<ObjectAssociation> visibleAssociation = specification.getAssociations(Contributed.INCLUDED, ObjectAssociation.Filters.dynamicallyVisible(session, objectAdapter, Where.NOWHERE));
 
         if(visibleAssociation.isEmpty()) {
+            final List<ObjectAssociation> anyAssociations = specification.getAssociations(Contributed.INCLUDED);
+            if(anyAssociations.isEmpty()) {
+                throw new NonRecoverableException(String.format(
+                        "No properties are defined for this entity type (%s); this is probably a programming error", specification.getFullIdentifier()));
+            }
             throw new ObjectMember.AuthorizationException();
         }
 


[9/9] isis git commit: ISIS-1133: small tidy up of Wicket UI customisation pages.

Posted by da...@apache.org.
ISIS-1133: small tidy up of Wicket UI customisation pages.


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

Branch: refs/heads/master
Commit: 4111aac652bd3a08aacb492e2b11ddb3405ee82e
Parents: eabc168
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jul 9 17:27:46 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jul 9 17:27:46 2015 +0100

----------------------------------------------------------------------
 .../guides/_ug_wicket-viewer_customisation.adoc |  2 +-
 ...er_customisation_cheap-n-cheerful-theme.adoc |  2 +-
 ...ewer_customisation_tweaking-css-classes.adoc | 30 +++++++++-----------
 3 files changed, 16 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/4111aac6/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation.adoc
index 9ad143e..abfdcbd 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation.adoc
@@ -11,7 +11,7 @@ include::_ug_wicket-viewer_customisation_default-theme.adoc[leveloffset=+1]
 include::_ug_wicket-viewer_customisation_welcome-page.adoc[leveloffset=+1]
 include::_ug_wicket-viewer_customisation_about-page.adoc[leveloffset=+1]
 include::_ug_wicket-viewer_customisation_tweaking-css-classes.adoc[leveloffset=+1]
-include::_ug_wicket-viewer_customisation_tweaking-css-classes.adoc[leveloffset=+1]
+include::_ug_wicket-viewer_customisation_cheap-n-cheerful-theme.adoc[leveloffset=+1]
 include::_ug_wicket-viewer_customisation_using-different-css-file.adoc[leveloffset=+1]
 include::_ug_wicket-viewer_customisation_custom-javascript.adoc[leveloffset=+1]
 include::_ug_wicket-viewer_customisation_auto-refresh.adoc[leveloffset=+1]

http://git-wip-us.apache.org/repos/asf/isis/blob/4111aac6/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_cheap-n-cheerful-theme.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_cheap-n-cheerful-theme.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_cheap-n-cheerful-theme.adoc
index d6c51ba..5537590 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_cheap-n-cheerful-theme.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_cheap-n-cheerful-theme.adoc
@@ -1,5 +1,5 @@
 [[_ug_wicket-viewer_customisation_cheap-n-cheerful-theme]]
-= Cheap-n-cheerful "theme"
+= Cheap-n-cheerful theme
 :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/

http://git-wip-us.apache.org/repos/asf/isis/blob/4111aac6/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_tweaking-css-classes.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_tweaking-css-classes.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_tweaking-css-classes.adoc
index 0d12342..1d07043 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_tweaking-css-classes.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_tweaking-css-classes.adoc
@@ -26,23 +26,21 @@ For example, the `ToDoItem` object of the Isis addons example https://github.com
 [source,html]
 ----
 <div>
-    <div class="property ToDoItem-notes">
-        <div class="multiLineStringPanel scalarNameAndValueComponentType">
-            <label for="id83" title="">
-                <span class="scalarName">Notes</span>
-                <span class="scalarValue">
-                    <textarea
-                        name="middleColumn:memberGroup:1:properties:4:property:scalarIfRegular:scalarValue"
-                        disabled="disabled"
-                        id="id83" rows="5" maxlength="400" size="125"
-                        title="">
-                    </textarea>
-                    <span>
-                    </span>
-                </span>
-            </label>
-       </div>
+  <div class="property ToDoItem-notes">
+    <div class="multiLineStringPanel scalarNameAndValueComponentType">
+      <label for="id83" title="">
+        <span class="scalarName">Notes</span>
+        <span class="scalarValue">
+           <textarea
+              name="middleColumn:memberGroup:1:properties:4:property:scalarIfRegular:scalarValue"
+              disabled="disabled"
+              id="id83" rows="5" maxlength="400" size="125"
+              title="">
+           </textarea>
+         <span>
+      </label>
     </div>
+  </div>
 </div>
 ----
 


[6/9] isis git commit: ISIS-1169: change to (try to) avoid "session already open" error (http://isis.markmail.org/thread/2dn7tja3r466yd2m)

Posted by da...@apache.org.
ISIS-1169: change to (try to) avoid "session already open" error (http://isis.markmail.org/thread/2dn7tja3r466yd2m)

- IsisContextThreadLocal now uses AUTO_CLOSE session policy instead of EXPLICIT_CLOSE session policy
- simplified IsisSessionFilter:
  - always call closeSession() in a finally block
  - get rid of SessionState enum, since never used
- enhanced IsisTransactionFilterForRestfulObjects to be resilient of the fact that the session/transaction may no longer exist (if the authSession is closed by a resource)
- added user/logout resource to UserResourceServerSide, enhanced UserReprRenderer to display new link (plus new proprietary Rel for this)
- extended IsisSessionFilter, also AuthenticationSessionStrategy interface
  - special query string to set on redirect to request that the session be closed
  - new AuthenticationSessionStrategy#invalidate(), called on this
   - default impl returns 401, UNAUTHORIZED... this is enough to effect a server-side "logout" for BASIC auth
- updated IsisSession#close() so that if takeSnapshot() throws exception, then this doesn't prevent the persistence session from being closed
- updated PersistenceSession#close(), better debugging if the objectStore#close() or the adapterManager#close() were to throw an exception.
- removed unused DeploymentType#UTILITY instance.


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

Branch: refs/heads/master
Commit: edc4fa7648f73dea2c3be41de24b29ca76af9fe4
Parents: 7db0239
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jul 9 11:25:50 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jul 9 11:29:57 2015 +0100

----------------------------------------------------------------------
 .../core/runtime/system/DeploymentType.java     |   1 -
 .../runtime/system/context/IsisContext.java     |  14 +-
 .../system/context/IsisContextThreadLocal.java  |   6 +-
 .../system/persistence/PersistenceSession.java  |  29 +--
 .../runtime/system/session/IsisSession.java     |   5 -
 .../system/session/IsisSessionDefault.java      |  12 +-
 .../isis/core/webapp/IsisSessionFilter.java     | 205 +++++++------------
 .../auth/AuthenticationSessionStrategy.java     |  10 +-
 .../AuthenticationSessionStrategyAbstract.java  |  12 +-
 .../AuthenticationSessionStrategyDefault.java   |  28 ++-
 .../isis/viewer/restfulobjects/applib/Rel.java  |   3 +-
 .../applib/user/UserResource.java               |  19 +-
 .../rendering/RendererContext.java              |   2 +-
 .../AuthenticationSessionStrategyBasicAuth.java |  39 ++--
 .../AuthenticationSessionStrategyHeader.java    |  10 +-
 .../AuthenticationSessionStrategyTrusted.java   |   8 +-
 .../server/resources/ResourceAbstract.java      |  12 +-
 .../server/resources/UserReprRenderer.java      |   7 +
 .../resources/UserResourceServerside.java       |  28 +++
 .../IsisTransactionFilterForRestfulObjects.java |  10 +-
 20 files changed, 257 insertions(+), 203 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/runtime/src/main/java/org/apache/isis/core/runtime/system/DeploymentType.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/DeploymentType.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/DeploymentType.java
index e92b5ff..3cde2b1 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/DeploymentType.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/DeploymentType.java
@@ -62,7 +62,6 @@ public class DeploymentType implements DeploymentCategoryProvider {
     public static DeploymentType SERVER_EXPLORATION = new DeploymentType("SERVER_EXPLORATION", DeploymentCategory.EXPLORING, ContextCategory.THREADLOCAL);
     public static DeploymentType SERVER_PROTOTYPE = new DeploymentType("SERVER_PROTOTYPE", DeploymentCategory.PROTOTYPING, ContextCategory.THREADLOCAL);
     public static DeploymentType UNIT_TESTING = new DeploymentType("UNIT_TESTING", DeploymentCategory.PRODUCTION, ContextCategory.STATIC_RELAXED);
-    public static DeploymentType UTILITY = new DeploymentType("UTILITY", DeploymentCategory.EXPLORING, ContextCategory.STATIC);
 
     /**
      * Look up {@link DeploymentType} by their {@link #name()}.

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
index e078665..287c282 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
@@ -95,7 +95,10 @@ public abstract class IsisContext implements DebuggableWithTitle {
     protected static enum SessionClosePolicy {
         /**
          * Sessions must be explicitly closed.
+         *
+         * @deprecated - in 1.9.0-SNAPSHOT it has been reported that on occasion the session is not explicitly closed.  This must mean that there's a leakage somewhere.  Using auto close instead will make the system overall more able to "repair itself" when this type of error (presumably a bug in our session management code) occurs
          */
+        @Deprecated
         EXPLICIT_CLOSE,
         /**
          * Sessions will be automatically closed.
@@ -211,8 +214,9 @@ public abstract class IsisContext implements DebuggableWithTitle {
      * threads have finished with a session can it really be closed.
      */
     public void closeSessionInstance() {
-        if (getSessionInstance() != null) {
-            getSessionInstance().close();
+        final IsisSession isisSession = getSessionInstance();
+        if (isisSession != null) {
+            isisSession.close();
             doClose();
         }
     }
@@ -445,7 +449,11 @@ public abstract class IsisContext implements DebuggableWithTitle {
     // ///////////////////////////////////////////////////////////
 
     public static boolean inTransaction() {
-        return inSession() && getCurrentTransaction() != null && !getCurrentTransaction().getState().isComplete();
+        if (inSession())
+            if (getCurrentTransaction() != null)
+                if (!getCurrentTransaction().getState().isComplete())
+                    return true;
+        return false;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContextThreadLocal.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContextThreadLocal.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContextThreadLocal.java
index 5c34916..e99e485 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContextThreadLocal.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContextThreadLocal.java
@@ -42,6 +42,7 @@ public class IsisContextThreadLocal extends IsisContext {
         return new IsisContextThreadLocal(sessionFactory);
     }
 
+    // TODO: could convert this to a regular ThreadLocal, I think; except for the closeAllSessionsInstance() method...; is that method really needed?
     private final Map<Thread, IsisSession> sessionsByThread = new IdentityHashMap<>();
 
     
@@ -50,7 +51,7 @@ public class IsisContextThreadLocal extends IsisContext {
     // //////////////////////////////////////////////
 
     protected IsisContextThreadLocal(final IsisSessionFactory sessionFactory) {
-        this(ContextReplacePolicy.NOT_REPLACEABLE, SessionClosePolicy.EXPLICIT_CLOSE, sessionFactory);
+        this(ContextReplacePolicy.NOT_REPLACEABLE, SessionClosePolicy.AUTO_CLOSE, sessionFactory);
     }
 
     protected IsisContextThreadLocal(final ContextReplacePolicy contextReplacePolicy, final SessionClosePolicy sessionClosePolicy, final IsisSessionFactory sessionFactory) {
@@ -184,8 +185,7 @@ public class IsisContextThreadLocal extends IsisContext {
     @Override
     public IsisSession getSessionInstance() {
         final Thread thread = Thread.currentThread();
-        final IsisSession session = sessionsByThread.get(thread);
-        return session;
+        return sessionsByThread.get(thread);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
index 5c64197..d5e01ec 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
@@ -238,28 +238,31 @@ public class PersistenceSession implements SessionScopedComponent, DebuggableWit
      */
     @Override
     public void close() {
+
         if (getState() == State.CLOSED) {
             // nothing to do
             return;
         }
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("closing " + this);
-        }
-        
         try {
-            objectStore.close();
-        } catch(final RuntimeException ex) {
-            // ignore
-        }
+            try {
+                objectStore.close();
+            } catch(final Throwable ex) {
+                // ignore
+                LOG.error("objectStore#close() failed while closing the session; continuing to avoid memory leakage");
+            }
 
-        try {
-            adapterManager.close();
-        } catch(final RuntimeException ex) {
-            // ignore
+            try {
+                adapterManager.close();
+            } catch(final Throwable ex) {
+                // ignore
+                LOG.error("adapterManager#close() failed while closing the session; continuing to avoid memory leakage");
+            }
+
+        } finally {
+            setState(State.CLOSED);
         }
 
-        setState(State.CLOSED);
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSession.java
index 3c95e12..0f42039 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSession.java
@@ -74,11 +74,6 @@ public interface IsisSession extends SessionScopedComponent {
 
     /**
      * The {@link PersistenceSession} within this {@link IsisSession}.
-     * 
-     * <p>
-     * Would have been created by the {@link #getSessionFactory() owning
-     * factory}'s
-     * 
      */
     PersistenceSession getPersistenceSession();
 

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionDefault.java
index c74a4b8..4dcb7b3 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionDefault.java
@@ -102,8 +102,16 @@ public class IsisSessionDefault implements IsisSession {
      */
     @Override
     public void close() {
-        takeSnapshot();
-        getPersistenceSession().close();
+        try {
+            takeSnapshot();
+        } catch(Throwable ex) {
+            LOG.error("Failed to takeSnapshot while closing the session; continuing to avoid memory leakage");
+        }
+
+        final PersistenceSession persistenceSession = getPersistenceSession();
+        if(persistenceSession != null) {
+            persistenceSession.close();
+        }
     }
 
     // //////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisSessionFilter.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisSessionFilter.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisSessionFilter.java
index 21680e6..b1d50d0 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisSessionFilter.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisSessionFilter.java
@@ -59,9 +59,7 @@ public class IsisSessionFilter implements Filter {
     public static final String AUTHENTICATION_SESSION_STRATEGY_KEY = "authenticationSessionStrategy";
 
     /**
-     * Default value for
-     * {@link AuthenticationSessionLookupStrategyConstants#AUTHENTICATION_SESSION_STRATEGY_KEY}
-     * if not specified.
+     * Default value for {@link #AUTHENTICATION_SESSION_STRATEGY_KEY} if not specified.
      */
     public static final String AUTHENTICATION_SESSION_STRATEGY_DEFAULT = AuthenticationSessionStrategyDefault.class.getName();
 
@@ -115,11 +113,7 @@ public class IsisSessionFilter implements Filter {
      * accomplishes the same thing).
      * 
      * <p>
-     * The value is expected as a comma separated list, for example:
-     * 
-     * <pre>
-     * htmlviewer
-     * </pre>
+     * The value is expected as a comma separated list.
      */
     public static final String IGNORE_EXTENSIONS_KEY = "ignoreExtensions";
 
@@ -131,6 +125,11 @@ public class IsisSessionFilter implements Filter {
 
     };
 
+    /**
+     * Somewhat hacky, add this to the query
+     */
+    public static final String QUERY_STRING_FORCE_LOGOUT = "__isis_force_logout";
+
     static void redirect(final HttpServletRequest httpRequest, final HttpServletResponse httpResponse, final String redirectTo) throws IOException {
         httpResponse.sendRedirect(StringExtensions.combinePath(httpRequest.getContextPath(), redirectTo));
     }
@@ -193,17 +192,10 @@ public class IsisSessionFilter implements Filter {
         public abstract void handle(IsisSessionFilter filter, HttpServletRequest httpRequest, HttpServletResponse httpResponse, FilterChain chain) throws IOException, ServletException;
     }
 
-    /**
-     * Used as a flag on {@link HttpServletRequest} so that if there are two
-     * {@link IsisSessionFilter}s in a request pipeline, then the second can
-     * determine what processing has already been done (and is usually then just
-     * a no-op).
-     */
-    private static final String SESSION_STATE_KEY = IsisSessionFilter.SessionState.class.getName();
 
     private AuthenticationSessionStrategy authSessionStrategy;
     private List<String> restrictedPaths;
-    private WhenNoSession whenNoSession;
+    private WhenNoSession whenNotAuthenticated;
     private String redirectToOnException;
     private Collection<Pattern> ignoreExtensions;
 
@@ -237,18 +229,22 @@ public class IsisSessionFilter implements Filter {
         final String logonPage = config.getInitParameter(LOGON_PAGE_KEY);
         if (logonPage != null) {
             if (whenNoSessionStr != null) {
-                throw new IllegalStateException("The init-param '" + LOGON_PAGE_KEY + "' is only provided for backwards compatibility; remove if the init-param '" + WHEN_NO_SESSION_KEY + "' has been specified");
+                throw new IllegalStateException(String.format(
+                        "The init-param '%s' is only provided for backwards compatibility; "
+                        + "remove if the init-param '%s' has been specified", LOGON_PAGE_KEY, WHEN_NO_SESSION_KEY));
+            } else {
+                // default whenNotAuthenticated and allow access through to the logonPage
+                whenNotAuthenticated = WhenNoSession.RESTRICTED;
+                this.restrictedPaths = Lists.newArrayList(logonPage);
+                return;
             }
-            whenNoSession = WhenNoSession.RESTRICTED;
-            this.restrictedPaths = Lists.newArrayList(logonPage);
-            return;
         }
 
-        whenNoSession = WhenNoSession.lookup(whenNoSessionStr);
-        if (whenNoSession == WhenNoSession.RESTRICTED) {
+        whenNotAuthenticated = WhenNoSession.lookup(whenNoSessionStr);
+        if (whenNotAuthenticated == WhenNoSession.RESTRICTED) {
             final String restrictedPathsStr = config.getInitParameter(RESTRICTED_KEY);
             if (restrictedPathsStr == null) {
-                throw new IllegalStateException("Require an init-param of '" + RESTRICTED_KEY + "' key to be set.");
+                throw new IllegalStateException(String.format("Require an init-param of '%s' key to be set.", RESTRICTED_KEY));
             }
             this.restrictedPaths = Lists.newArrayList(Splitter.on(",").split(restrictedPathsStr));
         }
@@ -281,137 +277,80 @@ public class IsisSessionFilter implements Filter {
     // doFilter
     // /////////////////////////////////////////////////////////////////
 
-    public enum SessionState {
-
-        UNDEFINED {
-            @Override
-            public void handle(final IsisSessionFilter filter, final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
-
-                final HttpServletRequest httpRequest = (HttpServletRequest) request;
-                final HttpServletResponse httpResponse = (HttpServletResponse) response;
-
-                if (requestIsIgnoreExtension(filter, httpRequest)) {
-                    try {
-                        chain.doFilter(request, response);
-                        return;
-                    } finally {
-                        closeSession();
-                    }
-                }
+    @Override
+    public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
 
-                if (ResourceCachingFilter.isCachedResource(httpRequest)) {
-                    try {
-                        chain.doFilter(request, response);
-                        return;
-                    } finally {
-                        closeSession();
-                    }
-                }
+        final HttpServletRequest httpServletRequest = (HttpServletRequest) request;
+        final HttpServletResponse httpServletResponse = (HttpServletResponse) response;
 
-                // authenticate
-                final AuthenticationSession validSession = filter.authSessionStrategy.lookupValid(request, response);
-                if (validSession != null) {
-                    filter.authSessionStrategy.bind(request, response, validSession);
+        try {
+            final String queryString = httpServletRequest.getQueryString();
+            if (queryString != null && queryString.contains(QUERY_STRING_FORCE_LOGOUT)) {
 
-                    openSession(validSession);
-                    SESSION_IN_PROGRESS.setOn(request);
+                authSessionStrategy.invalidate(httpServletRequest, httpServletResponse);
+                return;
+            }
 
-                    try {
-                        chain.doFilter(request, response);
-                    } finally {
-                        UNDEFINED.setOn(request);
-                        closeSession();
-                    }
-                    return;
-                }
+            if (requestIsIgnoreExtension(this, httpServletRequest) ||
+                ResourceCachingFilter.isCachedResource(httpServletRequest)) {
+                chain.doFilter(request, response);
+                return;
+            }
 
-                try {
-                    NO_SESSION_SINCE_NOT_AUTHENTICATED.setOn(request);
-                    filter.whenNoSession.handle(filter, httpRequest, httpResponse, chain);
-                } catch (final RuntimeException ex) {
-                    // in case the destination servlet cannot cope, but we've
-                    // been told
-                    // to redirect elsewhere
-                    if (filter.redirectToOnException != null) {
-                        redirect(httpRequest, httpResponse, filter.redirectToOnException);
-                        return;
-                    }
-                    throw ex;
-                } catch (final IOException ex) {
-                    if (filter.redirectToOnException != null) {
-                        redirect(httpRequest, httpResponse, filter.redirectToOnException);
-                        return;
-                    }
-                    throw ex;
-                } catch (final ServletException ex) {
-                    // in case the destination servlet cannot cope, but we've
-                    // been told
-                    // to redirect elsewhere
-                    if (filter.redirectToOnException != null) {
-                        redirect(httpRequest, httpResponse, filter.redirectToOnException);
-                        return;
-                    }
-                    throw ex;
-                } finally {
-                    UNDEFINED.setOn(request);
-                    // nothing to do
-                }
+            // authenticate
+            final AuthenticationSession authSession =
+                    authSessionStrategy.lookupValid(httpServletRequest, httpServletResponse);
+            if (authSession != null) {
+                authSessionStrategy.bind(httpServletRequest, httpServletResponse, authSession);
 
+                openSession(authSession); // is closed in the finally block
+                chain.doFilter(request, response);
+                return;
             }
 
-            private boolean requestIsIgnoreExtension(final IsisSessionFilter filter, final HttpServletRequest httpRequest) {
-                final String servletPath = httpRequest.getServletPath();
-                for (final Pattern extension : filter.ignoreExtensions) {
-                    if (extension.matcher(servletPath).matches()) {
-                        return true;
-                    }
+            try {
+                whenNotAuthenticated.handle(this, httpServletRequest, httpServletResponse, chain);
+            } catch (final RuntimeException | IOException | ServletException ex) {
+                // in case the destination servlet cannot cope, but we've
+                // been told to redirect elsewhere
+                if (redirectToOnException != null) {
+                    redirect(httpServletRequest, httpServletResponse, redirectToOnException);
+                    return;
                 }
-                return false;
+                throw ex;
             }
-        },
-        NO_SESSION_SINCE_REDIRECTING_TO_LOGON_PAGE, NO_SESSION_SINCE_NOT_AUTHENTICATED, SESSION_IN_PROGRESS;
-
-        static SessionState lookup(final ServletRequest request) {
-            final Object state = request.getAttribute(SESSION_STATE_KEY);
-            return state != null ? (SessionState) state : SessionState.UNDEFINED;
-        }
-
-        boolean isValid(final AuthenticationSession authSession) {
-            return authSession != null && getAuthenticationManager().isSessionValid(authSession);
-        }
-
-        void setOn(final ServletRequest request) {
-            request.setAttribute(SESSION_STATE_KEY, this);
-        }
 
-        public void handle(final IsisSessionFilter filter, final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
-            chain.doFilter(request, response);
+        } finally {
+            closeSession();
         }
 
-        AuthenticationManager getAuthenticationManager() {
-            return IsisContext.getAuthenticationManager();
-        }
-
-        IsisSession openSession(final AuthenticationSession authSession) {
-            return IsisContext.openSession(authSession);
-        }
+    }
 
-        void closeSession() {
-            IsisContext.closeSession();
+    private boolean requestIsIgnoreExtension(final IsisSessionFilter filter, final HttpServletRequest httpRequest) {
+        final String servletPath = httpRequest.getServletPath();
+        for (final Pattern extension : filter.ignoreExtensions) {
+            if (extension.matcher(servletPath).matches()) {
+                return true;
+            }
         }
+        return false;
+    }
 
+    protected IsisTransactionManager getTransactionManager() {
+        return IsisContext.getTransactionManager();
     }
 
-    @Override
-    public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
+    private AuthenticationManager getAuthenticationManager() {
+        return IsisContext.getAuthenticationManager();
+    }
 
-        final SessionState sessionState = SessionState.lookup(request);
-        sessionState.handle(this, request, response, chain);
+    private IsisSession openSession(final AuthenticationSession authSession) {
+        return IsisContext.openSession(authSession);
     }
 
-    
-    protected IsisTransactionManager getTransactionManager() {
-        return IsisContext.getTransactionManager();
+    private void closeSession() {
+        IsisContext.closeSession();
     }
 
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategy.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategy.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategy.java
index b0f5bd4..b95bec8 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategy.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategy.java
@@ -19,8 +19,8 @@
 
 package org.apache.isis.core.webapp.auth;
 
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.runtime.authentication.AuthenticationManager;
@@ -37,7 +37,9 @@ public interface AuthenticationSessionStrategy {
      * {@link AuthenticationManager#isSessionValid(AuthenticationSession)
      * still-valid} {@link AuthenticationSession}.
      */
-    AuthenticationSession lookupValid(ServletRequest servletRequest, ServletResponse servletResponse);
+    AuthenticationSession lookupValid(final HttpServletRequest httpServletRequest, final HttpServletResponse httpServletResponse);
 
-    void bind(ServletRequest servletRequest, ServletResponse servletResponse, AuthenticationSession authSession);
+    void bind(final HttpServletRequest httpServletRequest, final HttpServletResponse httpServletResponse, final AuthenticationSession authSession);
+
+    void invalidate(final HttpServletRequest httpServletRequest, final HttpServletResponse httpServletResponse);
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategyAbstract.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategyAbstract.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategyAbstract.java
index 142340f..6f01b75 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategyAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategyAbstract.java
@@ -20,14 +20,16 @@ package org.apache.isis.core.webapp.auth;
 
 import javax.servlet.ServletContext;
 import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 
 public abstract class AuthenticationSessionStrategyAbstract implements AuthenticationSessionStrategy {
 
+    public static final int STATUS_UNAUTHORIZED = 401;
+
     protected HttpSession getHttpSession(final ServletRequest servletRequest) {
         final HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
         return httpServletRequest.getSession();
@@ -39,8 +41,14 @@ public abstract class AuthenticationSessionStrategyAbstract implements Authentic
     }
 
     @Override
-    public void bind(final ServletRequest servletRequest, final ServletResponse servletResponse, final AuthenticationSession authSession) {
+    public void bind(final HttpServletRequest httpServletRequest, final HttpServletResponse httpServletResponse, final AuthenticationSession authSession) {
         // no-op
     }
 
+    @Override
+    public void invalidate(final HttpServletRequest httpServletRequest, final HttpServletResponse httpServletResponse) {
+        bind(httpServletRequest, httpServletResponse, null);
+        httpServletResponse.setStatus(STATUS_UNAUTHORIZED);
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategyDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategyDefault.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategyDefault.java
index cf884ee..5d8350a 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategyDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/auth/AuthenticationSessionStrategyDefault.java
@@ -20,8 +20,8 @@
 package org.apache.isis.core.webapp.auth;
 
 import javax.servlet.ServletContext;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
 import org.apache.isis.applib.fixtures.LogonFixture;
@@ -42,13 +42,13 @@ import org.apache.isis.core.webapp.WebAppConstants;
  * The session is looked-up as follows:
  * <ul>
  * <li>it looks up from the {@link HttpSession} using the value
- * {@value WebAppConstants#HTTP_SESSION_AUTHENTICATION_SESSION_KEY}</li>
+ * {@link WebAppConstants#HTTP_SESSION_AUTHENTICATION_SESSION_KEY}</li>
  * <li>failing that, if in exploration mode, then returns an exploration session
  * </li>
  * <li>failing that, if a {@link LogonFixture} has been provided and not already
  * used, will provide an session for that fixture. The {@link HttpSession} also
  * stores the value
- * {@value WebAppConstants#HTTP_SESSION_LOGGED_ON_PREVIOUSLY_USING_LOGON_FIXTURE_KEY}
+ * {@link WebAppConstants#HTTP_SESSION_LOGGED_ON_PREVIOUSLY_USING_LOGON_FIXTURE_KEY}
  * in the session to track whether this has been done</li>
  * </ul>
  * <p>
@@ -56,10 +56,10 @@ import org.apache.isis.core.webapp.WebAppConstants;
 public class AuthenticationSessionStrategyDefault extends AuthenticationSessionStrategyAbstract {
 
     @Override
-    public AuthenticationSession lookupValid(final ServletRequest servletRequest, final ServletResponse servletResponse) {
+    public AuthenticationSession lookupValid(final HttpServletRequest httpServletRequest, final HttpServletResponse httpServletResponse) {
 
         final AuthenticationManager authenticationManager = getAuthenticationManager();
-        final HttpSession httpSession = getHttpSession(servletRequest);
+        final HttpSession httpSession = getHttpSession(httpServletRequest);
 
         // use previously authenticated session if available
         AuthenticationSession authSession = (AuthenticationSession) httpSession.getAttribute(WebAppConstants.HTTP_SESSION_AUTHENTICATION_SESSION_KEY);
@@ -71,7 +71,7 @@ public class AuthenticationSessionStrategyDefault extends AuthenticationSessionS
         }
 
         // otherwise, look for LogonFixture and try to authenticate
-        final ServletContext servletContext = getServletContext(servletRequest);
+        final ServletContext servletContext = getServletContext(httpServletRequest);
         final IsisSystem system = (IsisSystem) servletContext.getAttribute(WebAppConstants.ISIS_SYSTEM_KEY);
         if (system == null) {
             // not expected to happen...
@@ -97,11 +97,19 @@ public class AuthenticationSessionStrategyDefault extends AuthenticationSessionS
     }
 
     @Override
-    public void bind(final ServletRequest servletRequest, final ServletResponse servletResponse, final AuthenticationSession authSession) {
-        final HttpSession httpSession = getHttpSession(servletRequest);
-        httpSession.setAttribute(WebAppConstants.HTTP_SESSION_AUTHENTICATION_SESSION_KEY, authSession);
+    public void bind(
+            final HttpServletRequest httpServletRequest,
+            final HttpServletResponse httpServletResponse,
+            final AuthenticationSession authSession) {
+        final HttpSession httpSession = getHttpSession(httpServletRequest);
+        if(authSession != null) {
+            httpSession.setAttribute(WebAppConstants.HTTP_SESSION_AUTHENTICATION_SESSION_KEY, authSession);
+        } else {
+            httpSession.removeAttribute(WebAppConstants.HTTP_SESSION_AUTHENTICATION_SESSION_KEY);
+        }
     }
 
+
     // //////////////////////////////////////////////////////////
     // Dependencies (from context)
     // //////////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/Rel.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/Rel.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/Rel.java
index 5381e1b..70d7699 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/Rel.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/Rel.java
@@ -58,7 +58,8 @@ public enum Rel {
     
 
     // implementation specific
-    CONTRIBUTED_BY(RelDefinition.IMPL, "contributed-by");
+    CONTRIBUTED_BY(RelDefinition.IMPL, "contributed-by"),
+    LOGOUT(RelDefinition.IMPL, "logout");
 
     private final RelDefinition relDef;
     private final String relSuffix;

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/user/UserResource.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/user/UserResource.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/user/UserResource.java
index ff53c07..afcc179 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/user/UserResource.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/user/UserResource.java
@@ -18,13 +18,19 @@
  */
 package org.apache.isis.viewer.restfulobjects.applib.user;
 
-import javax.ws.rs.*;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-import org.apache.isis.viewer.restfulobjects.applib.RestfulMediaType;
 import org.jboss.resteasy.annotations.ClientResponseType;
 
+import org.apache.isis.viewer.restfulobjects.applib.RestfulMediaType;
+
 @Path("/user")
 public interface UserResource {
 
@@ -42,4 +48,13 @@ public interface UserResource {
     @POST
     public Response postUserNotAllowed();
 
+    /**
+     * Not part of the Restful Objects spec.
+     */
+    @GET
+    @Path("/logout")
+    @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_HOME_PAGE })
+    @ClientResponseType(entityType = String.class)
+    public Response logout();
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/RendererContext.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/RendererContext.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/RendererContext.java
index 03ab027..a1b0821 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/RendererContext.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/RendererContext.java
@@ -35,7 +35,7 @@ public interface RendererContext {
     public String urlFor(final String url);
 
     public AuthenticationSession getAuthenticationSession();
-    
+
     public IsisConfiguration getConfiguration();
     
     public PersistenceSession getPersistenceSession();

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyBasicAuth.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyBasicAuth.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyBasicAuth.java
index 54bd2b6..f8f69e5 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyBasicAuth.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyBasicAuth.java
@@ -21,9 +21,8 @@ package org.apache.isis.viewer.restfulobjects.server.authentication;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
 import org.apache.commons.codec.binary.Base64;
@@ -40,22 +39,20 @@ import org.apache.isis.core.webapp.auth.AuthenticationSessionStrategyAbstract;
  */
 public class AuthenticationSessionStrategyBasicAuth extends AuthenticationSessionStrategyAbstract {
 
+    public static final String HEADER_AUTHORIZATION = "Authorization";
+    public static final String BASIC_AUTH_PREFIX = "Basic ";
+
     private static Pattern USER_AND_PASSWORD_REGEX = Pattern.compile("^(.+):(.+)$");
 
     @Override
-    public AuthenticationSession lookupValid(final ServletRequest servletRequest, final ServletResponse servletResponse) {
-
-        final HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
-        final String authStr = httpServletRequest.getHeader("Authorization");
+    public AuthenticationSession lookupValid(final HttpServletRequest httpServletRequest, final HttpServletResponse httpServletResponse) {
 
-        // value should be in the form:
-        // Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
-        if (authStr == null || !authStr.startsWith("Basic ")) {
+        final String digest = getBasicAuthDigest(httpServletRequest);
+        if (digest == null) {
             return null;
         }
-        final String digest = authStr.substring(6);
 
-        final String userAndPassword = new String(new Base64().decode(digest.getBytes()));
+        final String userAndPassword = unencoded(digest);
         final Matcher matcher = USER_AND_PASSWORD_REGEX.matcher(userAndPassword);
         if (!matcher.matches()) {
             return null;
@@ -64,10 +61,28 @@ public class AuthenticationSessionStrategyBasicAuth extends AuthenticationSessio
         final String user = matcher.group(1);
         final String password = matcher.group(2);
 
-        final AuthenticationSession authSession = getAuthenticationManager().authenticate(new AuthenticationRequestPassword(user, password));
+        final AuthenticationRequestPassword request = new AuthenticationRequestPassword(user, password);
+        final AuthenticationSession authSession =
+                getAuthenticationManager().authenticate(request);
         return authSession;
     }
 
+    // value should be in the form:
+    // Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
+    String getBasicAuthDigest(final HttpServletRequest httpServletRequest) {
+        final String authStr = httpServletRequest.getHeader(HEADER_AUTHORIZATION);
+        return authStr != null &&
+                authStr.startsWith(BASIC_AUTH_PREFIX)
+                ? authStr.substring(BASIC_AUTH_PREFIX.length())
+                : null;
+    }
+
+
+    protected String unencoded(final String encodedDigest) {
+        return new String(new Base64().decode(encodedDigest.getBytes()));
+    }
+
+
     // //////////////////////////////////////////////////////////
     // Dependencies (from context)
     // //////////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyHeader.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyHeader.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyHeader.java
index 84bfb73..cece9a6 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyHeader.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyHeader.java
@@ -21,9 +21,8 @@ package org.apache.isis.viewer.restfulobjects.server.authentication;
 import java.util.Collections;
 import java.util.List;
 
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
 import com.google.common.base.Splitter;
@@ -43,11 +42,12 @@ import org.apache.isis.core.webapp.auth.AuthenticationSessionStrategyAbstract;
  */
 public class AuthenticationSessionStrategyHeader extends AuthenticationSessionStrategyAbstract {
 
+    public static final String HEADER_ISIS_USER = "isis.user";
+
     @Override
-    public AuthenticationSession lookupValid(final ServletRequest servletRequest, final ServletResponse servletResponse) {
+    public AuthenticationSession lookupValid(final HttpServletRequest httpServletRequest, final HttpServletResponse httpServletResponse) {
 
-        final HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
-        final String user = httpServletRequest.getHeader("isis.user");
+        final String user = httpServletRequest.getHeader(HEADER_ISIS_USER);
         final List<String> roles = rolesFrom(httpServletRequest);
 
         if (Strings.isNullOrEmpty(user)) {

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyTrusted.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyTrusted.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyTrusted.java
index 666ccc3..16fbfc7 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyTrusted.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyTrusted.java
@@ -18,8 +18,8 @@
  */
 package org.apache.isis.viewer.restfulobjects.server.authentication;
 
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.runtime.authentication.exploration.AuthenticationRequestExploration;
@@ -29,8 +29,8 @@ import org.apache.isis.core.webapp.auth.AuthenticationSessionStrategyDefault;
 public class AuthenticationSessionStrategyTrusted extends AuthenticationSessionStrategyDefault {
 
     @Override
-    public AuthenticationSession lookupValid(final ServletRequest servletRequest, final ServletResponse servletResponse) {
-        final AuthenticationSession session = super.lookupValid(servletRequest, servletResponse);
+    public AuthenticationSession lookupValid(final HttpServletRequest httpServletRequest, final HttpServletResponse httpServletResponse) {
+        final AuthenticationSession session = super.lookupValid(httpServletRequest, httpServletResponse);
         if (session != null) {
             return session;
         }

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
index c014111..a570487 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
@@ -20,9 +20,14 @@ package org.apache.isis.viewer.restfulobjects.server.resources;
 
 import java.io.InputStream;
 import java.util.List;
+
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.core.*;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.Request;
+import javax.ws.rs.core.SecurityContext;
+import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.Providers;
 
 import org.apache.isis.applib.annotation.Where;
@@ -35,6 +40,7 @@ import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
 import org.apache.isis.core.metamodel.services.ServiceUtil;
 import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
+import org.apache.isis.core.runtime.authentication.AuthenticationManager;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -155,6 +161,10 @@ public abstract class ResourceAbstract {
         return IsisContext.getAuthenticationSession();
     }
 
+    protected AuthenticationManager getAuthenticationManager() {
+        return IsisContext.getAuthenticationManager();
+    }
+
     protected SpecificationLoaderSpi getSpecificationLoader() {
         return IsisContext.getSpecificationLoader();
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/UserReprRenderer.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/UserReprRenderer.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/UserReprRenderer.java
index 6cd15bd..e37d4be 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/UserReprRenderer.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/UserReprRenderer.java
@@ -47,6 +47,7 @@ public class UserReprRenderer extends ReprRendererAbstract<UserReprRenderer, Aut
         if (includesSelf) {
             addLinkToSelf();
             addLinkToUp();
+            addLinkToLogout();
         }
         getExtensions();
         return representation;
@@ -76,5 +77,11 @@ public class UserReprRenderer extends ReprRendererAbstract<UserReprRenderer, Aut
         getLinks().arrayAdd(link);
     }
 
+    private void addLinkToLogout() {
+        final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.LOGOUT.getName(), RepresentationType.HOME_PAGE, "user/logout").build();
+
+        getLinks().arrayAdd(link);
+    }
+
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/UserResourceServerside.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/UserResourceServerside.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/UserResourceServerside.java
index 9d1b0c6..0910aeb 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/UserResourceServerside.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/UserResourceServerside.java
@@ -18,11 +18,15 @@
  */
 package org.apache.isis.viewer.restfulobjects.server.resources;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.core.webapp.IsisSessionFilter;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
 import org.apache.isis.viewer.restfulobjects.applib.RestfulMediaType;
@@ -62,4 +66,28 @@ public class UserResourceServerside extends ResourceAbstract implements UserReso
         throw RestfulObjectsApplicationException.createWithMessage(RestfulResponse.HttpStatusCode.METHOD_NOT_ALLOWED, "Posting to the user resource is not allowed.");
     }
 
+    /**
+     * Not part of the Restful Objects spec.
+     */
+    @Override
+    @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_HOME_PAGE })
+    public Response logout() {
+        init(RepresentationType.HOME_PAGE, Where.NOWHERE);
+
+        final HomePageReprRenderer renderer = new HomePageReprRenderer(getResourceContext(), null, JsonRepresentation.newMap());
+        renderer.includesSelf();
+
+        // we do the logout (removes this session from those valid)
+        getAuthenticationManager().closeSession(getResourceContext().getAuthenticationSession());
+
+        // we also redirect to home page with special query string; this allows the session filter
+        // to clear out any cookies/headers (eg if BASIC auth in use).
+        try {
+            final URI location = new URI("?" + IsisSessionFilter.QUERY_STRING_FORCE_LOGOUT);
+            return Response.temporaryRedirect(location).build();
+        } catch (URISyntaxException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/edc4fa76/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/webapp/IsisTransactionFilterForRestfulObjects.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/webapp/IsisTransactionFilterForRestfulObjects.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/webapp/IsisTransactionFilterForRestfulObjects.java
index acc107b..af943ab 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/webapp/IsisTransactionFilterForRestfulObjects.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/webapp/IsisTransactionFilterForRestfulObjects.java
@@ -40,10 +40,18 @@ public class IsisTransactionFilterForRestfulObjects implements Filter {
         try {
             chain.doFilter(request, response);
         } finally {
-            getTransactionManager().endTransaction();
+            final boolean inTransaction = inTransaction();
+            if(inTransaction) {
+                // user/logout will have invalidated the current transaction and also persistence session.
+                getTransactionManager().endTransaction();
+            }
         }
     }
 
+    protected boolean inTransaction() {
+        return IsisContext.inTransaction();
+    }
+
     protected IsisTransactionManager getTransactionManager() {
         return IsisContext.getTransactionManager();
     }


[3/9] isis git commit: ISIS-1133: added blurb to user guide, ref guide, dev guide. Moved runtime config section from ug to rg. Also...

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_specifying-components.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_specifying-components.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_specifying-components.adoc
deleted file mode 100644
index d8877d2..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_specifying-components.adoc
+++ /dev/null
@@ -1,72 +0,0 @@
-[[_ug_runtime_configuring-components]]
-= Specifying components
-: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 `isis.properties` file has four configuration properties in particular that specify the major components of Apache Isis to use.
-
-They are:
-
-.Core Configuration Properties
-[cols="2a,1,3a", options="header"]
-|===
-|Property
-|Value +
-(_default value_)
-|Implements
-
-|`isis.authentication`
-|`shiro`, `bypass`, `FQCN` +
-(`_shiro_`)
-|`o.a.i.core.runtime.authentication.` `AuthenticationManagerInstaller`
-
-|`isis.authorization`
-|`shiro`, `bypass`, `FQCN` +
-(`_shiro_`)
-|`o.a.i.core.runtime.authorization.` `AuthorizationManagerInstaller`
-
-|`isis.persistor`
-|`datanucleus`, `inmemory`, `FQCN` +
-(`_datanucleus_`)
-|`o.a.i.core.runtime.installerregistry.installerapi.` `PersistenceMechanismInstaller`
-
-|`isis.services-installer`
-|`configuration`, `configuration-and-annotation`, `FQCN` +
-(`_configuration_`)
-|`org.apache.isis.core.runtime.services.` `ServicesInstaller` +
-
-The mechanism to discover and load domain services:
-
-* `configuration-and-annotation` will search for `@DomainService`-annotated classes and also read from `isis.services` configuration property
-
-* `configuration` will only read from the `isis.services` configuration property. +
-
-* Otherwise an alternative implementation of the `o.a.i.core.runtime.services.ServicesInstaller` internal API can be provided.
-
-
-
-|===
-
-[TIP]
-====
-The values "datanucleus", "shiro" etc are actually aliases for concrete implementations listed in Apache Isis' `installer-registry.properties` file (in `isis-core-runtime.jar`).
-====
-
-It is -- at least in theory -- possible to specify a fully qualified class name to replace any of these components.  This is probably feasible for the two security APIs and the `services-installer` API; but replacing the persistor (JDO/DataNucleus) is much trickier because we rely on the JDO/DN for certain functionality (such as object dirtying and lazy loading) that is not defined within this API.
-
-As for the viewers, these are specified indirectly by way of the filters and servlets in the `web.xml` file (discussed xref:ug.adoc#_ug_runtime_web-xml[below]).  However, the configuration of which viewers to initialize is declared through a context parameter:
-
-
-[source,xml]
-----
-<context-param>
-    <param-name>isis.viewers</param-name>
-    <param-value>wicket,restfulobjects</param-value>
-</context-param>
-----
-
-The net effect of this configuration is simply to ensure that the `viewer_wicket.properties` and/or the `viewer_restfulobjects.properties` files are read.
-

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_web-xml.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_web-xml.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_web-xml.adoc
deleted file mode 100644
index 04ae003..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_runtime_web-xml.adoc
+++ /dev/null
@@ -1,35 +0,0 @@
-[[_ug_runtime_web-xml]]
-= `web.xml`
-: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/
-
-
-
-NOTE: TODO
-
-
-== Init Params
-
-`<isis.viewers>`
-
-
-
-
-== Filters
-
-NOTE: TODO
-
-
-
-
-== Servlets
-
-NOTE: TODO
-
-
-
-
-== Running RO Viewer only
-
-NOTE: TODO

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_security_usage-by-isis-viewers.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_security_usage-by-isis-viewers.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_security_usage-by-isis-viewers.adoc
index a423839..bec67a9 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_security_usage-by-isis-viewers.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_security_usage-by-isis-viewers.adoc
@@ -6,7 +6,7 @@
 
 
 
-By and large the security mechanisms within Isis are transparent to the rest of the framework (the xref:ug.adoc#_ug_wicket-viewer[Wicket Viewer] and xref:ug.adoc#_ug_restfulobjects-viewer[Restful Objects viewer], and the overall xref:ug.adoc#_ug_runtime[runtime]).
+By and large the security mechanisms within Isis are transparent to the rest of the framework (the xref:ug.adoc#_ug_wicket-viewer[Wicket Viewer] and xref:ug.adoc#_ug_restfulobjects-viewer[Restful Objects viewer], and the overall xref:rg.adoc#_rg_runtime[runtime]).
 
 That said, it is the responsibility of the viewers to ensure that there is a viewers to ensure that for each request there is a valid user session present.  The sections below explain how this works.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_brand-logo.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_brand-logo.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_brand-logo.adoc
index 07de56c..f3268b2 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_brand-logo.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_brand-logo.adoc
@@ -56,7 +56,7 @@ protected Module newIsisWicketModule() {
 If the logo is hosted locally, add to the relevant directory (eg `src/main/webapp/images`). It is also valid for the
 URL to be absolute.
 
-You may also wish to tweak the xref:ug.adoc#_ug_runtime_application-specific_application-css[`application.css`]. For example, a logo with height 40px works well with the following:
+You may also wish to tweak the xref:rg.adoc#_rg_runtime_application-specific_application-css[`application.css`]. For example, a logo with height 40px works well with the following:
 
 [source,css]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_tweaking-css-classes.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_tweaking-css-classes.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_tweaking-css-classes.adoc
index 5ab6909..0d12342 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_tweaking-css-classes.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_customisation_tweaking-css-classes.adoc
@@ -15,7 +15,7 @@ The HTML generated by the Wicket viewer include plenty of CSS classes so that yo
 }
 ----
 
-These customizations should generally be added to xref:ug.adoc#_ug_runtime_application-specific_application-css[`application.css]`; this file is included by default in every webpage served up by the Wicket viewer.
+These customizations should generally be added to xref:rg.adoc#_rg_runtime_application-specific_application-css[`application.css]`; this file is included by default in every webpage served up by the Wicket viewer.
 
 
 
@@ -46,7 +46,7 @@ For example, the `ToDoItem` object of the Isis addons example https://github.com
 </div>
 ----
 
-The xref:ug.adoc#_ug_runtime_application-specific_application-css[`application.css`] file is the place to add application-specific styles. By way of an example, if (for some reason) we wanted to completely hide the notes value, we could do so using:
+The xref:rg.adoc#_rg_runtime_application-specific_application-css[`application.css`] file is the place to add application-specific styles. By way of an example, if (for some reason) we wanted to completely hide the notes value, we could do so using:
 
 [source,css]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_layout.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_layout.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_layout.adoc
index 6bc3e44..a999cac 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_layout.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_wicket-viewer_layout.adoc
@@ -8,7 +8,7 @@
 
 The wicket viewer has full support for the various methods of specifying the xref:rg.adoc#_rg_object-layout[layout of objects], either statically or dynamically.
 
-Dynamic reloading is automatically supported when running in xref:ug.adoc#_ug_runtime_deployment-types[prototype (development) mode], the Wicket viewer automatically rebuilds the metamodel for each class as it is rendered.    Conversely, do note that the Wicket viewer will *not* pick up new metadata if running in production/server mode.
+Dynamic reloading is automatically supported when running in xref:rg.adoc#_rg_runtime_deployment-types[prototype (development) mode], the Wicket viewer automatically rebuilds the metamodel for each class as it is rendered.    Conversely, do note that the Wicket viewer will *not* pick up new metadata if running in production/server mode.
 
 
 [TIP]

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/dg.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/dg.adoc b/adocs/documentation/src/main/asciidoc/guides/dg.adoc
index d2e1c98..07f4a4f 100644
--- a/adocs/documentation/src/main/asciidoc/guides/dg.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/dg.adoc
@@ -5,11 +5,14 @@
 :_imagesdir: images/
 
 
-pass:[<br/><br/>]
+== Developers' Guide
+
+This developers' guide describes how to set up your development environment to develop your Apache Isis applications either within the xref:dg.adoc#_dg_intellij[IntelliJ] IDE, or within the xref:dg.adoc#_dg_eclipse[Eclipse] IDE, or from the xref:dg.adoc#_dg_cmd-line[command line].
+
+The developer' guide is _not_ intended as a reference manual; for that see the link:rg.html#[Reference Guide].  This guide also does _not_ describe how to actually build an Apache Isis application; for that see the link:ug.html#[Users' Guide].
 
-This guide describes how to build an Isis applications either from the command line (as per your link:http://en.wikipedia.org/wiki/Continuous_integration[continuous integration] server or within an IDE.
 
-include::_dg_cmd-line.adoc[leveloffset=+1]
 include::_dg_intellij.adoc[leveloffset=+1]
 include::_dg_eclipse.adoc[leveloffset=+1]
+include::_dg_cmd-line.adoc[leveloffset=+1]
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/rg.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rg.adoc b/adocs/documentation/src/main/asciidoc/guides/rg.adoc
index 4f93c97..e53e216 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rg.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rg.adoc
@@ -6,9 +6,22 @@
 :numbered:
 
 
+== Reference Guide
+
+This reference guide describes in detail the various elements of the Apache Isis Programming Model.  Most notably these are the xref:rg.adoc#_rg_annotations[annotations] (such as `@DomainObject`), and the reserved and prefix xref:rg.adoc#_rg_methods[methods] (such as `title()` and `validate...()`); it also includes various utility and supporting xref:rg.adoc#_rg_classes[classes].
+
+This guide also documents the domain services, both those that act as an xref:rg.adoc#_rg_services-api[API] (implemented by the framework for your domain objects to call), and those domain services that act as an xref:rg.adoc#_rg_services-spi[SPI] (implemented by your domain application and which are called by the framework).
+
+Also part of the reference manual are the details of how to influence the xref:rg.adoc#_rg_object-layout[UI layout] of your domain objects (this is ultimately just a type of metadata), and it catalogues all the various xref:rg.adoc#_rg_runtime[configuration properties] available that influence the behaviour of the framework and the API domain services.
+
+This reference guide does _not_ describe how to actually build an Apache Isis application; for that see the link:ug.html#[Users' Guide].  The reference guide also does _not_ explain how to setup your development environment; for that see the link:dg.html#[Developers' Guide].
+
+
+
 include::_rg_annotations.adoc[leveloffset=+1]
 include::_rg_methods.adoc[leveloffset=+1]
 include::_rg_services-api.adoc[leveloffset=+1]
 include::_rg_services-spi.adoc[leveloffset=+1]
 include::_rg_classes.adoc[leveloffset=+1]
 include::_rg_object-layout.adoc[leveloffset=+1]
+include::_rg_runtime.adoc[leveloffset=+1]

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/adocs/documentation/src/main/asciidoc/guides/ug.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ug.adoc b/adocs/documentation/src/main/asciidoc/guides/ug.adoc
index 9083741..7a55ccb 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ug.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ug.adoc
@@ -6,6 +6,18 @@
 :numbered:
 
 
+== Users' Guide
+
+This users' guide introduces the xref:ug.adoc#_ug_core-concepts[core concepts] and ideas behind Apache Isis, tells you how to xref:ug.adoc#_ug_getting-started[get started] with a Maven archetype, and provides xref:ug.adoc#_ug_how-tos[how-to]s and xref:ug.adoc#_ug_more-advanced[more advanced] guidance on writing maintainable larger applications.
+
+It goes on to discuss the xref:ug.adoc#_ug_wicket-viewer[Wicket viewer], both from an end-user perspective and also how as a programmer you can customize the UI.  There is a similar chapter discussing the xref:ug.adoc#_ug_restfulobjects-viewer[Restful Objects viewer] which provides Apache Isis' REST API.  The guide also explains how to configure xref:ug.adoc#_ug_security[security], principally involving Apache Isis' integration with Apache Shiro.
+
+Later chapters discuss essential topics such as xref:ug.adoc#_ug_testing[testing] and how to xref:ug.adoc#_ug_deployment[deploy] your app, and discuss other ways in which you can xref:ug.adoc#_ug_extending[extend] or adapt the framework itself to your particular needs.
+
+The users' guide is _not_ intended as a reference manual; for that see the link:rg.html#[Reference Guide].  The users' guide also does _not_ explain how to setup your development environment; for that see the link:dg.html#[Developers' Guide].
+
+
+
 include::_ug_core-concepts.adoc[leveloffset=+1]
 include::_ug_getting-started.adoc[leveloffset=+1]
 include::_ug_tutorials.adoc[leveloffset=+1]
@@ -16,7 +28,6 @@ include::_ug_more-advanced.adoc[leveloffset=+1]
 include::_ug_wicket-viewer.adoc[leveloffset=+1]
 include::_ug_restfulobjects-viewer.adoc[leveloffset=+1]
 include::_ug_security.adoc[leveloffset=+1]
-include::_ug_runtime.adoc[leveloffset=+1]
 
 include::_ug_isis-maven-plugin.adoc[leveloffset=+1]
 include::_ug_deployment.adoc[leveloffset=+1]

http://git-wip-us.apache.org/repos/asf/isis/blob/7db02393/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 2288b78..174ab17 100644
--- a/adocs/documentation/src/main/asciidoc/support.adoc
+++ b/adocs/documentation/src/main/asciidoc/support.adoc
@@ -23,7 +23,7 @@ Apache Isis has two public mailing lists.
 |Subscribe
 
 
-|Users</t>
+|Users
 |link:mailto:users@isis.apache.org[users@isis.apache.org]
 |link:http://mail-archives.apache.org/mod_mbox/isis-users/[TLP only]
 |link:http://markmail.org/search/isis-users+list:org.apache.incubator.isis-users[TLP + incubating]


[8/9] isis git commit: ISIS-1133: documentation relating to web.xml.

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


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

Branch: refs/heads/master
Commit: eabc1686fe648878fd1c5ebf3304333557dbceb3
Parents: a4989fd
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jul 9 13:47:37 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jul 9 13:47:37 2015 +0100

----------------------------------------------------------------------
 .../guides/_rg_runtime_deployment-types.adoc    |   2 +-
 .../asciidoc/guides/_rg_runtime_web-xml.adoc    | 444 ++++++++++++++++++-
 .../guides/images/runtime/web-xml/key.png       | Bin 0 -> 3195 bytes
 .../guides/images/runtime/web-xml/parts.pptx    | Bin 0 -> 72386 bytes
 .../guides/images/runtime/web-xml/ro-only.png   | Bin 0 -> 17937 bytes
 .../images/runtime/web-xml/wicket-and-ro.png    | Bin 0 -> 32723 bytes
 .../images/runtime/web-xml/wicket-only.png      | Bin 0 -> 16617 bytes
 .../webapp/src/main/webapp/WEB-INF/web.xml      |   2 +-
 8 files changed, 434 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/eabc1686/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_deployment-types.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_deployment-types.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_deployment-types.adoc
index 04c1363..f3aeb76 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_deployment-types.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_deployment-types.adoc
@@ -66,7 +66,7 @@ Wicket's mechanism for specifying the "configuration" is to use a context parame
 
 Most Apache Isis applications will consist of at least the xref:ug.adoc#_ug_wicket-viewer[Wicket viewer] and optionally the xref:ug.adoc#_ug_restfulobjects-viewer[RestfulObjects viewer].  When both viewers are deployed in the same app, then the bootstrapping is performed by Wicket, and so the deployment type is configured as described in the previous section.
 
-In some cases though you may be using Apache Isis to provide a REST API only, that is, you won't have deployed the Wicket viewer.  In these cases your app will be bootstrapped using  Apache Isis' xref:rg.adoc#_rg_runtime_web-xml_servlet-context-listener[ `IsisWebAppBootstrapper`].
+In some cases though you may be using Apache Isis to provide a REST API only, that is, you won't have deployed the Wicket viewer.  In these cases your app will be bootstrapped using  Apache Isis' xref:rg.adoc#_rg_runtime_web-xml_servlet-context-listeners[ `IsisWebAppBootstrapper`].
 
 In this case the deployment type is specified through an Apache Isis-specific context parameter, called `isis.deploymentType`:
 

http://git-wip-us.apache.org/repos/asf/isis/blob/eabc1686/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_web-xml.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_web-xml.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_web-xml.adoc
index 72204d5..4d7cee4 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_web-xml.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_runtime_web-xml.adoc
@@ -6,38 +6,458 @@
 
 
 
-NOTE: TODO
+Apache Isis provides two different viewers, the xref:ug.adoc#_ug_wicket-viewer[Wicket viewer] and the xref:ug.adoc#_ug_restfulobjects-viewer[RestfulObjects viewer].  You can deploy both of these concurrently, or deploy just the Wicket viewer, or deploy just the Restful Objects viewer.  The configuration in `web.xml` varies accordingly, both in terms of the servlet context listeners, filters and servlets.
 
+If you are using Apache Isis' integration with Apache Shiro (for security) then this also needs configuring in `web.xml`.  See the xref:ug.adoc#_ug_security_configuring-isis-to-use-shiro[security chapter] for full details on this topic.
 
-== Init Params
+The servlets and filters are mapped to three main pipelines:
 
-`<isis.viewers>`
+* `/wicket` - the Wicket viewer UI
+* `/restful` - the Restful Objects resources (REST API)
+* other paths, also static resources (such as `.png`, `.css`)
 
+With the following key:
 
+image::{_imagesdir}runtime/web-xml/key.png[width="800px",link="{_imagesdir}runtime/web-xml/key.png"]
 
-[[_rg_runtime_web-xml_servlet-context-listener]]
-== Servlet Context Listener
+the diagram below shows the components to be configured if deploying both the Wicket viewer and Restful Objects viewer:
 
-NOTE: TODO
+image::{_imagesdir}runtime/web-xml/wicket-and-ro.png[width="800px",link="{_imagesdir}runtime/web-xml/wicket-and-ro.png"]
 
-`IsisWebAppBootstrapper`
+Here the Wicket viewer is responsible for the main bootstrapping of Apache Isis itself, in other words the shared (global) metadata; this is done by the `IsisWicketApplication` class (extending the `WicketApplication` Wicket API).  This class is also responsible for Apache Isis' own session and transaction management.
 
+The Restful Objects viewer - being a JAX-RS application implemented using the RestEasy framework - requires the `RestEasyBootstrapper` servlet context listener.  It is this context listener that also sets up the `RestfulObjectsApplication`, which is then delegated to by the RestEasy `HttpServletDispatcher`.  This pipeline uses the `IsisSessionFilter` and `IsisTransactionFilterForRestfulObjects` to perform the session and transaction management before it hits the RestEasy servlet.
 
+If only the Wicket viewer is deployed, then the diagram is more or less the same: the RestEasy servlet, context listener and supporting filters are simply removed:
 
-== Filters
+image::{_imagesdir}runtime/web-xml/wicket-only.png[width="800px",link="{_imagesdir}runtime/web-xml/wicket-only.png"]
+
+Finally, if only the Restful Objects viewer is deployed, then things change a little more subtly.  Here, the Wicket filter is no longer needed.  In its place, though the `IsisWebAppBootstrapper` context listener is required: this is responsible for seting up the shared (global) metadata.
+
+image::{_imagesdir}runtime/web-xml/ro-only.png[width="800px",link="{_imagesdir}runtime/web-xml/ro-only.png"]
+
+The following sections detail these various listeners, filters and servlets in more detail.
+
+
+
+[[_rg_runtime_web-xml_servlet-context-listeners]]
+== Servlet Context Listeners
+
+Servlet context listeners are used to perform initialization on application startup.  Both Shiro (if configured as the security mechanism) and RestEasy (for the Restful Objects viewer) require their own context listener.  In addition, if the Wicket viewer is _not_ being used, then additional Apache Isis-specific listener is required for bootstrapping of the Apache Isis framework itself.
+
+
+=== `EnvironmentLoaderListener` (Shiro)
+
+NOTE: WIP
+
+definition:
+
+[source,xml]
+----
+<listener>
+    <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
+</listener>
+----
+
+
+
+=== `IsisWebAppBootstrapper`
+
+The `IsisWebAppBootstrapper` servlet context listener bootstraps the shared (global) metadata for the Apache Isis framework.  This listener is not required (indeed must not be configured) if the Wicket viewer is in use.
+
+NOTE: WIP
+
+definition:
+
+[source,xml]
+----
+<listener>
+    <listener-class>org.apache.isis.core.webapp.IsisWebAppBootstrapper</listener-class>
+</listener>
+----
+
+context parameters:
+
+[source,xml]
+----
+<context-param>
+    <param-name>deploymentType</param-name>
+    <param-value>SERVER_PROTOTYPE</param-value>
+</context-param>
+<context-param>
+    <param-name>isis.viewers</param-name>
+    <param-value>restfulobjects</param-value>
+</context-param>
+----
+
+
+=== `ResteasyBootstrap` (RestEasy)
+
+The `ResteasyBootstrap` servlet context listener initializes the RestEasy runtime, specifying that classes (namely, those specified in Isis' `RestfulObjectsApplication`) to be exposed as REST resources.  It is required if the Restful Objects viewer is to be deployed.
 
-NOTE: TODO
+NOTE: WIP
 
+definition:
 
+[source,xml]
+----
+<listener>
+    <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
+</listener>
+----
 
+There are two relevant context parameters:
 
+[source,xml]
+----
+<context-param>
+    <param-name>javax.ws.rs.Application</param-name>        <!--1-->
+    <param-value>org.apache.isis.viewer.restfulobjects.server.RestfulObjectsApplication</param-value>
+</context-param>
+<context-param>
+    <param-name>resteasy.servlet.mapping.prefix</param-name>
+    <param-value>/restful/</param-value>                    <!--2-->
+</context-param>
+----
+<1> used by RestEasy to determine the JAX-RS resources and other related configuration
+<2> should correspond to the filter mapping of the `HttpServletDispatcher` servlet
+
+
+
+[[_rg_runtime_web-xml_servlets]]
 == Servlets
 
-NOTE: TODO
+NOTE: WIP
+
+
+=== `HttpServletDispatcher` (RestEasy)
+
+NOTE: WIP
+
+
+definition:
+
+[source,xml]
+----
+<servlet>
+    <servlet-name>RestfulObjectsRestEasyDispatcher</servlet-name>
+    <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
+</servlet>
+----
+
+mapping:
+
+[source,xml]
+----
+<servlet-mapping>
+    <servlet-name>RestfulObjectsRestEasyDispatcher</servlet-name>
+    <url-pattern>/restful/*</url-pattern>
+</servlet-mapping>
+----
+
+
+=== `ResourceServlet`
+
+NOTE: WIP
+
+definition
+
+[source,xml]
+----
+<servlet>
+    <servlet-name>Resource</servlet-name>
+    <servlet-class>org.apache.isis.core.webapp.content.ResourceServlet</servlet-class>
+</servlet>
+----
+
+mapping:
+
+[source,xml]
+----
+<servlet-mapping>
+    <servlet-name>Resource</servlet-name>
+    <url-pattern>*.css</url-pattern>
+</servlet-mapping>
+<servlet-mapping>
+    <servlet-name>Resource</servlet-name>
+    <url-pattern>*.png</url-pattern>
+</servlet-mapping>
+<servlet-mapping>
+    <servlet-name>Resource</servlet-name>
+    <url-pattern>*.jpg</url-pattern>
+</servlet-mapping>
+<servlet-mapping>
+    <servlet-name>Resource</servlet-name>
+    <url-pattern>*.gif</url-pattern>
+</servlet-mapping>
+<servlet-mapping>
+    <servlet-name>Resource</servlet-name>
+    <url-pattern>*.js</url-pattern>
+</servlet-mapping>
+<servlet-mapping>
+    <servlet-name>Resource</servlet-name>
+    <url-pattern>*.html</url-pattern>
+</servlet-mapping>
+<servlet-mapping>
+    <servlet-name>Resource</servlet-name>
+    <url-pattern>*.swf</url-pattern>
+</servlet-mapping>
+----
+
+
+
+
+[[_rg_runtime_web-xml_filters]]
+== Filters
+
+The order in which filters appear in `web.xml` matters: first to last they define a pipeline.  This is shown in the above diagrams, and the subsections also list the in the same order that they should appear in your `web.xml`.
+
+=== `ShiroFilter` (Shiro)
+
+NOTE: WIP
+
+definition:
+
+[source,xml]
+----
+<filter>
+    <filter-name>ShiroFilter</filter-name>
+    <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
+</filter>
+----
+
+mapping:
+
+[source,xml]
+----
+<filter-mapping>
+    <filter-name>ShiroFilter</filter-name>
+    <url-pattern>/*</url-pattern>
+</filter-mapping>
+----
+
+
+=== `IsisLogOnExceptionFilter`
+
+NOTE: WIP
+
+definition:
+
+[source,xml]
+----
+<filter>
+    <filter-name>IsisLogOnExceptionFilter</filter-name>
+    <filter-class>org.apache.isis.core.webapp.diagnostics.IsisLogOnExceptionFilter</filter-class>
+</filter>
+----
+
+
+mapping:
+
+[source,xml]
+----
+<filter-mapping>
+    <filter-name>IsisLogOnExceptionFilter</filter-name>
+    <url-pattern>/wicket/*</url-pattern>
+</filter-mapping>
+<filter-mapping>
+    <filter-name>IsisLogOnExceptionFilter</filter-name>
+    <url-pattern>/restful/*</url-pattern>
+</filter-mapping>
+----
+
+
+
+=== `ResourceCachingFilter`
+
+NOTE: WIP
+
+definition:
+
+[source,xml]
+----
+<filter>
+    <filter-name>ResourceCachingFilter</filter-name>
+    <filter-class>org.apache.isis.core.webapp.content.ResourceCachingFilter</filter-class>
+    <init-param>
+        <param-name>CacheTime</param-name>      <!--1-->
+        <param-value>86400</param-value>
+    </init-param>
+</filter>
+----
+<1> cache time, in seconds
+
+mapping:
+
+[source,xml]
+----
+<filter-mapping>
+    <filter-name>ResourceCachingFilter</filter-name>
+    <url-pattern>*.js</url-pattern>
+</filter-mapping>
+<filter-mapping>
+    <filter-name>ResourceCachingFilter</filter-name>
+    <url-pattern>*.css</url-pattern>
+</filter-mapping>
+<filter-mapping>
+    <filter-name>ResourceCachingFilter</filter-name>
+    <url-pattern>*.png</url-pattern>
+</filter-mapping>
+<filter-mapping>
+    <filter-name>ResourceCachingFilter</filter-name>
+    <url-pattern>*.jpg</url-pattern>
+</filter-mapping>
+<filter-mapping>
+    <filter-name>ResourceCachingFilter</filter-name>
+    <url-pattern>*.gif</url-pattern>
+</filter-mapping>
+<filter-mapping>
+    <filter-name>ResourceCachingFilter</filter-name>
+    <url-pattern>*.html</url-pattern>
+</filter-mapping>
+<filter-mapping>
+    <filter-name>ResourceCachingFilter</filter-name>
+    <url-pattern>*.swf</url-pattern>
+</filter-mapping>
+----
+
+
+=== `WicketFilter`
+
+NOTE: WIP
+
+
+definition:
+
+[source,xml]
+----
+<filter>
+    <filter-name>WicketFilter</filter-name>
+    <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
+    <init-param>
+        <param-name>applicationClassName</param-name>   <!--1-->
+        <param-value>domainapp.webapp.SimpleApplication</param-value>
+    </init-param>
+</filter>
+----
+<1> specify the application (subclass of `IsisWicketApplication`) to use
+
+mapping:
+
+[source,xml]
+----
+<filter-mapping>
+    <filter-name>WicketFilter</filter-name>
+    <url-pattern>/wicket/*</url-pattern>
+</filter-mapping>
+----
+
+This filter reads one context parameter:
+[source,xml]
+----
+<context-param>
+    <param-name>configuration</param-name>
+    <param-value>deployment</param-value>   <!--1-->
+</context-param>
+----
+<1> alternatively set to "development"; see xref:rg.adoc#_rg_runtime_deployment-types[deployment types] for further discussion.
+
+
+=== `IsisSessionFilter`
+
+The `IsisSessionFilter` is responsible for the (persistence) session management; in effect a wrapper around DataNucleus' `PersistenceManager` object.  It is only required for the Restful Objects viewer.
+
+[source,xml]
+----
+<filter>
+    <filter-name>IsisSessionFilterForRestfulObjects</filter-name>
+    <filter-class>org.apache.isis.core.webapp.IsisSessionFilter</filter-class>
+    <init-param>
+        <param-name>authenticationSessionStrategy</param-name>  <!--1-->
+        <param-value>
+            org.apache.isis.viewer.restfulobjects.server.authentication.AuthenticationSessionStrategyBasicAuth
+        </param-value>
+    </init-param>
+    <init-param>
+        <param-name>whenNoSession</param-name>                  <!--2-->
+        <param-value>basicAuthChallenge</param-value>
+    </init-param>
+    <!--
+    <init-param>
+        <param-name>restricted</param-name>                     <!--3-->
+        <param-value>...</param-value>
+    </init-param>
+    <init-param>
+        <param-name>redirectToOnException</param-name>          <!--4-->
+        <param-value>...</param-value>
+    </init-param>
+    -->
+</filter>
+----
+<1> pluggable strategy for determining what the authentication session (credentials) are of the request
+<2> what the servlet should do if no existing session was found; typically a 401, or can issue a Basic Auth challenge
+<3> List of paths that are allowed through even if not authenticated.  The servlets mapped to these paths are expected to be able to deal with there being no session. Typically they will be logon pages.
+<4> where to redirect to if an exception occurs.
+
+
+This filter should be mapped to the `servlet-name` for the RestEasy `HttpServletDispatcher`; for example:
+
+[source,xml]
+----
+<filter-mapping>
+    <filter-name>IsisSessionFilterForRestfulObjects</filter-name>
+    <servlet-name>RestfulObjectsRestEasyDispatcher</servlet-name>
+</filter-mapping>
+----
+
+
+
+
+=== `IsisTransactionFilterForRestfulObjects`
+
+NOTE: WIP
+
+definition:
+
+[source,xml]
+----
+<filter>
+    <filter-name>IsisTransactionFilterForRestfulObjects</filter-name>
+    <filter-class>org.apache.isis.viewer.restfulobjects.server.webapp.IsisTransactionFilterForRestfulObjects</filter-class>
+</filter>
+----
+
+This filter should be mapped to the `servlet-name` for the RestEasy `HttpServletDispatcher`; for example:
+
+[source,xml]
+----
+<filter-mapping>
+    <filter-name>IsisTransactionFilterForRestfulObjects</filter-name>
+    <servlet-name>RestfulObjectsRestEasyDispatcher</servlet-name>
+</filter-mapping>
+----
+
+
+
+[[_rg_runtime_web-xml_context-parameters]]
+== Configuration Files
+
+However Apache Isis is bootstrapped (using the `IsisWicketApplication` or using `IsisWebAppBootstrapper`), it will read a number of configuration files, such as `isis.properties`.
 
+By default these are read from `WEB-INF` directory.
 
+    <context-param>
+      <param-name>isis.config.dir</param-name>
+      <param-value>location of your config directory if fixed</param-value>
+    </context-param>
+    -->
 
 
-== Running RO Viewer only
+    <!--
+    determines which additional configuration files to search for
+     -->
+    <context-param>
+        <param-name>isis.viewers</param-name>
+        <param-value>wicket,restfulobjects</param-value>
+    </context-param>
 
-NOTE: TODO

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/isis/blob/eabc1686/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/web.xml b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/web.xml
index bb6098f..4de67d5 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/web.xml
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/web.xml
@@ -212,7 +212,7 @@
 
     <context-param>
         <param-name>deploymentType</param-name>
-        <param-value>SERVER_EXPLORATION</param-value>
+        <param-value>SERVER_PROTOTYPE</param-value>
     </context-param>
 
     <context-param>


[2/9] isis git commit: ISIS-1052: updating docs for using IntelliJ, screenshots of maven helper plugin showing its new dependency tree tab.

Posted by da...@apache.org.
ISIS-1052: updating docs for using IntelliJ, screenshots of maven helper plugin showing its new dependency tree tab.


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

Branch: refs/heads/master
Commit: 8de955d91ae8c3ffaece51cf1bbabe07a40a8209
Parents: ebc9fed
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Jul 8 08:53:34 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jul 9 11:29:54 2015 +0100

----------------------------------------------------------------------
 .../src/main/asciidoc/guides/_dg_intellij.adoc  |  26 +++++++++++++++++--
 .../maven-helper/010-dependency-tab.png         | Bin 0 -> 64588 bytes
 .../maven-helper/020-dependency-as-tree.png     | Bin 0 -> 44040 bytes
 .../maven-helper/030-maven-run-goal.png         | Bin 0 -> 91806 bytes
 .../maven-helper/040-maven-quick-run.png        | Bin 0 -> 83850 bytes
 5 files changed, 24 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/8de955d9/adocs/documentation/src/main/asciidoc/guides/_dg_intellij.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_dg_intellij.adoc b/adocs/documentation/src/main/asciidoc/guides/_dg_intellij.adoc
index ccc8200..4e6b48d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_dg_intellij.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_dg_intellij.adoc
@@ -146,9 +146,11 @@ image::{_imagesdir}appendices/dev-env/intellij-idea/040-other-settings/040-auto-
 You might also want to set up some additional plugins, using `File > Settings > Plugins` (or equivalently `File > Other Settings > Configure Plugins`).
 
 Recommended are:
+
 * link:https://plugins.jetbrains.com/plugin/7179?pr=idea[Maven Helper] plugin
 +
-Provides better visualization of dependency trees (similar to Eclipse)
+More on this below.
+
 * link:https://github.com/asciidoctor/asciidoctor-intellij-plugin[AsciiDoctor] plugin
 +
 Useful if you are doing any authoring of documents.
@@ -156,8 +158,27 @@ Useful if you are doing any authoring of documents.
 Some others you might like to explore are:
 
 .IntelliJ Plugins
-image::{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/020-some-plugins-confirmation.png[width="400px"]
+image::{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/020-some-plugins-confirmation.png[width="600px"]
+
+==== Maven Helper Plugin
+
+This plugin provides a couple of great features.  One is better visualization of dependency trees (similar to Eclipse).
+
+If you open a `pom.xml` file, you'll see an additional "Dependencies" tab:
+
+image::{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/010-dependency-tab.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/010-dependency-tab.png"]
 
+Clicking on this gives a graphical tree representation of the dependencies, similar to that obtained by `mvn dependency:tree`, but filterable.
+
+image::{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/020-dependency-as-tree.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/020-dependency-as-tree.png"]
+
+The plugin also provides the ability to easily run a Maven goal on a project:
+
+image::{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/030-maven-run-goal.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/030-maven-run-goal.png"]
+
+This menu can also be bound to a keystroke so that it is available as a pop-up:
+
+image::{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/040-maven-quick-run.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/040-maven-quick-run.png"]
 
 
 
@@ -172,6 +193,7 @@ image::{_imagesdir}appendices/dev-env/intellij-idea/100-maven-module-mgmt/010-ma
 
 We can then import another module (from some other directory).  For example, here we are importing the Isis Addons' todoapp example:
 
+
 .IntelliJ Maven Module Management - Importing another Module
 image::{_imagesdir}appendices/dev-env/intellij-idea/100-maven-module-mgmt/020-adding-another-module.png[width="400px"]
 

http://git-wip-us.apache.org/repos/asf/isis/blob/8de955d9/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/010-dependency-tab.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/010-dependency-tab.png b/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/010-dependency-tab.png
new file mode 100644
index 0000000..a42b430
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/010-dependency-tab.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/8de955d9/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/020-dependency-as-tree.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/020-dependency-as-tree.png b/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/020-dependency-as-tree.png
new file mode 100644
index 0000000..15ae90b
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/020-dependency-as-tree.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/8de955d9/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/030-maven-run-goal.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/030-maven-run-goal.png b/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/030-maven-run-goal.png
new file mode 100644
index 0000000..e8a6d1e
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/030-maven-run-goal.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/8de955d9/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/040-maven-quick-run.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/040-maven-quick-run.png b/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/040-maven-quick-run.png
new file mode 100644
index 0000000..f3a6d67
Binary files /dev/null and b/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/040-maven-quick-run.png differ