You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/02/14 22:49:30 UTC

[7/9] isis-site git commit: updates for metamodel validation tickets

http://git-wip-us.apache.org/repos/asf/isis-site/blob/ae6b67af/content/guides/rgcfg.html
----------------------------------------------------------------------
diff --git a/content/guides/rgcfg.html b/content/guides/rgcfg.html
index 4a933fe..2d1c1cd 100644
--- a/content/guides/rgcfg.html
+++ b/content/guides/rgcfg.html
@@ -1340,8 +1340,7 @@ initialized lazily or eagerly. <br></p>
 <p>If a domain object has been mapped to the specified JAXB <code>x-ro-domain-type</code>, then determines whether the result is pretty-printed or not.<br></p>
 </div>
 <div class="paragraph">
-<p>+
-If no configuration property is available, then the defaults is determined by the <a href="#_rgcfg_deployment-types">deployment type</a>: production mode disables pretty printing, while prototype mode enables it.</p>
+<p>If no configuration property is available, then the defaults is determined by the <a href="#_rgcfg_deployment-types">deployment type</a>: production mode disables pretty printing, while prototype mode enables it.</p>
 </div></div></td>
 </tr>
 <tr>
@@ -1352,7 +1351,7 @@ If no configuration property is available, then the defaults is determined by th
 </div></div></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">email address</p></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p>(<code>1.13.3-SNAPSHOT</code>) intended to simplify testing, if specified then the email&#8217;s <code>bcc</code> address will be that specified (rather than the email address(es) passed in as an argument to <code>EmailService#send(&#8230;&#8203;)</code>). <br></p>
+<p>(<code>1.14.0-SNAPSHOT</code>) intended to simplify testing, if specified then the email&#8217;s <code>bcc</code> address will be that specified (rather than the email address(es) passed in as an argument to <code>EmailService#send(&#8230;&#8203;)</code>). <br></p>
 </div>
 <div class="paragraph">
 <p>NB: note that the key is mis-spelt, (<code>isis.service.email</code> rather than <code>isis.services.email</code>)</p>
@@ -1366,7 +1365,7 @@ If no configuration property is available, then the defaults is determined by th
 </div></div></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">email address</p></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p>(<code>1.13.3-SNAPSHOT</code>) intended to simplify testing, if specified then the email&#8217;s <code>cc</code> address will be that specified (rather than the email address(es) passed in as an argument to <code>EmailService#send(&#8230;&#8203;)</code>). <br></p>
+<p>(<code>1.14.0-SNAPSHOT</code>) intended to simplify testing, if specified then the email&#8217;s <code>cc</code> address will be that specified (rather than the email address(es) passed in as an argument to <code>EmailService#send(&#8230;&#8203;)</code>). <br></p>
 </div>
 <div class="paragraph">
 <p>NB: note that the key is mis-spelt, (<code>isis.service.email</code> rather than <code>isis.services.email</code>)</p>
@@ -1380,7 +1379,7 @@ If no configuration property is available, then the defaults is determined by th
 </div></div></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">email address</p></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p>(<code>1.13.3-SNAPSHOT</code>) intended to simplify testing, if specified then the email&#8217;s <code>to</code> address will be that specified (rather than the email address(es) passed in as an argument to <code>EmailService#send(&#8230;&#8203;)</code>). <br></p>
+<p>(<code>1.14.0-SNAPSHOT</code>) intended to simplify testing, if specified then the email&#8217;s <code>to</code> address will be that specified (rather than the email address(es) passed in as an argument to <code>EmailService#send(&#8230;&#8203;)</code>). <br></p>
 </div>
 <div class="paragraph">
 <p>NB: note that the key is mis-spelt, (<code>isis.service.email</code> rather than <code>isis.services.email</code>)</p>
@@ -1448,12 +1447,13 @@ If no configuration property is available, then the defaults is determined by th
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
 <p><code>isis.service.</code><br>
 <code>email.</code><br>
-<code>socketConnectionTimeout</code></p>
+<code>socket</code><br>
+<code>ConnectionTimeout</code></p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">milliseconds<br>
 (2000)</p></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p>(<code>1.13.3-SNAPSHOT</code>) The socket connection timeout</p>
+<p>(<code>1.14.0-SNAPSHOT</code>) The socket connection timeout</p>
 </div>
 <div class="paragraph">
 <p>NB: note that the key is mis-spelt, (<code>isis.service.email</code> rather than <code>isis.services.email</code>)</p>
@@ -1468,7 +1468,7 @@ If no configuration property is available, then the defaults is determined by th
 <td class="tableblock halign-left valign-top"><p class="tableblock">milliseconds<br>
 (2000)</p></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p>(<code>1.13.3-SNAPSHOT</code>) The socket timeout</p>
+<p>(<code>1.14.0-SNAPSHOT</code>) The socket timeout</p>
 </div>
 <div class="paragraph">
 <p>NB: note that the key is mis-spelt, (<code>isis.service.email</code> rather than <code>isis.services.email</code>)</p>
@@ -1483,7 +1483,7 @@ If no configuration property is available, then the defaults is determined by th
 <td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code>,<code>false</code><br>
 (<code>true</code>)</p></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p>(<code>1.13.3-SNAPSHOT</code>) Whether to throw an exception if there the email cannot be sent (probably because of some misconfiguration).</p>
+<p>(<code>1.14.0-SNAPSHOT</code>) Whether to throw an exception if there the email cannot be sent (probably because of some misconfiguration).</p>
 </div>
 <div class="paragraph">
 <p>This behaviour is (now) the default; the old behaviour (of just returning <code>false</code> from the <code>send()</code> method) can be re-enabled by setting this property to <code>false</code>.</p>
@@ -1523,7 +1523,8 @@ FQCN (<code><em>guava</em></code>)</p></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
 <p><code>isis.services.</code><br>
 <code>eventbus.</code><br>
-<code>allowLateRegistration</code><br></p>
+<code>allowLate</code><br>
+<code>Registration</code><br></p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code>,<code>false</code><br>
 (<code>false</code>)</p></td>
@@ -1538,7 +1539,8 @@ FQCN (<code><em>guava</em></code>)</p></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
 <p><code>isis.services.</code><br>
 <code>exceprecog.</code><br>
-<code>logRecognizedExceptions</code><br></p>
+<code>logRecognized</code><br>
+<code>Exceptions</code><br></p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code>,<code>false</code><br>
 (<code>false</code>)</p></td>
@@ -1553,8 +1555,9 @@ This property logs the exception anyway, useful for debugging.</p>
 <tr>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
 <p><code>isis.services.</code><br>
-<code>ExceptionRecognizerComposite-</code><br>
-<code>ForJdoObjectStore.</code><br>
+<code>ExceptionRecognizer</code><br>
+<code>CompositeFor</code><br>
+<code>JdoObjectStore.</code><br>
 <code>disable</code><br></p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code>,<code>false</code><br>
@@ -1639,7 +1642,8 @@ If the setting is changed to disabled then this may reduce application start-up
 <tr>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
 <p><code>isis.services.</code><br>
-<code>ServicesInstallerFromAnnotation.</code><br>
+<code>ServicesInstaller</code><br>
+<code>FromAnnotation.</code><br>
 <code>packagePrefix</code></p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">fully qualified package names (CSV)</p></td>
@@ -1668,7 +1672,7 @@ If the setting is changed to disabled then this may reduce application start-up
 </table>
 </div>
 <div class="sect2">
-<h3 id="_rgcfg_configuring-core_other">5.5. Other Config Properties</h3>
+<h3 id="_rgcfg_configuring-core_metamodel-validation">5.5. MetaModel Validation</h3>
 <table class="tableblock frame-all grid-all spread">
 <caption class="title">Table 8. Other Core Configuration Properties</caption>
 <colgroup>
@@ -1687,6 +1691,162 @@ If the setting is changed to disabled then this may reduce application start-up
 <tbody>
 <tr>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>isis.reflector.validator</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FQCN</code></p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Custom implementation of <code>MetaModelValidator</code> (in the <code>org.apache.isis.core.metamodel.specloader.validator</code> package)<br></p>
+</div>
+<div class="paragraph">
+<p>See <a href="ugbtb.html#_ugbtb_programming-model_custom-validator">Custom Validator</a> to learn more.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>isis.reflector.validator.</code><br>
+<code>actionCollection</code><br>
+<code>ParameterChoices</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code>,<code>false</code><br>
+(<code>true</code>)</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>(<code>1.14.0-SNAPSHOT</code>) Whether to check that collection action parameters have a corresponding choices or autoComplete facet.<br></p>
+</div>
+<div class="paragraph">
+<p>In the current implementation such a facet is always required, so this configuration option has only been introduced as a feature flag in case it needs to be disabled for some reason.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>isis.reflector.validator.</code><br>
+<code>allowDeprecated</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code>,<code>false</code><br>
+(<code>true</code>)</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Whether deprecated annotations or naming conventions are tolerated or not.
+If not, then a metamodel validation error will be triggered, meaning the app won&#8217;t boot (fail-fast).<br></p>
+</div>
+<div class="paragraph">
+<p>See also <code>isis.reflector.facets.ignoreDeprecated</code>.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>isis.reflector.validator.</code><br>
+<code>jdoqlFromClause</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code>,<code>false</code><br>
+(<code>true</code>)</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>(<code>1.14.0-SNAPSHOT</code>) Whether to check that the class name in JDOQL <code>FROM</code> clause matches or is a supertype of the class on which it is annotated.<br></p>
+</div>
+<div class="paragraph">
+<p>Only "SELECT" queries are validated; "UPDATE" queries etc are simply ignored.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>isis.reflector.validator.</code><br>
+<code>explicitObjectType</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code>,<code>false</code><br>
+(<code>false</code>)</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>(<code>1.14.0-SNAPSHOT</code>) Whether to check that the class has an object type explicitly specified somehow.</p>
+</div>
+<div class="paragraph">
+<p>The object type is used by the framework as an alias for the object&#8217;s concrete class; it is one part of the object&#8217;s OID and can be seen in the URLs of the <a href="ugvw.html">Wicket viewer</a> and <a href="ugvro.html">Restful Objects viewer</a>, and is encoded in the <code>Bookmark</code>s returned by the <a href="rgsvc.html#_rgsvc_api_BookmarkService"><code>BookmarkService</code></a>.
+In this was it may also be persisted, for example in polymorphic associations or command or auditing tables.</p>
+</div>
+<div class="paragraph">
+<p>If the object type is not specified explicitly, then this can cause data migration issues if the class is subsequently refactored (eg renamed, or moved to a different package).</p>
+</div>
+<div class="paragraph">
+<p>This configuration property can be used to enforce a rule that the object type must always be specified (for persistent entities and view models).</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>isis.reflector.validator.</code><br>
+<code>jdoqlVariablesClause</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code>,<code>false</code><br>
+(<code>true</code>)</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>(<code>1.14.0-SNAPSHOT</code>) Whether to check that the class name in JDOQL <code>VARIABLES</code> clause is a recognized class.<br></p>
+</div>
+<div class="paragraph">
+<p>Note that although JDOQL syntax supports multiple <code>VARIABLES</code> classes, currently the validator only checks the first class name found.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>isis.reflector.validator.</code><br>
+<code>mixinsOnly</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code>,<code>false</code><br>
+(<code>false</code>)</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>(<code>1.14.0-SNAPSHOT</code>) Mixins provide a simpler programming model to contributed domain services.<br></p>
+</div>
+<div class="paragraph">
+<p>If enabled, this configuration property will treat any contributed service as invalid.
+This is by way of possibly deprecating and eventually moving contributed services from the Apache Isis programming model.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>isis.reflector.validator.</code><br>
+<code>noParamsOnly</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code>,<code>false</code><br>
+(<code>false</code>)</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>(<code>1.14.0-SNAPSHOT</code>) When searching for  <a href="rgcms.html#_rgcms_methods_prefixes_disable"><code>disableXxx()</code></a> or <a href="rgcms.html#_rgcms_methods_prefixes_hide"><code>hideXxx()</code></a> methods, whether to search only for the no-param version (or also for supporting methods that match the parameter types of the action).<br></p>
+</div>
+<div class="paragraph">
+<p>If enabled then will not search for supporting methods with the exact set of arguments as the method it was supporting (and any supporting methods that have additional parameters will be treated as invalid).
+Note that this in effect means that <a href="rgcms.html#_rgcms_classes_mixins">mixins</a> must be used instead of <a href="ugbtb.html#_ugbtb_decoupling_contributions">contributed services</a>.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>isis.reflector.validator.</code><br>
+<code>serviceActionsOnly</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code>,<code>false</code><br>
+(<code>false</code>)</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>(<code>1.14.0-SNAPSHOT</code>) Domain services are stateless (at least conceptually) and so should not have any properties or collections; any that are defined will not be rendered by the viewers.<br></p>
+</div>
+<div class="paragraph">
+<p>If enabled, this configuration property will ensure that domain services only declare actions.</p>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_rgcfg_configuring-core_other">5.6. Other Config Properties</h3>
+<table class="tableblock frame-all grid-all spread">
+<caption class="title">Table 9. Other Core Configuration Properties</caption>
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 16.6666%;">
+<col style="width: 50.0001%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Property</th>
+<th class="tableblock halign-left valign-top">Value<br>
+(default value)</th>
+<th class="tableblock halign-left valign-top">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
 <p><code>isis.objects.</code><br>
 <code>editing</code></p>
 </div></div></td>
@@ -1699,7 +1859,8 @@ If the setting is changed to disabled then this may reduce application start-up
 <tr>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
 <p><code>isis.persistor.</code><br>
-<code>disableConcurrencyChecking</code></p>
+<code>disable</code><br>
+<code>ConcurrencyChecking</code></p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code>,<code>false</code><br>
 (<code>false</code>)</p></td>
@@ -1825,34 +1986,6 @@ See <a href="ugbtb.html#_ugbtb_programming-model_finetuning">finetuning the prog
 </tr>
 <tr>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p><code>isis.reflector.validator</code></p>
-</div></div></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FQCN</code></p></td>
-<td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p>Custom implementation of <code>MetaModelValidator</code> (in the <code>org.apache.isis.core.metamodel.specloader.validator</code> package)<br></p>
-</div>
-<div class="paragraph">
-<p>See <a href="ugbtb.html#_ugbtb_programming-model_custom-validator">Custom Validator</a> to learn more.</p>
-</div></div></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p><code>isis.reflector.validator.</code><br>
-<code>allowDeprecated</code></p>
-</div></div></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code>,<code>false</code><br>
-(<code>true</code>)</p></td>
-<td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p>Whether deprecated annotations or naming conventions are tolerated or not.
-If not, then a metamodel validation error will be triggered, meaning the app won&#8217;t boot (fail-fast).<br></p>
-</div>
-<div class="paragraph">
-<p>+
-See also <code>isis.reflector.facets.ignoreDeprecated</code>.</p>
-</div></div></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><div><div class="paragraph">
 <p><code>isis.viewers.</code><br>
 <code>paged.parented</code></p>
 </div></div></td>
@@ -1885,7 +2018,7 @@ See also <code>isis.reflector.facets.ignoreDeprecated</code>.</p>
 </tbody>
 </table>
 <div class="sect3">
-<h4 id="_rgcfg_configuring-core_filterVisibility">5.5.1. Filtering visibility</h4>
+<h4 id="_rgcfg_configuring-core_filterVisibility">5.6.1. Filtering visibility</h4>
 <div class="paragraph">
 <p>The framework provides the <code>isis.reflector.facet.filterVisibility</code> configuration property that influences whether a returned object is visible to the end-user:</p>
 </div>
@@ -1965,7 +2098,7 @@ This could conceivably have a performance impact in some cases.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rgcfg_configuring-core_isis-objects-editing">5.5.2. <code>objects.editing</code></h4>
+<h4 id="_rgcfg_configuring-core_isis-objects-editing">5.6.2. <code>objects.editing</code></h4>
 <div class="paragraph">
 <p>This configuration property in effect allows editing to be disabled globally for an application:</p>
 </div>
@@ -1979,7 +2112,7 @@ This could conceivably have a performance impact in some cases.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rgcfg_configuring-core_isis-viewers-propertyLayout-labelPosition">5.5.3. <code>propertyLayout.labelPosition</code></h4>
+<h4 id="_rgcfg_configuring-core_isis-viewers-propertyLayout-labelPosition">5.6.3. <code>propertyLayout.labelPosition</code></h4>
 <div class="paragraph">
 <p>If you want a consistent look-n-feel throughout the app, eg all property labels to the top, then it&#8217;d be rather frustrating to have to annotate every property.</p>
 </div>
@@ -2048,11 +2181,12 @@ At the time of writing, this means labels are to the left for all datatypes exce
 <li><a href="#_rgcfg_configuring-core_lifecycle-events">5.2. Lifecycle Events</a></li>
 <li><a href="#_rgcfg_configuring-core_ui-events">5.3. UI Events</a></li>
 <li><a href="#_rgcfg_configuring-core_services">5.4. Services</a></li>
-<li><a href="#_rgcfg_configuring-core_other">5.5. Other Config Properties</a>
+<li><a href="#_rgcfg_configuring-core_metamodel-validation">5.5. MetaModel Validation</a></li>
+<li><a href="#_rgcfg_configuring-core_other">5.6. Other Config Properties</a>
 <ul class="sectlevel3">
-<li><a href="#_rgcfg_configuring-core_filterVisibility">5.5.1. Filtering visibility</a></li>
-<li><a href="#_rgcfg_configuring-core_isis-objects-editing">5.5.2. <code>objects.editing</code></a></li>
-<li><a href="#_rgcfg_configuring-core_isis-viewers-propertyLayout-labelPosition">5.5.3. <code>propertyLayout.labelPosition</code></a></li>
+<li><a href="#_rgcfg_configuring-core_filterVisibility">5.6.1. Filtering visibility</a></li>
+<li><a href="#_rgcfg_configuring-core_isis-objects-editing">5.6.2. <code>objects.editing</code></a></li>
+<li><a href="#_rgcfg_configuring-core_isis-viewers-propertyLayout-labelPosition">5.6.3. <code>propertyLayout.labelPosition</code></a></li>
 </ul>
 </li>
 </ul>