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 2015/09/17 11:17:19 UTC
isis-site git commit: ISIS-1195: documentation for maven plugin,
minor corrections
Repository: isis-site
Updated Branches:
refs/heads/asf-site 4a655c63b -> 3a9128211
ISIS-1195: documentation for maven plugin, minor corrections
Project: http://git-wip-us.apache.org/repos/asf/isis-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis-site/commit/3a912821
Tree: http://git-wip-us.apache.org/repos/asf/isis-site/tree/3a912821
Diff: http://git-wip-us.apache.org/repos/asf/isis-site/diff/3a912821
Branch: refs/heads/asf-site
Commit: 3a9128211fb325394e0c14a0df2da637c40c07fc
Parents: 4a655c6
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 17 10:11:49 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 17 10:11:49 2015 +0100
----------------------------------------------------------------------
content/documentation.html | 10 +-
content/guides/cg.html | 335 ++++++++++++++++++-
.../run-debug-configuration-single-module.png | Bin 0 -> 44274 bytes
content/guides/ug.html | 4 +-
content/support.html | 12 +-
5 files changed, 345 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis-site/blob/3a912821/content/documentation.html
----------------------------------------------------------------------
diff --git a/content/documentation.html b/content/documentation.html
index ff1de2a..2d68fa2 100644
--- a/content/documentation.html
+++ b/content/documentation.html
@@ -669,10 +669,10 @@ table.CodeRay td.code>pre{padding:0}
<p><a href="./guides/cg.html#_cg_contributing">Contributing patches</a> (pull requests)</p>
</li>
<li>
-<p><a href="./guides/cg.html#_cg_committers_cutting-a-release">Cutting a release</a></p>
+<p><a href="./guides/cg.html#_cg_isis-maven-plugin">Isis Maven plugin</a></p>
</li>
<li>
-<p><a href="./guides/cg.html#_cg_committers_verifying-releases">Verifying a release</a></p>
+<p><a href="./guides/cg.html#_cg_committers_cutting-a-release">Cutting a release</a> ; <a href="./guides/cg.html#_cg_committers_verifying-releases">Verifying a release</a></p>
</li>
</ul>
</div></div></td>
@@ -701,6 +701,12 @@ table.CodeRay td.code>pre{padding:0}
<li>
<p><a href="http://github.com/isisaddons/isis-app-kitchensink">Kitchensink App</a> (not ASF)</p>
</li>
+<li>
+<p><a href="http://github.com/isisaddons/isis-app-neoapp">Neo4J Example App</a> (not ASF)</p>
+</li>
+<li>
+<p><a href="http://github.com/isisaddons/isis-app-simpledsl">Isis DSL Example App</a> (not ASF)</p>
+</li>
</ul>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
http://git-wip-us.apache.org/repos/asf/isis-site/blob/3a912821/content/guides/cg.html
----------------------------------------------------------------------
diff --git a/content/guides/cg.html b/content/guides/cg.html
index 4312404..df222cd 100644
--- a/content/guides/cg.html
+++ b/content/guides/cg.html
@@ -1205,7 +1205,21 @@ if you forget to set up the enhancer goal, or don’t run it on the correct
</div>
</div>
<div class="sect3">
-<h4 id="_advanced">2.1.5. Advanced</h4>
+<h4 id="_running_integration_tests">2.1.5. Running Integration Tests</h4>
+<div class="paragraph">
+<p>When running integration tests from within IntelliJ, make sure that the <code>search for tests</code> radio button is set to <code>In single module</code>:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<a class="image" href="images/appendices/dev-env/intellij-idea/400-running-integtests/run-debug-configuration-single-module.png"><img src="images/appendices/dev-env/intellij-idea/400-running-integtests/run-debug-configuration-single-module.png" alt="run debug configuration single module" width="600px"></a>
+</div>
+</div>
+<div class="paragraph">
+<p>If this radio button is set to one of the other options then you may obtain class loading issues; these result from IntelliJ attempting to run unit tests of the <code>dom</code> project that depend on test classes in that module, but using the classpath of the <code>integtests</code> module whereby the <code>dom</code> test-classes (<code>test-jar</code> artifact) are not exposed on the Maven classpath.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_advanced">2.1.6. Advanced</h4>
<div class="paragraph">
<p>In this section are a couple of options that will reduce the length of the change code/build/deploy/review feedback loop.</p>
</div>
@@ -1573,6 +1587,18 @@ TODO
<div class="sect1">
<h2 id="_cg_isis-maven-plugin">5. Apache Isis Maven Plugin</h2>
<div class="sectionbody">
+<div class="paragraph">
+<p>The Apache Isis programming model requires that a number of naming conventions are followed.</p>
+</div>
+<div class="paragraph">
+<p>For example, the validator will detect any orphaned supporting methods (eg <code>hideXxx()</code>) if the corresponding property or action has been renamed or deleted but the supporting method was not also updated. Another example is that a class cannot have a title specified both using <code>title()</code> method and also using <code>@Title</code> annotation.</p>
+</div>
+<div class="paragraph">
+<p>When running the application these are enforced by the <code>MetaModelValidator</code> component that detects these errors, failing fast.</p>
+</div>
+<div class="paragraph">
+<p>The purpose of the <code>isis-maven-plugin</code> is to enforce these naming conventions at build time, typically enforced by way of a continuous integration server.</p>
+</div>
<div class="admonitionblock note">
<table>
<tr>
@@ -1580,13 +1606,299 @@ TODO
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
-TODO
+<div class="paragraph">
+<p>The instructions given here relate to <code>1.10.0-SNAPSHOT</code>. The plugin was also released for <code>1.9.0</code>, but with a slightly different configuration; see the final section for differences.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="__code_dom_code_project">5.1. <code>dom</code> project</h3>
+<div class="paragraph">
+<p>To start with, we need an <a href="rg.html#_rg_classes_AppManifest-bootstrapping"><code>AppManifest</code></a> to point the plugin at so that it knows which services and entities are to be validated.</p>
+</div>
+<div class="paragraph">
+<p>This can be extremely minimal. For example, the <a href="ug.html#_ug_getting-started_simpleapp-archetype">SimpleApp</a>'s manifest is:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span class="keyword">package</span> <span class="namespace">domainapp.dom</span>;
+...
+public <span class="type">class</span> <span class="class">DomainAppDomManifest</span> <span class="directive">implements</span> AppManifest {
+ <span class="annotation">@Override</span>
+ <span class="directive">public</span> <span class="predefined-type">List</span><<span class="predefined-type">Class</span><?>> getModules() {
+ <span class="keyword">return</span> <span class="predefined-type">Arrays</span>.asList(
+ DomainAppDomainModule.class <span class="comment">// domain (entities and repositories)</span>
+ );
+ }
+ <span class="annotation">@Override</span>
+ <span class="directive">public</span> <span class="predefined-type">List</span><<span class="predefined-type">Class</span><?>> getAdditionalServices() { <span class="keyword">return</span> <span class="predefined-type">Collections</span>.emptyList(); }
+ <span class="annotation">@Override</span>
+ <span class="directive">public</span> <span class="predefined-type">String</span> getAuthenticationMechanism() { <span class="keyword">return</span> <span class="predefined-constant">null</span>; }
+ <span class="annotation">@Override</span>
+ <span class="directive">public</span> <span class="predefined-type">String</span> getAuthorizationMechanism() { <span class="keyword">return</span> <span class="predefined-constant">null</span>; }
+ <span class="annotation">@Override</span>
+ <span class="directive">public</span> <span class="predefined-type">List</span><<span class="predefined-type">Class</span><? <span class="directive">extends</span> FixtureScript>> getFixtures() { <span class="keyword">return</span> <span class="predefined-constant">null</span>; }
+ <span class="annotation">@Override</span>
+ <span class="directive">public</span> <span class="predefined-type">Map</span><<span class="predefined-type">String</span>, <span class="predefined-type">String</span>> getConfigurationProperties() { <span class="keyword">return</span> <span class="predefined-constant">null</span>; }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>where <code>DomainAppDomainModule</code> simply identifies the package for the manifest to search under:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span class="keyword">package</span> <span class="namespace">domainapp.dom</span>;
+<span class="directive">public</span> <span class="directive">final</span> <span class="type">class</span> <span class="class">DomainAppDomainModule</span> {
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Next, update the <code>pom.xml</code> (in your project’s <code>dom</code> module):</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="xml"><span class="tag"><profile></span>
+ <span class="tag"><id></span>isis-validate<span class="tag"></id></span>
+ <span class="tag"><activation></span>
+ <span class="tag"><property></span>
+ <span class="tag"><name></span>isis-validate<span class="tag"></name></span> <span class="comment"><!-- 1 --></span>
+ <span class="tag"></property></span>
+ <span class="tag"></activation></span>
+ <span class="tag"><build></span>
+ <span class="tag"><plugins></span>
+ <span class="tag"><plugin></span>
+ <span class="tag"><groupId></span>org.apache.isis.tool<span class="tag"></groupId></span>
+ <span class="tag"><artifactId></span>isis-maven-plugin<span class="tag"></artifactId></span>
+ <span class="tag"><version></span>${isis.version}<span class="tag"></version></span> <span class="comment"><!-- 2 --></span>
+ <span class="tag"><configuration></span>
+ <span class="tag"><appManifest></span>domainapp.dom.DomainAppDomManifest<span class="tag"></appManifest></span> <span class="comment"><!-- 3 --></span>
+ <span class="tag"></configuration></span>
+ <span class="tag"><dependencies></span>
+ <span class="tag"><dependency></span>
+ <span class="tag"><groupId></span>org.apache.isis.example.application<span class="tag"></groupId></span> <span class="comment"><!-- 4 --></span>
+ <span class="tag"><artifactId></span>simpleapp-dom<span class="tag"></artifactId></span>
+ <span class="tag"><version></span>1.10.0-SNAPSHOT<span class="tag"></version></span>
+ <span class="tag"></dependency></span>
+ <span class="comment"><!-- workaround to avoid conflict with plexus-default --></span>
+ <span class="tag"><dependency></span>
+ <span class="tag"><groupId></span>com.google.guava<span class="tag"></groupId></span>
+ <span class="tag"><artifactId></span>guava<span class="tag"></artifactId></span>
+ <span class="tag"><version></span>16.0.1<span class="tag"></version></span>
+ <span class="tag"></dependency></span>
+ <span class="tag"></dependencies></span>
+ <span class="tag"><executions></span>
+ <span class="tag"><execution></span>
+ <span class="tag"><phase></span>test<span class="tag"></phase></span>
+ <span class="tag"><goals></span>
+ <span class="tag"><goal></span>validate<span class="tag"></goal></span> <span class="comment"><!-- 5 --></span>
+ <span class="tag"></goals></span>
+ <span class="tag"></execution></span>
+ <span class="tag"></executions></span>
+ <span class="tag"></plugin></span>
+ <span class="tag"></plugins></span>
+ <span class="tag"></build></span>
+<span class="tag"></profile></span></code></pre>
+</div>
+</div>
+<div class="colist arabic">
+<table>
+<tr>
+<td><i class="conum" data-value="1"></i><b>1</b></td>
+<td>the profile can be activated using <code>-Disis-validate</code></td>
+</tr>
+<tr>
+<td><i class="conum" data-value="2"></i><b>2</b></td>
+<td>set to <code>1.10.0-SNAPSHOT</code> or any later version</td>
+</tr>
+<tr>
+<td><i class="conum" data-value="3"></i><b>3</b></td>
+<td>the manifest discussed previously; adjust as required</td>
+</tr>
+<tr>
+<td><i class="conum" data-value="4"></i><b>4</b></td>
+<td>the <code>dom</code> module containing itself; adjust as required</td>
+</tr>
+<tr>
+<td><i class="conum" data-value="5"></i><b>5</b></td>
+<td>binds the plugin’s <code>validate</code> goal to the Maven <code>test</code> lifecycle phase (ie will be called using <code>mvn test</code>).</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_to_run">5.2. To run</h3>
+<div class="paragraph">
+<p>The plugin is activated by enabling the profile and invoking the <code>test</code> phase:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">mvn test -Disis-validate</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This will run any tests, and then also - because the plugin is activated by the <code>isis-validate</code> property and bound to the <code>test</code> phase, will run the plugin’s <code>validate</code> goal.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_example_of_failure">5.3. Example of failure</h3>
+<div class="paragraph">
+<p>In the <a href="ug.html#_ug_getting-started_simpleapp-archetype">SimpleApp</a> application the <code>SimpleObject</code> defines an <code>updateName</code> action. This has a supporting method:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> SimpleObject updateName( ... ) { ... }
+<span class="directive">public</span> <span class="predefined-type">String</span> default0UpdateName() { ... }</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>We can introduce an error by misspelling the supporting method, for example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> <span class="predefined-type">String</span> default0XUpdateName() { ... }</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Running <code>mvn -Disis-valdate test</code> then generates this output:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">[error]
+[error]
+[error]
+[error] domainapp.dom.simple.SimpleObject#default0XUpdateName: has prefix default, is probably a supporting method for a property, collection or action. If the method is intended to be an action, then rename and use @ActionLayout(named="...") or ignore completely using @Programmatic
+[error]
+[error]
+[error]
+[INFO] ------------------------------------------------------------------------
+[INFO] Reactor Summary:
+[INFO]
+[INFO] Simple App ......................................... SUCCESS [ 0.087 s]
+[INFO] Simple App DOM ..................................... FAILURE [ 4.182 s]
+[INFO] Simple App Fixtures ................................ SKIPPED
+[INFO] Simple App Application ............................. SKIPPED
+[INFO] Simple App Integration Tests ....................... SKIPPED
+[INFO] Simple App Webapp .................................. SKIPPED
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD FAILURE
+[INFO] ------------------------------------------------------------------------
+[INFO] ...
+[ERROR] Failed to execute goal org.apache.isis.tool:isis-maven-plugin:1.10.0-SNAPSHOT:validate (default) on project simpleapp-dom: 1 problems found. -> [Help 1]</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>If one were to attempt to run the application, the same error would appear in the log files on startup (and the application would not boot).</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_custom_validation_rules">5.4. Custom validation rules</h3>
+<div class="paragraph">
+<p>It is also possible to customize the validation, explained <a href="ug.html#_ug_extending_programming-model_custom-validator">here</a>. For example, you could enforce project-specific conventions by implementing a custom <code>MetaModelValidator</code>, and registering using a configuration property.</p>
+</div>
+<div class="paragraph">
+<p>To support this using <code>AppManifest`s, override its `getConfigurationProperties()</code> method:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="ini">public class DomainAppDomManifest implements AppManifest {
+ ...
+ public Map<String, String> getConfigurationProperties() {
+ final Map<String, String> map = Maps.newTreeMap();
+ map.put("isis.reflector.validator","com.mycompany.myapp.MyMetaModelValidator");
+ return map;
+ }
+}</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_1_9_0_version">5.5. 1.9.0 version</h3>
+<div class="paragraph">
+<p>The <code>1.9.0</code> version of the plugin requires slightly different configuratoin. Rather than using an <code>AppManifest</code>, instead the configuration directory containing <code>isis.properties</code> is specified:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="xml"><span class="tag"><profile></span>
+ <span class="tag"><id></span>isis-validate<span class="tag"></id></span>
+ <span class="tag"><activation></span>
+ <span class="tag"><activeByDefault></span>false<span class="tag"></activeByDefault></span> <span class="comment"><!-- 1 --></span>
+ <span class="tag"></activation></span>
+ <span class="tag"><build></span>
+ <span class="tag"><plugins></span>
+ <span class="tag"><plugin></span>
+ <span class="tag"><groupId></span>org.apache.isis.tool<span class="tag"></groupId></span>
+ <span class="tag"><artifactId></span>isis-maven-plugin<span class="tag"></artifactId></span>
+ <span class="tag"><version></span>1.9.0-SNAPSHOT<span class="tag"></version></span>
+ <span class="tag"><configuration></span>
+ <span class="tag"><isisConfigDir></span>../webapp/src/main/webapp/WEB-INF<span class="tag"></isisConfigDir></span> <span class="comment"><!-- 2 --></span>
+ <span class="tag"></configuration></span>
+ <span class="tag"><dependencies></span>
+ <span class="tag"><dependency></span>
+ <span class="tag"><groupId></span>org.apache.isis.example.application<span class="tag"></groupId></span>
+ <span class="tag"><artifactId></span>simpleapp-dom<span class="tag"></artifactId></span>
+ <span class="tag"><version></span>1.9.0-SNAPSHOT<span class="tag"></version></span>
+ <span class="tag"></dependency></span>
+ <span class="comment"><!-- workaround to avoid conflict with plexus-default --></span>
+ <span class="tag"><dependency></span>
+ <span class="tag"><groupId></span>com.google.guava<span class="tag"></groupId></span>
+ <span class="tag"><artifactId></span>guava<span class="tag"></artifactId></span>
+ <span class="tag"><version></span>16.0.1<span class="tag"></version></span>
+ <span class="tag"></dependency></span>
+ <span class="tag"></dependencies></span>
+ <span class="tag"><executions></span>
+ <span class="tag"><execution></span>
+ <span class="tag"><phase></span>test<span class="tag"></phase></span>
+ <span class="tag"><goals></span>
+ <span class="tag"><goal></span>validate<span class="tag"></goal></span>
+ <span class="tag"></goals></span>
+ <span class="tag"></execution></span>
+ <span class="tag"></executions></span>
+ <span class="tag"></plugin></span>
+ <span class="tag"></plugins></span>
+ <span class="tag"></build></span>
+<span class="tag"></profile></span></code></pre>
+</div>
+</div>
+<div class="colist arabic">
+<table>
+<tr>
+<td><i class="conum" data-value="1"></i><b>1</b></td>
+<td>activated using the <code>-P</code> profile flag rather than a <code>-D</code> system property</td>
+</tr>
+<tr>
+<td><i class="conum" data-value="2"></i><b>2</b></td>
+<td>specify the <code>isisConfigDir</code> directory (containing the <code>isis.properties</code> file).</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>To use the <code>1.9.0</code> version, use:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">mvn -P isis-validate test</code></pre>
+</div>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>Note that the <code>isisConfigDir</code> property was removed in <code>1.10.0</code>; only the <code>AppManifest</code> approach is supported.</p>
+</div>
</td>
</tr>
</table>
</div>
</div>
</div>
+</div>
<div class="sect1">
<h2 id="_cg_building-isis">6. Building Apache Isis</h2>
<div class="sectionbody">
@@ -1769,7 +2081,7 @@ git config user.email <i>myusername@apache.org</i></code></pre>
</div>
<div class="listingblock">
<div class="content">
-<pre class="CodeRay highlight"><code data-lang="ini">MAVEN_OPTS=-Xms512m -Xmx1024m -XX:MaxPermSize=256m</code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">export MAVEN_OPTS="-Xms512m -Xmx1024m"</code></pre>
</div>
</div>
<div class="admonitionblock note">
@@ -1780,7 +2092,7 @@ git config user.email <i>myusername@apache.org</i></code></pre>
</td>
<td class="content">
<div class="paragraph">
-<p>Previously we suggested <code>128m</code> for the <code>MaxPermSize</code>, but that would no longer seem to be sufficient.</p>
+<p>Previously we suggested <code>-XX:MaxPermSize=256m</code>, but this option has been removed in Java 8. (As of 1.9.0, Apache Isis is built using Java 8 but with source and target set to JDK 1.7).</p>
</div>
</td>
</tr>
@@ -1805,7 +2117,7 @@ git config user.email <i>myusername@apache.org</i></code></pre>
</div>
<div class="listingblock">
<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">export MAVEN_OPTS="-XX:+TieredCompilation -XX:TieredStopAtLevel=1"
+<pre class="CodeRay highlight"><code data-lang="bash">export MAVEN_OPTS="-Xms512m -Xmx1024m -XX:+TieredCompilation -XX:TieredStopAtLevel=1"
mvn clean install -o -T1C</code></pre>
</div>
</div>
@@ -7165,7 +7477,8 @@ xxx<br>
<li><a href="#_troubleshooting">Troubleshooting</a></li>
</ul>
</li>
-<li><a href="#_advanced">2.1.5. Advanced</a>
+<li><a href="#_running_integration_tests">2.1.5. Running Integration Tests</a></li>
+<li><a href="#_advanced">2.1.6. Advanced</a>
<ul class="sectlevel4">
<li><a href="#_setting_up_dynamic_reloading">Setting up Dynamic Reloading</a></li>
<li><a href="#_setting_up_jrebel">Setting up JRebel</a></li>
@@ -7203,7 +7516,15 @@ xxx<br>
</ul>
</li>
<li><a href="#_cg_cmd-line">4. Command Line and CI</a></li>
-<li><a href="#_cg_isis-maven-plugin">5. Apache Isis Maven Plugin</a></li>
+<li><a href="#_cg_isis-maven-plugin">5. Apache Isis Maven Plugin</a>
+<ul class="sectlevel2">
+<li><a href="#__code_dom_code_project">5.1. <code>dom</code> project</a></li>
+<li><a href="#_to_run">5.2. To run</a></li>
+<li><a href="#_example_of_failure">5.3. Example of failure</a></li>
+<li><a href="#_custom_validation_rules">5.4. Custom validation rules</a></li>
+<li><a href="#_1_9_0_version">5.5. 1.9.0 version</a></li>
+</ul>
+</li>
<li><a href="#_cg_building-isis">6. Building Apache Isis</a>
<ul class="sectlevel2">
<li><a href="#_git">6.1. Git</a>
http://git-wip-us.apache.org/repos/asf/isis-site/blob/3a912821/content/guides/images/appendices/dev-env/intellij-idea/400-running-integtests/run-debug-configuration-single-module.png
----------------------------------------------------------------------
diff --git a/content/guides/images/appendices/dev-env/intellij-idea/400-running-integtests/run-debug-configuration-single-module.png b/content/guides/images/appendices/dev-env/intellij-idea/400-running-integtests/run-debug-configuration-single-module.png
new file mode 100644
index 0000000..ca0bb13
Binary files /dev/null and b/content/guides/images/appendices/dev-env/intellij-idea/400-running-integtests/run-debug-configuration-single-module.png differ
http://git-wip-us.apache.org/repos/asf/isis-site/blob/3a912821/content/guides/ug.html
----------------------------------------------------------------------
diff --git a/content/guides/ug.html b/content/guides/ug.html
index b1a0b05..779e51e 100644
--- a/content/guides/ug.html
+++ b/content/guides/ug.html
@@ -1755,7 +1755,7 @@ So, if you have used Apache Isis for prototyping (discussed above), then note th
<pre class="CodeRay highlight"><code data-lang="bash">mvn archetype:generate \
-D archetypeGroupId=org.apache.isis.archetype \
-D archetypeArtifactId=simpleapp-archetype \
- -D archetypeVersion=1.8.0 \
+ -D archetypeVersion=1.9.0 \
-D groupId=com.mycompany \
-D artifactId=myapp \
-D version=1.0-SNAPSHOT \
@@ -13362,7 +13362,7 @@ The passed object represents passes a context from the caller (eg the scheduler,
<div class="sect3">
<h4 id="_ug_extending_programming-model_custom-validator">12.1.1. Custom validator</h4>
<div class="paragraph">
-<p>Apache Isis' programming model includes a validator component that detects and prevents (by failing fast) a number of situations where the domain model is logically inconsistent with itself.</p>
+<p>Apache Isis' programming model includes a validator component that detects and prevents (by failing fast) a number of situations where the domain model is logically inconsistent.</p>
</div>
<div class="paragraph">
<p>For example, the validator will detect any orphaned supporting methods (eg <code>hideXxx()</code>) if the corresponding property or action has been renamed or deleted but the supporting method was not also updated. Another example is that a class cannot have a title specified both using <code>title()</code> method and also using <code>@Title</code> annotation.</p>
http://git-wip-us.apache.org/repos/asf/isis-site/blob/3a912821/content/support.html
----------------------------------------------------------------------
diff --git a/content/support.html b/content/support.html
index 0935b4b..e1b6a5a 100644
--- a/content/support.html
+++ b/content/support.html
@@ -533,10 +533,11 @@ table.CodeRay td.code>pre{padding:0}
<div class="paragraph">
<p>The Markmail archives span both our current (TLP) mailing lists and also our original mailing lists while in the Apache incubator; the ASF archives span just our TLP mailing lists.</p>
</div>
-<div class="paragraph">
-<p>[[how-to-subscribe]
-== How to subscribe</p>
</div>
+</div>
+<div class="sect1">
+<h2 id="how-to-subscribe">How to subscribe</h2>
+<div class="sectionbody">
<div class="paragraph">
<p>To subscribe to the <code>users</code> mailing list:</p>
</div>
@@ -562,7 +563,7 @@ table.CodeRay td.code>pre{padding:0}
</div>
</div>
<div class="sect1">
-<h2 id="_mailing_list_etiquette">Mailing list etiquette</h2>
+<h2 id="mailing-list-etiquette">Mailing list etiquette</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Just a couple of rules/suggestions:</p>
@@ -596,7 +597,8 @@ table.CodeRay td.code>pre{padding:0}
<div id="toc" class="toc2">
<div class="fallback-toc">
<ul class="sectlevel1">
-<li><a href="#_mailing_list_etiquette">Mailing list etiquette</a></li>
+<li><a href="#how-to-subscribe">How to subscribe</a></li>
+<li><a href="#mailing-list-etiquette">Mailing list etiquette</a></li>
</ul>
</div>
</div>