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 2019/01/04 13:13:22 UTC

[isis] branch v2 updated (e266ba8 -> a85dcb9)

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a change to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git.


    from e266ba8  ISIS-1811: just moves a method in SimpleObjects
     new 8287d3b  ISIS-2067: removes WebServer
     add 50fed96  ISIS-1899: updates docs, small bit of reformatting
     new b6daaac  ISIS-1811: updates docs - minor reformatting
     new 1297575  Merge branch 'release-1.17.0-RC3' into v2
     new ebdbfe7  ISIS-1811: updates docs for 2.0.0-M1  (or adds TODOs)
     new 95bd70d  ISIS-1811: adds TODOs in .docs, relating to the changes of web.xml (now programmatic)
     new 8f956e6  ISIS-1811: updates docs, minor reformatting of "where am i" documentation
     new c657df8  ISIS-1823: updates docs for hiding/disabling the footer.
     new 1a1810f  ISIS-1911: updates docs on disabling translation service po
     new bc216ba  ISIS-1955: updates docs for Ticket, now an interface
     new 9a9fb66  ISIS-1811: updates migration-notes.adoc with TODOs for 2.0.0-M1.
     new a85dcb9  ISIS-1978: updates dependencies for junit and surefire to fix the issue.

The 11 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../guides/cgcom/_cgcom_cutting-a-release.adoc     |  10 -
 .../guides/dg/_dg_hints-and-tips_enhance-only.adoc |   2 +-
 .../main/asciidoc/guides/dg/_dg_ide_intellij.adoc  |  12 +-
 .../guides/rgant/_rgant-Action_domainEvent.adoc    |   2 +-
 .../asciidoc/guides/rgant/_rgant-DomainObject.adoc |   7 +-
 .../guides/rgant/_rgant-DomainObject_auditing.adoc |   4 +-
 ..._rgant-DomainObject_autoCompleteRepository.adoc |   5 +-
 ...nded.adoc => _rgant-DomainObject_bounding.adoc} |  16 +-
 .../_rgant-DomainObject_collectionDomainEvent.adoc |   2 +-
 .../guides/rgant/_rgant-DomainObject_nature.adoc   |  19 +-
 .../_rgant-DomainObject_propertyDomainEvent.adoc   |   2 +-
 .../guides/rgcfg/_rgcfg_deployment-types.adoc      |  15 +-
 .../guides/rgcfg/_rgcfg_specifying-components.adoc |   4 +-
 .../_rgcms_classes_AppManifest-bootstrapping.adoc  |  40 +---
 ...c_application-layer-spi_HealthCheckService.adoc |   2 +
 .../rgsvc/_rgsvc_integration-api_EmailService.adoc |   4 +-
 ...esentation-layer-spi_ContentMappingService.adoc |   4 +-
 ...esentation-layer-spi_ErrorReportingService.adoc |  22 +-
 ..._presentation-layer-spi_TranslationService.adoc |  12 +-
 ...gbtb_deployment_externalized-configuration.adoc |   8 +-
 .../main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc    |  13 +-
 .../main/asciidoc/guides/ugbtb/_ugbtb_web-xml.adoc |   2 +
 .../ugfun/_ugfun_drop-downs-and-defaults.adoc      |   2 +-
 ...ugfun_getting-started_helloworld-archetype.adoc |   8 +-
 ..._ugfun_getting-started_simpleapp-archetype.adoc |   8 +-
 .../_ugsec_configuring-isis-to-use-shiro.adoc      |   3 +
 .../guides/ugsec/_ugsec_usage-by-isis-viewers.adoc |  10 +-
 .../asciidoc/guides/ugvro/_ugvro_health-check.adoc |   2 +
 .../ugvw/_ugvw_configuration-properties.adoc       |  18 +-
 .../guides/ugvw/_ugvw_features_where-am-i.adoc     |  31 ++-
 ...ion-notes_1.16.0-to-2.0.0-M1_other-changes.adoc |   8 +-
 .../asciidoc/pages/screencasts/screencasts.adoc    |   2 +-
 .../src/main/asciidoc/pages/tg/tg.adoc             |   2 +-
 core/pom.xml                                       |   2 +-
 .../src/main/java/org/apache/isis/WebServer.java   |  28 ---
 .../org/apache/isis/core/webserver/WebServer.java  | 225 ---------------------
 .../isis/core/webserver/WebServerConstants.java    |  46 -----
 .../isis/core/webserver/WebServerException.java    |  30 ---
 .../webserver/config/WebServerConfigBuilder.java   | 111 ----------
 .../webserver/internal/OptionHandlerAddress.java   |  64 ------
 .../core/webserver/internal/OptionHandlerPort.java |  69 -------
 .../internal/OptionHandlerResourceBase.java        |  61 ------
 .../internal/OptionHandlerStartupMode.java         |  65 ------
 example/application/helloworld/pom.xml             |   4 +
 .../module-simple/logging-integtest.properties     |   2 +-
 .../integtests/tests/SimpleObject_IntegTest.java   |   5 +-
 example/application/simpleapp/pom.xml              |   4 +
 migration-notes.adoc                               |  63 ++++++
 48 files changed, 234 insertions(+), 846 deletions(-)
 rename adocs/documentation/src/main/asciidoc/guides/rgant/{_rgant-DomainObject_bounded.adoc => _rgant-DomainObject_bounding.adoc} (59%)
 delete mode 100644 core/webserver/src/main/java/org/apache/isis/WebServer.java
 delete mode 100644 core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java
 delete mode 100644 core/webserver/src/main/java/org/apache/isis/core/webserver/WebServerConstants.java
 delete mode 100644 core/webserver/src/main/java/org/apache/isis/core/webserver/WebServerException.java
 delete mode 100644 core/webserver/src/main/java/org/apache/isis/core/webserver/config/WebServerConfigBuilder.java
 delete mode 100644 core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerAddress.java
 delete mode 100644 core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerPort.java
 delete mode 100644 core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerResourceBase.java
 delete mode 100644 core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerStartupMode.java


[isis] 09/11: ISIS-1955: updates docs for Ticket, now an interface

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit bc216ba5f41abfcb1128009298ada678e26bc23d
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 4 11:49:06 2019 +0000

    ISIS-1955: updates docs for Ticket, now an interface
---
 ...esentation-layer-spi_ErrorReportingService.adoc | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ErrorReportingService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ErrorReportingService.adoc
index a7daccf..b713bc5 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ErrorReportingService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ErrorReportingService.adoc
@@ -44,17 +44,19 @@ In such cases the UI restricts the information shown to the end-user, to avoid l
 These technical details are hidden from the user and only shown for non-recoverable exceptions.
 
 
-and `Ticket` (returned by the service) has the constructor:
+and `Ticket` (returned by the service) is an interface:
 
 [source,java]
 ----
-public class Ticket implements Serializable {
-    public Ticket(
-        final String reference,             // <1>
-        final String userMessage,           // <2>
-        final String details,               // <3>
-        final StackTracePolicy policy,      // <4>
-        final String kittenUrl) { ... }     // <5>
+public interface Ticket extends Serializable {
+
+    enum StackTracePolicy { SHOW, HIDE }
+
+    String getReference();                      // <1>
+    String getUserMessage();                    // <2>
+    String getDetails();                        // <3>
+    StackTracePolicy getStackTracePolicy();     // <4>
+    String getMarkup();                         // <5>
 }
 ----
 <1> is a unique identifier that the end-user can use to track any follow-up from this error.
@@ -65,14 +67,14 @@ probably be the JIRA issue number <tt>XXX-1234</tt>.
 For example, these might include text on how to recover from the error, or workarounds, or just further details on contacting the help desk if the issue is severe and requires immediate attention.
 <4> is optional, specifying whether to show a button to view details of the stack trace.
 By default a stack trace button is not shown if a ticket is returned (but _is_ shown if there is no `ErrorReportingService` configured, or if it returns no ticket).
-<5> is optioal, specifying an external URL of an image to display for the end user.
+<5> returns a Html representation of this ticket.
 
 
 
 
 == Implementation
 
-There is no default implementation of this service.
+There is no default implementation of this service, but there are a couple of concrete examples of `Ticket` in `core-runtime`.
 
 The (non-ASF) http://github.com/isisaddons/isis-app-kitchensink[Isis addons' kitchensink] app provides an example implementation:
 


[isis] 05/11: ISIS-1811: adds TODOs in .docs, relating to the changes of web.xml (now programmatic)

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 95bd70d92ea59708952c14fc13de5be5fc712d85
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 4 11:37:40 2019 +0000

    ISIS-1811: adds TODOs in .docs, relating to the changes of web.xml (now programmatic)
---
 .../guides/rgcfg/_rgcfg_specifying-components.adoc |  2 ++
 .../_rgcms_classes_AppManifest-bootstrapping.adoc  | 22 ----------------------
 ...c_application-layer-spi_HealthCheckService.adoc |  2 ++
 ...gbtb_deployment_externalized-configuration.adoc |  2 ++
 .../main/asciidoc/guides/ugbtb/_ugbtb_web-xml.adoc |  2 ++
 .../_ugsec_configuring-isis-to-use-shiro.adoc      |  3 +++
 .../guides/ugsec/_ugsec_usage-by-isis-viewers.adoc | 10 +++++++++-
 .../asciidoc/guides/ugvro/_ugvro_health-check.adoc |  2 ++
 8 files changed, 22 insertions(+), 23 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc
index 6e36004..00e1f0b 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc
@@ -5,6 +5,8 @@
 :_imagesdir: images/
 
 
+TODO: v2: this is out of date; the way in which components are found is being reworked in v2.0.
+
 
 Bootstrapping an Apache Isis application involves identifying both:
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_AppManifest-bootstrapping.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_AppManifest-bootstrapping.adoc
index bb98769..96a93a3 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_AppManifest-bootstrapping.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_AppManifest-bootstrapping.adoc
@@ -321,25 +321,3 @@ public abstract class DomainAppIntegTestAbstract extends IntegrationTestAbstract
 
 
 
-[[__rgcms_classes_AppManifest-bootstrapping_subsidiary-goals]]
-== Subsidiary Goals
-
-There are a number of subsidiary goals of the `AppManifest` class (though not all of these are fully implemented):
-
-* Allow different integration tests to run with different manifests.
-
-** Normally the running application is shared (on a thread-local) between integration tests.
-What the framework could perhaps do is to be intelligent enough to keep track of the manifest in use for each integration test and tear down the shared state if the "next" test uses a different manifest
-
-* Provide a programmatic way to contribute elements of `web.xml`.
-
-* Provide a programmatic way to configure Shiro security.
-
-* Anticipate the module changes forthcoming in Java 9.
-
-** Eventually we see that the `AppManifest` class acting as an "aggregator", with the list of modules will become Java 9 modules each advertising the types that they export.
-** It might even be possible for ``AppManifest``s to be switched on and off dynamically (eg if Java9 is compatible with OSGi, being one of the design goals).
-
-
-
-
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-spi_HealthCheckService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-spi_HealthCheckService.adoc
index de215cb..f269dac 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-spi_HealthCheckService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-spi_HealthCheckService.adoc
@@ -35,6 +35,8 @@ Any custom implementations should be annotated using `@DomainService(nature = Na
 
 The `/restful/health` path must be specified as a "passThru" so that no authentication challenge is issued.
 
+TODO: v2: this may have changed because we now use `WebModule_Xxx` instead of `web.xml`, ie set this stuff up programmatically.
+
 [source,xml]
 .web.xml
 ----
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_externalized-configuration.adoc b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_externalized-configuration.adoc
index 52fd13b..4990d10 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_externalized-configuration.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_externalized-configuration.adoc
@@ -49,6 +49,8 @@ To tell Apache Isis to load configuration from an external directory, specify th
 
 If the external configuration directory is fixed for all environments (systest, UAT, prod etc), then you can specify within the `web.xml` itself:
 
+TODO: v2: this has almost certainly changed, because the configuration is picked up earlier; this probably no longer works.
+
 [source,xml]
 ----
 <context-param>
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_web-xml.adoc b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_web-xml.adoc
index 7ba3244..c6d43cb 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_web-xml.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_web-xml.adoc
@@ -5,6 +5,8 @@
 :_imagesdir: images/
 
 
+TODO: v2: a lot of this has changed, because we now use `WebModule_Xxx` instead of `web.xml`, ie set this stuff up programmatically.
+
 
 Apache Isis provides two different viewers, the xref:../ugvw/ugvw.adoc#[Wicket viewer] and the xref:../ugvro/ugvro.adoc#[RestfulObjects viewer].
 You can deploy both of these concurrently, or deploy just the Wicket viewer, or deploy just the Restful Objects viewer.
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_configuring-isis-to-use-shiro.adoc b/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_configuring-isis-to-use-shiro.adoc
index be41430..0288543 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_configuring-isis-to-use-shiro.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_configuring-isis-to-use-shiro.adoc
@@ -62,6 +62,9 @@ Setting it to `true` may cause a race condition resulting in exceptions being lo
 
 == Bootstrapping Shiro
 
+TODO: v2: this configuration is no longer required in `web.xml`, instead is configured programmatically by the framework (`WebModule_Shiro`).
+
+
 The Shiro environment (in essence, thread-locals holding the security credentials) needs to be bootstrapped using the following settings in the `WEB-INF/web.xml` file:
 
 [source,xml]
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_usage-by-isis-viewers.adoc b/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_usage-by-isis-viewers.adoc
index 41d23b9..426daa3 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_usage-by-isis-viewers.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_usage-by-isis-viewers.adoc
@@ -68,7 +68,8 @@ If you are using an LDAP realm and want to enable user-self registration then yo
 
 == Restful Objects Viewer
 
-Unlike the Wicket viewer, the xref:../ugvro/ugvro.adoc#[Restful Objects viewer] does *not* provide any sort of login page; rather it provides a pluggable authentication strategy, delegated to by the `IsisSessionFilter` filter defined in `web.xml`.  The authentication strategy is responsible for ensuring that a session is available for the REST resource.
+Unlike the Wicket viewer, the xref:../ugvro/ugvro.adoc#[Restful Objects viewer] does *not* provide any sort of login page; rather it provides a pluggable authentication strategy, delegated to by the `IsisSessionFilter` filter (set up by the framework's web bootstrapping).
+The authentication strategy is responsible for ensuring that a session is available for the REST resource.
 
 The API of `AuthenticationSessionStrategy` is simply:
 
@@ -102,6 +103,8 @@ As you can see, none of these should be considered production-quality.
 
 The strategy is configured in `web.xml`; for example:
 
+TODO: v2: this has changed, I think, because we now use `WebModule_Xxx` instead of `web.xml`, ie set this stuff up programmatically.
+
 [source,xml]
 ----
 <filter>
@@ -128,8 +131,11 @@ The strategy is configured in `web.xml`; for example:
 <3> which paths are allowed to be accessed directly, without a session.  The `/restful/swagger` path provides access to the SwaggerResource that dynamically generates swagger schema definition files from the Apache Isis metamodel.
 
 
+
 The above filter must then be chained before the servlet that actually handles the REST requests:
 
+TODO: v2: this has changed, I think, because we now use `WebModule_Xxx` instead of `web.xml`, ie set this stuff up programmatically.
+
 [source,xml]
 ----
 <filter-mapping>
@@ -186,6 +192,8 @@ public class CustomRestfulObjectsApplication extends RestfulObjectsApplication {
 
 * Register your application class in `web.xml` instead of the default: +
 +
+TODO: v2: this may have changed, because we now use `WebModule_Xxx` instead of `web.xml`, ie set this stuff up programmatically.
++
 [source,xml]
 ----
 <context-param>
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_health-check.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_health-check.adoc
index f28896b..3eeff75 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_health-check.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_health-check.adoc
@@ -51,6 +51,8 @@ Moreover (unless the `HealthCheckService` implementation uses the `WrapperFactor
 
 The `/restful/health` path must be specified as a "passThru" in `web.xml` so that no authentication challenge is issued.
 
+TODO: v2: this has changed, because we now use `WebModule_Xxx` instead of `web.xml`, ie set this stuff up programmatically.
+
 [source,xml]
 .web.xml
 ----


[isis] 10/11: ISIS-1811: updates migration-notes.adoc with TODOs for 2.0.0-M1.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 9a9fb6646fd9be6bb452c0033519102ad16e7fbc
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 4 13:11:02 2019 +0000

    ISIS-1811: updates migration-notes.adoc with TODOs for 2.0.0-M1.
---
 migration-notes.adoc | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/migration-notes.adoc b/migration-notes.adoc
index 24a3b4a..e3375e2 100644
--- a/migration-notes.adoc
+++ b/migration-notes.adoc
@@ -343,3 +343,48 @@ To document, in particular how to use in the helloworld/simpleapp archetypes.
 
 NB: ISIS-1969: the Docker image isn't yet being released, pending https://issues.apache.org/jira/browse/INFRA-17518[INFRA-17518].
 
+=== Plugin architecture (ISIS-1753 and others)
+
+* describe the plugin architecture in general, use of ServiceLoader etc
+* describe in particular the event bus plugin architecture (ISIS-1753)
+* describe in particular the other plugins (objectstore, security, resteasy, bytecode enhancement, ...)
+
+=== Ticket (for ErrorReportingService) is now an interface, not a class (ISIS-1955)
+
+\... and so any concrete implementations will need to be changed
+
+
+=== Override hsqldb for integtests (ISIS-1958)
+
+sample usage:
+
+[source,java]
+----
+public abstract class MyIntegTestAbstract extends IntegrationTestJupiter {
+
+  public MyIntegTestAbstract() {
+    super(new MyModule()
+      .withAdditionalModules(...)
+      ...
+      .withConfigurationProperties(databaseConfigForTest())
+    );
+  }
+
+  private static Map<String, String> databaseConfigForTest() {
+    Map<String, String> map = new HashMap<>();
+
+    // for refernce see AppManifest.Util.withJavaxJdoRunInMemoryProperties(map)
+
+    map.put(AppManifest.Util.ISIS_PERSISTOR_DATANUCLEUS_IMPL + "javax.jdo.option.ConnectionURL", "jdbc:mariadb://127.0.0.1/demo");
+    map.put(AppManifest.Util.ISIS_PERSISTOR_DATANUCLEUS_IMPL + "javax.jdo.option.ConnectionDriverName", "org.mariadb.jdbc.MariaDbDataSource");
+    map.put(AppManifest.Util.ISIS_PERSISTOR_DATANUCLEUS_IMPL + "javax.jdo.option.ConnectionUserName", "sven");
+    map.put(AppManifest.Util.ISIS_PERSISTOR_DATANUCLEUS_IMPL + "javax.jdo.option.ConnectionPassword", "pass");
+
+    return map;
+  }
+  ...
+
+}
+----
+
+


[isis] 07/11: ISIS-1823: updates docs for hiding/disabling the footer.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit c657df80bb4d1ab074a97fa6caa511238c4cf632
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 4 11:39:30 2019 +0000

    ISIS-1823: updates docs for hiding/disabling the footer.
---
 .../main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc   | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
index 3953121..c567f41 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
@@ -444,8 +444,10 @@ Either/both of `name` and `image` must be defined for the credit to be rendered
 
 Optional.
 
-|
-|
+|`isis.viewer.wicket.showFooter`
+| `true`,`false` +
+(`_true_`)
+| Whether to show the footer at all.
 
 |===
 


[isis] 06/11: ISIS-1811: updates docs, minor reformatting of "where am i" documentation

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 8f956e65fe438455edf1919dbe85489c4029ca25
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 4 11:38:11 2019 +0000

    ISIS-1811: updates docs, minor reformatting of "where am i" documentation
---
 .../src/main/asciidoc/guides/ugvw/_ugvw_features_where-am-i.adoc    | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_features_where-am-i.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_features_where-am-i.adoc
index 2c58e33..b426222 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_features_where-am-i.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_features_where-am-i.adoc
@@ -13,7 +13,7 @@ Domain objects that take part in such a navigable-tree-structure need to declare
 That's all the framework needs, in order to build a navigable-tree.
 With version 2.0 we introduced the `Navigable` enum to use with the `@PropertyLayout` annotation to allow declarative specification of a domain object's navigable parent.
 
-In other words: a domain object or view may declare it's parent (with respect to the navigable tree-structure it is part of) via use of a `@PropertyLayout(navigable=Navigable.PARENT)` annotation.
+In other words: a domain object or view may declare its parent (with respect to the navigable tree-structure it is part of) via use of a `@PropertyLayout(navigable=Navigable.PARENT)` annotation.
 
 
 == Screenshots
@@ -57,7 +57,7 @@ This results in a navigable tree-structure ...
 
 Company > Employee > PhoneNumber
 
-=== How to use Navigable.PARENT
+=== How to use `Navigable.PARENT`
 
 . Any use of `@PropertyLayout(navigable=Navigable.PARENT)` with Java interfaces is simply ignored.
 These do not contribute to the domain meta model.
@@ -68,7 +68,7 @@ These do not contribute to the domain meta model.
 
 .. \... a method: then must be a no-arg method returning a non-primitive type (e.g. a getter)
 
-.. \... a field: then the field must be of non-primitive type and must also have a getter (as specified by the Java Beans Standard, particularly to allow `@PropertyLayout(navigable=Navigable.PARENT)` annotations on fields that use the lombok @Getter annotation)
+.. \... a field: then the field must be of non-primitive type and must also have a getter (as specified by the Java Beans Standard, particularly to allow `@PropertyLayout(navigable=Navigable.PARENT)` annotations on fields that use the lombok `@Getter` annotation)
 
 . Starting from the current domain-object, we search the object's class inheritance hierarchy (super class, super super class, ...), until we find the first class that has a `@PropertyLayout(navigable=Navigable.PARENT)` annotation.
 That's the one we use to resolve the current domain-object's navigable parent.


[isis] 08/11: ISIS-1911: updates docs on disabling translation service po

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 1a1810f928c6f410d90ce0cbbf9b71690be7a039
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 4 11:40:13 2019 +0000

    ISIS-1911: updates docs on disabling translation service po
---
 .../_rgsvc_presentation-layer-spi_TranslationService.adoc   | 12 ++++++++----
 .../src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc         | 13 ++++++++++++-
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_TranslationService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_TranslationService.adoc
index a846227..c0d50a5 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_TranslationService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_TranslationService.adoc
@@ -6,7 +6,9 @@
 
 
 
-The `TranslationService` is the cornerstone of Apache Isis' i18n support.  Its role is to be able to provide translated versions of the various elements within the Apache Isis metamodel (service and object classes, properties, collections, actions, action parameters) and also to translate business rule (disable/valid) messages, and exceptions.  These translations provide for both singular and plural forms.
+The `TranslationService` is the cornerstone of Apache Isis' i18n support.
+Its role is to be able to provide translated versions of the various elements within the Apache Isis metamodel (service and object classes, properties, collections, actions, action parameters) and also to translate business rule (disable/valid) messages, and exceptions.
+These translations provide for both singular and plural forms.
 
 
 [NOTE]
@@ -74,9 +76,11 @@ The default implementation of this domain service recognises the following confi
 
 |`isis.services.` +
 `translation.` +
-`po.mode`
-| `read`,`write`
-|Whether to force the `TranslationService` into either read or write mode. +
+`p`
+| `read`,`write`,`disabled`
+|Whether to force the `TranslationService` into either read or write mode.
+It can also be disabled.
+This can be useful for integration tests.
 
 See xref:../ugbtb/ugbtb.adoc#_ugbtb_i18n[i18n support] to learn more about the translation service.
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc
index 6db178b..96dfabb 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc
@@ -629,6 +629,8 @@ However, Apache Isis can be configured to read config files from an xref:../ugbt
 
 Thus, if in `web.xml` the external configuration directory has been set:
 
+TODO: v2: this almost certainly no longer workd, because we now set up configuration very early on.
+
 [source,xml]
 ----
 <context-param>
@@ -639,7 +641,7 @@ Thus, if in `web.xml` the external configuration directory has been set:
 
 Then this directory will be used as the base for searching for translations (rather than the default 'WEB-INF/' directory).
 
-=== Force read mode
+=== Force read mode, or disable
 
 As noted above, if running in prototype mode then `TranslationServicePo` will be in write mode, if in production mode then will be in read mode.
 To force read mode (ie use translations) even if in prototype mode, add the following configuration property to `isis.properties`:
@@ -649,6 +651,15 @@ To force read mode (ie use translations) even if in prototype mode, add the foll
 isis.services.translation.po.mode=read
 ----
 
+It's also possible to disable the service complelely.
+This can sometimes be useful in integration tests.
+
+[source,ini]
+----
+isis.services.translation.po.mode=disables
+----
+----
+
 == Supporting services
 
 The `TranslationServicePo` has a number of supporting/related services.


[isis] 01/11: ISIS-2067: removes WebServer

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 8287d3b2ddcb02bd41bfe54e76f7a52eee97bded
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 4 10:05:11 2019 +0000

    ISIS-2067: removes WebServer
---
 .../guides/cgcom/_cgcom_cutting-a-release.adoc     |  10 -
 .../guides/dg/_dg_hints-and-tips_enhance-only.adoc |   2 +-
 .../main/asciidoc/guides/dg/_dg_ide_intellij.adoc  |  12 +-
 .../guides/rgcfg/_rgcfg_deployment-types.adoc      |   4 +
 .../_rgcms_classes_AppManifest-bootstrapping.adoc  |  18 +-
 .../rgsvc/_rgsvc_integration-api_EmailService.adoc |   4 +-
 ...gbtb_deployment_externalized-configuration.adoc |   6 -
 ...ugfun_getting-started_helloworld-archetype.adoc |   8 +-
 ..._ugfun_getting-started_simpleapp-archetype.adoc |   8 +-
 .../src/main/java/org/apache/isis/WebServer.java   |  28 ---
 .../org/apache/isis/core/webserver/WebServer.java  | 225 ---------------------
 .../isis/core/webserver/WebServerConstants.java    |  46 -----
 .../isis/core/webserver/WebServerException.java    |  30 ---
 .../webserver/config/WebServerConfigBuilder.java   | 111 ----------
 .../webserver/internal/OptionHandlerAddress.java   |  64 ------
 .../core/webserver/internal/OptionHandlerPort.java |  69 -------
 .../internal/OptionHandlerResourceBase.java        |  61 ------
 .../internal/OptionHandlerStartupMode.java         |  65 ------
 18 files changed, 21 insertions(+), 750 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_cutting-a-release.adoc b/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_cutting-a-release.adoc
index 2cd88ec..2e5c63b 100644
--- a/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_cutting-a-release.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/cgcom/_cgcom_cutting-a-release.adoc
@@ -351,11 +351,6 @@ Double check that the app:
 mvn clean install
 ----
 
-* can be run from an IDE
-** mainClass=`org.apache.isis.WebServer`
-** args=`-m domainapp.application.manifest.DomainAppAppManifestWithFixtures`
-** run before: `mvn -pl module-simple datanucleus:enhance -o` in the root module
-
 * can be run using the mvn jetty plugin:
 +
 [source,bash,subs="attributes+"]
@@ -604,11 +599,6 @@ Check that the app:
 mvn clean install
 ----
 
-* can be run from an IDE
-** mainClass=`org.apache.isis.WebServer`
-** args=`-m domainapp.application.HelloWorldAppManifest`
-** run before: `mvn datanucleus:enhance -o` in the root module
-
 * can be run using the mvn jetty plugin:
 +
 [source,bash]
diff --git a/adocs/documentation/src/main/asciidoc/guides/dg/_dg_hints-and-tips_enhance-only.adoc b/adocs/documentation/src/main/asciidoc/guides/dg/_dg_hints-and-tips_enhance-only.adoc
index aa6bff9..2431cad 100644
--- a/adocs/documentation/src/main/asciidoc/guides/dg/_dg_hints-and-tips_enhance-only.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/dg/_dg_hints-and-tips_enhance-only.adoc
@@ -11,7 +11,7 @@ From the Apache Isis mailing list is:
 
 Yes, you can; here's one way:
 
-* Duplicate your run configuration for running the webapp
+* Create Duplicate your run configuration for running the webapp
 ** the one where the main class is `org.apache.isis.WebServer`
 ** there's a button for this on the run configurations dialog.
 * then, on your copy change the main class to `org.apache.isis.Dummy`
diff --git a/adocs/documentation/src/main/asciidoc/guides/dg/_dg_ide_intellij.adoc b/adocs/documentation/src/main/asciidoc/guides/dg/_dg_ide_intellij.adoc
index 1d78e97..c623003 100644
--- a/adocs/documentation/src/main/asciidoc/guides/dg/_dg_ide_intellij.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/dg/_dg_ide_intellij.adoc
@@ -272,16 +272,10 @@ Let's see how to run both the app and the tests.
 [[__dg_ide_intellij_running_the-app]]
 === Running the App
 
-Once you've imported your Apache Isis application, we should run it.  We do this by creating a Run configuration, using `Run > Edit Configurations`.
+Once you've imported your Apache Isis application, we should run it.
+We do this by creating a Run configuration, using `Run > Edit Configurations`.
 
-Set up the details as follows:
-
-.IntelliJ Running the App - Run Configuration
-image::{_imagesdir}intellij-idea/110-running-the-app/010-run-configuration.png[width="600px",link="{_imagesdir}intellij-idea/110-running-the-app/010-run-configuration.png"]
-
-We specify the `Main class` to be `org.apache.isis.WebServer`; this is a wrapper around Jetty.  It's possible to pass program arguments to this (eg to automatically install fixtures), but for now leave this blank.
-
-Also note that `Use classpath of module` is the webapp module for your app, and that the `working directory` is `$MODULE_DIR$`.
+TODO: describe how to run using `mvn jetty:run`
 
 Next, and most importantly, configure the DataNucleus enhancer to run for your `dom` goal.  This can be done by defining a Maven goal to run before the app:
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_deployment-types.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_deployment-types.adoc
index 42d3c64..2db6671 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_deployment-types.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_deployment-types.adoc
@@ -5,6 +5,8 @@
 :_imagesdir: images/
 
 
+TODO: 2.0: This is out of date.  Instead we set system property or environment vars, as per `IsisSystemEnvironment`.  This is also pluggable.
+
 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`).
@@ -96,6 +98,8 @@ In this case the deployment type is specified through an Apache Isis-specific co
 
 == Overriding the deployment type
 
+TODO: 2.0: see env var or system properties, as per `IsisSystemEnvironment`.
+
 If bootstrapping the application using Apache Isis' xref:../ugbtb/ugbtb.adoc#_ugbtb_deployment_cmd-line[`org.apache.isis.WebServer`] then it is possible to override the deployment type using the `-t` (or `--type`) flag.
 
 For example:
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_AppManifest-bootstrapping.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_AppManifest-bootstrapping.adoc
index c034e0b..bb98769 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_AppManifest-bootstrapping.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_AppManifest-bootstrapping.adoc
@@ -15,7 +15,7 @@ The framework-provided `AppManifestAbstract2` and `AppManifestAbstract2.Builder`
 The app manifest can then be used both to bootstrap the application "proper", or for integration tests.
 ====
 
-
+TODO: v2: these two versions of `AppManifestAbstract` and `AppManifestAbstract2` will be unified.
 
 [[__rgcms_classes_AppManifest-bootstrapping_api]]
 == API
@@ -210,9 +210,9 @@ This will allow the architectural layering of the overall application to be enfo
 
 What then remains is to update the bootstrapping code itself.
 
-There are several different contexts in which the framework needs to be bootstrapped:
+There are a couple of contexts in which the framework needs to be bootstrapped:
 
-* the first is as a "regular" webapp (using the xref:../ugvw/ugvw.adoc#[Wicket viewer]).
+* the normal situation is as a "regular" webapp (using the xref:../ugvw/ugvw.adoc#[Wicket viewer]).
 Here the `AppManifest` just needs to be specified as a configuration property, usually done using the `WEB-INF/isis.properties` configuration file: +
 +
 [source,ini]
@@ -220,17 +220,7 @@ Here the `AppManifest` just needs to be specified as a configuration property, u
 isis.appManifest=domainapp.app.MyAppAppManifest
 ----
 
-* the second is also as a webapp, but from within the context of the IDE. +
-+
-Here, it's common to use the `org.apache.isis.WebServer` class to launch your application from the xref:../ugbtb/ugbtb.adoc#_ugbtb_deployment_cmd-line[command line].
-This allows the `AppManifest` to be specified using the `-m` (or `--manifest`) flag: +
-+
-[source,ini]
-----
-java org.apache.isis.WebServer -m com.mycompany.myapp.MyAppAppManifestWithFixtures
-----
-
-* the third case is within an integration test. +
+* the other main use-case is within an integration test. +
 +
 The code to boostrap an integration test is shown in the xref:../ugtst/ugtst.adoc#_ugtst_integ-test-support_bootstrapping[testing guide], but once again an `AppManifest` is required.
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_EmailService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_EmailService.adoc
index f26aa1e..3e7e9ae 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_EmailService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_EmailService.adoc
@@ -179,7 +179,9 @@ and these properties may optionally be configured (each has a default to use gma
 
 These configuration properties can be specified either in `isis.properties` or in an xref:../ugbtb/ugbtb.adoc#_ugbtb_deployment_externalized-configuration[external configuration file], or programmatically using the xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`].
 
-If prototyping (that is, running the app using `org.apache.isis.WebServer`), the configuration properties can also be specified as system properties.
+TODO-v2: confirm this is the case.
+
+Configuration properties can also be specified as system properties.
 For example, if you create a test email account on gmail, you can configure the service using:
 
 [source,ini]
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_externalized-configuration.adoc b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_externalized-configuration.adoc
index 71ab4ec..52fd13b 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_externalized-configuration.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_externalized-configuration.adoc
@@ -62,12 +62,6 @@ Most (if not all) servlet containers will provide a means to define context para
 
 
 
-[NOTE]
-====
-Note that running the app using Apache Isis' `org.apache.isis.WebServer` bootstrapper does not use externalized Apache Isis configuration.
-====
-
-
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc
index da402f9..7b0b0b1 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc
@@ -353,15 +353,13 @@ The default configuration does not require any configuration of the servlet cont
 
 Most of the time, though, you'll probably want to run the app from within your IDE.
 The mechanics of doing this will vary by IDE; see the xref:../dg/dg.adoc#_dg_ide[Developers' Guide] for details of setting up Eclipse or IntelliJ IDEA.
-Basically, though, it amounts to running `org.apache.isis.WebServer`, and ensuring that the xref:../dg/dg.adoc#_dg_hints-and-tips_datanucleus-enhancer[DataNucleus enhancer] has properly processed all domain entities.
+One easy way to do this is to use maven to run `jetty:run`.
+This can also be combined with `datanucleus:enhance` to ensure that the xref:../dg/dg.adoc#_dg_hints-and-tips_datanucleus-enhancer[DataNucleus enhancer] has properly processed all domain entities.
 
 Here's what the setup looks like in IntelliJ IDEA:
 
-image::{_imagesdir}getting-started/helloworld.png[width="600px",link="{_imagesdir}getting-started/helloworld.png"]
+TODO-v2: update this images; should basically show `mvn datanucleus:enhance jetty:run -o`
 
-with the maven goal to run the DataNucleus enhancer (discussed in more detail xref:../dg/dg.adoc#_dg_hints-and-tips_datanucleus-enhancer[here]) before launch defined as:
-
-image::{_imagesdir}getting-started/helloworld-before-launch.png[width="600px",link="{_imagesdir}getting-started/helloworld-before-launch.png"]
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
index f7abdca..af5ce22 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
@@ -615,15 +615,13 @@ Once more, see link:https://github.com/danhaywood/java-mavenmixin-docker#how-to-
 
 Most of the time, though, you'll probably want to run the app from within your IDE.
 The mechanics of doing this will vary by IDE; see the xref:../dg/dg.adoc#_dg_ide[Developers' Guide] for details of setting up Eclipse or IntelliJ IDEA.
-Basically, though, it amounts to running `org.apache.isis.WebServer`, and ensuring that the xref:../dg/dg.adoc#_dg_hints-and-tips_datanucleus-enhancer[DataNucleus enhancer] has properly processed all domain entities.
+One way to do this is to run through Maven with `jetty:run`.
+It is important though to ensure that the xref:../dg/dg.adoc#_dg_hints-and-tips_datanucleus-enhancer[DataNucleus enhancer] has properly processed all domain entities.
 
 Here's what the setup looks like in IntelliJ IDEA:
 
-image::{_imagesdir}getting-started/simpleapp-webapp.png[width="600px",link="{_imagesdir}getting-started/simpleapp-webapp.png"]
+TODO-v2: update these images.  Basically need to run "mvn datanucleus:enhance" as a pre-goal in the module-simple module, then "mvn jetty:run" in the webapp module.
 
-with the maven goal to run the DataNucleus enhancer (discussed in more detail xref:../dg/dg.adoc#_dg_hints-and-tips_datanucleus-enhancer[here]) before launch defined as:
-
-image::{_imagesdir}getting-started/simpleapp-webapp-before-launch.png[width="600px",link="{_imagesdir}getting-started/simpleapp-webapp-before-launch.png"]
 
 
 
diff --git a/core/webserver/src/main/java/org/apache/isis/WebServer.java b/core/webserver/src/main/java/org/apache/isis/WebServer.java
deleted file mode 100644
index 2d563254..0000000
--- a/core/webserver/src/main/java/org/apache/isis/WebServer.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis;
-
-public class WebServer {
-
-    public static void main(final String[] args) {
-        org.apache.isis.core.webserver.WebServer.main(args);
-    }
-
-}
diff --git a/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java b/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java
deleted file mode 100644
index 964fbe6..0000000
--- a/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.webserver;
-
-import java.io.File;
-import java.net.URI;
-import java.util.Formatter;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.eclipse.jetty.webapp.WebAppContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.config.ConfigurationConstants;
-import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.core.commons.exceptions.IsisException;
-import org.apache.isis.core.commons.lang.ArrayExtensions;
-import org.apache.isis.core.commons.lang.ObjectExtensions;
-import org.apache.isis.core.runtime.logging.IsisLoggingConfigurer;
-import org.apache.isis.core.runtime.optionhandler.OptionHandler;
-import org.apache.isis.core.runtime.runner.opts.OptionHandlerAdditionalProperty;
-import org.apache.isis.core.runtime.runner.opts.OptionHandlerAppManifest;
-import org.apache.isis.core.runtime.runner.opts.OptionHandlerConfiguration;
-import org.apache.isis.core.runtime.runner.opts.OptionHandlerFixture;
-import org.apache.isis.core.runtime.runner.opts.OptionHandlerFixtureFromEnvironmentVariable;
-import org.apache.isis.core.runtime.runner.opts.OptionHandlerHelp;
-import org.apache.isis.core.runtime.runner.opts.OptionHandlerSystemProperties;
-import org.apache.isis.core.webserver.config.WebServerConfigBuilder;
-import org.apache.isis.core.webserver.internal.OptionHandlerPort;
-import org.apache.isis.core.webserver.internal.OptionHandlerStartupMode;
-
-import static org.apache.isis.core.webserver.WebServerConstants.EMBEDDED_WEB_SERVER_PORT_DEFAULT;
-import static org.apache.isis.core.webserver.WebServerConstants.EMBEDDED_WEB_SERVER_PORT_KEY;
-import static org.apache.isis.core.webserver.WebServerConstants.EMBEDDED_WEB_SERVER_RESOURCE_BASE_DEFAULT;
-import static org.apache.isis.core.webserver.WebServerConstants.EMBEDDED_WEB_SERVER_RESOURCE_BASE_KEY;
-import static org.apache.isis.core.webserver.WebServerConstants.EMBEDDED_WEB_SERVER_STARTUP_MODE_DEFAULT;
-import static org.apache.isis.core.webserver.WebServerConstants.EMBEDDED_WEB_SERVER_STARTUP_MODE_KEY;
-
-public class WebServer {
-
-    private static final Logger LOG = LoggerFactory.getLogger(WebServer.class);
-    private static final String SRC_MAIN_WEBAPP = "src/main/webapp";
-
-    public enum StartupMode {
-        FOREGROUND, BACKGROUND;
-
-        public static StartupMode lookup(final String value) {
-            if (value == null) {
-                return null;
-            }
-            try {
-                return valueOf(value.toUpperCase());
-            } catch (final Exception e) {
-                return null;
-            }
-        }
-
-        public boolean isForeground() {
-            return this == FOREGROUND;
-        }
-        public boolean isBackground() {
-            return this == BACKGROUND;
-        }
-    }
-
-
-    private Server jettyServer;
-
-    public static void main(final String[] args) {
-        new WebServer().run(args);
-    }
-
-    public void run(final int port) {
-        String[] args = new String[0];
-        args = OptionHandlerStartupMode.appendArg(args, StartupMode.BACKGROUND);
-        args = OptionHandlerPort.appendArg(args, port);
-        run(args);
-    }
-
-    private final IsisLoggingConfigurer loggingConfigurer = new IsisLoggingConfigurer();
-
-    public void run(final String[] args) {
-
-        // setup logging immediately
-        loggingConfigurer.configureLogging(guessConfigDirectory(), args);
-
-        // set up the configuration
-        final WebServerConfigBuilder webServerConfigBuilder = new WebServerConfigBuilder();  
-        if(!webServerConfigBuilder.parseAndPrimeWith(standardHandlers(), args)) {
-            return;
-        }
-
-        final IsisConfiguration configuration = webServerConfigBuilder.build();
-        
-        // create and start
-        jettyServer = createJettyServerAndBindConfig(configuration);
-        
-        final String startupModeStr = configuration.getString(
-                EMBEDDED_WEB_SERVER_STARTUP_MODE_KEY, EMBEDDED_WEB_SERVER_STARTUP_MODE_DEFAULT);
-        final StartupMode startupMode = StartupMode.lookup(startupModeStr);
-
-        start(jettyServer, startupMode);
-    }
-
-    private static List<OptionHandler> standardHandlers() {
-        return _Lists.of(
-                new OptionHandlerConfiguration(),
-                new OptionHandlerFixture(),
-                new OptionHandlerAppManifest(),
-                new OptionHandlerAdditionalProperty(),
-                new OptionHandlerFixtureFromEnvironmentVariable(),
-                new OptionHandlerSystemProperties(),
-                new OptionHandlerHelp(),
-                new OptionHandlerPort()
-                );
-    }
-
-    // REVIEW: hacky...
-    private static String guessConfigDirectory() {
-        return new File(ConfigurationConstants.WEBINF_FULL_DIRECTORY).exists() ?
-                ConfigurationConstants.WEBINF_FULL_DIRECTORY :
-                    ConfigurationConstants.DEFAULT_CONFIG_DIRECTORY;
-    }
-
-    private Server createJettyServerAndBindConfig(IsisConfiguration configuration) {
-
-        final int port = configuration.getInteger(
-                EMBEDDED_WEB_SERVER_PORT_KEY, EMBEDDED_WEB_SERVER_PORT_DEFAULT);
-        final String webappContextPath = configuration.getString(
-                EMBEDDED_WEB_SERVER_RESOURCE_BASE_KEY, EMBEDDED_WEB_SERVER_RESOURCE_BASE_DEFAULT);
-
-        LOG.info("Running Jetty on port '{}' to serve the web application", port);
-
-        final Server jettyServer = new Server(port);
-        final WebAppContext context = new WebAppContext(SRC_MAIN_WEBAPP, webappContextPath);
-        jettyServer.setHandler(context);
-
-        return jettyServer;
-    }
-
-    private static void start(final Server jettyServer, final StartupMode startupMode) {
-        long start = System.currentTimeMillis();
-        try {
-            jettyServer.start();
-            LOG.info("Started the application in {}ms", System.currentTimeMillis() - start);
-            if (startupMode.isForeground()) {
-                System.in.read();
-                System.out.println(">>> STOPPING EMBEDDED JETTY SERVER");
-                jettyServer.stop();
-                jettyServer.join();
-            }
-        } catch (final Exception ex) {
-            throw new IsisException("Unable to start Jetty server", ex);
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private void copyDeploymentTypeIntoInitParams(final WebAppContext context) {
-        Map<String, String> initParams = context.getInitParams();
-        Map<String, String> convertedInitParams = ObjectExtensions.asT(initParams);
-        initParams.clear();
-        initParams.putAll(convertedInitParams);
-    }
-
-    public void stop() {
-        if (jettyServer == null) {
-            return;
-        }
-        try {
-            jettyServer.stop();
-        } catch (final Exception e) {
-            e.printStackTrace(System.err);
-        }
-    }
-
-    public URI getBase() {
-        return URI.create(baseFor(jettyServer));
-    }
-
-    private String baseFor(final Server jettyServer) {
-        final ServerConnector connector = (ServerConnector) jettyServer.getConnectors()[0];
-        final String scheme = "http";
-        final String host = ArrayExtensions.coalesce(connector.getHost(), "localhost");
-        final int port = connector.getPort();
-
-        final WebAppContext handler = (WebAppContext) jettyServer.getHandler();
-        final String contextPath = handler.getContextPath();
-
-        final StringBuilder buf = new StringBuilder();
-
-        try(final Formatter formatter = new Formatter(buf)) {
-            formatter.format("%s://%s:%d/%s", scheme, host, port, contextPath);
-        }
-
-        return appendSlashIfRequired(buf).toString();
-    }
-
-    private static StringBuilder appendSlashIfRequired(final StringBuilder buf) {
-        if (buf.charAt(buf.length() - 1) != '/') {
-            buf.append('/');
-        }
-        return buf;
-    }
-}
diff --git a/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServerConstants.java b/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServerConstants.java
deleted file mode 100644
index 47e1cb9..0000000
--- a/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServerConstants.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.webserver;
-
-import org.apache.isis.config.ConfigurationConstants;
-import org.apache.isis.core.webserver.WebServer.StartupMode;
-
-public final class WebServerConstants {
-
-    private static final String ROOT = ConfigurationConstants.ROOT + "embedded-web-server" + ".";
-
-    public static final String EMBEDDED_WEB_SERVER_PORT_KEY = ROOT + "port";
-    public static final int EMBEDDED_WEB_SERVER_PORT_DEFAULT = 8080;
-
-    public static final String EMBEDDED_WEB_SERVER_ADDRESS_KEY = ROOT + "address";
-    public static final String EMBEDDED_WEB_SERVER_ADDRESS_DEFAULT = "localhost";
-
-    public static final String EMBEDDED_WEB_SERVER_RESOURCE_BASE_KEY = ROOT + "webapp";
-    public static final String EMBEDDED_WEB_SERVER_RESOURCE_BASE_DEFAULT = ""; // or
-    // "webapp"
-    // ??
-
-    public static final String EMBEDDED_WEB_SERVER_STARTUP_MODE_KEY = ROOT + "startupMode";
-    public static final String EMBEDDED_WEB_SERVER_STARTUP_MODE_DEFAULT = StartupMode.FOREGROUND.name();
-
-    private WebServerConstants() {
-    }
-
-}
diff --git a/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServerException.java b/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServerException.java
deleted file mode 100644
index f07b890..0000000
--- a/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServerException.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.webserver;
-
-public class WebServerException extends RuntimeException {
-
-    private static final long serialVersionUID = 1L;
-
-    public WebServerException(final String message, final Throwable cause) {
-        super(message, cause);
-    }
-
-}
diff --git a/core/webserver/src/main/java/org/apache/isis/core/webserver/config/WebServerConfigBuilder.java b/core/webserver/src/main/java/org/apache/isis/core/webserver/config/WebServerConfigBuilder.java
deleted file mode 100644
index 4dac010..0000000
--- a/core/webserver/src/main/java/org/apache/isis/core/webserver/config/WebServerConfigBuilder.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.core.webserver.config;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.DefaultParser;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-
-import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.config.ConfigurationConstants;
-import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.config.internal._Config;
-import org.apache.isis.config.resource.ResourceStreamSource;
-import org.apache.isis.config.resource.ResourceStreamSourceContextLoaderClassPath;
-import org.apache.isis.config.resource.ResourceStreamSourceFileSystem;
-import org.apache.isis.core.runtime.optionhandler.BootPrinter;
-import org.apache.isis.core.runtime.optionhandler.OptionHandler;
-
-import static org.apache.isis.config.internal._Config.acceptBuilder;
-
-public class WebServerConfigBuilder {
-    
-    public WebServerConfigBuilder() {
-        acceptBuilder(builder->{
-            builder.addResourceStreamSources(resourceStreamSources());    
-        });
-    }
-
-    public boolean parseAndPrimeWith(final List<OptionHandler> optionHandlers, final String[] args) {
-
-        // add options (ie cmd line flags)
-        final Options options = new Options();
-        for (final OptionHandler optionHandler : optionHandlers) {
-            optionHandler.addOption(options);
-        }
-
-        // parse options from the cmd line
-        final boolean parsedOk = parseAndPrimeWith(options, optionHandlers, args);
-
-        if(parsedOk) {
-            
-            acceptBuilder(builder->{
-                
-                for (final OptionHandler optionHandler : optionHandlers) {
-                    builder.primeWith(optionHandler);
-                }
-                
-            });
-            
-        }
-
-        return parsedOk;
-    }
-
-    private boolean parseAndPrimeWith(final Options options, final List<OptionHandler> optionHandlers, final String[] args) {
-        final BootPrinter printer = new BootPrinter(getClass());
-        final CommandLineParser parser = new DefaultParser();
-        try {
-            final CommandLine commandLine = parser.parse(options, args);
-            for (final OptionHandler optionHandler : optionHandlers) {
-                if (!optionHandler.handle(commandLine, printer, options)) {
-                    return false;
-                }
-            }
-        } catch (final ParseException e) {
-            printer.printErrorMessage(e.getMessage());
-            printer.printHelp(options);
-            return false;
-        }
-        return true;
-    }
-    
-    /**
-     * Set of locations to search for config files.
-     */
-    private static List<ResourceStreamSource> resourceStreamSources() {
-        final List<ResourceStreamSource> rssList = _Lists.newArrayList();
-        rssList.addAll(Arrays.asList(
-                ResourceStreamSourceFileSystem.create(ConfigurationConstants.DEFAULT_CONFIG_DIRECTORY),
-                ResourceStreamSourceFileSystem.create(ConfigurationConstants.WEBINF_FULL_DIRECTORY),
-                ResourceStreamSourceContextLoaderClassPath.create(),
-                ResourceStreamSourceContextLoaderClassPath.create(ConfigurationConstants.WEBINF_DIRECTORY)));
-        return rssList;
-    }
-
-    public IsisConfiguration build() {
-        return _Config.getConfiguration();
-    }
-    
-}
diff --git a/core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerAddress.java b/core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerAddress.java
deleted file mode 100644
index 4eb6543..0000000
--- a/core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerAddress.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-/**
- *
- */
-package org.apache.isis.core.webserver.internal;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.commons.cli.Options;
-
-import org.apache.isis.config.builder.IsisConfigurationBuilder;
-import org.apache.isis.core.runtime.optionhandler.BootPrinter;
-import org.apache.isis.core.runtime.optionhandler.OptionHandler;
-import org.apache.isis.core.webserver.WebServerConstants;
-
-/**
- * @deprecated - never completed (unused)
- */
-@Deprecated
-public final class OptionHandlerAddress implements OptionHandler {
-    private String address;
-    static final String ADDRESS_OPT = "a";
-    static final String ADDRESS_LONG_OPT = "address";
-
-    @Override
-    @SuppressWarnings("static-access")
-    public void addOption(final Options options) {
-        final Option option = OptionBuilder.withArgName("address").hasArg().withLongOpt(OptionHandlerAddress.ADDRESS_LONG_OPT).withDescription("address to listen on").create(OptionHandlerAddress.ADDRESS_OPT);
-        options.addOption(option);
-    }
-
-    @Override
-    public boolean handle(final CommandLine commandLine, final BootPrinter bootPrinter, final Options options) {
-        address = commandLine.getOptionValue(OptionHandlerAddress.ADDRESS_OPT);
-        return true;
-    }
-
-    @Override
-    public void prime(final IsisConfigurationBuilder isisConfigurationBuilder) {
-        if (address == null) {
-            return;
-        }
-        isisConfigurationBuilder.add(WebServerConstants.EMBEDDED_WEB_SERVER_ADDRESS_KEY, address);
-    }
-}
\ No newline at end of file
diff --git a/core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerPort.java b/core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerPort.java
deleted file mode 100644
index a5f1621..0000000
--- a/core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerPort.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-/**
- *
- */
-package org.apache.isis.core.webserver.internal;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.commons.cli.Options;
-
-import org.apache.isis.config.builder.IsisConfigurationBuilder;
-import org.apache.isis.core.commons.lang.ArrayExtensions;
-import org.apache.isis.core.runtime.optionhandler.BootPrinter;
-import org.apache.isis.core.runtime.optionhandler.OptionHandler;
-import org.apache.isis.core.webserver.WebServerConstants;
-
-public final class OptionHandlerPort implements OptionHandler {
-    private Integer port;
-    static final String PORT_LONG_OPT = "port";
-    static final String PORT_OPT = "p";
-
-    public static String[] appendArg(final String[] args, final int port) {
-        return ArrayExtensions.append(args, "--" + PORT_LONG_OPT, "" + port);
-    }
-
-    @Override
-    @SuppressWarnings("static-access")
-    public void addOption(final Options options) {
-        OptionBuilder.withArgName("port");
-        final Option option = OptionBuilder.hasArg().withLongOpt(OptionHandlerPort.PORT_LONG_OPT).withDescription("port to listen on").create(OptionHandlerPort.PORT_OPT);
-        options.addOption(option);
-    }
-
-    @Override
-    public boolean handle(final CommandLine commandLine, final BootPrinter bootPrinter, final Options options) {
-        final String portStr = commandLine.getOptionValue(OptionHandlerPort.PORT_OPT);
-        if (portStr != null) {
-            port = Integer.parseInt(portStr);
-        }
-        return true;
-    }
-
-    @Override
-    public void prime(final IsisConfigurationBuilder isisConfigurationBuilder) {
-        if (port == null) {
-            return;
-        }
-        isisConfigurationBuilder.add(WebServerConstants.EMBEDDED_WEB_SERVER_PORT_KEY, "" + port);
-    }
-}
\ No newline at end of file
diff --git a/core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerResourceBase.java b/core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerResourceBase.java
deleted file mode 100644
index 5cca083..0000000
--- a/core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerResourceBase.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.webserver.internal;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.commons.cli.Options;
-
-import org.apache.isis.config.builder.IsisConfigurationBuilder;
-import org.apache.isis.core.runtime.optionhandler.BootPrinter;
-import org.apache.isis.core.runtime.optionhandler.OptionHandler;
-import org.apache.isis.core.webserver.WebServerConstants;
-
-/**
- * @deprecated  - although was used, is too obscure.
- */
-@Deprecated
-public final class OptionHandlerResourceBase implements OptionHandler {
-    private String resourceBase;
-    static final String RESOURCE_BASE_LONG_OPT = "webapp";
-    static final String RESOURCE_BASE_OPT = "w";
-
-    @Override
-    @SuppressWarnings("static-access")
-    public void addOption(final Options options) {
-        final Option option = OptionBuilder.withArgName("webapp directory").hasArg().withLongOpt(OptionHandlerResourceBase.RESOURCE_BASE_LONG_OPT).withDescription("directory holding webapp").create(OptionHandlerResourceBase.RESOURCE_BASE_OPT);
-        options.addOption(option);
-    }
-
-    @Override
-    public boolean handle(final CommandLine commandLine, final BootPrinter bootPrinter, final Options options) {
-        resourceBase = commandLine.getOptionValue(OptionHandlerResourceBase.RESOURCE_BASE_OPT, resourceBase);
-        return true;
-    }
-
-    @Override
-    public void prime(final IsisConfigurationBuilder isisConfigurationBuilder) {
-        if (resourceBase == null) {
-            return;
-        }
-        isisConfigurationBuilder.add(WebServerConstants.EMBEDDED_WEB_SERVER_RESOURCE_BASE_KEY, resourceBase);
-    }
-}
\ No newline at end of file
diff --git a/core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerStartupMode.java b/core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerStartupMode.java
deleted file mode 100644
index 4d59837..0000000
--- a/core/webserver/src/main/java/org/apache/isis/core/webserver/internal/OptionHandlerStartupMode.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.webserver.internal;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.commons.cli.Options;
-
-import org.apache.isis.config.builder.IsisConfigurationBuilder;
-import org.apache.isis.core.commons.lang.ArrayExtensions;
-import org.apache.isis.core.runtime.optionhandler.BootPrinter;
-import org.apache.isis.core.runtime.optionhandler.OptionHandler;
-import org.apache.isis.core.webserver.WebServer.StartupMode;
-import org.apache.isis.core.webserver.WebServerConstants;
-
-public final class OptionHandlerStartupMode implements OptionHandler {
-
-    static final String STARTUP_MODE_LONG_OPT = "startup";
-    static final String STARTUP_MODE_BASE_OPT = "a";
-
-    public static String[] appendArg(final String[] args, final StartupMode startupMode) {
-        return ArrayExtensions.append(args, "--" + STARTUP_MODE_LONG_OPT, "" + startupMode.name());
-    }
-
-    private StartupMode startupMode;
-
-    @Override
-    @SuppressWarnings("static-access")
-    public void addOption(final Options options) {
-        final Option option = OptionBuilder.withArgName("startup mode").hasArg().withLongOpt(OptionHandlerStartupMode.STARTUP_MODE_LONG_OPT).withDescription("start in foreground (sync) or background (async)").create(OptionHandlerStartupMode.STARTUP_MODE_BASE_OPT);
-        options.addOption(option);
-    }
-
-    @Override
-    public boolean handle(final CommandLine commandLine, final BootPrinter bootPrinter, final Options options) {
-        startupMode = StartupMode.lookup(commandLine.getOptionValue(OptionHandlerStartupMode.STARTUP_MODE_BASE_OPT));
-        return true;
-    }
-
-    @Override
-    public void prime(final IsisConfigurationBuilder isisConfigurationBuilder) {
-        if (startupMode != null) {
-            isisConfigurationBuilder.add(WebServerConstants.EMBEDDED_WEB_SERVER_STARTUP_MODE_KEY, startupMode.name());
-        }
-    }
-
-}
\ No newline at end of file


[isis] 04/11: ISIS-1811: updates docs for 2.0.0-M1 (or adds TODOs)

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit ebdbfe7ecb3f35f314e242744279612e80da7367
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 4 10:27:45 2019 +0000

    ISIS-1811: updates docs for 2.0.0-M1  (or adds TODOs)
---
 .../guides/rgant/_rgant-Action_domainEvent.adoc    |  2 +-
 .../asciidoc/guides/rgant/_rgant-DomainObject.adoc |  4 ++--
 ...nded.adoc => _rgant-DomainObject_bounding.adoc} |  8 +++----
 .../_rgant-DomainObject_collectionDomainEvent.adoc |  2 +-
 .../_rgant-DomainObject_propertyDomainEvent.adoc   |  2 +-
 .../guides/rgcfg/_rgcfg_deployment-types.adoc      | 17 ++------------
 .../guides/rgcfg/_rgcfg_specifying-components.adoc |  2 +-
 .../rgsvc/_rgsvc_integration-api_EmailService.adoc |  2 +-
 ...esentation-layer-spi_ContentMappingService.adoc |  4 ++--
 .../ugfun/_ugfun_drop-downs-and-defaults.adoc      |  2 +-
 ...ugfun_getting-started_helloworld-archetype.adoc |  2 +-
 ..._ugfun_getting-started_simpleapp-archetype.adoc |  2 +-
 .../ugvw/_ugvw_configuration-properties.adoc       | 12 ++++++++++
 .../guides/ugvw/_ugvw_features_where-am-i.adoc     | 27 ++++++++++++++++------
 ...ion-notes_1.16.0-to-2.0.0-M1_other-changes.adoc |  8 +++++--
 .../asciidoc/pages/screencasts/screencasts.adoc    |  2 +-
 .../src/main/asciidoc/pages/tg/tg.adoc             |  2 +-
 migration-notes.adoc                               | 18 +++++++++++++++
 18 files changed, 76 insertions(+), 42 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Action_domainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Action_domainEvent.adoc
index b91e65f..e7b7143 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Action_domainEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Action_domainEvent.adoc
@@ -157,7 +157,7 @@ For this use, the default action domain event can be annotated using `@DomainObj
 )
 public class ToDoItem {
     public static class ActionDomainEventDefault
-        extends org.apache.isis.applib.services.eventbus.ActionDomainEvent<Object> { }
+        extends org.apache.isis.applib.events.domain.ActionDomainEvent<Object> { }
     ...
 
     public void updateDescription(final String description) {
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject.adoc
index e295588..9091b5c 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject.adoc
@@ -37,7 +37,7 @@ xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerSer
 |override the method name to use on the auto-complete repository
 
 
-|xref:../rgant/rgant.adoc#_rgant-DomainObject_bounded[`bounded()`]
+|xref:../rgant/rgant.adoc#_rgant-DomainObject_bounding[`bounding()`]
 |`true`, `false` +
 (`false`)
 |Whether the number of instances of this domain class is relatively small (a "bounded" set), such that instances could be selected from a drop-down list box or similar.
@@ -133,7 +133,7 @@ public class Customer {
 
 include::_rgant-DomainObject_auditing.adoc[leveloffset=+1]
 include::_rgant-DomainObject_autoCompleteRepository.adoc[leveloffset=+1]
-include::_rgant-DomainObject_bounded.adoc[leveloffset=+1]
+include::_rgant-DomainObject_bounding.adoc[leveloffset=+1]
 include::_rgant-DomainObject_createdLifecycleEvent.adoc[leveloffset=+1]
 include::_rgant-DomainObject_editing.adoc[leveloffset=+1]
 include::_rgant-DomainObject_loadedLifecycleEvent.adoc[leveloffset=+1]
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_bounded.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_bounding.adoc
similarity index 94%
rename from adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_bounded.adoc
rename to adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_bounding.adoc
index e2d9658..2ea2abc 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_bounded.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_bounding.adoc
@@ -1,5 +1,5 @@
-[[_rgant-DomainObject_bounded]]
-= `bounded()`
+[[_rgant-DomainObject_bounding]]
+= `bounding()`
 :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 ag [...]
 :_basedir: ../../
 :_imagesdir: images/
@@ -10,7 +10,7 @@ Some domain classes are immutable to the user, and moreover have only a fixed nu
 Often these are "reference" ("standing") data, or lookup data/pick lists.
 Typical examples could include categories, countries, states, and tax or interest rate tables.
 
-Where the number of instances is relatively small, ie bounded, then the `bounded()` attribute can be used as a hint.
+Where the number of instances is relatively small, ie bounded, then the `bounding()` attribute can be used as a hint.
 For such domain objects the framework will automatically allow instances to be selected; xref:../ugvw/ugvw.adoc#[Wicket viewer] displays these as a drop-down list.
 
 
@@ -19,7 +19,7 @@ For example:
 [source,java]
 ----
 @DomainObject(
-    bounded=true,
+    bounding=Bounding.BOUNDED,
     editing=Editing.DISABLED  // <1>
 )
 public class Currency {
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_collectionDomainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_collectionDomainEvent.adoc
index 22b39bf..701e95e 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_collectionDomainEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_collectionDomainEvent.adoc
@@ -18,7 +18,7 @@ For example:
 )
 public class ToDoItem {
     public static class CollectionDomainEventDefault
-        extends org.apache.isis.applib.services.eventbus.CollectionDomainEvent<Object> { }
+        extends org.apache.isis.applib.events.domain.CollectionDomainEvent<Object> { }
     ...
 
     @Getter @Setter
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_propertyDomainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_propertyDomainEvent.adoc
index 4784dfb..fe49620 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_propertyDomainEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_propertyDomainEvent.adoc
@@ -18,7 +18,7 @@ For example:
 )
 public class ToDoItem {
     public static class PropertyDomainEventDefault
-        extends org.apache.isis.applib.services.eventbus.PropertyDomainEvent<Object> { }
+        extends org.apache.isis.applib.events.domain.PropertyDomainEvent<Object> { }
     ...
 
     @Getter @Setter
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_deployment-types.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_deployment-types.adoc
index 2db6671..25b916d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_deployment-types.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_deployment-types.adoc
@@ -5,7 +5,7 @@
 :_imagesdir: images/
 
 
-TODO: 2.0: This is out of date.  Instead we set system property or environment vars, as per `IsisSystemEnvironment`.  This is also pluggable.
+TODO: v2: This is out of date.  Instead we set system property or environment vars, as per `IsisSystemEnvironment`.  This is also pluggable.
 
 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).
 
@@ -98,18 +98,5 @@ In this case the deployment type is specified through an Apache Isis-specific co
 
 == Overriding the deployment type
 
-TODO: 2.0: see env var or system properties, as per `IsisSystemEnvironment`.
-
-If bootstrapping the application using Apache Isis' xref:../ugbtb/ugbtb.adoc#_ugbtb_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:../ugvw/ugvw.adoc#[Wicket viewer] and the xref:../ugvro/ugvro.adoc#[RestfulObjects viewer].
+TODO: v2: see env var or system properties, as per `IsisSystemEnvironment`.
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc
index e9400b7..6e36004 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc
@@ -11,7 +11,7 @@ Bootstrapping an Apache Isis application involves identifying both:
 * the major components (authentication, persistence mechanisms, viewers) of Apache Isis, and also
 * specifying the domain services and persistent entities that make up the application itself.
 
-The recommended approach is to use an xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AppManifest[`AppManifest`], specified either programmatically or through the configuration properties.
+This is done using an xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AppManifest[`AppManifest`], specified either programmatically or through the configuration properties.
 This allows the components, services and entities to be specified from a single class.
 
 To specify the `AppManifest` as a configuration property, use:
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_EmailService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_EmailService.adoc
index 3e7e9ae..04670c2 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_EmailService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_EmailService.adoc
@@ -179,7 +179,7 @@ and these properties may optionally be configured (each has a default to use gma
 
 These configuration properties can be specified either in `isis.properties` or in an xref:../ugbtb/ugbtb.adoc#_ugbtb_deployment_externalized-configuration[external configuration file], or programmatically using the xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`].
 
-TODO-v2: confirm this is the case.
+TODO: v2: confirm this is the case.
 
 Configuration properties can also be specified as system properties.
 For example, if you create a test email account on gmail, you can configure the service using:
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ContentMappingService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ContentMappingService.adoc
index 348bd99..29fd4af 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ContentMappingService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ContentMappingService.adoc
@@ -51,8 +51,8 @@ One implementation that does this is the (non-ASF) link:http://platform.incode.o
 
 For framework implementations of `ContentMappingService` allow domain service actions that return ``CommandDto``s (either singularly or in a list) to be converted into XML documents:
 
-* `o.a.i.applib.conmap.ContentMappingServiceForCommandDto` will map any single instnce of a `CommandWithDto` into a `CommandDto` XML document
-* `o.a.i.applib.conmap.ContentMappingServiceForCommandsDto` will map list of ``CommandWithDto``s into a `CommandsDto` XML document, and will wrap any single instance of a `CommandWithDto` into a singleton list and thence into a `CommandsDto` XML document.
+* `o.a.i.applib.services.conmap.ContentMappingServiceForCommandDto` will map any single instance of a `CommandWithDto` into a `CommandDto` XML document
+* `o.a.i.applib.services.conmap.ContentMappingServiceForCommandsDto` will map list of ``CommandWithDto``s into a `CommandsDto` XML document, and will wrap any single instance of a `CommandWithDto` into a singleton list and thence into a `CommandsDto` XML document.
 
 If the action invocation or property edit represent provides an implementation of a `CommandDtoProcessor` (by way of xref:../rgant/rgant.adoc#_rgant-Action_command[`@Action#commandDtoProcessor()`] or xref:../rgant/rgant.adoc#_rgant-Property_command[`@Property#commandDtoProcessor()`]) then this is also called to post-process the persisted `CommandDto` if required.
 A typical use case for this is to dynamically add in serialized ``Blob``s or ``Clob``s, the values of which are not captured by default in `CommandDto`.
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_drop-downs-and-defaults.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_drop-downs-and-defaults.adoc
index 6b2fef1..b53a582 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_drop-downs-and-defaults.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_drop-downs-and-defaults.adoc
@@ -111,7 +111,7 @@ For example:
 public class Product { ... }
 ----
 
-For more on this, see xref:../rgant/rgant.adoc#_rgant-DomainObject_bounded[`@DomainObject#bounded()`].
+For more on this, see xref:../rgant/rgant.adoc#_rgant-DomainObject_bounding[`@DomainObject#bounding()`].
 
 Or, if the data type is an enum, then a drop-down will be provided automatically.
 A payment method is a good example of this:
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc
index 7b0b0b1..f366c3b 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc
@@ -358,7 +358,7 @@ This can also be combined with `datanucleus:enhance` to ensure that the xref:../
 
 Here's what the setup looks like in IntelliJ IDEA:
 
-TODO-v2: update this images; should basically show `mvn datanucleus:enhance jetty:run -o`
+TODO: v2: update this images; should basically show `mvn datanucleus:enhance jetty:run -o`
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
index af5ce22..ede5d35 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
@@ -620,7 +620,7 @@ It is important though to ensure that the xref:../dg/dg.adoc#_dg_hints-and-tips_
 
 Here's what the setup looks like in IntelliJ IDEA:
 
-TODO-v2: update these images.  Basically need to run "mvn datanucleus:enhance" as a pre-goal in the module-simple module, then "mvn jetty:run" in the webapp module.
+TODO: v2: update these images.  Basically need to run "mvn datanucleus:enhance" as a pre-goal in the module-simple module, then "mvn jetty:run" in the webapp module.
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
index b00dff5..3953121 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
@@ -599,6 +599,12 @@ These configuration properties enable or disable the mechanisms for locating pre
 (_default value_)
 |Description
 
+|`isis.viewer.whereAmI.` +
+`maxParentChainLength`
+| +ve int +
+(`_64_`)
+| The number of levels to show in the "Where am I" chain.
+
 |`isis.viewer.wicket.` +
 `bookmarkedPages.maxSize`
 | +ve int +
@@ -862,6 +868,12 @@ These configuration properties are used to enable/disable features that are eith
 (_default value_)
 |Description
 
+|`isis.viewer.whereAmI.enabled`
+| `true`,`false` +
+(`_true_`)
+| To disable the xref:ugvw.adoc#_ugvw_features_where-am-i["Where am I"] feature.
+
+
 |`isis.viewer.wicket.` +
 `disableDependent` +
 `ChoiceAutoSelection`
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_features_where-am-i.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_features_where-am-i.adoc
index d633841..2c58e33 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_features_where-am-i.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_features_where-am-i.adoc
@@ -8,7 +8,10 @@
 
 The Wicket viewer provides a secondary navigation scheme that allows users to quickly access domain objects, that are organized in a hierarchical manner. 
 
-This hierarchy can be understood as a navigable tree-structure, where the navigable tree-nodes are either domain objects or domain views. Domain objects that take part in such a navigable-tree-structure need to declare their actual navigable parent within this hierarchy. That's all the framework needs, in order to build a navigable-tree. With version 2.0 we introduced the `Navigable` enum to use with the `@PropertyLayout` annotation to allow declarative specification of a domain object's [...]
+This hierarchy can be understood as a navigable tree-structure, where the navigable tree-nodes are either domain objects or domain views.
+Domain objects that take part in such a navigable-tree-structure need to declare their actual navigable parent within this hierarchy.
+That's all the framework needs, in order to build a navigable-tree.
+With version 2.0 we introduced the `Navigable` enum to use with the `@PropertyLayout` annotation to allow declarative specification of a domain object's navigable parent.
 
 In other words: a domain object or view may declare it's parent (with respect to the navigable tree-structure it is part of) via use of a `@PropertyLayout(navigable=Navigable.PARENT)` annotation.
 
@@ -56,17 +59,26 @@ Company > Employee > PhoneNumber
 
 === How to use Navigable.PARENT
 
-. Any use of `@PropertyLayout(navigable=Navigable.PARENT)` with Java interfaces is simply ignored. These do not contribute to the domain meta model.
+. Any use of `@PropertyLayout(navigable=Navigable.PARENT)` with Java interfaces is simply ignored.
+These do not contribute to the domain meta model.
+
 . Any class (abstract or concrete) may at most have one `@PropertyLayout` annotation, having `navigable=Navigable.PARENT` 'flag' set (on either a method or a field); otherwise meta-model validation will fail.
+
 . The annotated member (method or field), when ...
-.. ... a method: then must be a no-arg method returning a non-primitive type (e.g. a getter)
-.. ... a field: then the field must be of non-primitive type and must also have a getter (as specified by the Java Beans Standard, particularly to allow `@PropertyLayout(navigable=Navigable.PARENT)` annotations on fields that use the lombok @Getter annotation)
-. Starting from the current domain-object, we search the object's class inheritance hierarchy (super class, super super class, ...), until we find the first class that has a `@PropertyLayout(navigable=Navigable.PARENT)` annotation. That's the one we use to resolve the current domain-object's navigable parent.
+
+.. \... a method: then must be a no-arg method returning a non-primitive type (e.g. a getter)
+
+.. \... a field: then the field must be of non-primitive type and must also have a getter (as specified by the Java Beans Standard, particularly to allow `@PropertyLayout(navigable=Navigable.PARENT)` annotations on fields that use the lombok @Getter annotation)
+
+. Starting from the current domain-object, we search the object's class inheritance hierarchy (super class, super super class, ...), until we find the first class that has a `@PropertyLayout(navigable=Navigable.PARENT)` annotation.
+That's the one we use to resolve the current domain-object's navigable parent.
 
 
 == User Experience
 
-When viewing a domain object that is part of a hierarchical structure, one can easily navigate to any parent of this object. Horizontally arranged text links separated by the 'greater than' symbol (>) are provided below the main menu. (Traditionally called breadcrumbs.)
+When viewing a domain object that is part of a hierarchical structure, one can easily navigate to any parent of this object.
+Horizontally arranged text links separated by the 'greater than' symbol (>) are provided below the main menu.
+(Traditionally called breadcrumbs.)
 
 
 
@@ -78,7 +90,8 @@ The navigable tree-structure, as provided by the 'Where am I' feature, is declar
 
 == Configuration
 
-By default, the 'Where am I' feature will show a maximum of 64 links. This can be overridden using a property (in `isis.properties`), for example:
+By default, the 'Where am I' feature will show a maximum of 64 links.
+This can be overridden using a property (in `isis.properties`), for example:
 
 [source,ini]
 ----
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_other-changes.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_other-changes.adoc
index 9d6a0b9..76fd011 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_other-changes.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_other-changes.adoc
@@ -13,8 +13,8 @@
 
 The default implementation of `UrlEncodingService` provided by the framework has changed:
 
-* in 1.16.x the implementation is *** TODO: look up ***
-* in 2.0.0-M1 this is changed to `UrlEncodingServiceWithCompression`
+* in 1.16.x the implementation is `o.a.i.applib.services.urlencoding.UrlEncodingServiceUsingBaseEncoding`
+* in 2.0.0-M1 this is changed to `o.a.i.applib.services.urlencoding.UrlEncodingServiceWithCompression`
 
 This new implementation increases the state that can be encoded within the URL (approx 8000 characters) by first gzipping the state prior to base64 encoding the characters.
 
@@ -244,3 +244,7 @@ Consequently in 2.0.0-M1 this API has been split into three:
 * `IsisJdoSupport_v3_2` (defined in `isis-core-plugins-jdo-datanucleus-5`) extends `IsisJdoSupport` with JDO 3.2-specific APIs
 
 
+
+== Swagger UI
+
+Swagger UI is now reinstated as a webjar, so there is no need to have any swagger UI files in the webapp (ISIS-1908).
diff --git a/adocs/documentation/src/main/asciidoc/pages/screencasts/screencasts.adoc b/adocs/documentation/src/main/asciidoc/pages/screencasts/screencasts.adoc
index 0847670..9c49dd1 100644
--- a/adocs/documentation/src/main/asciidoc/pages/screencasts/screencasts.adoc
+++ b/adocs/documentation/src/main/asciidoc/pages/screencasts/screencasts.adoc
@@ -452,7 +452,7 @@ How to use the supporting xref:../../guides/rgcms/rgcms.adoc#_rgcms_methods_pref
 
 
 |link:https://www.youtube.com/watch?v=qAJDGxztWIQ[044^] +
-How to use xref:../../guides/rgant/rgant.adoc#_rgant-DomainObject_bounded[`@DomainObject#bounded()`] so that a drop-down list is automatically provided for any parameters to actions that are for (domain entity) reference types.
+How to use xref:../../guides/rgant/rgant.adoc#_rgant-DomainObject_bounding[`@DomainObject#bounding()`] so that a drop-down list is automatically provided for any parameters to actions that are for (domain entity) reference types.
 |||||||||x||
 
 
diff --git a/adocs/documentation/src/main/asciidoc/pages/tg/tg.adoc b/adocs/documentation/src/main/asciidoc/pages/tg/tg.adoc
index c413257..41acab4 100644
--- a/adocs/documentation/src/main/asciidoc/pages/tg/tg.adoc
+++ b/adocs/documentation/src/main/asciidoc/pages/tg/tg.adoc
@@ -343,7 +343,7 @@ In this section we focus on scalar reference properties.
 * add some xref:../../guides/ugfun/ugfun.adoc#_ugfun_programming-model_properties[reference properties]
 * update the corresponding domain service (for creation actoin)
 * use different techniques to obtain references (shown in drop-down list box)
-** use the xref:../../guides/rgant/rgant.adoc#_rgant-DomainObject_bounded[`@DomainObjectLayout(bounded=...)`] annotation on the referenced type if there are only a small number (bounded) of instances
+** use the xref:../../guides/rgant/rgant.adoc#_rgant-DomainObject_bounding[`@DomainObjectLayout(bounding=...)`] annotation on the referenced type if there are only a small number (bounded) of instances
 ** use a xref:../../guides/rgcms/rgcms.adoc#_rgcms_methods_prefixes_choices[`choices...()`] supporting method
 *** on a property
 *** on an action parameter
diff --git a/migration-notes.adoc b/migration-notes.adoc
index fad01a7..24a3b4a 100644
--- a/migration-notes.adoc
+++ b/migration-notes.adoc
@@ -1,5 +1,7 @@
 :toc:
 
+Search also for: "TODO: v2: " in the .adoc documentation.
+
 == Migration Notes 2.0.0-M1 to 2.0.0-M2
 
 === @MemberGroupLayout was removed
@@ -325,3 +327,19 @@ to be configured using
 ----
 isis.viewer.wicket.themes.provider=org.my.IsisWicketThemeSupport
 ----
+
+
+== Migration Notes 1.x to 2.0.0-M1
+
+This stuff needs to be properly documented
+
+=== java.time support (ISIS-1636)
+
+to document
+
+=== web-docker (ISIS-1969)
+
+To document, in particular how to use in the helloworld/simpleapp archetypes.
+
+NB: ISIS-1969: the Docker image isn't yet being released, pending https://issues.apache.org/jira/browse/INFRA-17518[INFRA-17518].
+


[isis] 03/11: Merge branch 'release-1.17.0-RC3' into v2

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 1297575e5d6d7feb4a13346c388b25c6a35ee5ef
Merge: 8287d3b b6daaac
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 4 10:23:21 2019 +0000

    Merge branch 'release-1.17.0-RC3' into v2
    
    # Conflicts:
    #	adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject.adoc

 .../asciidoc/guides/rgant/_rgant-DomainObject.adoc    |  3 ++-
 .../guides/rgant/_rgant-DomainObject_auditing.adoc    |  4 +---
 .../_rgant-DomainObject_autoCompleteRepository.adoc   |  5 ++++-
 .../guides/rgant/_rgant-DomainObject_bounded.adoc     | 10 +++++++---
 .../guides/rgant/_rgant-DomainObject_nature.adoc      | 19 ++++++++++++-------
 5 files changed, 26 insertions(+), 15 deletions(-)



[isis] 11/11: ISIS-1978: updates dependencies for junit and surefire to fix the issue.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit a85dcb927dc9893f4d648fcaa7798b61456fd6f5
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 4 13:12:50 2019 +0000

    ISIS-1978: updates dependencies for junit and surefire to fix the issue.
---
 core/pom.xml                                                         | 2 +-
 example/application/helloworld/pom.xml                               | 4 ++++
 .../application/simpleapp/module-simple/logging-integtest.properties | 2 +-
 .../modules/simple/integtests/tests/SimpleObject_IntegTest.java      | 5 +++--
 example/application/simpleapp/pom.xml                                | 4 ++++
 5 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/core/pom.xml b/core/pom.xml
index 87935de..01d9cc5 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -179,7 +179,7 @@
 
         <htmlparser.version>2.1</htmlparser.version>
 
-        <junit.version>5.2.0</junit.version>
+        <junit.version>5.3.1</junit.version>
         
         <!-- 2.8.1 depends on cglib-nodep 3.1 whereas axonframework depends on 2.2.2 -->
         <jmock.version>2.6.0</jmock.version>
diff --git a/example/application/helloworld/pom.xml b/example/application/helloworld/pom.xml
index a69f274..33f2ced 100644
--- a/example/application/helloworld/pom.xml
+++ b/example/application/helloworld/pom.xml
@@ -53,6 +53,10 @@
         <datanucleus-jodatime.version>5.2.0-m1</datanucleus-jodatime.version>
         <hsqldb.version>2.4.1</hsqldb.version>
 
+        <!-- override incode-build -->
+        <maven-surefire-plugin.version>2.22.1</maven-surefire-plugin.version>
+        <maven-surefire-report-plugin.version>2.22.1</maven-surefire-report-plugin.version>
+
         <failOnMissingWebXml>false</failOnMissingWebXml>
 
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/example/application/simpleapp/module-simple/logging-integtest.properties b/example/application/simpleapp/module-simple/logging-integtest.properties
index cd0606a..a3a512b 100644
--- a/example/application/simpleapp/module-simple/logging-integtest.properties
+++ b/example/application/simpleapp/module-simple/logging-integtest.properties
@@ -19,7 +19,7 @@
 #
 # Isis uses log4j is used to provide system logging
 #
-log4j.rootCategory=DEBUG, Console
+log4j.rootCategory=INFO, Console
 
 # The console appender
 log4j.appender.Console=org.apache.log4j.ConsoleAppender
diff --git a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
index da0b2f8..b983642 100644
--- a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
+++ b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
@@ -22,15 +22,14 @@ import java.sql.Timestamp;
 
 import javax.inject.Inject;
 
-import org.junit.Assert;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+
 import org.apache.isis.applib.services.title.TitleService;
 import org.apache.isis.applib.services.wrapper.DisabledException;
 import org.apache.isis.applib.services.wrapper.InvalidException;
 import org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusIdLong;
 import org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp;
-import org.hamcrest.CoreMatchers;
 
 import domainapp.modules.simple.dom.impl.SimpleObject;
 import domainapp.modules.simple.fixture.SimpleObject_persona;
@@ -40,6 +39,8 @@ import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
+pimport org.junit.jupiter.api.BeforeEach;
+
 public class SimpleObject_IntegTest extends SimpleModuleIntegTestAbstract {
 
     SimpleObject simpleObject;
diff --git a/example/application/simpleapp/pom.xml b/example/application/simpleapp/pom.xml
index 901b672..b241150 100644
--- a/example/application/simpleapp/pom.xml
+++ b/example/application/simpleapp/pom.xml
@@ -56,6 +56,10 @@
         <datanucleus-jodatime.version>5.2.0-m1</datanucleus-jodatime.version>
         <hsqldb.version>2.4.1</hsqldb.version>
 
+        <!-- override incode-build -->
+        <maven-surefire-plugin.version>2.22.1</maven-surefire-plugin.version>
+        <maven-surefire-report-plugin.version>2.22.1</maven-surefire-report-plugin.version>
+
         <failOnMissingWebXml>false</failOnMissingWebXml>
 
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>


[isis] 02/11: ISIS-1811: updates docs - minor reformatting

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit b6daaac0b0c822aaa890ea8ea92f7db778258576
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 4 10:21:44 2019 +0000

    ISIS-1811: updates docs - minor reformatting
---
 .../asciidoc/guides/rgant/_rgant-DomainObject.adoc    |  6 +++---
 .../guides/rgant/_rgant-DomainObject_auditing.adoc    |  4 +---
 .../_rgant-DomainObject_autoCompleteRepository.adoc   |  5 ++++-
 .../guides/rgant/_rgant-DomainObject_bounded.adoc     | 10 +++++++---
 .../guides/rgant/_rgant-DomainObject_nature.adoc      | 19 ++++++++++++-------
 5 files changed, 27 insertions(+), 17 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject.adoc
index d456528..845cf3c 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject.adoc
@@ -23,8 +23,7 @@ The table below summarizes the annotation's attributes.
 |`AS_CONFIGURED`, `ENABLED`, `DISABLED` +
 (`AS_CONFIGURED`)
 |indicates whether each of the changed properties of an object should be submitted to the registered
-xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditingService[`AuditingService`] (deprecated) or (its replacement)
-xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`]
+xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditingService[`AuditingService`] (deprecated) or (its replacement) xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`]
 
 
 |xref:../rgant/rgant.adoc#_rgant-DomainObject_autoCompleteRepository[`autoCompleteRepository()`]
@@ -64,7 +63,8 @@ The default "reserved" method name is `$$`.
 
 |xref:../rgant/rgant.adoc#_rgant-DomainObject_nature[`nature()`]
 |`NOT_SPECIFIED`, `JDO_ENTITY`, `EXTERNAL_ENTITY`, `INMEMORY_ENTITY`, `MIXIN`, `VIEW_MODEL` (`NOT_SPECIFIED`)
-|whether the domain object logically is an entity (part of the domain layer) or is a view model (part of the application layer); or is a mixin.  If an entity, indicates how its persistence is managed.
+|whether the domain object logically is an entity (part of the domain layer) or is a view model (part of the application layer); or is a mixin.
+If an entity, indicates how its persistence is managed.
 
 
 |xref:../rgant/rgant.adoc#_rgant-DomainObject_objectType[`objectType()`]
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_auditing.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_auditing.adoc
index 2f6674a..ead7002 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_auditing.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_auditing.adoc
@@ -19,9 +19,7 @@ no changed properties of objects are audited
 
 If there is no configuration property in `isis.properties` then auditing is automatically enabled for domain objects.
 
-This default can be overridden on an object-by-object basis; if `auditing()` is set to `ENABLED` then changed
-properties of instances of the domain class are audited irrespective of the configured value; if set to `DISABLED` then
-the changed properties of instances are _not_ audited, again irrespective of the configured value.
+This default can be overridden on an object-by-object basis; if `auditing()` is set to `ENABLED` then changed properties of instances of the domain class are audited irrespective of the configured value; if set to `DISABLED` then the changed properties of instances are _not_ audited, again irrespective of the configured value.
 
 For example:
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_autoCompleteRepository.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_autoCompleteRepository.adoc
index a221a92..ec60393 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_autoCompleteRepository.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_autoCompleteRepository.adoc
@@ -95,5 +95,8 @@ public class Customers {
 
 [IMPORTANT]
 ====
-The method specified must be an action, that is, part of the Isis metamodel.  Said another way: it must not be annotated with xref:../rgant/rgant.adoc#_rgant-Programmatic[`@Programmatic`].  However, it *can* be hidden or placed on a domain service with xref:../rgant/rgant.adoc#_rgant-DomainService_nature[nature] of `DOMAIN`, such that the action would not be rendered otherwise in the UI.  Also, the action cannot be xref:../rgant/rgant.adoc#_rgant-Action_restrictTo[restricted to] prototyp [...]
+The method specified must be an action, that is, part of the Isis metamodel.
+Said another way: it must not be annotated with xref:../rgant/rgant.adoc#_rgant-Programmatic[`@Programmatic`].
+However, it *can* be hidden or placed on a domain service with xref:../rgant/rgant.adoc#_rgant-DomainService_nature[nature] of `DOMAIN`, such that the action would not be rendered otherwise in the UI.
+Also, the action cannot be xref:../rgant/rgant.adoc#_rgant-Action_restrictTo[restricted to] prototyping only.
 ====
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_bounded.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_bounded.adoc
index e81d72e..e2d9658 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_bounded.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_bounded.adoc
@@ -6,9 +6,12 @@
 
 
 
-Some domain classes are immutable to the user, and moreover have only a fixed number of instances.  Often these are "reference" ("standing") data, or lookup data/pick lists.  Typical examples could include categories, countries, states, and tax or interest rate tables.
+Some domain classes are immutable to the user, and moreover have only a fixed number of instances.
+Often these are "reference" ("standing") data, or lookup data/pick lists.
+Typical examples could include categories, countries, states, and tax or interest rate tables.
 
-Where the number of instances is relatively small, ie bounded, then the `bounded()` attribute can be used as a hint.  For such domain objects the framework will automatically allow instances to be selected; xref:../ugvw/ugvw.adoc#[Wicket viewer] displays these as a drop-down list.
+Where the number of instances is relatively small, ie bounded, then the `bounded()` attribute can be used as a hint.
+For such domain objects the framework will automatically allow instances to be selected; xref:../ugvw/ugvw.adoc#[Wicket viewer] displays these as a drop-down list.
 
 
 For example:
@@ -28,7 +31,8 @@ public class Currency {
 
 [TIP]
 ====
-There is nothing to prevent you from using this attribute for regular mutable entities, and indeed this is sometimes worth doing during early prototyping.  However, if there is no realistic upper bound to the number of instances of an entity that might be created, generally you should use xref:../rgcms/rgcms.adoc#_rgcms_methods_prefixes_autoComplete[`autoComplete...()`] supporting method or the xref:../rgant/rgant.adoc#_rgant-DomainObject_autoCompleteRepository[`@DomainObject#autoComplet [...]
+There is nothing to prevent you from using this attribute for regular mutable entities, and indeed this is sometimes worth doing during early prototyping.
+However, if there is no realistic upper bound to the number of instances of an entity that might be created, generally you should use xref:../rgcms/rgcms.adoc#_rgcms_methods_prefixes_autoComplete[`autoComplete...()`] supporting method or the xref:../rgant/rgant.adoc#_rgant-DomainObject_autoCompleteRepository[`@DomainObject#autoCompleteRepository()`] attribute instead.
 ====
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_nature.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_nature.adoc
index 8daa721..07a4b2d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_nature.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_nature.adoc
@@ -6,7 +6,8 @@
 
 
 
-The `nature()` attribute is used to characterize the domain object as either an entity (part of the domain layer) or as a view model (part of the application layer).  If the domain object should be thought of as an entity, it also captures how the persistence of that entity is managed.
+The `nature()` attribute is used to characterize the domain object as either an entity (part of the domain layer) or as a view model (part of the application layer).
+If the domain object should be thought of as an entity, it also captures how the persistence of that entity is managed.
 
 For example:
 
@@ -30,19 +31,22 @@ indicates that the domain object is an entity whose persistence is managed inter
 
 * `EXTERNAL_ENTITY` +
 +
-indicates that the domain objecct is a wrapper/proxy/stub (choose your term) to an entity that is managed by some related external system.  For example, the domain object may hold just the URI to a RESTful resource of some third party REST service, or the id of some system accessible over SOAP. +
+indicates that the domain objecct is a wrapper/proxy/stub (choose your term) to an entity that is managed by some related external system.
+For example, the domain object may hold just the URI to a RESTful resource of some third party REST service, or the id of some system accessible over SOAP.
 +
-The identity of an external entity is determined solely by the state of entity's properties.  The framework will automatically recreate the domain object each time it is interacted with.
+The identity of an external entity is determined solely by the state of entity's properties.
+The framework will automatically recreate the domain object each time it is interacted with.
 
 * `INMEMORY_ENTITY` +
 +
-indicates that the domain object is a wrapper/proxy/stub to a "synthetic" entity, for example one that is constructed from some sort of internal memory data structure. +
+indicates that the domain object is a wrapper/proxy/stub to a "synthetic" entity, for example one that is constructed from some sort of internal memory data structure.
 +
-The identity of an inmemory entity is determined solely by the state of entity's properties.  The framework will automatically recreate the domain object each time it is interacted with.
+The identity of an inmemory entity is determined solely by the state of entity's properties.
+The framework will automatically recreate the domain object each time it is interacted with.
 
 * `MIXIN` +
 +
-indicates that the domain object is part of the domain layer, and is contributing behaviour to objects of some other type as a mixin (also known as a trait). +
+indicates that the domain object is part of the domain layer, and is contributing behaviour to objects of some other type as a mixin (also known as a trait).
 +
 Equivalent to annotating with xref:../rgant/rgant.adoc#_rgant-Mixin[`@Mixin`].  For further discussion on using mixins, see xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_types-of-domain-objects_mixins[mixins] in the user guide.
 
@@ -51,7 +55,8 @@ Equivalent to annotating with xref:../rgant/rgant.adoc#_rgant-Mixin[`@Mixin`].
 +
 indicates that the domain object is conceptually part of the application layer, and exists to surfaces behaviour and/or state that is aggregate of one or more domain entities.
 
-Those natures that indicate the domain object is an entity (of some sort or another) mean then that the domain object is considered to be part of the domain model layer.  As such the domain object's class cannot be annotated with xref:../rgant/rgant.adoc#_rgant-ViewModel[`@ViewModel`] or implement the xref:../rgcms/rgcms.adoc#_rgcms_classes_super_ViewModel[`ViewModel`] interface.
+Those natures that indicate the domain object is an entity (of some sort or another) mean then that the domain object is considered to be part of the domain model layer.
+As such the domain object's class cannot be annotated with xref:../rgant/rgant.adoc#_rgant-ViewModel[`@ViewModel`] or implement the xref:../rgcms/rgcms.adoc#_rgcms_classes_super_ViewModel[`ViewModel`] interface.
 
 
 [NOTE]