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 2018/01/04 13:53:44 UTC

[isis] branch master updated: ISIS-1465: tidies up configuration properties across .adoc's

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 689231b  ISIS-1465: tidies up configuration properties across .adoc's
689231b is described below

commit 689231ba7994320d4af9844f7698000b6a876df9
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 4 13:53:36 2018 +0000

    ISIS-1465: tidies up configuration properties across .adoc's
---
 .../guides/rgcfg/_rgcfg_configuring-core.adoc      | 408 ++++-----------------
 .../_rgsvc_core-domain-api_EventBusService.adoc    |  87 +++--
 .../rgsvc/_rgsvc_integration-api_EmailService.adoc | 132 ++++++-
 ..._metadata-api_ApplicationFeatureRepository.adoc |  32 +-
 ...vc_persistence-layer-api_RepositoryService.adoc |  25 +-
 ...vc_persistence-layer-spi_PublishingService.adoc |   1 +
 ...presentation-layer-spi_ExceptionRecognizer.adoc |  38 ++
 ..._presentation-layer-spi_TranslationService.adoc |  22 ++
 .../rgsvc/_rgsvc_testing_FixtureScripts.adoc       |  33 +-
 .../ugodn/_ugodn_configuring_properties.adoc       |  28 +-
 .../ugvro/_ugvro_configuration-properties.adoc     |  28 +-
 .../ugvw/_ugvw_configuration-properties.adoc       |  65 +++-
 12 files changed, 501 insertions(+), 398 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc
index ab29277..36606b9 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc
@@ -1,4 +1,5 @@
 [[_rgcfg_configuring-core]]
+:toc:
 = Configuring Core
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 :_basedir: ../../
@@ -182,29 +183,6 @@ In order for these events to fire the class must be annotated using `@DomainObje
 
 
 
-[[__rgcfg_configuring-core_fixture-events]]
-== Fixture Events
-
-Fixture events are fired to indicate the start and end of fixtures are being installed.
-This are listened to by the xref:rgsvc.adoc#_rgsvc_persistence-layer-api_QueryResultsCache[`QueryResultsCache`] to disable caching during this period.
-
-.Core Configuration Properties for Fixture Events
-[cols="2a,1,3a", options="header"]
-|===
-|Property
-|Value +
-(default value)
-|Description
-
-
-|`isis.fixtures.fireEvents`
-|`true`,`false` +
-(`true`)
-|Whether fixture `FixturesInstallingEvent` and `FixturesInstalledEvent` events should be posted while the system is bootstrapping.
-
-
-
-|===
 
 
 
@@ -224,22 +202,9 @@ This are listened to by the xref:rgsvc.adoc#_rgsvc_persistence-layer-api_QueryRe
 
 |`isis.services`
 |`FQCN`,`FQCN2`,...
-|Fully qualified class names of classes to be instantiated as domain services.  +
-
-Each entry can be optionally prefixed by "n:" specifying the relative order on the menu (corresponds to xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`]).
-
-This property is IGNORED if the xref:../rgcfg/rgcfg.adoc#_rgcfg_specifying-components[`isis.appManifest`] configuration property is specified, or if an xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AppManifest[`AppManifest`] is provided programmatically.
-
-
-|`isis.services.` +
-`applicationFeatures.` +
-`init`
-| `lazy`, `eager` +
-(`lazy`)
-|Whether the application features repository (which surfaces the framework's metamodel) should be
-initialized lazily or eagerly.  +
+|NO LONGER REQUIRED; replaced by xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AppManifest[`AppManifest`].
 
-Lazy initialization can speed up bootstrapping, useful while developing and running tests.  The default prior to `1.13.0` was eager initialization.
+(It used to define the list of fully qualified class names of classes to be instantiated as domain services; this is now inferred from the list of modules provided to the app manifest).
 
 
 |`isis.services.` +
@@ -265,179 +230,6 @@ Lazy initialization can speed up bootstrapping, useful while developing and runn
 |(Whether property edits should be automatically reified into commands (for properties annotated with xref:../rgant/rgant.adoc#_rgant-Property_command[`@Property(command=CommandReification.AS_CONFIGURED)`].  +
 
 
-|`isis.services.` +
-`container.` +
-`disableAutoFlush`
-|`true`,`false` +
-(`false`)
-|Whether the `DomainObjectContainer` should automatically flush pending changes prior to querying (via `allMatches()`, `firstMatch()` and so on).
-
-
-
-|`isis.services.` +
-`ContentNegotiation-` +
-`ServiceXRoDomainType` +
-.`prettyPrint`
-| `true`,`false` +
-(depends)
-|If a domain object has been mapped to the specified JAXB `x-ro-domain-type`, then determines whether the result is pretty-printed or not. +
-
-If no configuration property is available, then the defaults is determined by the xref:../rgcfg/rgcfg.adoc#_rgcfg_deployment-types[deployment type]: production mode disables pretty printing, while prototype mode enables it.
-
-
-
-| `isis.service.` +
-`email.` +
-`override.bcc` +
-| email address
-|intended to simplify testing, if specified then the email's `bcc` address will be that specified (rather than the email address(es) passed in as an argument to `EmailService#send(...)`).  +
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-
-| `isis.service.` +
-`email.` +
-`override.cc` +
-| email address
-|intended to simplify testing, if specified then the email's `cc` address will be that specified (rather than the email address(es) passed in as an argument to `EmailService#send(...)`).  +
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-
-| `isis.service.` +
-`email.` +
-`override.to` +
-| email address
-|intended to simplify testing, if specified then the email's `to` address will be that specified (rather than the email address(es) passed in as an argument to `EmailService#send(...)`).  +
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-
-
-| `isis.service.` +
-`email.` +
-`port` +
-| port number (`_587_`)
-|The port number for the SMTP service on the the external SMTP host (used by xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_EmailService[`EmailService`]).  +
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-
-| `isis.service.` +
-`email.` +
-`sender.address` +
-| email address
-|The email address to use for sending out email (used by xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_EmailService[`EmailService`]).
-*Mandatory*.  +
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-
-| `isis.service.` +
-`email.` +
-`sender.hostname` +
-| host (`_smtp.gmail.com_`)
-|The hostname of the external SMTP provider (used by xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_EmailService[`EmailService`]).  +
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-
-| `isis.service.` +
-`email.` +
-`sender.password` +
-| email password
-|The corresponding password for the email address to use for sending out email (used by xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_EmailService[`EmailService`]).
-*Mandatory*.  +
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-
-| `isis.service.` +
-`email.` +
-`socket` +
-`ConnectionTimeout`
-|milliseconds +
-(2000)
-|The socket connection timeout
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-
-| `isis.service.` +
-`email.` +
-`socketTimeout`
-|milliseconds +
-(2000)
-|The socket timeout
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-
-
-| `isis.service.` +
-`email.` +
-`throwExceptionOnFail`
-|`true`,`false` +
-(`true`)
-|Whether to throw an exception if there the email cannot be sent (probably because of some misconfiguration).
-
-This behaviour is (now) the default; the old behaviour (of just returning `false` from the `send()` method) can be re-enabled by setting this property to `false`.
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-
-| `isis.service.` +
-`email.` +
-`tls.enabled`
-|`true`,`false` +
-(`true`)
-|Whether to enable TLS for the email SMTP connection (used by xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_EmailService[`EmailService`]).  +
-
-NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
-
-
-| `isis.services.` +
-`eventbus.` +
-`implementation` +
-| `guava`, `axon`, +
-FQCN (`_guava_`)
-|which implementation to use by the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] as the underlying event bus.
-
-| `isis.services.` +
-`eventbus.` +
-`allowLate` +
-`Registration` +
-|`true`,`false` +
-(`false`)
-|whether a domain service can register with the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] after any events have posted. +
-
-Since this almost certainly constitutes a bug in application code, by default this is disallowed.
-
-
-| `isis.services.` +
-`exceprecog.` +
-`logRecognized` +
-`Exceptions` +
-|`true`,`false` +
-(`false`)
-|whether recognized exceptions should also be logged. +
-
-Generally a recognized exception is one that is expected (for example a uniqueness constraint violated in the database) and which does not represent an error condition.
-This property logs the exception anyway, useful for debugging.
-
-
-| `isis.services.` +
-`ExceptionRecognizer` +
-`CompositeFor` +
-`JdoObjectStore.` +
-`disable` +
-|`true`,`false` +
-(`false`)
-|whether to disable the default recognizers registered by `ExceptionRecognizerCompositeForJdoObjectStore`. +
-
-This implementation provides a default set of recognizers to convert RDBMS constraints into user-friendly messages.
-In the (probably remote) chance that this functionality isn't required, they can be disabled through this flag.
-
 
 |`isis.services.` +
 `injector.` +
@@ -487,18 +279,12 @@ If the setting is changed to disabled then this may reduce application start-up
 `FromAnnotation.` +
 `packagePrefix`
 |fully qualified package names (CSV)
-|to search for domain services (including all subpackages).
 
-This property is IGNORED if the xref:../rgcfg/rgcfg.adoc#_rgcfg_specifying-components[`isis.appManifest`] configuration property is specified, or if an xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AppManifest[`AppManifest`] is provided programmatically.
+|NO LONGER REQUIRED; replaced by xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AppManifest[`AppManifest`].
 
+(It used to define the list of packages to search for domain services; ; this is now inferred from the list of modules provided to the app manifest).
 
-|`isis.services.` +
-`translation.` +
-`po.mode`
-| `read`,`write`
-|Whether to force the `TranslationService` into either read or write mode. +
 
-See xref:../ugbtb/ugbtb.adoc#_ugbtb_i18n[i18n support] to learn more about the translation service.
 
 
 |===
@@ -639,12 +425,8 @@ If enabled, this configuration property will ensure that domain services only de
 |===
 
 
+Also:
 
-[[__rgcfg_configuring-core_other]]
-== Other Config Properties
-
-
-.Other Core Configuration Properties
 [cols="2a,1,3a", options="header"]
 |===
 |Property
@@ -652,34 +434,32 @@ If enabled, this configuration property will ensure that domain services only de
 (default value)
 |Description
 
-|`isis.objects.` +
-`editing`
-|`true`,`false` +
-(`true`)
-|Whether objects' properties and collections can be edited directly (for objects annotated with xref:../rgant/rgant.adoc#_rgant-DomainObject_editing[`@DomainObject#editing()`]); see xref:../rgcfg/rgcfg.adoc#__rgcfg_configuring-core_isis-objects-editing[below] for further discussion.
-
-
-|`isis.persistor.` +
-`disable` +
-`ConcurrencyChecking`
+|`isis.reflector.facets.` +
+`ignoreDeprecated`
 |`true`,`false` +
 (`false`)
-| Disables concurrency checking globally.  +
+|Whether deprecated facets should be ignored or honoured.  +
 
-Only intended for "emergency use" as a workaround while pending fix/patch to Apache Isis itself.  (Note that there is no "datanucleus" in the property).
+By default all deprecated facets are honoured; they remain part of the metamodel.
+If instead this property is set to `true` then the facets are simply not loaded into the metamodel and their semantics will be excluded.  +
 
+In most cases this should reduce the start-up times for the application.
+However, be aware that this could also substantially alter the semantics of your application.
+To be safe, we recommend that you first run your application using `isis.reflector.validator.allowDeprecated` set to `false`; if any deprecated annotations etc. are in use, then the app will fail-fast and refuse to start.
 
-|`isis.reflector.` +
-`explicitAnnotations.` +
-`action`
-|`true`,`false` +
-(`false`)
-|Whether action methods need to be explicitly annotated using `@Action`.
+|===
 
-The default is that any non-`@Programmatic` methods that are not otherwise recognised as properties, collections or supporting methods, are assumed to be actions.
-Setting this property reverses this policy, effectively requiring that all actions need to be annotated with `@Action`.
 
-Note that properties and collections are still implicitly inferred by virtue of being "getters".
+[[__rgcfg_configuring-core_ui]]
+== UI Facet Config Properties
+
+.UI Facet Configuration Properties
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(default value)
+|Description
 
 |`isis.reflector.facet.` +
 `cssClass.patterns`
@@ -696,22 +476,27 @@ See xref:../ugfun/ugfun.adoc#_ugfun_ui-hints_action-icons-and-css[UI hints] for
 See xref:../ugfun/ugfun.adoc#_ugfun_ui-hints_action-icons-and-css[UI hints] for more details.
 
 
-|`isis.reflector.facet.` +
-`filterVisibility`
-|`true`,`false` +
-(`true`)
-|Whether objects should be filtered for visibility. +
+|===
 
-See xref:../rgcfg/rgcfg.adoc#__rgcfg_configuring-core_filterVisibility[section below] for further discussion.
+
+
+[[__rgcfg_configuring-core_programming-model]]
+== Programming Model
+
+.Programming Model
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(default value)
+|Description
 
 |`isis.reflector.facets`
 |`FQCN`
-|This property is now ignored.  +
-+
-To customize the programming model, use `facets.exclude` and `facets.include`.
-See xref:../ugbtb/ugbtb.adoc#_ugbtb_programming-model_finetuning[finetuning the programming model] for more details.
-
+|This property is now IGNORED.
 
+It was previously used to customize the programming model, this should now be done using `facets.exclude` and `facets.include`.
+See xref:../ugbtb/ugbtb.adoc#_ugbtb_programming-model_finetuning[finetuning the programming model] for more details.
 
 |`isis.reflector.facets.` +
 `exclude`
@@ -720,28 +505,12 @@ See xref:../ugbtb/ugbtb.adoc#_ugbtb_programming-model_finetuning[finetuning the
 
 See xref:../ugbtb/ugbtb.adoc#_ugbtb_programming-model_finetuning[finetuning the programming model] for more details.
 
-
-|`isis.reflector.facets.` +
-`ignoreDeprecated`
-|`true`,`false` +
-(`false`)
-|Whether deprecated facets should be ignored or honoured.  +
-+
-By default all deprecated facets are honoured; they remain part of the metamodel.
-If instead this property is set to `true` then the facets are simply not loaded into the metamodel and their semantics will be excluded.  +
-+
-In most cases this should reduce the start-up times for the application.
-However, be aware that this could also substantially alter the semantics of your application.
-To be safe, we recommend that you first run your application using `isis.reflector.validator.allowDeprecated` set to `false`; if any deprecated annotations etc. are in use, then the app will fail-fast and refuse to start.
-
-
 |`isis.reflector.facets.` +
 `include`
 |`FQCN`,`FQCN2`,...
 |Fully qualified class names of (new, custom) facet factory classes to be included to the programming model. +
 See xref:../ugbtb/ugbtb.adoc#_ugbtb_programming-model_finetuning[finetuning the programming model] for more details.
 
-
 |`isis.reflector.` +
 `layoutMetadataReaders`
 |`FQCN`,`FQCN2`,...
@@ -751,34 +520,51 @@ See xref:../ugbtb/ugbtb.adoc#_ugbtb_programming-model_layout-metadata-reader[Lay
 
 
 
-|`isis.viewers.` +
-`paged.parented`
-|positive integer (12)
-|Default page size for parented collections (as owned by an object, eg `Customer#getOrders()`)
+|===
 
 
-|`isis.viewers.` +
-`paged.standalone`
-|positive integer (25)
-|Default page size for standalone collections (as returned from an action invocation)
 
+[[__rgcfg_configuring-core_policy]]
+== Policy
 
-|`isis.viewers.` +
-`propertyLayout.labelPosition`
-|`TOP`, `LEFT` +
-(`LEFT`)
-|Default for label position for all properties if not explicitly specified using xref:../rgant/rgant.adoc#_rgant-PropertyLayout_labelPosition[`@PropertyLayout#labelPosition()`]
+.Runtime Policy Configuration Properties
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(default value)
+|Description
+
+|`isis.objects.` +
+`editing`
+|`true`,`false` +
+(`true`)
+|Whether objects' properties and collections can be edited directly (for objects annotated with xref:../rgant/rgant.adoc#_rgant-DomainObject_editing[`@DomainObject#editing()`]); see xref:../rgcfg/rgcfg.adoc#__rgcfg_configuring-core_isis-objects-editing[below] for further discussion.
+
+|`isis.reflector.` +
+`explicitAnnotations.` +
+`action`
+|`true`,`false` +
+(`false`)
+|Whether action methods need to be explicitly annotated using `@Action`.
+
+The default is that any non-`@Programmatic` methods that are not otherwise recognised as properties, collections or supporting methods, are assumed to be actions.
+Setting this property reverses this policy, effectively requiring that all actions need to be annotated with `@Action`.
+
+Note that properties and collections are still implicitly inferred by virtue of being "getters".
+
+
+|`isis.reflector.facet.` +
+`filterVisibility`
+|`true`,`false` +
+(`true`)
+|Whether objects should be filtered for visibility. +
+
+See xref:../rgcfg/rgcfg.adoc#__rgcfg_configuring-core_filterVisibility[section below] for further discussion.
 
 
-Further discussion xref:rgcfg.adoc#__rgcfg_configuring-core_isis-viewers-propertyLayout-labelPosition[below].
 
-|`isis.viewers.` +
-`collectionLayout.defaultView`
-|`hidden`, `table` +
-(`hidden`)
-|Default for the default view for all (parented) collections if not explicitly specified using xref:../rgant/rgant.adoc#_rgant-CollectionLayout_defaultView[`@CollectionLayout#defaultView()`]
 
-Further discussion xref:rgcfg.adoc#__rgcfg_configuring-core_isis-viewers-collectionLayout-defaultView[below].
 |===
 
 
@@ -830,8 +616,6 @@ This could conceivably have a performance impact in some cases.
 ====
 
 
-
-
 [[__rgcfg_configuring-core_isis-objects-editing]]
 === `objects.editing`
 
@@ -846,39 +630,3 @@ We recommend enabling this feature; it will help drive out the underlying busine
 
 
 
-[[__rgcfg_configuring-core_isis-viewers-propertyLayout-labelPosition]]
-=== `propertyLayout.labelPosition`
-
-If you want a consistent look-n-feel throughout the app, eg all property labels to the top, then it'd be rather frustrating to have to annotate every property.
-
-Instead, a default can be specified in `isis.properties`:
-
-[source,ini]
-----
-isis.viewers.propertyLayout.labelPosition=TOP
-----
-
-or
-
-[source,ini]
-----
-isis.viewers.propertyLayout.labelPosition=LEFT
-----
-
-If these are not present then Apache Isis will render according to internal defaults.
-At the time of writing, this means labels are to the left for all datatypes except multiline strings.
-
-
-[[__rgcfg_configuring-core_isis-viewers-collectionLayout-defaultView]]
-=== `collectionLayout.defaultView`
-
-By default the framework renders (parented) collections as "hidden", ie collapsed.
-This can be overridden on a case-by-case basis using the xref:../rgant/rgant.adoc#_rgant-CollectionLayout_defaultView[`@CollectionLayout#defaultView()`] or the corresponding `<collectionLayout defaultView="...">` element in the `Xxx.layout.xml` layout file.
-
-If the majority of collections should be displayed as "table" form, then it is more convenient to specify the default view globally.
-This can be done using a configuration property in `isis.properties`:
-
-[source,ini]
-----
-isis.viewers.collectionLayout.defaultView=table
-----
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_EventBusService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_EventBusService.adoc
index cd58784..b747cfc 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_EventBusService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_EventBusService.adoc
@@ -25,7 +25,7 @@ Two implementations are available, using either link:https://code.google.com/p/g
 
 
 [[__rgsvc_core-domain-api_EventBusService_api-and-implementation]]
-== API & Implementation
+== API
 
 The API defined by `EventBusService` is:
 
@@ -44,7 +44,7 @@ public abstract class EventBusService {
 <2> allows domain services to register themselves.  This should be done in their xref:../rgant/rgant.adoc#_rgant-PostConstruct[`@PostConstruct`] initialization method (for both singleton and xref:../rgant/rgant.adoc#_rgant-RequestScoped[`@RequestScoped`] domain services.
 <3> exists for symmetry, but need never be called (it is in fact deliberately a no-op).
 
-Isis provides a default implementation of the service, `o.a.i.objectstore.jdo.datanucleus.service.eventbus.EventBusServiceJdo`.
+
 
 
 
@@ -311,9 +311,31 @@ public class ReserveStockSubscriber {
 ----
 
 
-== Implementation SPI
+[[__rgsvc_core-domain-api_EventBusService_Configuration]]
+== Implementation
+
+The framework provides a default implementation of the service, `o.a.i.objectstore.jdo.datanucleus.service.eventbus.EventBusServiceJdo`.
+
+
+=== Configuration Properties
+
+The default implementation of this service defines the following configuration properties:
 
-The implementation of `EventBusService` provided by Apache Isis will by default use link:https://code.google.com/p/guava-libraries/[Guava]'s https://code.google.com/p/guava-libraries/wiki/EventBusExplained[`EventBus`] as the underlying in-memory event bus.  Alternatively the link:http://www.axonframework.org/[AxonFramework]'s link:http://www.axonframework.org/docs/2.4/single.html#d5e1489[SimpleEventBus] can be used.  Which is used is specified through configuration property (described xr [...]
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(default value)
+|Description
+
+| `isis.services.` +
+`eventbus.` +
+`implementation` +
+| `guava`, `axon`, +
+FQCN (`_guava_`)
+|which implementation to use by the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] as the underlying event bus.
+
+The implementation of `EventBusService` provided by Apache Isis will by default use link:https://code.google.com/p/guava-libraries/[Guava]'s https://code.google.com/p/guava-libraries/wiki/EventBusExplained[`EventBus`] as the underlying in-memory event bus.  Alternatively the link:http://www.axonframework.org/[AxonFramework]'s link:http://www.axonframework.org/docs/2.4/single.html#d5e1489[SimpleEventBus] can be used.
 
 [NOTE]
 .Guava vs Axon, which to use?
@@ -324,7 +346,29 @@ The Axon `SimpleEventBus`-based implementation on the other hand is fully synchr
 ====
 
 
-It is also possible to use some other implementation.
+| `isis.services.` +
+`eventbus.` +
+`allowLate` +
+`Registration` +
+|`true`,`false` +
+(`false`)
+|whether a domain service can register with the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] after any events have posted. +
+
+Late registration refers to the idea that a domain service can register itself with the `EventBusService` after events have been posted.
+Since domain services are set up at boot time, this almost certainly constitutes a bug in the code and so by default late registration is _not_ allowed.
+Setting the above property to `true` disables this check.
+
+Since this almost certainly constitutes a bug in application code, by default this is disallowed.
+
+
+|===
+
+
+
+
+=== SPI
+
+It is also possible to define use some other underlying event bus implementation, by implementing the `EventBusImplementation` SPI:
 
 [source,java]
 ----
@@ -340,26 +384,6 @@ As is probably obvious, the `EventBusService` just delegates down to these metho
 If you do provide your own implementation of this SPI, be aware that your subscribers will need to use whatever convention is required (eg different annotations) such that the events are correctly routed through to your subscribers.
 
 
-
-[[__rgsvc_core-domain-api_EventBusService_Configuration]]
-== Configuration
-
-The implementation of `EventBusService` provided by Apache Isis will by default use link:https://code.google.com/p/guava-libraries/[Guava]'s https://code.google.com/p/guava-libraries/wiki/EventBusExplained[`EventBus`] as the underlying in-memory event bus.  Alternatively the link:http://www.axonframework.org/[AxonFramework]'s link:http://www.axonframework.org/docs/2.4/single.html#d5e1489[SimpleEventBus] can be used.
-
-To specify which, add the xref:../rgcfg/rgcfg.adoc#_rgcfg_configuring-core[configuration property] `isis.services.eventbus.implementation`:
-
-[source,ini]
-----
-isis.services.eventbus.implementation=guava
-----
-
-or
-
-[source,ini]
-----
-isis.services.eventbus.implementation=axon
-----
-
 If you have written your own implementation of the `EventBusServiceImplementation` SPI, then specify instead its fully-qualified class name:
 
 [source,ini]
@@ -369,19 +393,6 @@ isis.services.eventbus.implementation=com.mycompany.isis.MyEventBusServiceImplem
 
 
 
-In addition, there is one further configuration property, whether to allow "late registration":
-
-[source,ini]
-----
-isis.services.eventbus.allowLateRegistration=false
-----
-
-Late registration refers to the idea that a domain service can register itself with the `EventBusService` after events have been posted.  Since domain services are set up at boot time, this almost certainly constitutes a bug in the code and so by default late registration is _not_ allowed.  Setting the above property to `true` disables this check.
-
-
-
-
-
 
 == Related Services
 
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 9007c50..f26aa1e 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
@@ -14,7 +14,7 @@ The that sends email as an HTML message, using an external SMTP provider.
 
 
 
-== API & Implementation
+== API
 
 The API for the service is:
 
@@ -36,13 +36,137 @@ Will return `false` if failed to send
 <4> indicates whether the implementation was configured and initialized correctly.
 If this returns `false` then any attempt to call `send(...)` will fail.
 
-As noted in the introduction, the core framework provides a default implementation (`EmailServiceDefault`) that sends email as an HTML message, using an external SMTP provider.
 
+== Implementation
 
+As noted in the introduction, the core framework provides a default implementation, `EmailServiceDefault`.
+This sends email as an HTML message, using an external SMTP provider.
 
-== Configuration
 
-To use this service the following properties must be configured:
+=== Configuration Properties
+
+The default implementation defines the following configuration properties:
+
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(default value)
+|Description
+
+| `isis.service.` +
+`email.` +
+`override.bcc` +
+| email address
+|intended to simplify testing, if specified then the email's `bcc` address will be that specified (rather than the email address(es) passed in as an argument to `EmailService#send(...)`).  +
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+
+| `isis.service.` +
+`email.` +
+`override.cc` +
+| email address
+|intended to simplify testing, if specified then the email's `cc` address will be that specified (rather than the email address(es) passed in as an argument to `EmailService#send(...)`).  +
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+
+| `isis.service.` +
+`email.` +
+`override.to` +
+| email address
+|intended to simplify testing, if specified then the email's `to` address will be that specified (rather than the email address(es) passed in as an argument to `EmailService#send(...)`).  +
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+
+
+| `isis.service.` +
+`email.` +
+`port` +
+| port number (`_587_`)
+|The port number for the SMTP service on the the external SMTP host (used by xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_EmailService[`EmailService`]).  +
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+
+| `isis.service.` +
+`email.` +
+`sender.address` +
+| email address
+|The email address to use for sending out email (used by xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_EmailService[`EmailService`]).
+*Mandatory*.  +
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+
+| `isis.service.` +
+`email.` +
+`sender.hostname` +
+| host (`_smtp.gmail.com_`)
+|The hostname of the external SMTP provider (used by xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_EmailService[`EmailService`]).  +
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+
+| `isis.service.` +
+`email.` +
+`sender.password` +
+| email password
+|The corresponding password for the email address to use for sending out email (used by xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_EmailService[`EmailService`]).
+*Mandatory*.  +
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+
+| `isis.service.` +
+`email.` +
+`socket` +
+`ConnectionTimeout`
+|milliseconds +
+(2000)
+|The socket connection timeout
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+
+| `isis.service.` +
+`email.` +
+`socketTimeout`
+|milliseconds +
+(2000)
+|The socket timeout
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+
+
+| `isis.service.` +
+`email.` +
+`throwExceptionOnFail`
+|`true`,`false` +
+(`true`)
+|Whether to throw an exception if there the email cannot be sent (probably because of some misconfiguration).
+
+This behaviour is (now) the default; the old behaviour (of just returning `false` from the `send()` method) can be re-enabled by setting this property to `false`.
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+
+| `isis.service.` +
+`email.` +
+`tls.enabled`
+|`true`,`false` +
+(`true`)
+|Whether to enable TLS for the email SMTP connection (used by xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_EmailService[`EmailService`]).  +
+
+NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
+
+|===
+
+
+Thus, use this service the following properties must be configured:
 
 * `isis.service.email.sender.address`
 * `isis.service.email.sender.password`
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_metadata-api_ApplicationFeatureRepository.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_metadata-api_ApplicationFeatureRepository.adoc
index b2b74c7..c20d95c 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_metadata-api_ApplicationFeatureRepository.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_metadata-api_ApplicationFeatureRepository.adoc
@@ -15,7 +15,7 @@ This functionality was originally implemented as part of (non-ASF) link:http://p
 ====
 
 
-== API & Implementation
+== API
 
 The API defined by the service is:
 
@@ -44,11 +44,37 @@ public enum ApplicationMemberType {
 These methods are designed primarily to return lists of strings for use in drop-downs.
 
 
+== Implementation
 
+The default implementation of this service is `ApplicationFeatureRepositoryDefault`.
 
 
-== Related Services
+=== Configuration Properties
 
-The default implementation of this service - `ApplicationFeatureRepositoryDefault` uses the `ApplicationFeatureFactory` service to instantiate `ApplicationFeature` instances.
+The default implementation of this domain service supports the following configuration properties:
+
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(default value)
+|Description
+
+|`isis.services.` +
+`applicationFeatures.` +
+`init`
+| `lazy`, `eager` +
+(`lazy`)
+|Whether the application features repository (which surfaces the framework's metamodel) should be
+initialized lazily or eagerly.  +
+
+Lazy initialization can speed up bootstrapping, useful while developing and running tests.
+
+|===
+
+
+=== Related Services
+
+The default implementation of this service uses the `ApplicationFeatureFactory` service to instantiate `ApplicationFeature` instances.
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_RepositoryService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_RepositoryService.adoc
index 4cbfb69..51236d1 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_RepositoryService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_RepositoryService.adoc
@@ -245,20 +245,31 @@ For more details, see xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_Isis
 
 == Implementation
 
-The core framework provides a default implementation of this service (`o.a.i.core.metamodel.services.repository.RepositoryServiceDefault`).
+The default implementation of this domain service is `o.a.i.core.metamodel.services.repository.RepositoryServiceDefault`.
 
 
+=== Configuration Properties
 
+The default implementation of this domain service supports the following configuration properties:
 
-=== (Disabling) Auto-flush
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(default value)
+|Description
 
-Normally any queries are automatically preceded by flushing pending commands to persist or remove objects.
+|`isis.services.` +
+`container.` +
+`disableAutoFlush`
+|`true`,`false` +
+(`false`)
+|Whether the `RepositoryService` (or `DomainObjectContainer` that delegates to it) should automatically flush pending changes prior to querying (via `allMatches()`, `firstMatch()` and so on).
 
-This property `isis.services.container.disableAutoFlush` allows this behaviour to be disabled.
+|===
 
 
+== Usage Notes
 
-== Related Services
-
-the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService`] is often used in conjunction with the `RepositoryService`, to instantiate domain objects before persisting.
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService`] is often used in conjunction with the `RepositoryService`, to instantiate domain objects before persisting.
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_PublishingService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_PublishingService.adoc
index 9371762..47e8f2a 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_PublishingService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_PublishingService.adoc
@@ -66,6 +66,7 @@ The framework provides no default implementations of this service.
 
 
 
+
 == Usage
 
 To indicate that an action invocation should be published, annotate it with the xref:../rgant/rgant.adoc#_rgant-Action_publishing[`@Action#publishing()`] annotation.
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ExceptionRecognizer.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ExceptionRecognizer.adoc
index 7385a60..357ded8 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ExceptionRecognizer.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ExceptionRecognizer.adoc
@@ -93,4 +93,42 @@ If you want to recognize and handle additional exceptions (for example to captur
 
 
 
+=== Configuration Properties
+
+The following configuration properties are relevant:
+
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(default value)
+|Description
+
+| `isis.services.` +
+`exceprecog.` +
+`logRecognized` +
+`Exceptions` +
+|`true`,`false` +
+(`false`)
+|whether recognized exceptions should also be logged. +
+
+Generally a recognized exception is one that is expected (for example a uniqueness constraint violated in the database) and which does not represent an error condition.
+This property logs the exception anyway, useful for debugging.
+
+This is recognised by all implementations that subclass `ExceptionRecognizerAbstract`.
+
+| `isis.services.` +
+`ExceptionRecognizer` +
+`CompositeFor` +
+`JdoObjectStore.` +
+`disable` +
+|`true`,`false` +
+(`false`)
+|whether to disable the default recognizers registered by `ExceptionRecognizerCompositeForJdoObjectStore`. +
+
+This implementation provides a default set of recognizers to convert RDBMS constraints into user-friendly messages.
+In the (probably remote) chance that this functionality isn't required, they can be disabled through this flag.
+
+
+|===
 
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 a40ba66..eeba5d9 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
@@ -59,6 +59,28 @@ For more details on the implementation, see xref:../ugbtb/ugbtb.adoc#_ugbtb_i18n
 
 
 
+=== Configuration Properties
+
+The default implementation of this domain service recognises the following configuration properties:
+
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(default value)
+|Description
+
+|`isis.services.` +
+`translation.` +
+`po.mode`
+| `read`,`write`
+|Whether to force the `TranslationService` into either read or write mode. +
+
+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/rgsvc/_rgsvc_testing_FixtureScripts.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing_FixtureScripts.adoc
index 56f3934..4507407 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing_FixtureScripts.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing_FixtureScripts.adoc
@@ -13,7 +13,7 @@ This configures this service, for example telling it which package to search for
 
 
 
-== API & Implementation
+== API
 
 The API for the service is:
 
@@ -27,11 +27,36 @@ public abstract class FixtureScripts ... {
 }
 ----
 
-The implementation is `o.a.i.applib.services.fixturespec.FixtureScriptsDefault`
 
+== Implementation
 
+The default implementation is `o.a.i.applib.services.fixturespec.FixtureScriptsDefault`
 
 
-== Related Services
+=== Configuration Properties
 
-The service interacts with xref:../rgsvc/rgsvc.adoc#_rgsvc_testing_FixtureScriptsSpecificationProvider[`FixtureScriptsSpecificationProvider`].
+The default implementation of this domain service supports the following configuration properties:
+
+.Core Configuration Properties for Fixture Events
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(default value)
+|Description
+
+
+|`isis.fixtures.fireEvents`
+|`true`,`false` +
+(`true`)
+|Whether fixture `FixturesInstallingEvent` and `FixturesInstalledEvent` events should be posted while the system is bootstrapping.
+
+Fixture events are fired to indicate the start and end of fixtures are being installed.
+This are listened to by the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_QueryResultsCache[`QueryResultsCache`] to disable caching during this period.
+
+|===
+
+
+=== Related Services
+
+The default implementation of this domain service interacts with xref:../rgsvc/rgsvc.adoc#_rgsvc_testing_FixtureScriptsSpecificationProvider[`FixtureScriptsSpecificationProvider`].
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugodn/_ugodn_configuring_properties.adoc b/adocs/documentation/src/main/asciidoc/guides/ugodn/_ugodn_configuring_properties.adoc
index fd22b73..154cee7 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugodn/_ugodn_configuring_properties.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugodn/_ugodn_configuring_properties.adoc
@@ -9,7 +9,6 @@ These configuration properties are typically stored in `WEB-INF/persistor_datanu
 
 == Configuration Properties for Apache Isis itself
 
-
 .JDO/DataNucleus Objectstore Configuration Properties
 [cols="2a,2a,2a", options="header"]
 |===
@@ -50,14 +49,37 @@ There generally is no need to change this from its default.
 It holds the set of packages to search so that DataNucleus builds its metamodel eagerly rather than lazily.
 
 
-|`isis.persistor.datanucleus.` +
-`PublishingService.serializedForm`
+|`isis.persistor.` +
+`datanucleus.` +
+`PublishingService.` +
+`serializedForm`
 | zipped
 |(`PublishingService` is deprecated, and therefore so is this property).
 
 |===
 
 
+Also:
+
+
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(default value)
+|Description
+
+|`isis.persistor.` +
+`disable` +
+`ConcurrencyChecking`
+|`true`,`false` +
+(`false`)
+| Disables concurrency checking globally.  +
+
+Only intended for "emergency use" as a workaround while pending fix/patch to Apache Isis itself.  (Note that there is no "datanucleus" in the property).
+
+|===
+
 
 == Configuration Properties passed through directly to DataNucleus.
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_configuration-properties.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_configuration-properties.adoc
index 6d88120..1678d46 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_configuration-properties.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_configuration-properties.adoc
@@ -43,6 +43,28 @@ handful of resources that supported that profile.
 
 |===
 
+In addition:
+
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(default value)
+|Description
+
+|`isis.services.` +
+`ContentNegotiation-` +
+`ServiceXRoDomainType` +
+.`prettyPrint`
+| `true`,`false` +
+(depends)
+|If a domain object has been mapped to the specified JAXB `x-ro-domain-type`, then determines whether the result is pretty-printed or not. +
+
+If no configuration property is available, then the defaults is determined by the xref:../rgcfg/rgcfg.adoc#_rgcfg_deployment-types[deployment type]: production mode disables pretty printing, while prototype mode enables it.
+
+|===
+
+
 
 [[__ugvro_configuration-properties_deprecated]]
 == Deprecated
@@ -50,10 +72,8 @@ handful of resources that supported that profile.
 There are also a number of configuration properties that can be used to suppress or simplify the default RO-spec
 representations.
 
-These configuration properties pre-date the support, introduced in `1.11.0`, for the Apache Isis profile, and
-are limited by the fact that they are global configuration settings, so cannot be influenced on a request-by-request
-basis (as is the case with the `Accept` header used for the Apache Isis profile). They have therefore been
-deprecated, and may be removed in the future.
+These configuration properties pre-date the support for the Apache Isis profile, and are limited by the fact that they are global configuration settings, so cannot be influenced on a request-by-request basis (as is the case with the `Accept` header used for the Apache Isis profile).
+They have therefore been deprecated, and may be removed in the future.
 
 Nevertheless, those configuration properties are:
 
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 9bd19a9..2ab303d 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
@@ -90,7 +90,8 @@ further details.  The string must be in ISO date format (see link:https://github
 for further details).
 
 |`isis.viewer.wicket.` +
-`disableDependentChoiceAutoSelection`
+`disableDependent` +
+`ChoiceAutoSelection`
 | `true`,`false` +
 (`_false_`)
 | For dependent choices, whether to automatically select the first dependent (eg subcategory) when the parameter on which it depends (category) changes.
@@ -120,13 +121,15 @@ This feature is primarily just to help track any memory leakage issues that migh
 
 
 |`isis.viewer.wicket.` +
-`maxTitleLengthInParentedTables`
+`maxTitleLength` +
+`InParentedTables`
 | +ve integer +
 (`_12_`)
 | See discussion xref:../ugvw/ugvw.adoc#_ugvw_configuration-properties_abbreviating-titles[below].
 
 |`isis.viewer.wicket.` +
-`maxTitleLengthInStandaloneTables`
+`maxTitleLength` +
+`InStandaloneTables`
 | +ve integer, +
 (`_12_`)
 | See discussion xref:../ugvw/ugvw.adoc#_ugvw_configuration-properties_abbreviating-titles[below].
@@ -138,13 +141,15 @@ This feature is primarily just to help track any memory leakage issues that migh
 | See discussion xref:../ugvw/ugvw.adoc#_ugvw_configuration-properties_abbreviating-titles[below].
 
 |`isis.viewer.wicket.` +
-`preventDoubleClickForFormSubmit`
+`preventDoubleClick` +
+`ForFormSubmit`
 | `true`,`false` +
 (`_true_`)
 | Whether to disable a form submit button after it has been clicked, to prevent users causing an error if they do a double click.
 
 |`isis.viewer.wicket.` +
-`preventDoubleClickForNoArgAction`
+`preventDoubleClick` +
+`ForNoArgAction`
 | `true`,`false` +
 (`_true_`)
 | Whether to disable a no-arg action button after it has been clicked, to prevent users causing an error if they do a double click.
@@ -291,6 +296,56 @@ Enabling this setting can significantly slow down rendering performance of the W
 |===
 
 
+Also:
+
+[cols="2a,1,3a", options="header"]
+|===
+|Property
+|Value +
+(default value)
+|Description
+
+|`isis.viewers.` +
+`paged.parented`
+|positive integer (12)
+|Default page size for parented collections (as owned by an object, eg `Customer#getOrders()`)
+
+
+|`isis.viewers.` +
+`paged.standalone`
+|positive integer (25)
+|Default page size for standalone collections (as returned from an action invocation)
+
+
+|`isis.viewers.` +
+`propertyLayout.` +
+`labelPosition`
+|`TOP`, `LEFT` +
+(`LEFT`)
+|Default for label position for all properties if not explicitly specified using xref:../rgant/rgant.adoc#_rgant-PropertyLayout_labelPosition[`@PropertyLayout#labelPosition()`]
+
+
+If you want a consistent look-n-feel throughout the app, eg all property labels to the top, then it'd be rather frustrating to have to annotate every property.
+
+If these are not present then Apache Isis will render according to internal defaults.
+At the time of writing, this means labels are to the left for all datatypes except multiline strings.
+
+
+|`isis.viewers.` +
+`collectionLayout.` +
+`defaultView`
+|`hidden`, `table` +
+(`hidden`)
+|Default for the default view for all (parented) collections if not explicitly specified using xref:../rgant/rgant.adoc#_rgant-CollectionLayout_defaultView[`@CollectionLayout#defaultView()`]
+
+By default the framework renders (parented) collections as "hidden", ie collapsed.
+These can be overridden on a case-by-case basis using the xref:../rgant/rgant.adoc#_rgant-CollectionLayout_defaultView[`@CollectionLayout#defaultView()`] or the corresponding `<collectionLayout defaultView="...">` element in the `Xxx.layout.xml` layout file.
+
+If the majority of collections should be displayed as "table" form, then it is more convenient to specify the default view globally.
+
+|===
+
+
 
 include::_ugvw_configuration-properties_abbreviating-titles.adoc[leveloffset=+1]
 include::_ugvw_configuration-properties_suppressing-remember-me.adoc[leveloffset=+1]

-- 
To stop receiving notification emails like this one, please contact
['"commits@isis.apache.org" <co...@isis.apache.org>'].