Repository: isis
Updated Branches:
  refs/heads/master 98aa6f4c9 -> 4cc914bb1


ISIS-1521: updates to docs/website


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

Branch: refs/heads/master
Commit: 8f93dd90ae3278a40b9dc47d60113d214dbd1233
Parents: 98aa6f4
Author: Dan Haywood <d...@haywood-associates.co.uk>
Authored: Sun Aug 6 17:27:49 2017 +0100
Committer: Dan Haywood <d...@haywood-associates.co.uk>
Committed: Sun Aug 6 17:27:49 2017 +0100

----------------------------------------------------------------------
 ...rgcms_classes_AppManifest-bootstrapping.adoc | 180 +++++++------
 ...vc_persistence-layer-api_IsisJdoSupport.adoc |  62 +++--
 .../guides/ugtst/_ugtst_integ-test-support.adoc |   2 +
 ...ugtst_integ-test-support_abstract-class.adoc |  89 ++++++
 ..._ugtst_integ-test-support_bootstrapping.adoc | 268 ++++++-------------
 ...g-test-support_configuration-properties.adoc |  95 +++++++
 .../_migration-notes_1.14.0-to-1.15.0.adoc      | 118 +++++++-
 .../release-notes/_release-notes_1.15.0.adoc    | 134 +++++++++-
 8 files changed, 644 insertions(+), 304 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/8f93dd90/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_AppManifest-bootstrapping.adoc
----------------------------------------------------------------------
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 c638735..ac2fc78 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
@@ -7,8 +7,14 @@
 
 This section describes how to implement the `AppManifest` interface to 
bootstrap both an Apache Isis web application, and also its integration tests.
 
+[TIP]
+====
+(As of `1.15.0-SNAPSHOT`), the framework-provided `AppManifestAbstract` and 
`AppManifestAbstract.Builder` make it easy to write ``AppManifest`` that can be 
used both to bootstrap the application "proper", and to be tweaked for use 
within integration tests.
+====
+
 
 
+[[__rgcms_classes_AppManifest-bootstrapping_api]]
 == API
 
 
@@ -38,6 +44,7 @@ The following sections describe each of these methods in a 
little more detail.
 
 
 
+[[__rgcms_classes_AppManifest-bootstrapping_api_getModules]]
 === `getModules()`
 
 The most significant method (the only one which must return a non-`null` 
value) is the `getModules()` method.
@@ -84,6 +91,7 @@ public List<Class<?>> getModules() {
 As can be seen, the various (non-ASF) link:http://www.isisaddons.org[Isis 
Addons] modules also each provide a module class that can be easily referenced.
 
 
+[[__rgcms_classes_AppManifest-bootstrapping_api_getAdditionalServices]]
 === `getAdditionalServices()`
 
 We normally we recommend that services are defined exclusively through 
`getModules()`, and that this method should therefore return an empty list.
@@ -106,6 +114,7 @@ If this method returns a non-`null` value, then it 
overrides the value of `isis.
 
 
 
+[[__rgcms_classes_AppManifest-bootstrapping_api_getAuthenticationMechanism]]
 === `getAuthenticationMechanism()`
 
 If non-`null`, this method specifies the authentication mechanism to use.
@@ -121,6 +130,7 @@ This property is ignored for integration tests (which 
always uses the `"bypass"`
 
 
 
+[[__rgcms_classes_AppManifest-bootstrapping_api_getAuthorizationMechanism]]
 === `getAuthorizationMechanism()`
 
 If non-`null`, this method specifies the authorization mechanism to use.
@@ -137,6 +147,7 @@ This property is ignored for integration tests (which 
always uses the `"bypass"`
 
 
 
+[[__rgcms_classes_AppManifest-bootstrapping_api_getFixtures]]
 === `getFixtures()`
 
 If non-`null`, this method specifies the fixture script(s) to be run on 
startup.
@@ -159,6 +170,7 @@ This can most easily be done using the 
`getConfigurationProperties()` method, di
 
 
 
+[[__rgcms_classes_AppManifest-bootstrapping_api_getConfigurationProperties]]
 === `getConfigurationProperties()`
 
 This method allow arbitrary other configuration properties to be overridden.
@@ -176,10 +188,7 @@ public Map<String, String> getConfigurationProperties() {
 
 
 
-
-
-
-
+[[__rgcms_classes_AppManifest-bootstrapping_bootstrapping]]
 == Bootstrapping
 
 One of the primary goals of the `AppManifest` is to unify the bootstrapping of 
both integration tests and the webapp.
@@ -193,116 +202,123 @@ 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:
 
+* the first 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]
+----
+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
+----
 
-=== Integration Tests
-
-A `AppManifest.Util` helper class provides a number of static methods that can 
be used to set up configuration properties appropriate for integration testing 
(eg run using an in-memory database).
-This allows the responsibility of returning the configuration properties to 
belong exlusively to the `AppManifest`.
+* the third 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.
 
-There are three such static methods:
+In some cases an integration test uses the exact same `AppManifest` as the 
regular webapp.
+Sometimes though it is necessary to "tweak" the `AppManifest`:
 
-[source,java]
-----
-public interface AppManifest {
-  ...
-  public static class Util {
-    public static Map<String,String> 
-        withJavaxJdoRunInMemoryProperties(Map<String, String> map) { ... }   
// <1>
-    public static Map<String,String> 
-        withDataNucleusProperties(Map<String, String> map) { ... }           
// <2>
-    public static Map<String,String> 
-        withIsisIntegTestProperties(Map<String, String> map) { ... }         
// <3>
-  }
-}
-----
-<1> sets up the `javax.jdo.option.Connection*` properties so as to run against 
an in-memory instance of HSQLDB
-<2> sets up DataNucleus to automatically create the databse schema, as well as 
a number of other standard properties
-(disable persistence by reachability, support mixed case identifiers, disable 
level 2 cache)
-<3> sets up standard properties for the Apache Isis framework, most 
specifically to enable fixtures to be installed.
+* it might use additional services, such as services to mock out external 
dependencies, or to provide fake data
 
-For example, the bootstrapping code for the 
xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp 
archetype] looks something like:
+* it might override certain configuration properties, eg to run against an 
in-memory HSQLDB database.
 
-[source,java]
-----
-public class DomainAppSystemInitializer {
-    public static void initIsft() {
-        IsisSystemForTest isft = IsisSystemForTest.getElseNull();
-        if(isft == null) {
-            isft = new IsisSystemForTest.Builder()
-                    .withLoggingAt(org.apache.log4j.Level.INFO)
-                    .with(new DomainAppAppManifest() {
-                        @Override
-                        public Map<String, String> 
getConfigurationProperties() {
-                            final Map<String, String> map = Maps.newHashMap();
-                            Util.withJavaxJdoRunInMemoryProperties(map);
-                            Util.withDataNucleusProperties(map);
-                            Util.withIsisIntegTestProperties(map);
-                            return map;
-                        }
-                    })
-                    .build();
-            isft.setUpSystem();
-            IsisSystemForTest.set(isft);
-        }
-    }
-}
-----
+The next section describes some helper classes that (as of `1.15.0-SNAPSHOT`) 
the framework provides to help achieve this.
 
 
-Previously the `IsisConfigurationJdoIntegTests` (subclass of 
`IsisConfiguration`) was provided to set up these configuration properties.
-This class is still supported, but is deprecated.
+[[__rgcms_classes_AppManifest-bootstrapping_bootstrapping_AppManifestAbstract]]
+=== AppManifestAbstract (`1.15.0-SNAPSHOT`)
 
+(As of `1.15.0-SNAPSHOT`), the `AppManifestAbstract` and its associated 
builder (`AppManifestAbstract.Builder`) make it easy to bootstrap the 
application both as a webapp and also as an integration test.
 
+Rather than implement `AppManifest` interface directly, instead your 
application subclasses from `AppManifestAbstract`.
+This takes an instance of a `AppManifestAbstract.Builder` in its constructor; 
the builder is what allows for variation between environments.
 
-=== Webapps
+Moreover, these classes recognise that configuration properties fall into two 
broad classes:
 
-To bootstrap an Apache Isis webapp (using the xref:../ugvw/ugvw.adoc#[Wicket 
viewer]), there are two choices:
+* those that are fixed and do not change between environments. +
++
+In other words these describe how the application chooses to configure the 
framework itself, eg global disable of editing of properties, or enabling of 
auditing.
 
-* either specify the `AppManifest` by overriding the 
`IsisWicketApplication#newWicketModule()`, eg: +
+* those that change between environments. +
 +
+The classic example here is the JDBC URL.
+
+For example, the 
xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp 
archetype]'s `AppManifest` is defined as:
+
 [source,java]
 ----
-@Override
-protected Module newIsisWicketModule() {
-    final Module isisDefaults = super.newIsisWicketModule();
-    ...
-    final Module overrides = new AbstractModule() {
-        @Override
-        protected void configure() {
-            ...
-            bind(AppManifest.class).toInstance(new MyAppAppManifest());
-        }
-    };
-    return Modules.override(isisDefaults).with(overrides);
+public class DomainAppAppManifest extends AppManifestAbstract {
+
+    public static final Builder BUILDER = Builder.forModules(
+                    SimpleModuleDomSubmodule.class,                         // 
<1>
+                    DomainAppApplicationModuleFixtureSubmodule.class,
+                    DomainAppApplicationModuleServicesSubmodule.class
+            )
+            .withConfigurationPropertiesFile(DomainAppAppManifest.class,    // 
<2>
+                    "isis.properties",
+                    "authentication_shiro.properties",
+                    "persistor_datanucleus.properties",
+                    "viewer_restfulobjects.properties",
+                    "viewer_wicket.properties"
+            ).withAuthMechanism("shiro");                                   // 
<3>
+
+    public DomainAppAppManifest() {
+        super(BUILDER);                                                     // 
<4>
+    }
 }
 ----
+<1> the modules that make up the application; corresponds to 
`AppManifest#getModules()`
+<2> the (non-changing with environment) set of configuration properties, 
loaded relative to the manifest itself;  corresponds to 
`AppManifest#getConfigurationProperties()`
+<3> override of components; correponds to both 
`AppManifest#getAuthenticationMechanism()` and 
`AppManifest#getAuthorizationMechanism()`
+<4> Pass the builder up to the superclass.
 
-* alternatively update `isis.properties`, using the `isis.appManifest` key to 
specify the `AppManifest` implementation, eg: +
-+
-[source,ini]
+If the integration tests requires no tweaking, then the `AppManifest` can be 
used directly, for example:
+
+[source,java]
 ----
-isis.appManifest=domainapp.app.MyAppAppManifest
+public abstract class DomainAppIntegTestAbstract extends 
IntegrationTestAbstract2 {
+    @BeforeClass
+    public static void initSystem() {
+        bootstrapUsing(new DomainAppAppManifest());
+    }
+}
 ----
 
-The first (programmatic) approach takes precedence over the second approach 
(configuration properties).
-
-[TIP]
-====
-If you use the `org.apache.isis.WebServer` class to launch your application 
from the xref:../ugbtb/ugbtb.adoc#_ugbtb_deployment_cmd-line[command line], 
then note that you can specify the `AppManifest` using the `-m` (or 
`--manifest`) flag:
+On the other hand, if tweaking is required then exposing the builder as a 
`public static` field makes this easy to do:
 
-[source,ini]
+[source,java]
 ----
-java org.apache.isis.WebServer -m 
com.mycompany.myapp.MyAppAppManifestWithFixtures
+public abstract class DomainAppIntegTestAbstract extends 
IntegrationTestAbstract2 {
+    @BeforeClass
+    public static void initSystem() {
+        bootstrapUsing(DomainAppAppManifest.BUILDER
+                            .withAdditionalModules(...)
+                            .withAdditionalServices(...)
+                            .withConfigurationPropertiesFile("...")
+                            .withConfigurationProperty("...","...")
+                            .build()
+        );
+    }
+}
 ----
 
-====
 
 
 
 
 
+[[__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):

http://git-wip-us.apache.org/repos/asf/isis/blob/8f93dd90/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_IsisJdoSupport.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_IsisJdoSupport.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_IsisJdoSupport.adoc
index 5c16578..1c6952b 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_IsisJdoSupport.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_IsisJdoSupport.adoc
@@ -5,7 +5,9 @@
 :_imagesdir: images/
 
 
-The `IsisJdoSupport` service provides a number of general purpose methods for 
working with the JDO/DataNucleus objectstore.  In general these act at a 
lower-level of abstraction than the APIs normally used (specifically, those of 
xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]),
 but nevertheless deal with some of the most common use cases.  For service 
also provides access to the underlying JDO `PersistenceManager` for full 
control.
+The `IsisJdoSupport` service provides a number of general purpose methods for 
working with the JDO/DataNucleus objectstore.
+In general these act at a lower-level of abstraction than the APIs normally 
used (specifically, those of 
xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]),
 but nevertheless deal with some of the most common use cases.
+For service also provides access to the underlying JDO `PersistenceManager` 
for full control.
 
 The following sections discuss the functionality provided by the service, 
broken out into categories.
 
@@ -61,11 +63,15 @@ As an alternative, consider using DataNucleus' 
link:http://www.datanucleus.org/p
 
 DataNucleus provides an 
link:http://www.datanucleus.org/products/accessplatform_4_0/jdo/jdoql_typesafe.html[extension
 to JDO],  so that JDOQL queries can be built up and executed using a set of 
type-safe classes.
 
-The types in question for type safe queries are not the domain entities, but 
rather are companion "Q..." query classes.  These classes are generated 
dynamically by an link:https://www.jcp.org/en/jsr/detail?id=269[annotation 
processor] as a side-effect of compilation, one "Q..." class for each of the 
xref:../rgant/rgant.adoc#_rgant-PersistenceCapable[`@PersistenceCapable`] 
domain entity in your application.  For example, a `ToDoItem` domain entity 
will give rise to a `QToDoItem` query class.  These "Q..." classes mirror the 
structure of domain entity, but expose properties that allow predicates to be 
built up for querying instances, as well as other functions in support of order 
by. group by and other clauses.
+The types in question for type safe queries are not the domain entities, but 
rather are companion "Q..." query classes.
+These classes are generated dynamically by an 
link:https://www.jcp.org/en/jsr/detail?id=269[annotation processor] as a 
side-effect of compilation, one "Q..." class for each of the 
xref:../rgant/rgant.adoc#_rgant-PersistenceCapable[`@PersistenceCapable`] 
domain entity in your application.
+For example, a `ToDoItem` domain entity will give rise to a `QToDoItem` query 
class.
+These "Q..." classes mirror the structure of domain entity, but expose 
properties that allow predicates to be built up for querying instances, as well 
as other functions in support of order by, group by and other clauses.
 
 [NOTE]
 ====
-Most IDEs (including IntelliJ and Eclipse) enable annotation processing by 
default, as does Maven.  The DataNucleus' 
link:http://www.datanucleus.org/products/accessplatform_4_0/jdo/jdoql_typesafe.html[documentation]
 offers some guidance on confirming that APT is enabled.
+Most IDEs (including IntelliJ and Eclipse) enable annotation processing by 
default, as does Maven.
+The DataNucleus' 
link:http://www.datanucleus.org/products/accessplatform_4_0/jdo/jdoql_typesafe.html[documentation]
 offers some guidance on confirming that APT is enabled.
 ====
 
 The `IsisJdoSupport` service offers two methods at different levels of 
abstraction:
@@ -76,15 +82,19 @@ public interface IsisJdoSupport {
     @Programmatic
     <T> List<T> executeQuery(final Class<T> cls, final BooleanExpression be);
     @Programmatic
+    <T> T executeQueryUnique(final Class<T> cls, final BooleanExpression be);
+    @Programmatic
     <T> TypesafeQuery<T> newTypesafeQuery(Class<T> cls);
     ...
 }
 ----
 
 
-The `executeQuery(...)` method supports the common case of obtaining a set of 
objects that meet some criteria, filtered using the provided 
`BooleanExpression`.  To avoid memory leaks, the returned list is cloned and 
the underlying query closed.
+The `executeQuery(...)` method supports the common case of obtaining a set of 
objects that meet some criteria, filtered using the provided 
`BooleanExpression`.
+To avoid memory leaks, the returned list is cloned and the underlying query 
closed.
 
-For example, in the (non-ASF) 
http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] there is an 
implementation of `ToDoItemRepository` using type-safe queries.  The following 
JDOQL:
+For example, in the (non-ASF) 
http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] there is an 
implementation of `ToDoItemRepository` using type-safe queries.
+The following JDOQL:
 
 [source,sql]
 ----
@@ -112,10 +122,15 @@ You can find the full example of the JDOQL equivalent in 
the xref:../rgsvc/rgsvc
 ====
 
 
-The `newTypesafeQuery(...)` method is a lower-level API that allows a type 
safe query to be instantiated for most sophisticated querying, eg using group 
by or order by clauses.  See the
+The `executeUniqueQuery(...)` method (`1.15.0-SNAPSHOT`) is similar to 
`executeQuery(...)`, however expects the query to return at most a single 
object, which it returns (or `null` if none).
+
+The `newTypesafeQuery(...)` method is a lower-level API that allows a type 
safe query to be instantiated for most sophisticated querying, eg using group 
by or order by clauses.
+See the
 DataNucleus 
link:http://www.datanucleus.org/products/accessplatform_4_0/jdo/jdoql_typesafe.html[documentation]
 for full details of using this.
 
-One thing to be aware of is that after the query has been executed, it should 
be closed, using `query.closeAll()`.  If calling `query.executeList()` we also 
recommend cloning the resultant list first.  The following utility method does 
both of these tasks:
+One thing to be aware of is that after the query has been executed, it should 
be closed, using `query.closeAll()`.
+If calling `query.executeList()` we also recommend cloning the resultant list 
first.
+The following utility method does both of these tasks:
 
 [source,java]
 ----
@@ -163,11 +178,9 @@ public class TearDownAll extends FixtureScriptAbstract {
 
 [NOTE]
 ====
-It can occasionally be the case that Apache Isis' internal adapter for the 
domain object is
-still in memory.  JDO/DataNucleus seems to bump up the version of the object 
prior to its deletion,
-which under normal circumstances would cause Apache Isis to throw a 
concurrency exception.  Therefore
-to prevent this from happening (ie to _force_ the deletion of all instances), 
concurrency checking
-is temporarily disabled while this method is performed.
+It can occasionally be the case that Apache Isis' internal adapter for the 
domain object is still in memory.
+JDO/DataNucleus seems to bump up the version of the object prior to its 
deletion, which under normal circumstances would cause Apache Isis to throw a 
concurrency exception.
+Therefore to prevent this from happening (ie to _force_ the deletion of all 
instances), concurrency checking is temporarily disabled while this method is 
performed.
 ====
 
 
@@ -220,15 +233,16 @@ public class OrderContributions {
 
 [NOTE]
 ====
-The particular example that led to this method being added was a 1:m 
bidirectional relationship,
-analogous to `Customer 1<-->* Order`.  Persisting the child `Order` object did 
not cause
-the parent ``Customer``'s collection of orders to be updated.  In fact, JDO 
does not make any
-such guarantee to do so.  Options are therefore either to maintain the 
collection in code, or to
-refresh the parent.
+The particular example that led to this method being added was a 1:m 
bidirectional relationship, analogous to `Customer 1<-->* Order`.
+Persisting the child `Order` object did not cause the parent ``Customer``'s 
collection of orders to be updated.
+In fact, JDO does not make any such guarantee to do so.
+Options are therefore either to maintain the collection in code, or to refresh 
the parent.
 ====
 
 
-The `ensureLoaded(...)` method allows a collection of domain objects to be 
loaded from the database in a single hit.  This can be valuable as a 
performance optimization to avoid multiple roundtrips to the database.  Under 
the covers it uses the `PersistenceManager#retrieveAll(...)` API.
+The `ensureLoaded(...)` method allows a collection of domain objects to be 
loaded from the database in a single hit.
+This can be valuable as a performance optimization to avoid multiple 
roundtrips to the database.
+Under the covers it uses the `PersistenceManager#retrieveAll(...)` API.
 
 
 
@@ -237,7 +251,8 @@ The `ensureLoaded(...)` method allows a collection of 
domain objects to be loade
 [[__rgsvc_persistence-layer-api_IsisJdoSupport_jdo-persistencemanager]]
 == JDO `PersistenceManager`
 
-The functionality provided by `IsisJdoSupport` focus only on the most common 
use cases.  If you require more flexibility than this, eg for dynamically 
constructed queries, then you can use the service to access the underlying JDO 
`PersistenceManager` API:
+The functionality provided by `IsisJdoSupport` focus only on the most common 
use cases.
+If you require more flexibility than this, eg for dynamically constructed 
queries, then you can use the service to access the underlying JDO 
`PersistenceManager` API:
 
 [source,java]
 ----
@@ -266,11 +281,6 @@ public List<Order> findOrders(...) {
 
 == Registering the Services
 
-Assuming that the `configuration-and-annotation` services installer is 
configured (implicit if using the
-`AppManifest` to 
xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the 
app]) then Apache Isis' core
-implementation of `IsisJdoSupport` service is automatically registered and 
injected (it is annotated with
-`@DomainService`) so no further configuration is required.
+Assuming that the `configuration-and-annotation` services installer is 
configured (implicit if using the `AppManifest` to 
xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the 
app]) then Apache Isis' core implementation of `IsisJdoSupport` service is 
automatically registered and injected (it is annotated with `@DomainService`) 
so no further configuration is required.
 
-To use an alternative implementation, use
-xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`]
 (as explained
-in the 
xref:../rgsvc/rgsvc.adoc#__rgsvc_intro_overriding-the-services[introduction] to 
this guide).
+To use an alternative implementation, use 
xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`]
 (as explained in the 
xref:../rgsvc/rgsvc.adoc#__rgsvc_intro_overriding-the-services[introduction] to 
this guide).
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/8f93dd90/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support.adoc
index 44c3176..bac27cc 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support.adoc
@@ -17,6 +17,8 @@ We'll get to all that shortly, but let's start by taking a 
look at what a typica
 
 include::_ugtst_integ-test-support_typical-usage.adoc[leveloffset=+1]
 include::_ugtst_integ-test-support_bootstrapping.adoc[leveloffset=+1]
+include::_ugtst_integ-test-support_abstract-class.adoc[leveloffset=+1]
+include::_ugtst_integ-test-support_configuration-properties.adoc[leveloffset=+1]
 include::_ugtst_integ-test-support_wrapper-factory.adoc[leveloffset=+1]
 include::_ugtst_integ-test-support_maven-configuration.adoc[leveloffset=+1]
 

http://git-wip-us.apache.org/repos/asf/isis/blob/8f93dd90/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_abstract-class.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_abstract-class.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_abstract-class.adoc
new file mode 100644
index 0000000..e2d4fda
--- /dev/null
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_abstract-class.adoc
@@ -0,0 +1,89 @@
+[[_ugtst_integ-test-support_abstract-class]]
+= Abstract class
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or agreed to in writing, software distributed under the License 
is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY 
KIND, either express or implied. See the License for the specific language 
governing permissions and limitations under the License.
+:_basedir: ../../
+:_imagesdir: images/
+
+
+
+When writing integration tests, it's easiest to inherit from a base class:
+
+* for `1.15.0-SNAPSHOT`, use `IntegrationTestAbstract2`
+* for earlier releases, use (its superclass) `IntegrationTestAbstract`.
+
+This base class 
xref:ugtst.adoc#_ugtst_integ-test-support_bootstrapping[bootstraps] the 
framework (caching the framework on a thread-local), and provides various 
utility methods and framework-provided services for use by your application's 
subclass tests.
+
+
+
+[[__ugtst_integ-test-support_abstract-class_IntegrationTestAbstract2]]
+== `IntegrationTestAbstract2` (`1.15.0-SNAPSHOT`)
+
+(As of `1.15.0-SNAPSHOT`) we recommend that your integration tests inherit 
from Apache Isis' `IntegrationTestAbstract2` class:
+
+[source,java]
+----
+public abstract class DomainAppIntegTest extends IntegrationTestAbstract2 {
+    ...
+}
+----
+
+
+Although not mandatory, this provides a number of helper/convenience methods 
and JUnit rules:
+
+[source,java]
+----
+    @Rule
+    public IsisTransactionRule isisTransactionRule =                         
// <1>
+        new IsisTransactionRule();
+    @Rule
+    public JUnitRuleMockery2 context =                                       
// <2>
+        JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
+    @Rule
+    public ExpectedException expectedExceptions =                            
// <3>
+        ExpectedException.none();
+    @Rule
+    public ExceptionRecognizerTranslate exceptionRecognizerTranslations =    
// <4>
+        ExceptionRecognizerTranslate.create();
+----
+<1> ensures an Apache Isis session/transaction running for each test
+<2> sets up a JMock context (using Apache Isis' extension to JMock as 
described in 
xref:../ugtst/ugtst.adoc#_ugtst_unit-test-support_jmock-extensions[JMock 
Extensions].
+<3> standard JUnit rule for writing tests that throw exceptions
+<4> to capture messages that require translation, as described in 
xref:../ugbtb/ugbtb.adoc#_ugbtb_i18n[i18 support].
+
+All of these rules could be inlined in your own base class; as we say, they 
are a convenience.
+
+The `IntegrationTestAbstract2` also provides a number of helper/convenience 
methods, though most of these have been deprecated because the functionality 
they expose is now readily accessible through various domain services; most 
notably these are:
+
+* 
xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`]
+
+* 
xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService`]
+
+* 
xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_ServiceRegistry[`ServiceRegistry2`]
+
+* 
xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`]
 +
++
+to wrap objects simulating interaction through the user interface)
+
+* 
xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_TransactionService[`TransactionService`]
 +
++
+most commonly used to commit changes after the fixture setup) and,
+
+* 
xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_SessionManagementService[`SessionManagementService`]
 +
++
+for tests that check interactions over multiple separate sessions.
+
+
+
+[[__ugtst_integ-test-support_abstract-class_IntegrationTestAbstract]]
+== `IntegrationTestAbstract`
+
+For earlier releases we recommend that your base class inherit from Apache 
Isis' `IntegrationTestAbstract` class:
+
+[source,java]
+----
+public abstract class DomainAppIntegTest extends IntegrationTestAbstract {
+    ...
+}
+----
+
+This provides most of the benefits of `IntegrationTestAbstract2` (it is the 
latter's superclass, in fact), but the 
xref:ugtst.adoc#_ugtst_integ-test-support_bootstrapping[bootstrapping] is more 
verbose.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/8f93dd90/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
index 7d546d2..ddf9dfc 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
@@ -8,26 +8,68 @@
 Integration tests instantiate an Apache Isis "runtime" (as a singleton) within 
a JUnit test.
 Because (depending on the size of your app) it takes a little time to 
bootstrap Apache Isis, the framework caches the runtime on a thread-local from 
one test to the next.
 
-Nevertheless, we do need to bootstrap the runtime for the very first test.
-
-As of 1.9.0 the bootstrapping of integration tests and webapps has been 
simplified through the 
xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`]
 class.
-Since this isn't mandatory, for now we present both techniques.
+Newer releases of the framework reduce the amount of boilerplate to do this; 
this guide documents multiple versions.
 
 The example code in this section is taken from the app generated by the 
xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp 
archetype].
 
 
 
+== 1.15.0-SNAPSHOT
+
+In `1.15.0-SNAPSHOT` the bootstrapping is accomplished using a combination of 
`AppManifestAbstract` (a framework-provided implementation of 
xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`])
 and `IntegrationTestAbstract2` superclass.
+
+For example, the 
xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp 
archetype]'s integration tests all inherit from this class:
 
-== System Initializer
+[source,java]
+----
+public abstract class DomainAppIntegTestAbstract extends 
IntegrationTestAbstract2 {
 
-The bootstrapping itself is performed by a "system initializer" class.
-This is responsible for instantiating the Apache Isis runtime, and binding it 
to a thread-local.
+    @BeforeClass
+    public static void initSystem() {
+        bootstrapUsing(new DomainAppAppManifest());
+    }
 
-=== 1.13.0 (Improved intent)
+}
+----
 
-As of `1.13.0`, the `IsisConfigurationForJdoIntegTests` (which provides a 
number of configuration settings specifically for running integration tests) 
can be removed; instead all configuration properties can be defined through the 
`AppManifest`:
+where `DomainAppAppManifest` in turn is:
+
+[source,java]
+----
+public class DomainAppAppManifest extends AppManifestAbstract {
+
+    public static final Builder BUILDER = Builder.forModules(
+                    SimpleModuleDomSubmodule.class,
+                    DomainAppApplicationModuleFixtureSubmodule.class,
+                    DomainAppApplicationModuleServicesSubmodule.class
+            )
+            .withConfigurationPropertiesFile(DomainAppAppManifest.class,
+                    "isis.properties",
+                    "authentication_shiro.properties",
+                    "persistor_datanucleus.properties",
+                    "viewer_restfulobjects.properties",
+                    "viewer_wicket.properties"
+            ).withAuthMechanism("shiro");
+
+    public DomainAppAppManifest() {
+        super(BUILDER);
+    }
+}
+----
+
+The `AppManifestAbstract` class (which is also used to bootstrap the regular 
app as well as integration tests) is discussed further 
xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[here], while 
the `IntegrationTestAbstract2` class is discussed further 
xref:ugtst.adoc#_ugtst_integ-test-support_abstract-class[here].
+
+
+
+== 1.13.0
+
+In `1.13.0` the bootstrapping itself is typically performed by a "system 
initializer" class.
+This is responsible for instantiating the Apache Isis runtime (based on a 
provided `AppManifest`) and binding it to a thread-local.
+
+The `AppManifest.Util` class allows configuration properties for integration 
testing to be defined (replacing the `IsisConfigurationForJdoIntegTests` of 
earlier releases).
 
 For example:
+
 [source,java]
 ----
 public class DomainAppSystemInitializer {
@@ -54,13 +96,42 @@ public class DomainAppSystemInitializer {
 }
 ----
 
-While the code is slightly longer than previously, the responsibilities for 
returning the configuration properties to use for the test now reside in a 
single location.
-The new `AppManifest.Util` class provides the helper methods to actually add 
in the appropriate config properties.
 
+The above code uses the `AppManifest.Util` helper class, which provides a 
number of static methods that can be used to set up 
xref:ugtst.adoc#_ugtst_integ-test-support_configuration-properties[configuration
 properties] appropriate for integration testing (eg run using an in-memory 
database).
+This allows the responsibility of returning the configuration properties to 
belong exclusively to the `AppManifest`.
+
+There are three such static methods:
+
+[source,java]
+----
+public interface AppManifest {
+  ...
+  public static class Util {
+    public static Map<String,String>
+        withJavaxJdoRunInMemoryProperties(Map<String, String> map) { ... }   
// <1>
+    public static Map<String,String>
+        withDataNucleusProperties(Map<String, String> map) { ... }           
// <2>
+    public static Map<String,String>
+        withIsisIntegTestProperties(Map<String, String> map) { ... }         
// <3>
+  }
+}
+----
+<1> sets up the `javax.jdo.option.Connection*` properties so as to run against 
an in-memory instance of HSQLDB
+<2> sets up DataNucleus to automatically create the databse schema, as well as 
a number of other standard properties
+(disable persistence by reachability, support mixed case identifiers, disable 
level 2 cache)
+<3> sets up standard properties for the Apache Isis framework, most 
specifically to enable fixtures to be installed.
+
+
+
+
+== 1.9.0
 
-=== 1.9.0 (`AppManifest`)
+In `1.9.0` the `AppManifest` was introduced as mechanism to specify all parts 
(domain code, framework components, configuation properties) that make up a 
running application.
 
-As of 1.9.0, the code (using `AppManifest`) is:
+The suggested way to use this concept was using a "system initializer" class.
+This uses a `IsisConfigurationForJdoIntegTests` class to bring together the 
configuration properties (discussed further 
xref:ugtst.adoc#_ugtst_integ-test-support_configuration-properties[here]) to 
bootstrap the application.
+
+For example:
 
 [source,java]
 ----
@@ -99,7 +170,9 @@ public class DomainAppAppManifest implements AppManifest {
 
 Further details on bootstrapping with the `AppManifest` can be found in the 
xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[reference 
guide].
 
-=== 1.8.0 and earlier
+
+
+== 1.8.0 and earlier
 
 Prior to 1.9.0, the services and entities had to be specified in two separate 
locations.  The suggested way to do this was to introduce a subclass of the 
`IsisSystemForTest.Builder` class:
 
@@ -128,7 +201,6 @@ private static class DomainAppSystemBuilder extends 
IsisSystemForTest.Builder {
 
 
 
-
 This builder could then be used within the system initializer:
 
 [source,java]
@@ -151,169 +223,3 @@ public class DomainAppSystemInitializer {
 <2> binds the runtime to a thread-local.
 
 
-
-=== IsisConfigurationForJdoIntegTests
-
-Integration tests are configured programmatically, with a default set of 
properties to bootstrap the JDO/DataNucleus objectstore using an HSQLDB 
in-memory database.
-
-To remove a little bit of boilerplate, the `IsisConfigurationForJdoIntegTests` 
class (in the `org.apache.isis.objectstore.jdo.datanucleus` package) can be 
used to bootstrap the application.
-If necessary, this class can be subclassed to override these defaults.
-
-
-.Default Configuration Properties for Integration Tests
-[cols="2a,1,3a", options="header"]
-|===
-|Property
-|Value
-|Description
-
-|`isis.persistor.datanucleus.impl.` +
-`javax.jdo.option.ConnectionURL`
-|jdbc:hsqldb:mem:test
-|JDBC URL
-
-|`isis.persistor.datanucleus.impl.` +
-`javax.jdo.option.ConnectionDriverName`
-|org.hsqldb.jdbcDriver
-|JDBC Driver
-
-|`isis.persistor.datanucleus.impl.` +
-`javax.jdo.option.ConnectionUserName`
-|sa
-|Username
-
-|`isis.persistor.datanucleus.impl.` +
-`javax.jdo.option.ConnectionPassword`
-|<empty string>
-|Password, possibly encrypted (see `datanucleus.ConnectionPasswordEncrypter`, 
below).
-
-|`isis.persistor.datanucleus.impl.` +
-`datanucleus.ConnectionPasswordEncrypter`
-|<empty string>
-|Specify the `datanucleus.ConnectionPasswordDecrypter` implementation used to 
decrypt the password.
-
-See the 
link:http://www.datanucleus.org/products/accessplatform_4_1/persistence_properties.html#ConnectionPasswordDecrypter[DataNucleus
 documentation] for further details.
-
-
-|`isis.persistor.datanucleus.impl.` +
-`datanucleus.schema.autoCreateAll`
-|true
-|Recreate DB for each test run (an in-memory database)
-
-|`isis.persistor.datanucleus.impl.` +
-`datanucleus.schema.validateAll`
-|false
-|Disable validations (minimize bootstrap time)
-
-|`isis.persistor.datanucleus.impl.` +
-`datanucleus.persistenceByReachabilityAtCommit`
-|false
-|As per WEB-INF/persistor_datanucleus.properties
-
-|`isis.persistor.datanucleus.impl.` +
-`datanucleus.identifier.case`
-|MixedCase
-|As per WEB-INF/persistor_datanucleus.properties
-
-|`isis.persistor.datanucleus.impl.` +
-`datanucleus.cache.level2.type`
-|none
-|As per WEB-INF/persistor_datanucleus.properties
-
-|`isis.persistor.datanucleus.impl.` +
-`datanucleus.cache.level2.mode`
-|ENABLE_SELECTIVE
-|As per WEB-INF/persistor_datanucleus.properties
-
-|`isis.persistor.datanucleus.` +
-`install-fixtures`
-|true
-|Automatically install any fixtures that might have been registered
-
-|`isis.persistor.` +
-`enforceSafeSemantics`
-|false
-|
-
-|`isis.deploymentType`
-|server_prototype
-|
-|===
-
-
-
-
-== Abstract Class
-
-We recommend defining a base class for all your other classes to integration 
classes to inherit from.  The main responsibility of this class is tocall the 
system initializer, described earlier.
-We only need the initialization to be performed once, so this call is 
performed in a `@BeforeClass` hook.
-
-The code below shows the general form:
-
-[source,java]
-----
-public abstract class DomainAppIntegTest {
-    @BeforeClass
-    public static void initClass() {
-        org.apache.log4j.PropertyConfigurator.configure("logging.properties"); 
  // <1>
-        DomainAppSystemInitializer.initIsft();                                 
  // <2>
-        new ScenarioExecutionForIntegration();                                 
  // <3>
-    }
-}
-----
-<1> ensure that logging messages don't get swallowed
-<2> initialize the Apache Isis runtime
-<3> primarily exists to support the writing of 
xref:../ugtst/ugtst.adoc#_ugtst_bdd-spec-support[BDD specifications], but also 
enables finer-grained management of sessions/transactions (discussed below).
-
-
-[[__ugtst_integ-test-support_bootstrapping_IntegrationTestAbstract]]
-=== `IntegrationTestAbstract`
-
-In fact, we recommend that your base class inherit from Apache Isis' 
`IntegrationTestAbstract` class:
-
-[source,java]
-----
-public abstract class DomainAppIntegTest extends IntegrationTestAbstract {
-    ...
-}
-----
-
-Although not mandatory, this provides a number of helper/convenience methods 
and JUnit rules:
-
-[source,java]
-----
-    @Rule
-    public IsisTransactionRule isisTransactionRule =                         
// <1>
-        new IsisTransactionRule();
-    @Rule
-    public JUnitRuleMockery2 context =                                       
// <2>
-        JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
-    @Rule
-    public ExpectedException expectedExceptions =                            
// <3>
-        ExpectedException.none();
-    @Rule
-    public ExceptionRecognizerTranslate exceptionRecognizerTranslations =    
// <4>
-        ExceptionRecognizerTranslate.create();
-----
-<1> ensures an Apache Isis session/transaction running for each test
-<2> sets up a JMock context (using Apache Isis' extension to JMock as 
described in 
xref:../ugtst/ugtst.adoc#_ugtst_unit-test-support_jmock-extensions[JMock 
Extensions].
-<3> standard JUnit rule for writing tests that throw exceptions
-<4> to capture messages that require translation, as described in 
xref:../ugbtb/ugbtb.adoc#_ugbtb_i18n[i18 support].
-
-All of these rules could be inlined in your own base class; as we say, they 
are a convenience.
-
-The `IntegrationTestAbstract` also provides a number of helper/convenience 
methods, though most of these have been deprecated because the functionality 
they expose is now readily accessible through various domain services; most 
notably these are:
-
-* 
xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`]
 +
-+
-to wrap objects simulating interaction through the user interface)
-
-* 
xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_TransactionService[`TransactionService`]
 +
-+
-most commonly used to commit changes after the fixture setup) and,
-
-* 
xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_SessionManagementService[`SessionManagementService`]
 +
-+
-for tests that check interactions over multiple separate sessions.
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/8f93dd90/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_configuration-properties.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_configuration-properties.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_configuration-properties.adoc
new file mode 100644
index 0000000..a583a63
--- /dev/null
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_configuration-properties.adoc
@@ -0,0 +1,95 @@
+[[_ugtst_integ-test-support_configuration-properties]]
+= Configuration Properties
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or agreed to in writing, software distributed under the License 
is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY 
KIND, either express or implied. See the License for the specific language 
governing permissions and limitations under the License.
+:_basedir: ../../
+:_imagesdir: images/
+
+
+The recommended way to run integration tests is against an HSQLDB in-memory 
database.
+This can be done using the application's usual 
xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[`AppManifest`],
 and then overriding JDBC URL and similar.
+
+Different releases of the framework have provided differing ways to accomplish 
this.
+As of `1.15.0-SNAPSHOT`, using `IntegrationTestAbstract2`'s `bootstrapUsing` 
method will make these configuration properties as the default.
+In earlier releases either the helper methods in `AppManifest.Util` class or 
the `IsisConfigurationForJdoIntegTests` (implementation of `IsisConfiguration`) 
can be used.
+
+Whichever approach is used, these are the configuration properties that will 
be overridden:
+
+.Default Configuration Properties for Integration Tests
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value
+|Description
+
+|`isis.persistor.datanucleus.impl.` +
+`javax.jdo.option.ConnectionURL`
+|jdbc:hsqldb:mem:test
+|JDBC URL
+
+|`isis.persistor.datanucleus.impl.` +
+`javax.jdo.option.ConnectionDriverName`
+|org.hsqldb.jdbcDriver
+|JDBC Driver
+
+|`isis.persistor.datanucleus.impl.` +
+`javax.jdo.option.ConnectionUserName`
+|sa
+|Username
+
+|`isis.persistor.datanucleus.impl.` +
+`javax.jdo.option.ConnectionPassword`
+|<empty string>
+|Password, possibly encrypted (see `datanucleus.ConnectionPasswordEncrypter`, 
below).
+
+|`isis.persistor.datanucleus.impl.` +
+`datanucleus.ConnectionPasswordEncrypter`
+|<empty string>
+|Specify the `datanucleus.ConnectionPasswordDecrypter` implementation used to 
decrypt the password.
+
+See the 
link:http://www.datanucleus.org/products/accessplatform_4_1/persistence_properties.html#ConnectionPasswordDecrypter[DataNucleus
 documentation] for further details.
+
+|`isis.persistor.datanucleus.impl.` +
+`datanucleus.schema.autoCreateAll`
+|true
+|Recreate DB for each test run (an in-memory database)
+
+|`isis.persistor.datanucleus.impl.` +
+`datanucleus.schema.validateAll`
+|false
+|Disable validations (minimize bootstrap time)
+
+|`isis.persistor.datanucleus.impl.` +
+`datanucleus.persistenceByReachabilityAtCommit`
+|false
+|As per WEB-INF/persistor_datanucleus.properties
+
+|`isis.persistor.datanucleus.impl.` +
+`datanucleus.identifier.case`
+|MixedCase
+|As per WEB-INF/persistor_datanucleus.properties
+
+|`isis.persistor.datanucleus.impl.` +
+`datanucleus.cache.level2.type`
+|none
+|As per WEB-INF/persistor_datanucleus.properties
+
+|`isis.persistor.datanucleus.impl.` +
+`datanucleus.cache.level2.mode`
+|ENABLE_SELECTIVE
+|As per WEB-INF/persistor_datanucleus.properties
+
+|`isis.persistor.datanucleus.` +
+`install-fixtures`
+|true
+|Automatically install any fixtures that might have been registered
+
+|`isis.persistor.` +
+`enforceSafeSemantics`
+|false
+|
+
+|`isis.deploymentType`
+|server_prototype
+|
+|===
+

http://git-wip-us.apache.org/repos/asf/isis/blob/8f93dd90/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.14.0-to-1.15.0.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.14.0-to-1.15.0.adoc
 
b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.14.0-to-1.15.0.adoc
index 3703257..bfe489a 100644
--- 
a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.14.0-to-1.15.0.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.14.0-to-1.15.0.adoc
@@ -11,29 +11,30 @@
 Apache Isis 1.15.0-SNAPSHOT is currently still in development
 ====
 
-== Overriding framework services 
(link:https://issues.apache.org/jira/browse/ISIS-1611[ISIS-1611])
 
-Domain services fall into three categories:
 
-* application services: written by the application developer and used only 
within the application
-* SPI services: written by the application developer but called by the 
framework
-* framework services: defined within the applib with a default implementation 
provided by the framework itself
+== `isis-mavendeps` Aggregator POMs
 
-As described
-xref:../guides/ugbtb/ugbtb.adoc#_ugbtb_hints-and-tips_replacing-default-service-implementations[here],
 it is possible to override framework services so that the framework uses the 
replacement implementation.
-Previously this required explicitly setting either 
xref:../guides/rgant/rgant.adoc#_rgant_DomainService_menuOrder[`@DomainService#menuOrder()`]
 or 
xref:../guides/rgant/rgant.adoc#_rgant_DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`].
+To remove boilerplate in your application's `pom.xml`, three new maven 
"aggregator projects have been defined:
 
-In 1.15.0, the default value for `menuOrder` has been set to a value lower 
than that of the framework-provided implementations, and so will a custom 
implementation will always take precedence over the framework implementations 
without having to remember to also set `menuOrder`.
+* `org.apache.isis.mavendeps:isis-mavendeps-testing` +
++
+aggregates dependencies for unit, integration and BDD tests
 
+* `org.apache.isis.mavendeps:isis-mavendeps-webapp` +
++
+aggregates dependencies for running as a webapp
 
-== Fix to config variable 
(link:https://issues.apache.org/jira/browse/ISIS-1595[ISIS-1595])
+* `org.apache.isis.mavendeps:isis-mavendeps-intellij` +
++
+brings in a dependency on `isis-core-webserver` (to run the application from 
the command line using `org.apache.isis.WebServer`).
+This is defined in a profile which is actived only when running under the 
Intellij IDE.
+
+The 
xref:../ugfun/ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld]
 and 
xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp] 
archetypes both make use of these new aggregators.
 
-The configuration property 
xref:../guides/rgcfg/rgcfg.adoc#__rgcfg_configuring-core_metamodel-validation[] 
`isis.reflector.validator.jdoqlVariablesClause` was incorrectly named 
`variablesClause`.
-This has now been corrected.
 
-Any applications that used this configuration property should be updated.
 
-== Rename of isis-viewer-wicket artifacts
+== Rename of isis-viewer-wicket artifacts 
(link:https://issues.apache.org/jira/browse/ISIS-1528[ISIS-1528])
 
 The `<groupId>` and `<artifactId>` of the 
xref:../guides/ugvw/ugvw.adoc#[Wicket viewer] have been made consistent with 
other artifacts:
 
@@ -58,3 +59,92 @@ has been renamed to:
 ----
 
 
+== Overriding framework services 
(link:https://issues.apache.org/jira/browse/ISIS-1611[ISIS-1611])
+
+Domain services fall into three categories:
+
+* application services: written by the application developer and used only 
within the application
+* SPI services: written by the application developer but called by the 
framework
+* framework services: defined within the applib with a default implementation 
provided by the framework itself.
+
+As described
+xref:../guides/ugbtb/ugbtb.adoc#_ugbtb_hints-and-tips_replacing-default-service-implementations[here],
 it is possible to override framework services so that the framework uses the 
replacement implementation.
+Previously this required explicitly setting either 
xref:../guides/rgant/rgant.adoc#_rgant_DomainService_menuOrder[`@DomainService#menuOrder()`]
 or 
xref:../guides/rgant/rgant.adoc#_rgant_DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`].
+
+In 1.15.0, the default value for `menuOrder` has been set to a value lower 
than that of the framework-provided implementations, and so will a custom 
implementation will always take precedence over the framework implementations 
without having to remember to also set `menuOrder`.
+
+Of course, your application can still override `menuOrder` if it wishes.
+A small change (made in 
(link:https://issues.apache.org/jira/browse/ISIS-1688[ISIS-1688]) is that if 
both are set, then the minimum value is used.
+
+
+
+== Metamodel validators 
(link:https://issues.apache.org/jira/browse/ISIS-1504[ISIS-1504], 
link:https://issues.apache.org/jira/browse/ISIS-1622[ISIS-1622], 
link:https://issues.apache.org/jira/browse/ISIS-1669[ISIS-1669])
+
+The metamodel validator has been extended with several new checks relating to 
xref:../ugfun.adoc#_ugfun_programming-model_view-models_jaxb[JAXB view models]:
+
+* that the view model can be instantiated:
+** has a public, no-arg constructor
+** is not abstract
+** is not a member inner class (nested static class is ok)
+* that JODA datetimes are annotated with the 
xref:../ugfun/ugfun.adoc#_ugfun_programming-model_view-models_jaxb_joda-datatypes[appropriate
 implementation] of a JAXB `XmlAdapter`
+* that for references to persistent entities, that those persistent entities 
are annotated to use 
xref:../ugfun/ugfun.adoc#_ugfun_programming-model_view-models_jaxb_referencing-domain-entities[`PersistentEntityAdapter`]
 as their JAXB adapter.
+
+\... in other words, that the view model can be instantiated.
+
+These checks are enabled by default but can be disabled with a 
xref:../rgcfg.adoc#__rgcfg_configuring-core_metamodel-validation[configuration 
property] if required.
+
+
+== Logging workaround 
(link:https://issues.apache.org/jira/browse/ISIS-1613[ISIS-1613])
+
+`ISIS-1613` improves the UI so that the framework does not repaint the entire 
page after a property edit or after invoking an action that returns the same 
object (`this`).
+The overall effect is a smoother user experience.
+
+However, it also results in "WARN" messages being emitted by Apache Wicket.
+These are not harmful, but may pollute the log.
+
+To remove them, add the following to `logging.properties`:
+
+[source,properties]
+----
+log4j.logger.org.apache.wicket.page.XmlPartialPageUpdate=ERROR,console
+log4j.additivity.org.apache.wicket.page.XmlPartialPageUpdate=false
+----
+
+
+== Less boilerplate when bootstrapping 
(link:https://issues.apache.org/jira/browse/ISIS-1686[ISIS-1686]
+
+Bootstrapping the application can now be accomplished with less boilerplate, 
both for the regular webapp and in integration tests.
+
+For more information, see the 
xref:../ugtst/ugtst.adoc#_ugtst_integ-test-support_bootstrapping[testing guide] 
and 
xref:../rgcms/rgcms.adoc#__rgcms_classes_AppManifest-bootstrapping_bootstrapping_AppManifestAbstract[reference
 guide for classes/methods/schema].
+
+
+
+== Fix to config variable 
(link:https://issues.apache.org/jira/browse/ISIS-1595[ISIS-1595])
+
+The configuration property 
xref:../guides/rgcfg/rgcfg.adoc#__rgcfg_configuring-core_metamodel-validation[] 
`isis.reflector.validator.jdoqlVariablesClause` was incorrectly named 
`variablesClause`.
+This has now been corrected.
+
+Any applications that used this configuration property should be updated.
+
+
+== `@PostConstruct` always called 
(link:https://issues.apache.org/jira/browse/ISIS-1690[ISIS-1690])
+
+In previous versions, if any domain service threw an exception in their 
initialization method (annotated `@PostConstruct`) then none of the remaining 
domain services would be initialized.
+Even though the failing service would cause an error to be logged during 
start-up, this could still manifest as the application starting (in a fashion) 
but then failing in unrelated areas later on.
+
+As of this version, the framework now always calls ensures that all services 
are initialized, even if one or more of them throw an exception.
+The first exception encountered is then re-thrown (to preserve similar 
behaviour as possible to earlier versions).
+
+
+
+== (non-ASF) Incode Platform
+
+(*work in progress*) The supporting (non-ASF) link:http://isisaddons.org[Isis 
Addons] and link:http://catalog.incode.org[Incode Catalog] have also been 
reorganised into a single link:http://platform.incode.org["Incode Platform"].
+
+While each module can still be consumed individually, the new platform 
versions consistently (a change in any one module will result in a re-release 
of all).
+This should make these modules easier to consume, and easier to 
maintain/develop.
+
+All the modules remain open source, still licensed under the ASF v2.0 license.
+
+As of this release, none of the ``groupId``s or ``artifactId``s have changed.
+They will be rationalized/made consistent in a future release; most probably 
to coincide with v2.0.0 of the framework.

http://git-wip-us.apache.org/repos/asf/isis/blob/8f93dd90/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.15.0.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.15.0.adoc
 
b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.15.0.adoc
index 780c0ad..e709923 100644
--- 
a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.15.0.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.15.0.adoc
@@ -12,7 +12,7 @@ Apache Isis 1.15.0-SNAPSHOT is currently still in development
 ====
 
 
-The main new feature is inline prompts: the ability to edit a property or 
invoke an action (associated with a property) without requiring a modal dialog 
box.
+The main new feature of `1.15.0` is inline prompts: the ability to edit a 
property or invoke an action (associated with a property) without requiring a 
modal dialog box.
 There have also been several improvements in the ability to tab around the UI.
 
 The version of Apache Wicket has also been upgraded from `6.x` to `7.x`.
@@ -20,3 +20,135 @@ The version of Apache Wicket has also been upgraded from 
`6.x` to `7.x`.
 Most applications written against v1.14.x should run against v1.15.0 with few 
if any changes.
 That said, we do recommend that you read and keep in mind the 
xref:../migration-notes/migration-notes.adoc#_migration-notes_1.14.0-to-1.15.0[migration
 notes] when you upgrade your app.
 
+[NOTE]
+====
+(*work in progress*) The supporting (non-ASF) link:http://isisaddons.org[Isis 
Addons] and link:http://catalog.incode.org[Incode Catalog] have also been 
reorganised into a single link:http://platform.incode.org["Incode Platform"].
+
+While each module can still be consumed individually, the new platform 
versions consistently (a change in any one module will result in a re-release 
of all).
+This should make these modules easier to consume, and easier to 
maintain/develop.
+
+All the modules remain open source, still licensed under the ASF v2.0 license.
+====
+
+
+
+== New Feature
+
+* link:https://issues.apache.org/jira/browse/ISIS-1674[ISIS-1674] - Create a 
"hello world" archetype
+* link:https://issues.apache.org/jira/browse/ISIS-1641[ISIS-1641] - Allow the 
Wicket debug bar to be optionally shown, even in non-prototyping mode.
+* link:https://issues.apache.org/jira/browse/ISIS-1640[ISIS-1640] - Allow 
bookmarks and breadcrumb panels to be hidden.
+* link:https://issues.apache.org/jira/browse/ISIS-1633[ISIS-1633] - Allow 
properties to be "edited" using an action (ie using multiple parameters)
+* link:https://issues.apache.org/jira/browse/ISIS-1621[ISIS-1621] - Promote 
HsqlDbManager from simpleapp archetype to applib.
+* link:https://issues.apache.org/jira/browse/ISIS-1617[ISIS-1617] - Add 
support for the Wicket debug bar, for better diagnostics on session size etc
+* link:https://issues.apache.org/jira/browse/ISIS-1603[ISIS-1603] - Inline 
prompts for property edits and action invocations.
+
+
+== Improvement
+
+* link:https://issues.apache.org/jira/browse/ISIS-1688[ISIS-1688] - Service 
priority should honour either @DomainServiceLayout#menuOrder or 
@DomainService#menuOrder
+* link:https://issues.apache.org/jira/browse/ISIS-1687[ISIS-1687] - Support 
for TypeSafe queries with a unique result in IsisJdoSupport
+* link:https://issues.apache.org/jira/browse/ISIS-1686[ISIS-1686] - Allow 
integration tests to be bootstrapped with less boilerplate
+* link:https://issues.apache.org/jira/browse/ISIS-1685[ISIS-1685] - Add 
missing javadocs for packages in the applib
+* link:https://issues.apache.org/jira/browse/ISIS-1669[ISIS-1669] - For JAXB 
view models, metamodel validator for missing JAXB adapters on date/time 
properties, or on persistable reference types.
+* link:https://issues.apache.org/jira/browse/ISIS-1662[ISIS-1662] - Metamodel 
validator that any view model should have a no-arg constructor.
+* link:https://issues.apache.org/jira/browse/ISIS-1658[ISIS-1658] - 
Subscribers on title UI event, css and icon should override title() or @Title 
etc in the class itself.
+* link:https://issues.apache.org/jira/browse/ISIS-1655[ISIS-1655] - 
QueryResultsCache should be invalidated prior to the render phase.
+* link:https://issues.apache.org/jira/browse/ISIS-1654[ISIS-1654] - per-arg 
validation not fired for enum (ValueChoicesSelect2Panel)
+* link:https://issues.apache.org/jira/browse/ISIS-1653[ISIS-1653] - Allow 
properties to be dynamically made visible/non-visible when not redirecting
+* link:https://issues.apache.org/jira/browse/ISIS-1652[ISIS-1652] - Inline 
prompts should not show gap when no action buttons visible
+* link:https://issues.apache.org/jira/browse/ISIS-1651[ISIS-1651] - Inline 
prompt should provide CSS identifying the action being prompted for.
+* link:https://issues.apache.org/jira/browse/ISIS-1630[ISIS-1630] - view 
models with inline prompts don't show which fields are mandatory or not.
+* link:https://issues.apache.org/jira/browse/ISIS-1627[ISIS-1627] - Error 
handling for axon event bus
+* link:https://issues.apache.org/jira/browse/ISIS-1614[ISIS-1614] - Improve 
responsive design of header
+* link:https://issues.apache.org/jira/browse/ISIS-1613[ISIS-1613] - On action 
invoke/property edit, don't reload page, just repaint changed components (and 
allow unchanged components to opt out).
+* link:https://issues.apache.org/jira/browse/ISIS-1611[ISIS-1611] - Allow 
framework services to be overridden without having to remember to set 
@DomainService#menuOrder to a lower value.
+* link:https://issues.apache.org/jira/browse/ISIS-1592[ISIS-1592] - Extend XSD 
for command and interaction events, show logicalMemberIdentifier as well as 
memberIdentifier
+* link:https://issues.apache.org/jira/browse/ISIS-1590[ISIS-1590] - 
Performance issue: don't call Clause#getValueOf() with ApplicationFeatureId
+* link:https://issues.apache.org/jira/browse/ISIS-1535[ISIS-1535] - MetaModel 
CSV should not list mixins as types.
+* link:https://issues.apache.org/jira/browse/ISIS-1528[ISIS-1528] - Rename 
isis-viewer-wicket artifacts to isis-core-viewer-wicket, for consistency with 
other core modules.
+* link:https://issues.apache.org/jira/browse/ISIS-1504[ISIS-1504] - Metamodel 
validator should check that all classes annotated as view models are 
instantiable (are not member inner classes)
+* link:https://issues.apache.org/jira/browse/ISIS-1468[ISIS-1468] - Extend 
TransactionService to include API of TransactionStateProviderInternal.
+* link:https://issues.apache.org/jira/browse/ISIS-1394[ISIS-1394] - Suppress 
fieldset banner (name) if only one fieldset in tab (to reduce page real estate 
usage).
+* link:https://issues.apache.org/jira/browse/ISIS-1391[ISIS-1391] - Combine 
MessageBrokerInternalService with MessageService, and...
+
+
+
+== Bug
+
+* link:https://issues.apache.org/jira/browse/ISIS-1690[ISIS-1690] - Better 
diagnostics if a service's @PostConstruct fails, and ensure that all get 
initialized
+* link:https://issues.apache.org/jira/browse/ISIS-1689[ISIS-1689] - 
ObjectSpecIdFacet from JDO schema being clobbered by objectType inferred from 
class name, causing a validator to fail unnecessarily
+* link:https://issues.apache.org/jira/browse/ISIS-1676[ISIS-1676] - 
Standardise framework mxins to use @Mixin(method="act") or 
@Mixin(method="prop") etc.
+* link:https://issues.apache.org/jira/browse/ISIS-1675[ISIS-1675] - swagger 
spec file does not support parameters with an id starting with "."
+* link:https://issues.apache.org/jira/browse/ISIS-1668[ISIS-1668] - 
INLINE_AS_IF_EDIT actions do not honour hidden or disabled facets.
+* link:https://issues.apache.org/jira/browse/ISIS-1667[ISIS-1667] - Rework 
ActionParametersPanel so that only rendered if there is a N-arg action ... it 
isn't used to implicitly invoke an action for a no-arg action.
+* link:https://issues.apache.org/jira/browse/ISIS-1657[ISIS-1657] - Fix for 
CSS for disabled drop-down actions on right of property.
+* link:https://issues.apache.org/jira/browse/ISIS-1650[ISIS-1650] - Disabled 
properties for JAXB view models are never disabled.
+* link:https://issues.apache.org/jira/browse/ISIS-1649[ISIS-1649] - Update 
docs with Erik's runAs gist
+* link:https://issues.apache.org/jira/browse/ISIS-1648[ISIS-1648] - Disable 
copy link (because hint as provided in the bookmarks seems to be broken)
+* link:https://issues.apache.org/jira/browse/ISIS-1647[ISIS-1647] - Hitting 
escape twice for modal dialogs causes a stack trace
+* link:https://issues.apache.org/jira/browse/ISIS-1642[ISIS-1642] - Refactor 
breadcrumb panel to remove memory leak
+* link:https://issues.apache.org/jira/browse/ISIS-1631[ISIS-1631] - 
jdoqlFromClause validation error with multi-level inheritance
+* link:https://issues.apache.org/jira/browse/ISIS-1626[ISIS-1626] - 
Confirmation Dialog not shown on no-parameter Menu Actions
+* link:https://issues.apache.org/jira/browse/ISIS-1625[ISIS-1625] - Tooltips 
do not show up on Menu Actions (using the describedAs feature)
+* link:https://issues.apache.org/jira/browse/ISIS-1619[ISIS-1619] - Blob/Clob 
Action results are cached no matter what
+* link:https://issues.apache.org/jira/browse/ISIS-1618[ISIS-1618] - Action 
Button with Confirmation Dialog ignores second shot
+* link:https://issues.apache.org/jira/browse/ISIS-1615[ISIS-1615] - Tooltip 
for Actions not always shown ... @ActionLayout.describedAs
+* link:https://issues.apache.org/jira/browse/ISIS-1610[ISIS-1610] - Unable to 
use space bar to toggle checkboxes.
+* link:https://issues.apache.org/jira/browse/ISIS-1609[ISIS-1609] - 
@Property(editing=ENABLED) not working for some JAXB view model properties.
+* link:https://issues.apache.org/jira/browse/ISIS-1608[ISIS-1608] - Error 
"ConcurrentModificationException" during startup
+* link:https://issues.apache.org/jira/browse/ISIS-1607[ISIS-1607] - Swagger 
HTML doesn't load correctly, missing webjars
+* link:https://issues.apache.org/jira/browse/ISIS-1606[ISIS-1606] - Running 
with bypass authenticator seems to be failing, not looking up class from its 
'bypass' alias
+* link:https://issues.apache.org/jira/browse/ISIS-1605[ISIS-1605] - When 
entering / editing LocalDate in UI on Viewmodel the current date is taken 
instead of entered date
+* link:https://issues.apache.org/jira/browse/ISIS-1602[ISIS-1602] - Handle 
mixins without any NotContributedFacet (assume is contributed as action)
+* link:https://issues.apache.org/jira/browse/ISIS-1600[ISIS-1600] - 
Autocomplete repositories not being used/detected when using an action with a 
collection parameter
+* link:https://issues.apache.org/jira/browse/ISIS-1597[ISIS-1597] - review the 
buildnumber plugin in the simpleapp archetype
+* link:https://issues.apache.org/jira/browse/ISIS-1596[ISIS-1596] - Parameter 
translations broken ?
+* link:https://issues.apache.org/jira/browse/ISIS-1595[ISIS-1595] - 
Configuration property for JDOQL VARIABLES clause mismatch
+* link:https://issues.apache.org/jira/browse/ISIS-1572[ISIS-1572] - 
RestfulObjects viewer - Service members empty
+* link:https://issues.apache.org/jira/browse/ISIS-1551[ISIS-1551] - Problems 
with startup under certain circumstances
+* link:https://issues.apache.org/jira/browse/ISIS-1486[ISIS-1486] - three-way 
Boolean checkbox doesn't seem to be rendering correctly (shows as two-way only)
+* link:https://issues.apache.org/jira/browse/ISIS-1224[ISIS-1224] - drop down 
box (select2) is orphaned and floats top-right under certain circumstances
+* link:https://issues.apache.org/jira/browse/ISIS-1183[ISIS-1183] - Copying a 
property value in view mode doesn't work in Firefox on Windows
+
+
+== Dependency upgrade
+
+* link:https://issues.apache.org/jira/browse/ISIS-1353[ISIS-1353] - Upgrade 
minor dependencies.
+* link:https://issues.apache.org/jira/browse/ISIS-1223[ISIS-1223] - Upgrade 
Wicket to 7.x
+* link:https://issues.apache.org/jira/browse/ISIS-1523[ISIS-1523] - Upgrade 
wicket-bootstrap and related, and revert ISIS-1520
+
+
+== Documentation
+
+* link:https://issues.apache.org/jira/browse/ISIS-1644[ISIS-1644] - Broken 
Links
+* link:https://issues.apache.org/jira/browse/ISIS-1604[ISIS-1604] - Extend 
support for SVG (3 additional dependencies, it seems)
+* link:https://issues.apache.org/jira/browse/ISIS-1594[ISIS-1594] - Provide an 
'edit' button on the isis documentation
+* link:https://issues.apache.org/jira/browse/ISIS-1579[ISIS-1579] - Asciidoc 
Template/Stylesheet issues
+* link:https://issues.apache.org/jira/browse/ISIS-1575[ISIS-1575] - Problems 
with download page
+
+
+
+== Task
+
+* link:https://issues.apache.org/jira/browse/ISIS-1521[ISIS-1521] - Release 
activities for 1.15.0
+
+
+== Add-ons
+
+Implemented in either the supporting (non-ASF) link:http://isisaddons.org[Isis 
Addons] or link:http://catalog.incode.org[Incode Catalog].
+
+* link:https://issues.apache.org/jira/browse/ISIS-513[ISIS-513] - [ADDONS] 
Wicket: Pdf.js display in browser natively
+
+
+== Closed (other reasons)
+
+The issues below are either not a problem, or have been implemented in 
previous releases but (for whatever reason) not closed at that time.
+
+* link:https://issues.apache.org/jira/browse/ISIS-1691[ISIS-1691] - [NOT A 
PROBLEM] Bootstrap paging navigators "pageNumber" failing to render correctly
+* link:https://issues.apache.org/jira/browse/ISIS-1661[ISIS-1661] - [NOT A 
PROBLEM] once selected, doesn't seem to be possible to set a @Nullable 
parameter that has an autoComplete back to null
+* link:https://issues.apache.org/jira/browse/ISIS-1673[ISIS-1673] - [CAN'T 
REPRODUCE] jdoqlFromClause validator is too strict, does not allow for NOT 
EXISTS
+* link:https://issues.apache.org/jira/browse/ISIS-1467[ISIS-1467] - 
[INCOMPLETE] Deprecate features/API which are either unused or for which there 
is a better replacemen
+* link:https://issues.apache.org/jira/browse/ISIS-1293[ISIS-1293] - 
[DUPLICATE] when in prototype mode, have a mechanism to temporarily hide the 
prototyping menus ... eg for taking screenshots
+* link:https://issues.apache.org/jira/browse/ISIS-1034[ISIS-1034] - [WON'T 
FIX] Support bulk actions that return Blobs and Clobs
+* link:https://issues.apache.org/jira/browse/ISIS-511[ISIS-511] - Provide the 
ability to plugin a dashboard for the Wicket viewer
+

Reply via email to