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/09/18 07:30:41 UTC

[09/51] [partial] isis-site git commit: ISIS-1899: republishes 1.16.2 docs

http://git-wip-us.apache.org/repos/asf/isis-site/blob/dd05aaf7/content/versions/1.16.2/guides/ad/_images/metamodel.png
----------------------------------------------------------------------
diff --git a/content/versions/1.16.2/guides/ad/_images/metamodel.png b/content/versions/1.16.2/guides/ad/_images/metamodel.png
new file mode 100644
index 0000000..f4bfc85
Binary files /dev/null and b/content/versions/1.16.2/guides/ad/_images/metamodel.png differ

http://git-wip-us.apache.org/repos/asf/isis-site/blob/dd05aaf7/content/versions/1.16.2/guides/ad/ad.html
----------------------------------------------------------------------
diff --git a/content/versions/1.16.2/guides/ad/ad.html b/content/versions/1.16.2/guides/ad/ad.html
new file mode 100644
index 0000000..7da484e
--- /dev/null
+++ b/content/versions/1.16.2/guides/ad/ad.html
@@ -0,0 +1,1023 @@
+<!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>Architecture and Design</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;">
+   ad
+  </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="https://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="https://www.apache.org/">Apache Homepage</a></li> 
+        <li><a href="https://www.apache.org/events/current-event">Events</a></li> 
+        <li><a href="https://www.apache.org/licenses/">Licenses</a></li> 
+        <li><a href="https://www.apache.org/security/">Security</a></li> 
+        <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> 
+        <li><a href="https://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">v1.16.2</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="ad.pdf"><img src="../../images/PDF-50.png"></a></span> 
+     <div class="page-title"> 
+      <h1>Architecture and Design</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/ad/ad.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/ad/ad.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/ad/ad.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/ad/ad.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/ad/ad.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+       </ul>
+      </div> 
+      <div id="preamble"> 
+       <div class="sectionbody"> 
+        <div class="paragraph"> 
+         <p>This guide describes the internal architecture and design of the framework.</p> 
+        </div> 
+       </div> 
+      </div> 
+      <div class="sect1"> 
+       <h2 id="__ad_modules">1. Maven modules</h2> 
+       <div class="sectionbody"> 
+        <div class="listingblock"> 
+         <div class="content"> 
+          <pre>adocs/
+├── documentation/
+└── template/
+core/               # see 'core', below
+example/            # see 'archetypes', below
+scripts/</pre> 
+         </div> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="_core">1.1. core</h3> 
+         <div class="paragraph"> 
+          <p>The core modules …​.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>All of these have the same Maven <code>groupId</code>, namely <code>org.apache.isis.core</code>.</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre>core/
+├── .m2/                              # used in gitlab CI
+├── applib/                           # isis-core-applib
+├── commons/                          # isis-core-commons
+├── integtestsupport/                 # isis-core-integtestsupport
+├── log4j/                            # isis-core-log4j
+├── maven-plugin/                     # see 'maven plugins', below
+├── mavendeps/                        # see 'mavendeps', below
+├── runtime/                          # isis-core-runtime
+├── schema/                           # isis-core-schema
+├── security/                         # isis-core-security
+├── security-shiro/                   # isis-core-security-shiro
+├── specsupport/                      # isis-core-specsupport
+├── unittestsupport/                  # isis-core-unittestsupport
+├── unittestsupport-test/             # isis-core-unittestsupport-test
+├── viewer-restfulobjects-applib/     # isis-core-viewer-restfulobjects-applib
+├── viewer-restfulobjects-rendering/  # isis-core-viewer-restfulobjects-rendering
+├── viewer-restfulobjects-server/     # isis-core-viewer-restfulobjects-server
+├── viewer-wicket-applib/             # isis-core-viewer-wicket-applib
+├── viewer-wicket-impl/               # isis-core-viewer-wicket-impl
+├── viewer-wicket-model/              # isis-core-viewer-wicket-model
+├── viewer-wicket-ui/                 # isis-core-viewer-wicket-ui
+├── webdocker/                        # isis-webdocker
+├── webserver/                        # isis-core-webserver
+└── wrapper/                          # isis-core-wrapper</pre> 
+          </div> 
+         </div> 
+         <table class="tableblock frame-all grid-all spread"> 
+          <caption class="title">
+           Table 1. core maven modules
+          </caption> 
+          <colgroup> 
+           <col style="width: 33.3333%;"> 
+           <col style="width: 66.6667%;"> 
+          </colgroup> 
+          <thead> 
+           <tr> 
+            <th class="tableblock halign-left valign-top">Module</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-core-applib</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Core application library.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-integtestsupport</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Integration test support. Application integration tests typically extend from adapter superclasses defined in this module.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-log4j</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Configures Log4j as the logging framework</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-metamodel</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>The classes that make up the metamodel which is used to render the UI.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>See the <a href="#__ad_metamodel">section below</a> which also includes a simplified UML diagram of these classes.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-runtime</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>The classes that make up runtime management and persistence of domain objects, as well as framework for security (concepts of authentication or authorisation).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-schema</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Defines XSDs and generated classes that capture commands and interactions in XML form.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-security</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Defines a "bypass" implementation of security, for prototyping only.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>Using this implementation, any user/password is accepted and</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-security-shiro</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Defines an implementation of security authentication which delegates to Apache Shiro.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-specsupport</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Application BDD specs typically inherit from classes defined in this module.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-unittestsupport</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Application unit tests may use some of the utilities defined in this module.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-viewer-restfulobjects-applib</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Defines a client-side Java library for interacting with the REST API exposed by the Restful Objects viewer.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-viewer-restfulobjects-rendering</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Provides a <code>RepresentationService</code> API and a lower-level <code>ContentNegotiationService</code> API, along with implementations of each.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>These implementations provide support for the representations defined by Restful Objects spec v1.0, as well as a number of other Apache Isis-specific representations.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-viewer-restfulobjects-server</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Defines the JAX-RS resources supported by the Restful Objects viewer.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>These parse the input, delegate to the runtime for a response, and hand control to the rendering module to generate a representation.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-viewer-wicket-applib</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Currently just defines <code>WicketDeveloperUtilitiesService</code>, for clearing the cache.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-viewer-wicket-impl</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>The top-level integration with Wicket, for example defining the Apache Isis-specific implementations/subclasses of the Wicket APIs for application, web session, localizer and request cycle.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>Also defines registries of pages and components, as well as a number of domain services and mixins (for use by applications) that are only available within the Wicket viewer.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-viewer-wicket-model</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Serializable mementos representing the state of runtime domain objects (or their individual members).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-viewer-wicket-ui</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>UI components that render the moduls.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-webserver</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>For development within an IDE, provides a utility class to bootstrap the application (using Jetty).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-core-wrapper</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Provides an implementation of the <code>WrapperFactory</code> domain service.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+          </tbody> 
+         </table> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="_core_mavendeps">1.2. core/mavendeps</h3> 
+         <div class="paragraph"> 
+          <p>The <code>core/mavendeps</code> modules …​</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>All of these have the same Maven <code>groupId</code>, namely <code>org.apache.isis.mavendeps</code>.</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="title">
+           mavendeps Modules
+          </div> 
+          <div class="content"> 
+           <pre>core
+└── mavendeps/
+    ├── isis-mavendeps-intellij/    # isis-mavendeps-intellij
+    ├── isis-mavendeps-testing/     # isis-mavendeps-testing
+    └── isis-mavendeps-webapp/      # isis-mavendeps-webapp</pre> 
+          </div> 
+         </div> 
+         <table class="tableblock frame-all grid-all spread"> 
+          <caption class="title">
+           Table 2. core/mavendeps maven modules
+          </caption> 
+          <colgroup> 
+           <col style="width: 33.3333%;"> 
+           <col style="width: 66.6667%;"> 
+          </colgroup> 
+          <thead> 
+           <tr> 
+            <th class="tableblock halign-left valign-top">Module</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-mavendeps-intellij</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Defunct.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-mavendeps-testing</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Aggregates dependencies on various test-scope plugins useful for unit- and integration testing a module. These include Apache Isis' own <code>unittestsupport</code>, <code>integtestsupport</code> and <code>specsupport</code> modules, as well as a number of common testing/mocking/assertion libraries.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>These can then be included using a single dependency declaration:</p> 
+              </div> 
+              <div class="listingblock"> 
+               <div class="content"> 
+                <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;dependencies&gt;</span>
+  <span class="tag">&lt;dependency&gt;</span>
+    <span class="tag">&lt;groupId&gt;</span>org.apache.isis.mavendeps<span class="tag">&lt;/groupId&gt;</span>
+    <span class="tag">&lt;artifactId&gt;</span>isis-mavendeps-testing<span class="tag">&lt;/artifactId&gt;</span>
+    <span class="tag">&lt;type&gt;</span>pom<span class="tag">&lt;/type&gt;</span>
+    <span class="tag">&lt;scope&gt;</span>test<span class="tag">&lt;/scope&gt;</span>
+  <span class="tag">&lt;/dependency&gt;</span>
+<span class="tag">&lt;/dependencies&gt;</span></code></pre> 
+               </div> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>isis-mavendeps-webapp</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Aggregates dependencies on Apache Isis runtime itself when used within a webapp.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>These can then be included using a single dependency declaration:</p> 
+              </div> 
+              <div class="listingblock"> 
+               <div class="content"> 
+                <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;dependencies&gt;</span>
+  <span class="tag">&lt;dependency&gt;</span>
+    <span class="tag">&lt;groupId&gt;</span>org.apache.isis.mavendeps<span class="tag">&lt;/groupId&gt;</span>
+    <span class="tag">&lt;artifactId&gt;</span>isis-mavendeps-webapp<span class="tag">&lt;/artifactId&gt;</span>
+    <span class="tag">&lt;type&gt;</span>pom<span class="tag">&lt;/type&gt;</span>
+  <span class="tag">&lt;/dependency&gt;</span>
+<span class="tag">&lt;/dependencies&gt;</span></code></pre> 
+               </div> 
+              </div>
+             </div></td> 
+           </tr> 
+          </tbody> 
+         </table> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="_core_mavenplugins">1.3. core/mavenplugins</h3> 
+         <div class="paragraph"> 
+          <p>There is a single Maven plugin module. Its Maven <code>groupId</code> is <code>org.apache.isis.tools</code>.</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="title">
+           Plugin Modules
+          </div> 
+          <div class="content"> 
+           <pre>core/
+└── maven-plugin/                # isis-maven-plugin</pre> 
+          </div> 
+         </div> 
+         <table class="tableblock frame-all grid-all spread"> 
+          <colgroup> 
+           <col style="width: 33.3333%;"> 
+           <col style="width: 66.6667%;"> 
+          </colgroup> 
+          <thead> 
+           <tr> 
+            <th class="tableblock halign-left valign-top">Module</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-maven-plugin</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Code to build a maven plugin for the build. This plugin can validate the metamodel and generate Swagger specs for a domain model as part of the application’s build pipeline.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+          </tbody> 
+         </table> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="_archetypes">1.4. archetypes</h3> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre>example/
+├── application/
+│   ├── helloworld/     # org.apache.isis.example.application:helloworld
+│   └── simpleapp/      # org.apache.isis.example.application:simpleapp
+│       ├── application/   # org.apache.isis.example.application:simpleapp-application
+│       ├── module-simple/ # org.apache.isis.example.application:simpleapp-module-simple
+│       └── webapp/        # org.apache.isis.example.application:simpleapp-webapp
+└── archetype/
+    ├── helloworld/     # org.apache.isis.archetype:helloworld-archetype
+    └── simpleapp/      # org.apache.isis.archetype:simpleapp-archetype</pre> 
+          </div> 
+         </div> 
+         <table class="tableblock frame-all grid-all spread"> 
+          <colgroup> 
+           <col style="width: 33.3333%;"> 
+           <col style="width: 66.6667%;"> 
+          </colgroup> 
+          <thead> 
+           <tr> 
+            <th class="tableblock halign-left valign-top">Module</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>helloworld</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>An example application as a single Maven module, including domain classes themselves plus code to bootstrap Apache Isis.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>This is reverse engineered into the "helloworld" archetype.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>simpleapp</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>The top-level aggregator module for the "simpleapp" example application.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>This is an extended version of helloworld, providing more structure (separating out domain model into modules) as well as unit tests, integration tests, BDD specs and fixtures.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>The simpleapp modules in aggregate are reverse engineered into the "simpleapp" archetype.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>simpleapp-application</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Defines the contents of the "simpleapp" application using Apache Isis-defined classes, as well as globally scoped domain services and the home page.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>simpleapp-module-simple</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Contains the domain model for a single module.</p> 
+              </div> 
+              <div class="paragraph"> 
+               <p>The intention is to allow this module structure to be copied so that the developer can easily create further modules as their app increases in size.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>simpleapp-webapp</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Bootstraps Apache Isis as a webapp.</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>helloworld-archetype</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Helloworld archetype, reverse engineered from the "helloworld" application (above).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+           <tr> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p><code>simpleapp-archetype</code></p> 
+              </div>
+             </div></td> 
+            <td class="tableblock halign-left valign-top">
+             <div>
+              <div class="paragraph"> 
+               <p>Simpleapp archetype, reverse engineered from the "simpleapp" application (above).</p> 
+              </div>
+             </div></td> 
+           </tr> 
+          </tbody> 
+         </table> 
+        </div> 
+       </div> 
+      </div> 
+      <div class="sect1"> 
+       <h2 id="__ad_metamodel">2. Metamodel</h2> 
+       <div class="sectionbody"> 
+        <div class="paragraph"> 
+         <p>The diagram below shows a simplified version of Apache Isis' internal metamodel.</p> 
+        </div> 
+        <div class="imageblock"> 
+         <div class="content"> 
+          <img src="_images/metamodel.png" alt="metamodel" width="788" height="784"> 
+         </div> 
+        </div> 
+        <div class="paragraph"> 
+         <p>where in the <code>metamodel</code> package:</p> 
+        </div> 
+        <div class="dlist"> 
+         <dl> 
+          <dt class="hdlist1">
+           <code>ObjectSpecification</code>
+          </dt> 
+          <dd> 
+           <p>is equivalent to <code>java.lang.Class</code></p> 
+          </dd> 
+          <dt class="hdlist1">
+           <code>ObjectSpecId</code>
+          </dt> 
+          <dd> 
+           <p>is a value object equivalent to the <code>@DomainObject#objectType</code> or <code>@DomainService#objectType</code> attribute</p> 
+          </dd> 
+          <dt class="hdlist1">
+           <code>OneToOneAssociation</code>
+          </dt> 
+          <dd> 
+           <p>represents a scalar property</p> 
+          </dd> 
+          <dt class="hdlist1">
+           <code>OneToManyAssociation</code>
+          </dt> 
+          <dd> 
+           <p>represents a collection</p> 
+          </dd> 
+          <dt class="hdlist1">
+           <code>ObjectAction</code>
+          </dt> 
+          <dd> 
+           <p>represents an action (with multiple parameters, either scalar or list)</p> 
+          </dd> 
+         </dl> 
+        </div> 
+        <div class="paragraph"> 
+         <p>and in the <code>runtime</code> package:</p> 
+        </div> 
+        <div class="dlist"> 
+         <dl> 
+          <dt class="hdlist1">
+           <code>Oid</code>
+          </dt> 
+          <dd> 
+           <p>is equivalent to the applib <code>Bookmark</code></p> 
+           <div class="paragraph"> 
+            <p>and appears in URLs in the Wicket and Restful Objects viewers</p> 
+           </div> 
+          </dd> 
+          <dt class="hdlist1">
+           <code>ObjectAdapter</code>
+          </dt> 
+          <dd> 
+           <p>is equivalent to <code>java.lang.Object</code></p> 
+          </dd> 
+         </dl> 
+        </div> 
+       </div> 
+      </div> 
+     </div> 
+    </div> 
+    <div class="hidden-xs hidden-sm hidden-md col-lg-3"> 
+     <nav id="toc" data-spy="affix" data-toggle="toc"></nav> 
+    </div> 
+   </div> 
+  </div> 
+  <footer class="footer"> 
+   <div class="container"> 
+    <div class="row"> 
+     <p class="text-center small text-muted"> Copyright © 2010~2018 The Apache&nbsp;Software&nbsp;Foundation, licensed under the Apache&nbsp;License,&nbsp;v2.0. <br> Apache, the Apache feather logo, Apache&nbsp;Isis, and the Apache&nbsp;Isis project logo are all trademarks of The&nbsp;Apache&nbsp;Software&nbsp;Foundation. </p> 
+    </div> 
+   </div> 
+  </footer> 
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
+  <script src="../../js/bootstrap/3.3.7/bootstrap.min.js"></script> 
+  <script src="../../js/bootstrap-toc/0.4.1/bootstrap-toc.min.js"></script> 
+  <script src="../../js/slick/1.5.0/slick.min.js"></script> 
+  <script src="../../js/elasticlunr/elasticlunr.min.js"></script> 
+  <script src="../../js/sticky-header/sticky-header.js"></script> 
+  <script src="../../js/search-panel/search-panel.js"></script> 
+  <script src="../../js/header-link/header-link.js"></script> 
+  <script src="../../js/toc-scroll/toc-scroll.js"></script>  
+ </body>
+</html>