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/02/22 22:55:31 UTC

[07/52] [abbrv] [partial] isis-site git commit: ISIS-1813: publishing 1.16.1 second pass

http://git-wip-us.apache.org/repos/asf/isis-site/blob/97af7e5f/content/versions/SNAPSHOT/guides/rgcfg/rgcfg.html
----------------------------------------------------------------------
diff --git a/content/versions/SNAPSHOT/guides/rgcfg/rgcfg.html b/content/versions/SNAPSHOT/guides/rgcfg/rgcfg.html
new file mode 100644
index 0000000..152323c
--- /dev/null
+++ b/content/versions/SNAPSHOT/guides/rgcfg/rgcfg.html
@@ -0,0 +1,1828 @@
+<!doctype html>
+<html>
+ <head> 
+  <!--
+        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.
+    --> 
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
+  <meta charset="utf-8"> 
+  <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
+  <!-- No caching headers --> 
+  <meta http-equiv="cache-control" content="no-cache"> 
+  <meta http-equiv="pragma" content="no-cache"> 
+  <meta http-equiv="expires" content="-1"> 
+  <title>Core Config’n Properties</title> 
+  <link rel="icon" type="image/png" href="../../images/isis-favicon.png"> 
+  <!--
+        Based on DataNucleus' template,
+        that was in turn based on an earlier version of Apache Isis' template,
+        that was in turn based on Apache Deltaspike's template.
+
+        This template uses
+        * Bootstrap v3.3.7 (https://getbootstrap.com/) for navbar.
+        * Bootstrap TOC plugin v0.4.1 (https://afeld.github.io/bootstrap-toc/)
+          for the table of contents.
+        * jQuery (necessary for Bootstrap's JavaScript plugins)
+        * Font-Awesome for some icons used by Asciidoctor
+
+        Also:
+        * Bootswatch "flatly" theme for Bootstrap (https://bootswatch.com/flatly).
+        * slick.js (carousel)
+        * add a link to all headers (home-grown, adapted from blog posts)
+        * integration of elasticlunr.js (home-grown, adapted from blog posts)
+    --> 
+  <link href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.7/flatly/bootstrap.min.css" rel="stylesheet"> 
+  <link href="../../css/bootstrap-toc/0.4.1/bootstrap-toc.min.css" rel="stylesheet"> 
+  <link href="../../css/asciidoctor/foundation.css" rel="stylesheet"> 
+  <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet"> 
+  <link href="../../css/slick/1.5.0/slick.css" rel="stylesheet"> 
+  <link href="../../css/slick/1.5.0/slick-theme.css" rel="stylesheet"> 
+  <link href="../../css/search-panel/search-panel.css" rel="stylesheet"> 
+  <link href="../../css/header-links/header-links.css" rel="stylesheet"> 
+  <link href="../../css/sticky-header/sticky-header.css" rel="stylesheet"> 
+  <link href="../../css/customisations.css" rel="stylesheet"> 
+  <!-- Coderay syntax formatter --> 
+  <style type="text/css">
+        /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
+/*pre.CodeRay {background-color:#f7f7f8;}*/
+.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
+.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
+.CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
+table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
+table.CodeRay td{vertical-align: top;line-height:1.45}
+table.CodeRay td.line-numbers{text-align:right}
+table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
+table.CodeRay td.code{padding:0 0 0 .5em}
+table.CodeRay td.code>pre{padding:0}
+.CodeRay .debug{color:#fff !important;background:#000080 !important}
+.CodeRay .annotation{color:#007}
+.CodeRay .attribute-name{color:#000080}
+.CodeRay .attribute-value{color:#700}
+.CodeRay .binary{color:#509}
+.CodeRay .comment{color:#998;font-style:italic}
+.CodeRay .char{color:#04d}
+.CodeRay .char .content{color:#04d}
+.CodeRay .char .delimiter{color:#039}
+.CodeRay .class{color:#458;font-weight:bold}
+.CodeRay .complex{color:#a08}
+.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
+.CodeRay .color{color:#099}
+.CodeRay .class-variable{color:#369}
+.CodeRay .decorator{color:#b0b}
+.CodeRay .definition{color:#099}
+.CodeRay .delimiter{color:#000}
+.CodeRay .doc{color:#970}
+.CodeRay .doctype{color:#34b}
+.CodeRay .doc-string{color:#d42}
+.CodeRay .escape{color:#666}
+.CodeRay .entity{color:#800}
+.CodeRay .error{color:#808}
+.CodeRay .exception{color:inherit}
+.CodeRay .filename{color:#099}
+.CodeRay .function{color:#900;font-weight:bold}
+.CodeRay .global-variable{color:#008080}
+.CodeRay .hex{color:#058}
+.CodeRay .integer,.CodeRay .float{color:#099}
+.CodeRay .include{color:#555}
+.CodeRay .inline{color:#000}
+.CodeRay .inline .inline{background:#ccc}
+.CodeRay .inline .inline .inline{background:#bbb}
+.CodeRay .inline .inline-delimiter{color:#d14}
+.CodeRay .inline-delimiter{color:#d14}
+.CodeRay .important{color:#555;font-weight:bold}
+.CodeRay .interpreted{color:#b2b}
+.CodeRay .instance-variable{color:#008080}
+.CodeRay .label{color:#970}
+.CodeRay .local-variable{color:#963}
+.CodeRay .octal{color:#40e}
+.CodeRay .predefined{color:#369}
+.CodeRay .preprocessor{color:#579}
+.CodeRay .pseudo-class{color:#555}
+.CodeRay .directive{font-weight:bold}
+.CodeRay .type{font-weight:bold}
+.CodeRay .predefined-type{color:inherit}
+.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
+.CodeRay .key{color:#808}
+.CodeRay .key .delimiter{color:#606}
+.CodeRay .key .char{color:#80f}
+.CodeRay .value{color:#088}
+.CodeRay .regexp .delimiter{color:#808}
+.CodeRay .regexp .content{color:#808}
+.CodeRay .regexp .modifier{color:#808}
+.CodeRay .regexp .char{color:#d14}
+.CodeRay .regexp .function{color:#404;font-weight:bold}
+.CodeRay .string{color:#d20}
+.CodeRay .string .string .string{background:#ffd0d0}
+.CodeRay .string .content{color:#d14}
+.CodeRay .string .char{color:#d14}
+.CodeRay .string .delimiter{color:#d14}
+.CodeRay .shell{color:#d14}
+.CodeRay .shell .delimiter{color:#d14}
+.CodeRay .symbol{color:#990073}
+.CodeRay .symbol .content{color:#a60}
+.CodeRay .symbol .delimiter{color:#630}
+.CodeRay .tag{color:#008080}
+.CodeRay .tag-special{color:#d70}
+.CodeRay .variable{color:#036}
+.CodeRay .insert{background:#afa}
+.CodeRay .delete{background:#faa}
+.CodeRay .change{color:#aaf;background:#007}
+.CodeRay .head{color:#f8f;background:#505}
+.CodeRay .insert .insert{color:#080}
+.CodeRay .delete .delete{color:#800}
+.CodeRay .change .change{color:#66f}
+.CodeRay .head .head{color:#f4f}
+    </style> 
+ </head> 
+ <body data-spy="scroll" data-target="#toc"> 
+  <div id="basedir" style="display:none;">
+   ../../
+  </div> 
+  <div id="docname" style="display:none;">
+   rgcfg
+  </div> 
+  <div id="filetype" style="display:none;">
+   html
+  </div> 
+  <!-- Navbar --> 
+  <nav class="navbar navbar-default navbar-static-top header"> 
+   <div class="container"> 
+    <div class="navbar-header"> 
+     <!-- Three line menu button for use on mobile screens --> 
+     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> 
+     <a class="navbar-brand" href="../../index.html"> <img alt="Brand" src="../../images/isis-logo-48x48.png"> </a> 
+     <a class="navbar-brand" href="../../index.html">Apache Isis</a> 
+    </div> 
+    <!-- Navbar that will collapse on mobile screens --> 
+    <div id="navbar" class="navbar-collapse collapse"> 
+     <ul class="nav navbar-nav"> 
+      <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation<span class="caret"></span></a> 
+       <ul class="dropdown-menu"> 
+        <li><a href="../../documentation.html">Table of Contents</a></li> 
+        <li role="separator" class="divider"></li> 
+        <li class="dropdown-header">User Guides</li> 
+        <li><a href="../../guides/ugfun/ugfun.html">Fundamentals</a></li> 
+        <li><a href="../../guides/ugvw/ugvw.html">Wicket Viewer</a></li> 
+        <li><a href="../../guides/ugvro/ugvro.html">Restful Objects Viewer</a></li> 
+        <li><a href="../../guides/ugodn/ugodn.html">DataNucleus Object Store</a></li> 
+        <li><a href="../../guides/ugsec/ugsec.html">Security</a></li> 
+        <li><a href="../../guides/ugtst/ugtst.html">Testing</a></li> 
+        <li><a href="../../guides/ugbtb/ugbtb.html">Beyond the Basics</a></li> 
+        <li role="separator" class="divider"></li> 
+        <li class="dropdown-header">Reference Guides</li> 
+        <li><a href="../../guides/rgant/rgant.html">Annotations</a></li> 
+        <li><a href="../../guides/rgsvc/rgsvc.html">Domain Services</a></li> 
+        <li><a href="../../guides/rgcfg/rgcfg.html">Core Config' Properties</a></li> 
+        <li><a href="../../guides/rgcms/rgcms.html">Classes, Methods and Schema</a></li> 
+        <li><a href="../../guides/rgmvn/rgmvn.html">Maven plugin</a></li> 
+        <li><a href="../../guides/rgfis/rgfis.html">Framework Internal Services</a></li> 
+        <li role="separator" class="divider"></li> 
+        <li class="dropdown-header">Javadoc</li> 
+        <li><a href="http://javadoc.io/doc/org.apache.isis.core/isis-core-applib">Applib</a></li> 
+       </ul> </li> 
+      <li class="dropdown  hidden-sm hidden-md"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Downloads<span class="caret"></span></a> 
+       <ul class="dropdown-menu"> 
+        <li class="dropdown-header">Maven archetypes</li> 
+        <li><a href="../../guides/ugfun/ugfun.html#_ugfun_getting-started_helloworld-archetype">helloworld</a></li> 
+        <li><a href="../../guides/ugfun/ugfun.html#_ugfun_getting-started_simpleapp-archetype">simpleapp</a></li> 
+        <li role="separator" class="divider"></li> 
+        <li><a href="../../downloads.html">Downloads</a></li> 
+        <li><a href="../../release-notes/release-notes.html">Release Notes</a></li> 
+        <li><a href="../../migration-notes/migration-notes.html">Migration Notes</a></li> 
+        <li role="separator" class="divider"></li> 
+        <li><a href="https://github.com/apache/isis">Github mirror</a></li> 
+       </ul> </li> 
+      <li class="dropdown  hidden-sm"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Support<span class="caret"></span></a> 
+       <ul class="dropdown-menu"> 
+        <li class="dropdown-header">Guides</li> 
+        <li><a href="../../guides/dg/dg.html">Developers' Guide</a></li> 
+        <li><a href="../../guides/cgcom/cgcom.html">Committers' Guide</a></li> 
+        <li><a href="../../guides/htg.html">Hints-n-Tips Guide</a></li> 
+        <li role="separator" class="divider"></li> 
+        <li class="dropdown-header">Mailing Lists</li> 
+        <li><a href="../../support.html">How to subscribe</a></li> 
+        <li><a href="https://lists.apache.org/list.html?users@isis.apache.org">Archives (ASF Pony mail)</a></li> 
+        <li><a href="http://isis.markmail.org/search/?q=">Archives (Markmail)</a></li> 
+        <li role="separator" class="divider"></li> 
+        <li class="dropdown-header">Other Resources</li> 
+        <li><a href="https://issues.apache.org/jira/browse/ISIS">ASF JIRA</a></li> 
+        <li><a href="http://stackoverflow.com/questions/tagged/isis">Stack Overflow</a></li> 
+        <li><a href="../../help.html">Wiki, Fisheye etc.</a></li> 
+       </ul> </li> 
+      <li class="dropdown hidden-sm hidden-md"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">@ASF<span class="caret"></span></a> 
+       <ul class="dropdown-menu"> 
+        <li><a href="http://www.apache.org/">Apache Homepage</a></li> 
+        <li><a href="http://www.apache.org/licenses/">Licenses</a></li> 
+        <li><a href="http://www.apache.org/security/">Security</a></li> 
+        <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> 
+        <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> 
+        <li role="separator" class="divider"></li> 
+        <li><a href="https://whimsy.apache.org/board/minutes/Isis.html">PMC board minutes</a></li> 
+       </ul> </li> 
+     </ul> 
+     <div class="nav navbar-nav navbar-right"> 
+      <!-- 'style' added to fix height of input box. FIX THIS --> 
+      <form class="navbar-form" role="search" id="search-form" style="padding: 1px 15px;"> 
+       <div class="form-group"> 
+        <input class="form-control" id="search-field" type="text" size="30" placeholder="Search"> 
+       </div> 
+      </form> 
+     </div> 
+     <p class="nav navbar-text navbar-right small">v2.0.0-M1-SNAPSHOT</p> 
+    </div> 
+   </div> 
+  </nav> 
+  <div class="container"> 
+   <div class="row-fluid"> 
+    <div class="col-xs-12 col-sm-12 col-md-12 col-lg-9"> 
+     <div id="search-panel"> 
+      <div id="search-results"></div> 
+      <div> 
+       <br> 
+       <a href="#" id="search-results-clear">clear</a> 
+      </div> 
+     </div> 
+     <span class="pdf-link"><a href="rgcfg.pdf"><img src="../../images/PDF-50.png"></a></span> 
+     <div class="page-title"> 
+      <h1>Core Config’n Properties</h1> 
+     </div> 
+     <div id="doc-content">
+      <div class="btn-group" style="float: right; font-size: small; padding: 6px;  ">
+       <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/rgcfg.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
+       <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
+       <ul class="dropdown-menu">
+        <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/rgcfg.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
+        <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/rgcfg.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
+        <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/rgcfg.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
+        <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/rgcfg.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+       </ul>
+      </div> 
+      <div class="sect1"> 
+       <h2 id="__rgcfg">1. Configuration Properties</h2> 
+       <div class="sectionbody"> 
+        <div class="paragraph"> 
+         <p>Apache Isis' own configuration properties are simple key-value pairs, typically held in the <code>WEBINF/isis.properties</code> file and other related files. This guide describes how to configure an Apache Isis application.</p> 
+        </div> 
+        <div class="admonitionblock note"> 
+         <table> 
+          <tbody>
+           <tr> 
+            <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> 
+            <td class="content"> 
+             <div class="paragraph"> 
+              <p>This guide covers only the core configuration properties (relating to Apache Isis' metamodel and runtime management). Configuration properties for the viewers can be found in the <a href="../ugvw/ugvw.html">Wicket Viewer</a> guide and the <a href="../ugvro/ugvro.html">RestfulObjects viewer</a> guide. Likewise details of configuring security (Apache Shiro) can be found in the <a href="../ugsec/ugsec.html">Security</a> guide, and details for configuring the DataNucleus Object Store can be found in the <a href="../ugodn/ugodn.html">DataNucleus</a> guide.</p> 
+             </div> </td> 
+           </tr> 
+          </tbody>
+         </table> 
+        </div> 
+        <div class="admonitionblock tip"> 
+         <table> 
+          <tbody>
+           <tr> 
+            <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> 
+            <td class="content"> 
+             <div class="paragraph"> 
+              <p>By default the configuration values are part of the built WAR file. Details on how to override these configuration properties externally for different environments can be found in the <a href="../ugbtb/ugbtb.html#_ugbtb_deployment">Beyond the Basics</a> guide, (deployment chapter).</p> 
+             </div> </td> 
+           </tr> 
+          </tbody>
+         </table> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="_other_guides">1.1. Other Guides</h3> 
+         <div class="paragraph"> 
+          <p>Apache Isis documentation is broken out into a number of user, reference and "supporting procedures" guides.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>The user guides available are:</p> 
+         </div> 
+         <div class="ulist"> 
+          <ul> 
+           <li> <p><a href="../ugfun/ugfun.html">Fundamentals</a></p> </li> 
+           <li> <p><a href="../ugvw/ugvw.html">Wicket viewer</a></p> </li> 
+           <li> <p><a href="../ugvro/ugvro.html">Restful Objects viewer</a></p> </li> 
+           <li> <p><a href="../ugodn/ugodn.html">DataNucleus object store</a></p> </li> 
+           <li> <p><a href="../ugsec/ugsec.html">Security</a></p> </li> 
+           <li> <p><a href="../ugtst/ugtst.html">Testing</a></p> </li> 
+           <li> <p><a href="../ugbtb/ugbtb.html">Beyond the Basics</a></p> </li> 
+          </ul> 
+         </div> 
+         <div class="paragraph"> 
+          <p>The reference guides are:</p> 
+         </div> 
+         <div class="ulist"> 
+          <ul> 
+           <li> <p><a href="../rgant/rgant.html">Annotations</a></p> </li> 
+           <li> <p><a href="../rgsvc/rgsvc.html">Domain Services</a></p> </li> 
+           <li> <p><a href="../rgcfg/rgcfg.html">Configuration Properties</a> (this guide)</p> </li> 
+           <li> <p><a href="../rgcms/rgcms.html">Classes, Methods and Schema</a></p> </li> 
+           <li> <p><a href="../rgmvn/rgmvn.html">Apache Isis Maven plugin</a></p> </li> 
+           <li> <p><a href="../rgfis/rgfis.html">Framework Internal Services</a></p> </li> 
+          </ul> 
+         </div> 
+         <div class="paragraph"> 
+          <p>The remaining guides are:</p> 
+         </div> 
+         <div class="ulist"> 
+          <ul> 
+           <li> <p><a href="../dg/dg.html">Developers' Guide</a> (how to set up a development environment for Apache Isis and contribute back to the project)</p> </li> 
+           <li> <p><a href="../cgcom/cgcom.html">Committers' Guide</a> (release procedures and related practices)</p> </li> 
+          </ul> 
+         </div> 
+        </div> 
+       </div> 
+      </div> 
+      <div class="sect1"> 
+       <h2 id="_rgcfg_deployment-types">2. Deployment Types</h2>
+       <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
+        <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_deployment-types.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
+        <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
+        <ul class="dropdown-menu">
+         <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_deployment-types.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
+         <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_deployment-types.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
+         <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_deployment-types.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
+         <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_deployment-types.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+        </ul>
+       </div> 
+       <div class="sectionbody"> 
+        <div class="paragraph"> 
+         <p>Apache Isis distinguishes between the application being run in development mode vs running in production mode. The framework calls this the "deployment type" (corresponding internally to the <code>DeploymentType</code> class).</p> 
+        </div> 
+        <div class="paragraph"> 
+         <p>(For mostly historical reasons) development mode is actually called <code>SERVER_PROTOTYPE</code>, while production mode is called just <code>SERVER</code>. (There is also a deprecated mode called <code>SERVER_EXPLORATION</code>; for all intents and purposes this can considered as an alias of <code>SERVER_PROTOTYPE</code>).</p> 
+        </div> 
+        <div class="paragraph"> 
+         <p>When running in development/prototyping mode, certain capabilities are enabled; most notably any actions restricted to prototyping mode (using <a href="../rgant/rgant.html#_rgant-Action_restrictTo"><code>@Action#restrictTo()</code></a>) will be available.</p> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="_using_the_wicket_viewer">2.1. Using the Wicket Viewer</h3> 
+         <div class="paragraph"> 
+          <p>Most of the you’re likely to run Apache Isis using the <a href="../ugvw/ugvw.html">Wicket viewer</a>. In this case Apache Isis' "deployment type" concept maps to Wicket’s "configuration" concept:</p> 
+         </div> 
+         <table class="tableblock frame-all grid-all spread"> 
+          <caption class="title">
+           Table 1. Apache Isis' deployment type corresponds to Apache Wicket’s configuration
+          </caption> 
+          <colgroup> 
+           <col style="width: 25%;"> 
+           <col style="width: 25%;"> 
+           <col style="width: 50%;"> 
+          </colgroup> 
+          <thead> 
+           <tr> 
+            <th class="tableblock halign-left valign-top">Apache Isis<br> (Deployment Type)</th> 
+            <th class="tableblock halign-left valign-top">Apache Wicket<br> (Configuration)</th> 
+            <th class="tableblock halign-left valign-top">Notes</th> 
+           </tr> 
+          </thead> 
+          <tbody> 
+           <tr> 
+            <td class="tableblock halign-left valign-top"><p class="tableblock"><code>SERVER_PROTOTYPE</code></p></td> 
+            <td class="tableblock halign-left valign-top"><p class="tableblock"><code>development</code></p></td> 
+            <td class="tableblock halign-left valign-top"><p class="tableblock">running in development/prototyping mode</p></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top"><p class="tableblock"><code>SERVER</code></p></td> 
+            <td class="tableblock halign-left valign-top"><p class="tableblock"><code>deployment</code></p></td> 
+            <td class="tableblock halign-left valign-top"><p class="tableblock">running in production mode</p></td> 
+           </tr> 
+          </tbody> 
+         </table> 
+         <div class="paragraph"> 
+          <p>Wicket’s mechanism for specifying the "configuration" is to use a context parameter in <code>web.xml</code>; Apache Isis automatically infers its own deployment type from this. In other words:</p> 
+         </div> 
+         <div class="ulist"> 
+          <ul> 
+           <li> <p>to specify SERVER (production) mode, use:<br></p> 
+            <div class="listingblock"> 
+             <div class="title">
+              <code>web.xml</code>
+             </div> 
+             <div class="content"> 
+              <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;context-param&gt;</span>
+    <span class="tag">&lt;param-name&gt;</span>configuration<span class="tag">&lt;/param-name&gt;</span>
+    <span class="tag">&lt;param-value&gt;</span>deployment<span class="tag">&lt;/param-value&gt;</span>
+<span class="tag">&lt;/context-param&gt;</span></code></pre> 
+             </div> 
+            </div> </li> 
+           <li> <p>to specify <code>SERVER_PROTOTYPING</code> (development) mode, use:<br></p> 
+            <div class="listingblock"> 
+             <div class="title">
+              <code>web.xml</code>
+             </div> 
+             <div class="content"> 
+              <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;context-param&gt;</span>
+    <span class="tag">&lt;param-name&gt;</span>configuration<span class="tag">&lt;/param-name&gt;</span>
+    <span class="tag">&lt;param-value&gt;</span>development<span class="tag">&lt;/param-value&gt;</span>
+<span class="tag">&lt;/context-param&gt;</span></code></pre> 
+             </div> 
+            </div> </li> 
+          </ul> 
+         </div> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="_restful_objects_viewer_only">2.2. Restful Objects viewer only</h3> 
+         <div class="paragraph"> 
+          <p>Most Apache Isis applications will consist of at least the <a href="../ugvw/ugvw.html">Wicket viewer</a> and optionally the <a href="../ugvro/ugvro.html">RestfulObjects viewer</a>. When both viewers are deployed in the same app, then the bootstrapping is performed by Wicket, and so the deployment type is configured as described in the previous section.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>In some cases though you may be using Apache Isis to provide a REST API only, that is, you won’t have deployed the Wicket viewer. In these cases your app will be bootstrapped using Apache Isis' <a href="../ugbtb/ugbtb.html#__ugbtb_web-xml_servlet-context-listeners"> <code>IsisWebAppBootstrapper</code></a>.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>In this case the deployment type is specified through an Apache Isis-specific context parameter, called <code>isis.deploymentType</code>:</p> 
+         </div> 
+         <div class="ulist"> 
+          <ul> 
+           <li> <p>to specify <code>SERVER</code> (production) mode, use:<br></p> 
+            <div class="listingblock"> 
+             <div class="title">
+              <code>web.xml</code>
+             </div> 
+             <div class="content"> 
+              <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;context-param&gt;</span>
+    <span class="tag">&lt;param-name&gt;</span>isis.deploymentType<span class="tag">&lt;/param-name&gt;</span>
+    <span class="tag">&lt;param-value&gt;</span>server<span class="tag">&lt;/param-value&gt;</span>
+<span class="tag">&lt;/context-param&gt;</span></code></pre> 
+             </div> 
+            </div> </li> 
+           <li> <p>to specify <code>SERVER_PROTOTYPE</code> (development) mode, use:<br></p> 
+            <div class="listingblock"> 
+             <div class="title">
+              <code>web.xml</code>
+             </div> 
+             <div class="content"> 
+              <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;context-param&gt;</span>
+    <span class="tag">&lt;param-name&gt;</span>isis.deploymentType<span class="tag">&lt;/param-name&gt;</span>
+    <span class="tag">&lt;param-value&gt;</span>server-prototype<span class="tag">&lt;/param-value&gt;</span>
+<span class="tag">&lt;/context-param&gt;</span></code></pre> 
+             </div> 
+            </div> </li> 
+          </ul> 
+         </div> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="_overriding_the_deployment_type">2.3. Overriding the deployment type</h3> 
+         <div class="paragraph"> 
+          <p>If bootstrapping the application using Apache Isis' <a href="../ugbtb/ugbtb.html#_ugbtb_deployment_cmd-line"><code>org.apache.isis.WebServer</code></a> then it is possible to override the deployment type using the <code>-t</code> (or <code>--type</code>) flag.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>For example:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">java -jar ... org.apache.isis.WebServer -t SERVER</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>where "…​" is the (usually rather long) list of JAR files and class directories that will make up your application.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>This works for both the <a href="../ugvw/ugvw.html">Wicket viewer</a> and the <a href="../ugvro/ugvro.html">RestfulObjects viewer</a>.</p> 
+         </div> 
+        </div> 
+       </div> 
+      </div> 
+      <div class="sect1"> 
+       <h2 id="_rgcfg_configuration-files">3. Configuration Files</h2>
+       <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
+        <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuration-files.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
+        <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
+        <ul class="dropdown-menu">
+         <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuration-files.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
+         <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuration-files.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
+         <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuration-files.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
+         <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuration-files.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+        </ul>
+       </div> 
+       <div class="sectionbody"> 
+        <div class="paragraph"> 
+         <p>When running an Apache Isis webapp, configuration properties are read from configuration files held in the <code>WEB-INF</code> directory.</p> 
+        </div> 
+        <div class="paragraph"> 
+         <p>The <code>WEBINF/isis.properties</code> file is always read and must exist.</p> 
+        </div> 
+        <div class="paragraph"> 
+         <p>In addition, the following other properties are searched for and if present also read:</p> 
+        </div> 
+        <div class="ulist"> 
+         <ul> 
+          <li> <p><code>viewer_wicket.properties</code> - if the <a href="../ugvw/ugvw.html">Wicket viewer</a> is in use</p> </li> 
+          <li> <p><code>viewer_restfulobjects.properties</code> - if the <a href="../ugvro/ugvro.html">RestfulObjects viewer</a> is in use</p> </li> 
+          <li> <p><code>viewer.properties</code> - for any other viewer configuration (but there are none currently)</p> </li> 
+          <li> <p><code>persistor_datanucleus.properties</code> - assuming the JDO/DataNucleus objectstore is in use</p> </li> 
+          <li> <p><code>persistor.properties</code> - for any other objectstore configuration. <br></p> 
+           <div class="paragraph"> 
+            <p>This typically is used to hold <code>JDBC</code> <code>URL</code>s, which is arguably a slight violation of the file (because there’s nothing in Apache Isis to say that persistors have to use <code>JDBC</code>. However, it is generally convenient to put these <code>JDBC</code> settings into a single location. If you want, they could reside inin any of <code>persistor_datanucleus.properties</code>, <code>persistor.properties</code> or (even) <code>isis.properties</code></p> 
+           </div> </li> 
+          <li> <p><code>authentication_shiro.properties</code>, <code>authorization_shiro.properties</code></p> 
+           <div class="paragraph"> 
+            <p>assuming the Shiro Security is in use (but there are no security-related config properties currently; use shiro.ini for Shiro config)</p> 
+           </div> </li> 
+          <li> <p><code>authentication.properties</code>, <code>authorization.properties</code><br></p> 
+           <div class="paragraph"> 
+            <p>for any other security-related config properties (but there are none currently).</p> 
+           </div> </li> 
+         </ul> 
+        </div> 
+        <div class="paragraph"> 
+         <p>You can if you wish simply store all properties in the <code>isis.properties</code> file; but we think that breaking properties out into sections is preferable.</p> 
+        </div> 
+       </div> 
+      </div> 
+      <div class="sect1"> 
+       <h2 id="_rgcfg_specifying-components">4. Specifying components</h2>
+       <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
+        <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
+        <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
+        <ul class="dropdown-menu">
+         <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
+         <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
+         <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
+         <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_specifying-components.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+        </ul>
+       </div> 
+       <div class="sectionbody"> 
+        <div class="paragraph"> 
+         <p>Bootstrapping an Apache Isis application involves identifying both:</p> 
+        </div> 
+        <div class="ulist"> 
+         <ul> 
+          <li> <p>the major components (authentication, persistence mechanisms, viewers) of Apache Isis, and also</p> </li> 
+          <li> <p>specifying the domain services and persistent entities that make up the application itself.</p> </li> 
+         </ul> 
+        </div> 
+        <div class="paragraph"> 
+         <p>The recommended approach is to use an <a href="../rgcms/rgcms.html#_rgcms_classes_super_AppManifest"><code>AppManifest</code></a>, specified either programmatically or through the configuration properties. This allows the components, services and entities to be specified from a single class.</p> 
+        </div> 
+        <div class="paragraph"> 
+         <p>To specify the <code>AppManifest</code> as a configuration property, use:</p> 
+        </div> 
+        <table class="tableblock frame-all grid-all spread"> 
+         <caption class="title">
+          Table 2. Core Configuration Properties (ignored if 
+          <code>isis.appManifest</code> is present)
+         </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> (<em>default value</em>)</th> 
+           <th class="tableblock halign-left valign-top">Implements</th> 
+          </tr> 
+         </thead> 
+         <tbody> 
+          <tr> 
+           <td class="tableblock halign-left valign-top">
+            <div>
+             <div class="paragraph"> 
+              <p><code>isis.appManifest</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><code>o.a.i.applib.AppManifest</code><br></p> 
+             </div> 
+             <div class="paragraph"> 
+              <p>By convention this implementation resides in an <code>myapp-app</code> Maven module (as opposed to <code>myapp-dom</code> or <code>myapp-fixture</code>). See the <a href="../ugfun/ugfun.html#_ugfun_getting-started_simpleapp-archetype">SimpleApp archetype</a> for details.</p> 
+             </div>
+            </div></td> 
+          </tr> 
+         </tbody> 
+        </table> 
+        <div class="paragraph"> 
+         <p>From this the framework can determine the domain services, persistent entities and security (authentication and authorization) mechanisms to use. Other configuration (including fixtures) can also be specified this way.</p> 
+        </div> 
+        <div class="paragraph"> 
+         <p>In the <code>AppManifest</code> itself, there are two methods which specify how authentication and authorisation are configured:</p> 
+        </div> 
+        <div class="listingblock"> 
+         <div class="content"> 
+          <pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> <span class="type">interface</span> <span class="class">AppManifest</span> {
+    ...
+    String getAuthenticationMechanism();
+    <span class="predefined-type">String</span> getAuthorizationMechanism();
+    ...
+}</code></pre> 
+         </div> 
+        </div> 
+        <div class="paragraph"> 
+         <p>These can return either:</p> 
+        </div> 
+        <div class="ulist"> 
+         <ul> 
+          <li> <p>"shiro" - enable integration with Apache Shiro, as described in the <a href="../ugsec/ugsec.html">security</a> user guide</p> </li> 
+          <li> <p>"bypass" - bypass security (in effect, configure a no-op implementation that allows everything).</p> </li> 
+         </ul> 
+        </div> 
+        <div class="paragraph"> 
+         <p>Note that these are actually aliases for concrete implementations. It is also possible to specify a fully qualified class name to replace either of the two security components, implementing the appropriate interface.</p> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="_viewer_configuration">4.1. Viewer Configuration</h3> 
+         <div class="paragraph"> 
+          <p>Viewers are specified by way of the filters and servlets in the <a href="../ugbtb/ugbtb.html#_ugbtb_web-xml"><code>web.xml</code></a> file; these are not bootstrapped by the framework, rather it is the other way around.</p> 
+         </div> 
+        </div> 
+       </div> 
+      </div> 
+      <div class="sect1"> 
+       <h2 id="_rgcfg_configuring-core">5. Configuring Core</h2>
+       <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
+        <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
+        <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
+        <ul class="dropdown-menu">
+         <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
+         <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
+         <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
+         <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+        </ul>
+       </div> 
+       <div class="sectionbody"> 
+        <div class="paragraph"> 
+         <p>This section lists the core/runtime configuration properties recognized by Apache Isis.</p> 
+        </div> 
+        <div class="admonitionblock note"> 
+         <table> 
+          <tbody>
+           <tr> 
+            <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> 
+            <td class="content"> 
+             <div class="paragraph"> 
+              <p>Configuration properties for the JDO/DataNucleus objectstore can be found in the <a href="../ugodn/ugodn.html#_ugodn_configuring">Configuring DataNucleus</a> section later in this chapter, while configuration properties for the viewers can be found in the their respective chapters, <a href="../ugvw/ugvw.html#_ugvw_configuration-properties">here for Wicket viewer</a>, and <a href="../ugvro/ugvro.html#_ugvro_configuration-properties">here for the Restful Objects viewer</a>.</p> 
+             </div> </td> 
+           </tr> 
+          </tbody>
+         </table> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="__rgcfg_configuring-core_domain-events">5.1. Domain Events</h3> 
+         <table class="tableblock frame-all grid-all spread"> 
+          <caption class="title">
+           Table 3. Core Configuration Properties for Domain Events
+          </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.reflector.facet.</code><br> <code>actionAnnotation.</code><br> <code>domainEvent.postForDefault</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 an event should be posted if <a href="../rgant/rgant.html#_rgant-Action_domainEvent"><code>@Action#domainEvent()</code></a> is not specified (is set to <code>ActionDomainEvent.Default</code>).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.reflector.facet.</code><br> <code>collectionAnnotation.</code><br> <code>domainEvent.postForDefault</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 an event should be posted if <a href="../rgant/rgant.html#_rgant-Collection_domainEvent"><code>@Collection#domainEvent()</code></a> is not specified (is set to <code>CollectionDomainEvent.Default</code>).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.reflector.facet.</code><br> <code>propertyAnnotation.</code><br> <code>domainEvent.postForDefault</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 an event should be posted if <a href="../rgant/rgant.html#_rgant-Property_domainEvent"><code>@Property#domainEvent()</code></a> is not specified (is set to <code>PropertyDomainEvent.Default</code>).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+          </tbody> 
+         </table> 
+         <div class="admonitionblock tip"> 
+          <table> 
+           <tbody>
+            <tr> 
+             <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> 
+             <td class="content"> 
+              <div class="paragraph"> 
+               <p>In order for these events to fire the action/collection/propert must, at least, be configured with the relevant annotation (even if no attributes on that annotation are set).</p> 
+              </div> </td> 
+            </tr> 
+           </tbody>
+          </table> 
+         </div> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="__rgcfg_configuring-core_lifecycle-events">5.2. Lifecycle Events</h3> 
+         <table class="tableblock frame-all grid-all spread"> 
+          <caption class="title">
+           Table 4. Core Configuration Properties for Lifecycle Events
+          </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.reflector.facet.</code><br> <code>domainObjectAnnotation.</code><br> <code>createdLifecycleEvent.</code><br> <code>postForDefault</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 an event should be posted if <a href="../rgant/rgant.html#_rgant-DomainObject_createdLifecycleEvent"><code>@DomainObject#createdLifecycleEvent()</code></a> is not specified (is set to <code>ObjectCreatedEvent.Default</code>).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.reflector.facet.</code><br> <code>domainObjectAnnotation.</code><br> <code>loadedLifecycleEvent.</code><br> <code>postForDefault</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 an event should be posted if <a href="../rgant/rgant.html#_rgant-DomainObject_loadedLifecycleEvent"><code>@DomainObject#loadedLifecycleEvent()</code></a> is not specified (is set to <code>ObjectLoadedEvent.Default</code>).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.reflector.facet.</code><br> <code>domainObjectAnnotation.</code><br> <code>persistingLifecycleEvent.</code><br> <code>postForDefault</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 an event should be posted if <a href="../rgant/rgant.html#_rgant-DomainObject_persistingLifecycleEvent"><code>@DomainObject#persistingLifecycleEvent()</code></a> is not specified (is set to <code>ObjectPersistingEvent.Default</code>).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.reflector.facet.</code><br> <code>domainObjectAnnotation.</code><br> <code>persistedLifecycleEvent.</code><br> <code>postForDefault</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 an event should be posted if <a href="../rgant/rgant.html#_rgant-DomainObject_persistedLifecycleEvent"><code>@DomainObject#persistedLifecycleEvent()</code></a> is not specified (is set to <code>ObjectPersistedEvent.Default</code>).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.reflector.facet.</code><br> <code>domainObjectAnnotation.</code><br> <code>removingLifecycleEvent.</code><br> <code>postForDefault</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 an event should be posted if <a href="../rgant/rgant.html#_rgant-DomainObject_removingLifecycleEvent"><code>@DomainObject#removingLifecycleEvent()</code></a> is not specified (is set to <code>ObjectRemovingEvent.Default</code>).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.reflector.facet.</code><br> <code>domainObjectAnnotation.</code><br> <code>updatingLifecycleEvent.</code><br> <code>postForDefault</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 an event should be posted if <a href="../rgant/rgant.html#_rgant-DomainObject_updatingLifecycleEvent"><code>@DomainObject#updatingLifecycleEvent()</code></a> is not specified (is set to <code>ObjectUpdatingEvent.Default</code>).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.reflector.facet.</code><br> <code>domainObjectAnnotation.</code><br> <code>updatedLifecycleEvent.</code><br> <code>postForDefault</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 an event should be posted if <a href="../rgant/rgant.html#_rgant-DomainObject_updatedLifecycleEvent"><code>@DomainObject#updatedLifecycleEvent()</code></a> is not specified (is set to <code>ObjectUpdatedEvent.Default</code>).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+          </tbody> 
+         </table> 
+         <div class="admonitionblock tip"> 
+          <table> 
+           <tbody>
+            <tr> 
+             <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> 
+             <td class="content"> 
+              <div class="paragraph"> 
+               <p>In order for these events to fire the class must be annotated using <code>@DomainObject</code> (even if no attributes on that annotation are set).</p> 
+              </div> </td> 
+            </tr> 
+           </tbody>
+          </table> 
+         </div> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="__rgcfg_configuring-core_ui-events">5.3. UI Events</h3> 
+         <table class="tableblock frame-all grid-all spread"> 
+          <caption class="title">
+           Table 5. Core Configuration Properties for UI Events
+          </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.reflector.facet.</code><br> <code>domainObjectLayoutAnnotation.</code><br> <code>cssClassUiEvent.postForDefault</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 an event should be posted if <a href="../rgant/rgant.html#_rgant-DomainObjectLayout_cssClassUiEvent"><code>@DomainObjectLayout#cssClassUiEvent()</code></a> is not specified (is set to <code>CssClassUiEvent.Default</code>).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.reflector.facet.</code><br> <code>domainObjectLayoutAnnotation.</code><br> <code>iconUiEvent.postForDefault</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 an event should be posted if <a href="../rgant/rgant.html#_rgant-DomainObjectLayout_iconUiEvent"><code>@DomainObjectLayout#iconUiEvent()</code></a> is not specified (is set to <code>IconUiEvent.Default</code>).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.reflector.facet.</code><br> <code>domainObjectLayoutAnnotation.</code><br> <code>titleUiEvent.postForDefault</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 an event should be posted if <a href="../rgant/rgant.html#_rgant-DomainObjectLayout_titleUiEvent"><code>@DomainObjectLayout#titleUiEvent()</code></a> is not specified (is set to <code>TitleUiEvent.Default</code>).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+          </tbody> 
+         </table> 
+         <div class="admonitionblock tip"> 
+          <table> 
+           <tbody>
+            <tr> 
+             <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> 
+             <td class="content"> 
+              <div class="paragraph"> 
+               <p>In order for these events to fire the class must be annotated using <code>@DomainObjectLayout</code> (even if no attributes on that annotation are set).</p> 
+              </div> </td> 
+            </tr> 
+           </tbody>
+          </table> 
+         </div> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="__rgcfg_configuring-core_services">5.4. Services</h3> 
+         <table class="tableblock frame-all grid-all spread"> 
+          <caption class="title">
+           Table 6. Core Configuration Properties for Services
+          </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.services</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top"><p class="tableblock"><code>FQCN</code>,<code>FQCN2</code>,…​</p></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>NO LONGER REQUIRED; replaced by <a href="../rgcms/rgcms.html#_rgcms_classes_super_AppManifest"><code>AppManifest</code></a>.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>(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).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.services.</code><br> <code>audit.</code><br> <code>objects</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top"><p class="tableblock"><code>all</code>, <code>none</code><br> (<code>all</code>)</p></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Whether the changed properties of objects should be automatically audited (for objects annotated with <a href="../rgant/rgant.html#_rgant-DomainObject_auditing"><code>@DomainObject(auditing=Auditing.AS_CONFIGURED)</code></a>.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.services.</code><br> <code>command.</code><br> <code>actions</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top"><p class="tableblock"><code>all</code>, <code>ignoreSafe</code>, <code>none</code> (<code>none</code>)</p></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Whether action invocations should be automatically reified into commands (for actions annotated with <a href="../rgant/rgant.html#_rgant-Action_command"><code>@Action(command=CommandReification.AS_CONFIGURED)</code></a>. <br></p> 
+              </div> 
+              <div class="paragraph"> 
+               <p><code>ignoreQueryOnly</code> is an alias for <code>ignoreSafe</code>.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.services.</code><br> <code>command.</code><br> <code>properties</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top"><p class="tableblock"><code>all</code>, <code>none</code> (<code>none</code>)</p></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>(Whether property edits should be automatically reified into commands (for properties annotated with <a href="../rgant/rgant.html#_rgant-Property_command"><code>@Property(command=CommandReification.AS_CONFIGURED)</code></a>. <br></p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.services.</code><br> <code>injector.</code><br> <code>injectPrefix</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>(Whether the framework should support <code>inject…​()</code> as a prefix for injecting domain services into other domain objects.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>+ By default this is disabled. This can help reduce application start-up times.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.services.</code><br> <code>injector.</code><br> <code>setPrefix</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 the framework should support <code>set…​()</code> as a prefix for injecting domain services into other domain objects.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>+ By default this is enabled (no change in <code>1.13.0</code>). If the setting is changed to disabled then this may reduce application start-up times.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.services.</code><br> <code>publish.</code><br> <code>objects</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top"><p class="tableblock"><code>all</code>, <code>none</code><br> (<code>all</code>)</p></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Whether changed objects should be automatically published (for objects annotated with <a href="../rgant/rgant.html#_rgant-DomainObject_publishing"><code>@DomainObject(publishing=Publishing.AS_CONFIGURED)</code></a>.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.services.</code><br> <code>publish.</code><br> <code>actions</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top"><p class="tableblock"><code>all</code>, <code>ignoreSafe</code>, <code>none</code> (<code>none</code>)</p></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Whether actions should be automatically published (for actions annotated with <a href="../rgant/rgant.html#_rgant-Action_publishing"><code>@Action(publishing=Publishing.AS_CONFIGURED)</code></a>.<br></p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.services.</code><br> <code>publish.</code><br> <code>properties</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top"><p class="tableblock"><code>all</code>, <code>none</code> (<code>none</code>)</p></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Whether properties should be automatically published (for properties annotated with <a href="../rgant/rgant.html#_rgant-Action_publishing"><code>@Property(publishing=Publishing.AS_CONFIGURED)</code></a>.<br></p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis.services.</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> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>NO LONGER REQUIRED; replaced by <a href="../rgcms/rgcms.html#_rgcms_classes_super_AppManifest"><code>AppManifest</code></a>.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>(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).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+          </tbody> 
+         </table> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="__rgcfg_configuring-core_metamodel-validation">5.5. MetaModel Validation</h3> 
+         <table class="tableblock frame-all grid-all spread"> 
+          <caption class="title">
+           Table 7. Metamodel Validation
+          </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.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/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>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’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>checkModuleExtent</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 to check that all domain objects discovered reside under the top-level module of the app manifest.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>Note that the application must be bootstrapped using an <code>AppManifest2</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>ensureUniqueObjectTypes</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 to ensure that all classes in the metamodel map to a different object type (typically either as explicitly specified using <code>@DomainObject(objectType=…​)</code>, or their class name as a fallback).</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>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’s concrete class; it is one part of the object’s OID and can be seen in the URLs of the <a href="../ugvw/ugvw.html">Wicket viewer</a> and <a href="../ugvro/ugvro.html">Restful Objects viewer</a>, and is encoded in the <code>Bookmark</code>s returned by the <a href="../rgsvc/rgsvc.html#_rgsvc_integration-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>jaxbViewModel</code><br> <code>NotAbstract</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>Ensures that all <a href="../ugfun/ugfun.html#_ugfun_programming-model_view-models_jaxb">JAXB view model</a>s are not <code>abstract</code> (so can be instantiated).</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>jaxbViewModel</code><br> <code>NotInnerClass</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>Ensures that all <a href="../ugfun/ugfun.html#_ugfun_programming-model_view-models_jaxb">JAXB view model</a>s are not inner classes (so can be instantiated).</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>jaxbViewModel</code><br> <code>NoArgConstructor</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>Ensures that all <a href="../ugfun/ugfun.html#_ugfun_programming-model_view-models_jaxb">JAXB view model</a>s have a <code>public</code> no-arg constructor.<br></p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>This isn’t actually required (hence not enabled by default) but is arguably good practice.</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>jaxbViewModel</code><br> <code>ReferenceTypeAdapter</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>Ensures that for all <a href="../ugfun/ugfun.html#_ugfun_programming-model_view-models_jaxb">JAXB view model</a>s with properties that reference persistent entities, that those entities are annotated with <code>@XmlJavaTypeAdapter</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>jaxbViewModel</code><br> <code>DateTimeTypeAdapter</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>Ensures that for all <a href="../ugfun/ugfun.html#_ugfun_programming-model_view-models_jaxb">JAXB view model</a>s with properties that are dates or times, that those properties are annotated with <code>@XmlJavaTypeAdapter</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>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>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>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>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>When searching for <a href="../rgcms/rgcms.html#_rgcms_methods_prefixes_disable"><code>disableXxx()</code></a> or <a href="../rgcms/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="../ugfun/ugfun.html#_ugfun_building-blocks_types-of-domain-objects_mixins">mixins</a> must be used instead of <a href="../ugfun/ugfun.html#_ugfun_programming-model_domain-services_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>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 class="paragraph"> 
+          <p>Also:</p> 
+         </div> 
+         <table class="tableblock frame-all grid-all spread"> 
+          <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.reflector.facet

<TRUNCATED>