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/07/21 14:00:26 UTC

[isis] 03/03: ISIS-1810: recreating helloworld archetype

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

danhaywood pushed a commit to branch release-2.0.0-M1-RC1
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 2b483d00ebb217846ca902f00eadf0855e6a1254
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Jul 21 14:53:49 2018 +0100

    ISIS-1810: recreating helloworld archetype
---
 example/archetype/helloworld/pom.xml               | 141 +++++----
 .../appended-resources/supplemental-models.xml     |  26 --
 .../META-INF/maven/archetype-metadata.xml          | 136 ++++----
 .../resources/archetype-resources/.gitattributes   |  51 ---
 .../main/resources/archetype-resources/.gitignore  |  41 ---
 .../src/main/resources/archetype-resources/pom.xml | 348 ++++++++++-----------
 .../application/isis-non-changing.properties       |   4 +-
 .../java/domainapp/dom/impl/HelloWorldObject.java  |  32 +-
 .../java/domainapp/dom/impl/HelloWorldObjects.java |   8 +-
 .../src/main/java/domainapp/dom/types/Name.java    |  27 ++
 .../src/main/java/domainapp/dom/types/Notes.java   |  28 ++
 .../src/main/webapp/META-INF/context.xml           |   5 +
 .../src/main/webapp/WEB-INF/logging.properties     |   4 +-
 .../src/main/webapp/WEB-INF/web.xml                |   7 +-
 ...lete.java => HelloWorldObject_delete_Test.java} |   2 +-
 ....java => HelloWorldObject_updateName_Test.java} |   2 +-
 .../resources/projects/basic/archetype.properties  |   2 +-
 17 files changed, 403 insertions(+), 461 deletions(-)

diff --git a/example/archetype/helloworld/pom.xml b/example/archetype/helloworld/pom.xml
index cebfcba..05ed670 100644
--- a/example/archetype/helloworld/pom.xml
+++ b/example/archetype/helloworld/pom.xml
@@ -18,63 +18,96 @@
   under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.isis.archetype</groupId>
-    <artifactId>helloworld-archetype</artifactId>
-    <version>${revision}</version>
-    <packaging>maven-archetype</packaging>
-    <name>helloworld-archetype</name>
-    <build>
-        <extensions>
-            <extension>
-                <groupId>org.apache.maven.archetype</groupId>
-                <artifactId>archetype-packaging</artifactId>
-                <version>2.2</version>
-            </extension>
-        </extensions>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-archetype-plugin</artifactId>
-                    <version>2.2</version>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-    <description>This module defines a standard parent POM to use for various Incode applications and modules.  
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.isis.archetype</groupId>
+  <artifactId>helloworld-archetype</artifactId>
+  <version>2.0.0-M1</version>
+  <packaging>maven-archetype</packaging>
+  <name>helloworld-archetype</name>
+  <build>
+    <extensions>
+      <extension>
+        <groupId>org.apache.maven.archetype</groupId>
+        <artifactId>archetype-packaging</artifactId>
+        <version>3.0.1</version>
+      </extension>
+    </extensions>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <artifactId>maven-archetype-plugin</artifactId>
+          <version>3.0.1</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+  <description>This module defines a standard parent POM to use for various Incode applications and modules.  
         Its primary purpose is to make it easy to use a set up maven mixins (https://github.com/odavid/maven-plugins)
         within child POMs.  Specifically this means locking down the versions of plugins using pluginManagement.
         
         It does NOT define any mixins for Apache Isis.</description>
-    <url>https://github.com/incodehq/incode-build/helloworld</url>
-    <developers>
-        <developer>
-            <id>danhaywood</id>
-            <name>Dan Haywood</name>
-            <email>dan@haywood-associates.co.uk</email>
-        </developer>
-    </developers>
-    <licenses>
-        <license>
-            <name>The Apache Software License, Version 2.0</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-    <scm>
-        <connection>scm:git:git@github.com:incodehq/incode-build.git/helloworld</connection>
-        <developerConnection>scm:git:git@github.com:incodehq/incode-build.git/helloworld</developerConnection>
-        <url>git@github.com:incodehq/incode-build.git/helloworld</url>
-      <tag>HEAD</tag>
+  <url>https://github.com/incodehq/incode-build/helloworld</url>
+  <developers>
+    <developer>
+      <id>danhaywood</id>
+      <name>Dan Haywood</name>
+      <email>dan@haywood-associates.co.uk</email>
+    </developer>
+  </developers>
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+  <scm>
+    <connection>scm:git:git@github.com:incodehq/incode-build.git/helloworld</connection>
+    <developerConnection>scm:git:git@github.com:incodehq/incode-build.git/helloworld</developerConnection>
+    <url>git@github.com:incodehq/incode-build.git/helloworld</url>
   </scm>
-    <parent>
-        <groupId>org.apache.isis.core</groupId>
-        <artifactId>isis</artifactId>
-        <version>1.16.2</version>
-        <relativePath>../../../core/pom.xml</relativePath>
-    </parent>
-    <properties>
-        <revision>2.0.0-M1-SNAPSHOT</revision>
-        <archetype.test.skip>true</archetype.test.skip>
-    </properties>
+  <parent>
+    <groupId>org.apache</groupId>
+    <artifactId>apache</artifactId>
+    <version>18</version>
+    <relativePath/>
+  </parent>
+  <properties>
+    <archetype.test.skip>true</archetype.test.skip>
+  </properties>
+  <profiles>
+    <profile>
+      <id>gpg</id>
+      <activation>
+        <property>
+          <name>gpg.passphrase</name>
+        </property>
+      </activation>
+      <properties>
+        <gpg.useagent>false</gpg.useagent>
+      </properties>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-gpg-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>sign-release-artifacts</id>
+                <goals>
+                  <goal>sign</goal>
+                </goals>
+                <configuration>
+                  <gpgArguments>
+                    <arg>--pinentry-mode</arg>
+                    <arg>loopback</arg>
+                  </gpgArguments>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>
diff --git a/example/archetype/helloworld/src/main/appended-resources/supplemental-models.xml b/example/archetype/helloworld/src/main/appended-resources/supplemental-models.xml
deleted file mode 100644
index 01c58d8..0000000
--- a/example/archetype/helloworld/src/main/appended-resources/supplemental-models.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-<supplementalDataModels 
-  xmlns="http://maven.apache.org/supplemental-model/1.0.0"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/supplemental-model/1.0.0 
-            http://maven.apache.org/xsd/supplemental-model-1.0.0.xsd">
-
-</supplementalDataModels>
diff --git a/example/archetype/helloworld/src/main/resources/META-INF/maven/archetype-metadata.xml b/example/archetype/helloworld/src/main/resources/META-INF/maven/archetype-metadata.xml
index fbec4e4..a3eedd3 100644
--- a/example/archetype/helloworld/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ b/example/archetype/helloworld/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -1,80 +1,60 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-<archetype-descriptor xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0" name="helloworld" xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <fileSets>
-        <fileSet filtered="true" encoding="UTF-8">
-            <directory>src/main/java</directory>
-            <includes>
-                <include>**/*.java</include>
-                <include>**/*.xml</include>
-                <include>**/*.html</include>
-                <include>**/*.properties</include>
-            </includes>
-        </fileSet>
-        <fileSet encoding="UTF-8">
-            <directory>src/main/java</directory>
-            <includes>
-                <include>**/*.png</include>
-            </includes>
-        </fileSet>
-        <fileSet filtered="true" encoding="UTF-8">
-            <directory>src/main/webapp</directory>
-            <includes>
-                <include>**/*.xml</include>
-                <include>**/*.html</include>
-                <include>**/*.properties</include>
-            </includes>
-        </fileSet>
-        <fileSet encoding="UTF-8">
-            <directory>src/main/webapp</directory>
-            <includes>
-                <include>**/*.css</include>
-                <include>**/*.ico</include>
-                <include>**/*.gif</include>
-                <include>**/*.ini</include>
-                <include>**/*.md</include>
-                <include>**/*.ttf</include>
-                <include>**/*.png</include>
-                <include>**/*.js</include>
-            </includes>
-        </fileSet>
-        <fileSet filtered="true" encoding="UTF-8">
-            <directory>src/test/java</directory>
-            <includes>
-                <include>**/*.java</include>
-            </includes>
-        </fileSet>
-        <fileSet filtered="true" encoding="UTF-8">
-            <directory/>
-            <includes>
-                <include>logging-dn-enhance.properties</include>
-            </includes>
-        </fileSet>
-        <fileSet encoding="UTF-8">
-            <directory/>
-            <includes>
-                <include>.gitattributes</include>
-                <include>.gitignore</include>
-                <include>enhance-all.sh</include>
-                <include>README.adoc</include>
-            </includes>
-        </fileSet>
-    </fileSets>
+<archetype-descriptor xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" name="helloworld"
+    xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <fileSets>
+    <fileSet filtered="true" encoding="UTF-8">
+      <directory>src/main/java</directory>
+      <includes>
+        <include>**/*.java</include>
+        <include>**/*.xml</include>
+        <include>**/*.html</include>
+        <include>**/*.properties</include>
+      </includes>
+    </fileSet>
+    <fileSet encoding="UTF-8">
+      <directory>src/main/java</directory>
+      <includes>
+        <include>**/*.png</include>
+      </includes>
+    </fileSet>
+    <fileSet filtered="true" encoding="UTF-8">
+      <directory>src/main/webapp</directory>
+      <includes>
+        <include>**/*.xml</include>
+        <include>**/*.html</include>
+        <include>**/*.properties</include>
+      </includes>
+    </fileSet>
+    <fileSet encoding="UTF-8">
+      <directory>src/main/webapp</directory>
+      <includes>
+        <include>**/*.css</include>
+        <include>**/*.ini</include>
+        <include>**/*.png</include>
+        <include>**/*.js</include>
+      </includes>
+    </fileSet>
+    <fileSet filtered="true" encoding="UTF-8">
+      <directory>src/test/java</directory>
+      <includes>
+        <include>**/*.java</include>
+      </includes>
+    </fileSet>
+    <fileSet filtered="true" encoding="UTF-8">
+      <directory></directory>
+      <includes>
+        <include>logging-dn-enhance.properties</include>
+      </includes>
+    </fileSet>
+    <fileSet encoding="UTF-8">
+      <directory></directory>
+      <includes>
+        <include>.gitattributes</include>
+        <include>.gitignore</include>
+        <include>enhance-all.sh</include>
+        <include>README.adoc</include>
+      </includes>
+    </fileSet>
+  </fileSets>
 </archetype-descriptor>
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/.gitattributes b/example/archetype/helloworld/src/main/resources/archetype-resources/.gitattributes
deleted file mode 100644
index b1eafb6..0000000
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/.gitattributes
+++ /dev/null
@@ -1,51 +0,0 @@
-#
-#
-# text files are normalized (convert crlf => lf)
-# binary files are not normalized (binary is a macro for -text -diff)
-#
-#
-
-
-# Unless otherwise stated, assume text
-
-* text=auto
-
-
-*.java text diff=java
-*.html text diff=html
-*.xhtml text diff=html
-*.xml text
-*.txt text
-
-
-*.jar binary
-*.so binary
-*.dll binary
-
-# images
-*.jpg binary
-*.jpeg binary
-*.png binary
-*.pdn binary
-*.pdn binary
-
-
-*.cs     text diff=csharp
-
-*.sln    merge=union
-*.csproj merge=union
-*.vbproj merge=union
-*.fsproj merge=union
-*.dbproj merge=union
-
-*.doc	 diff=astextplain
-*.DOC	 diff=astextplain
-*.docx diff=astextplain
-*.DOCX diff=astextplain
-*.dot  diff=astextplain
-*.DOT  diff=astextplain
-*.pdf  diff=astextplain
-*.PDF	 diff=astextplain
-*.rtf	 diff=astextplain
-*.RTF	 diff=astextplain
-
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/.gitignore b/example/archetype/helloworld/src/main/resources/archetype-resources/.gitignore
deleted file mode 100644
index e859485..0000000
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/.gitignore
+++ /dev/null
@@ -1,41 +0,0 @@
-*~
-*.swp
-*.class
-bin/
-target/
-target-ide/
-logs/
-.settings/
-.project
-.classpath
-.idea
-*.iml
-
-build/
-
-JArchitectOut/
-*.jdproj
-
-neo4j_DB/
-
-# log files
-datanucleus.log
-isis.log
-i18n-po.log
-hs_err_pid*.log
-
-# Package Files #
-*.war
-*.ear
-
-dependency-reduced-pom.xml
-pom.xml.tag
-pom.xml.next
-pom.xml.releaseBackup
-pom.xml.versionsBackup
-
-.clover/
-
-
-rebel.xml
-translations.pot
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/pom.xml b/example/archetype/helloworld/src/main/resources/archetype-resources/pom.xml
index 4dc8011..04db3d6 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/pom.xml
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/pom.xml
@@ -16,184 +16,176 @@
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
---><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.incode</groupId>
-        <artifactId>incode-build</artifactId>
-        <version>2</version>
-    </parent>
-
-    <groupId>${groupId}</groupId>
-    <artifactId>${artifactId}</artifactId>
-    <version>${version}</version>
-
-    <name>HelloWorld</name>
-
-    <packaging>war</packaging>
-
-    <properties>
-        <isis.version>1.16.2</isis.version>
-
-        <compiler-plugin.source>1.8</compiler-plugin.source>
-        <compiler-plugin.target>1.8</compiler-plugin.target>
-        <compiler-plugin.compilerArgument>-parameters</compiler-plugin.compilerArgument>
-
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-
-        <maven-war-plugin.warName>${project.artifactId}</maven-war-plugin.warName>
-    </properties>
-
-    <build>
-        <resources>
-            <resource>
-                <directory>src/main/java</directory>
-                <includes>
-                    <include>**</include>
-                </includes>
-                <excludes>
-                    <exclude>**/*.java</exclude>
-                </excludes>
-            </resource>
-        </resources>
-        <plugins>
-            <plugin>
-                <groupId>com.github.odavid.maven.plugins</groupId>
-                <artifactId>mixin-maven-plugin</artifactId>
-                <version>0.1-alpha-39</version>
-                <extensions>true</extensions>
-                <configuration>
-                    <mixins>
-                        <mixin>
-                            <groupId>com.danhaywood.mavenmixin</groupId>
-                            <artifactId>standard</artifactId>
-                        </mixin>
-                        <mixin>
-                            <groupId>com.danhaywood.mavenmixin</groupId>
-                            <artifactId>datanucleusenhance</artifactId>
-                        </mixin>
-                        <mixin>
-                            <groupId>com.danhaywood.mavenmixin</groupId>
-                            <artifactId>surefire</artifactId>
-                        </mixin>
-                        <mixin>
-                            <groupId>com.danhaywood.mavenmixin</groupId>
-                            <artifactId>jettywar</artifactId>
-                        </mixin>
-                    </mixins>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-    <repositories>
-        <repository>
-            <id>apache.snapshots</id>
-            <name>Apache Snapshots</name>
-            <url>https://repository.apache.org/content/repositories/snapshots/</url>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-            <snapshots>
-            </snapshots>
-        </repository>
-        <repository>
-            <id>cloudbees.estatio.snapshots</id>
-            <url>http://repository-estatio.forge.cloudbees.com/snapshot/</url>
-            <name>CloudBees Snapshots (and Interim Releases)</name>
-            <releases>
-                <updatePolicy>never</updatePolicy>
-                <checksumPolicy>fail</checksumPolicy>
-            </releases>
-            <snapshots>
-                <updatePolicy>never</updatePolicy>
-                <checksumPolicy>fail</checksumPolicy>
-            </snapshots>
-            <layout>default</layout>
-        </repository>
-        <repository>
-            <id>sonatype-snapshots</id>
-            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
-            <snapshots>
-            </snapshots>
-        </repository>
-    </repositories>
-
-    <pluginRepositories>
-        <pluginRepository>
-            <id>cloudbees.estatio.snapshots</id>
-            <name>CloudBees Snapshots (and Interim Releases)</name>
-            <releases>
-                <updatePolicy>never</updatePolicy>
-                <checksumPolicy>fail</checksumPolicy>
-            </releases>
-            <url>http://repository-estatio.forge.cloudbees.com/snapshot/</url>
-            <layout>default</layout>
-        </pluginRepository>
-    </pluginRepositories>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis</artifactId>
-                <version>${isis.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.incode</groupId>
+    <artifactId>incode-build</artifactId>
+    <version>7</version>
+  </parent>
+  <groupId>${groupId}</groupId>
+  <artifactId>${artifactId}</artifactId>
+  <version>${version}</version>
+  <name>Apache Isis App - HelloWorld</name>
+  <packaging>war</packaging>
+  <properties>
+    <revision>${version}</revision>
+    <isis.version>2.0.0-M1</isis.version>
+    <compiler-plugin.source>1.8</compiler-plugin.source>
+    <compiler-plugin.target>1.8</compiler-plugin.target>
+    <compiler-plugin.compilerArgument>-parameters</compiler-plugin.compilerArgument>
+    <datanucleus-core.version>5.1.6</datanucleus-core.version>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    <maven-war-plugin.warName>${project.artifactId}</maven-war-plugin.warName>
+  </properties>
+  <build>
+    <resources>
+      <resource>
+        <directory>src/main/java</directory>
+        <includes>
+          <include>**</include>
+        </includes>
+        <excludes>
+          <exclude>**/*.java</exclude>
+        </excludes>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <groupId>com.github.odavid.maven.plugins</groupId>
+        <artifactId>mixin-maven-plugin</artifactId>
+        <version>0.1-alpha-39</version>
+        <extensions>true</extensions>
+        <configuration>
+          <mixins>
+            <mixin>
+              <groupId>com.danhaywood.mavenmixin</groupId>
+              <artifactId>standard</artifactId>
+            </mixin>
+            <mixin>
+              <groupId>com.danhaywood.mavenmixin</groupId>
+              <artifactId>datanucleusenhance</artifactId>
+            </mixin>
+            <mixin>
+              <groupId>com.danhaywood.mavenmixin</groupId>
+              <artifactId>surefire</artifactId>
+            </mixin>
+            <mixin>
+              <groupId>com.danhaywood.mavenmixin</groupId>
+              <artifactId>jettywar</artifactId>
+            </mixin>
+          </mixins>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>flatten-maven-plugin</artifactId>
+        <version>1.0.0</version>
+        <configuration>
+          <updatePomFile>true</updatePomFile>
+          <pomElements>
+            <dependencyManagement>resolve</dependencyManagement>
+            <dependencies>resolve</dependencies>
+          </pomElements>
+        </configuration>
+        <executions>
+          <execution>
+            <id>flatten</id>
+            <phase>process-resources</phase>
+            <goals>
+              <goal>flatten</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>flatten.clean</id>
+            <phase>clean</phase>
+            <goals>
+              <goal>clean</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <dependencyManagement>
     <dependencies>
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-applib</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.isis.mavendeps</groupId>
-            <artifactId>isis-mavendeps-webapp</artifactId>
-            <type>pom</type>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.isis.mavendeps</groupId>
-            <artifactId>isis-mavendeps-testing</artifactId>
-            <scope>test</scope>
-            <type>pom</type>
-        </dependency>
-
-        <dependency>
-            <groupId>org.hsqldb</groupId>
-            <artifactId>hsqldb</artifactId>
-        </dependency>
-
+      <dependency>
+        <groupId>org.apache.isis.core</groupId>
+        <artifactId>isis</artifactId>
+        <version>${isis.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
     </dependencies>
-
-    <profiles>
-        <profile>
-            <id>m2e</id>
-            <activation>
-                <property>
-                    <name>m2e.version</name>
-                </property>
-            </activation>
-            <build>
-                <directory>target-ide</directory>
-		        <plugins>
-		        	<!-- eclipse doesn't seem to support maven mixins config, so repeat here -->
-					<plugin>
-						<artifactId>maven-compiler-plugin</artifactId>
-						<configuration>
-							<source>${compiler-plugin.source}</source>
-							<target>${compiler-plugin.target}</target>
-							<compilerArgument />
-						</configuration>
-					</plugin>
-		        </plugins>
-		    </build>
-        </profile>
-    </profiles>
-
+  </dependencyManagement>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.isis.core</groupId>
+      <artifactId>isis-core-applib</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.isis.core</groupId>
+      <artifactId>isis-core-plugins-codegen-bytebuddy</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.isis.core</groupId>
+      <artifactId>isis-core-plugins-discovery-reflections</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.isis.core</groupId>
+      <artifactId>isis-core-plugins-jdo-datanucleus-5</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.isis.core</groupId>
+      <artifactId>isis-core-plugins-eventbus-guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.isis.core</groupId>
+      <artifactId>isis-core-plugins-jaxrs-resteasy-3</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.isis.mavendeps</groupId>
+      <artifactId>isis-mavendeps-webapp</artifactId>
+      <type>pom</type>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.isis.mavendeps</groupId>
+      <artifactId>isis-mavendeps-testing</artifactId>
+      <scope>test</scope>
+      <type>pom</type>
+    </dependency>
+  </dependencies>
+  <profiles>
+    <profile>
+      <id>m2e</id>
+      <activation>
+        <property>
+          <name>m2e.version</name>
+        </property>
+      </activation>
+      <build>
+        <directory>target-ide</directory>
+        <plugins>
+          <plugin>
+            <artifactId>maven-compiler-plugin</artifactId>
+            <configuration>
+              <source>${compiler-plugin.source}</source>
+              <target>${compiler-plugin.target}</target>
+              <compilerArgument/>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis-non-changing.properties b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis-non-changing.properties
index 5cb1658..b245681 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis-non-changing.properties
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis-non-changing.properties
@@ -19,9 +19,9 @@ ${symbol_pound}  specific language governing permissions and limitations
 ${symbol_pound}  under the License.
 
 
-
+${symbol_pound} -- auto wired by plugins -- 
 ${symbol_pound}isis.services.eventbus.implementation=guava
-isis.services.eventbus.implementation=axon
+${symbol_pound}isis.services.eventbus.implementation=axon
 
 isis.reflector.validator.allowDeprecated=false
 isis.reflector.validator.noParamsOnly=true
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.java
index 164705b..d32e75b 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.java
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.java
@@ -32,17 +32,15 @@ import org.apache.isis.applib.annotation.Auditing;
 import org.apache.isis.applib.annotation.CommandReification;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.DomainObjectLayout;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.applib.annotation.ParameterLayout;
-import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.Publishing;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.annotation.Title;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.title.TitleService;
 
+import domainapp.dom.types.Name;
+import domainapp.dom.types.Notes;
+
 @javax.jdo.annotations.PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "${artifactId}" )
 @javax.jdo.annotations.DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
 @javax.jdo.annotations.Version(strategy= VersionStrategy.DATE_TIME, column ="version")
@@ -55,25 +53,22 @@ public class HelloWorldObject implements Comparable<HelloWorldObject> {
         this.name = name;
     }
 
-    @javax.jdo.annotations.Column(allowsNull = "false", length = 40)
-    @Property(editing = Editing.DISABLED)
-    @Title(prepend = "Object: ")
-    private String name;
+    public String title() {
+        return "Object: " + getName();
+    }
+
+    @Name private String name;
     public String getName() { return name; }
     public void setName(final String name) { this.name = name; }
 
-    @javax.jdo.annotations.Column(allowsNull = "true", length = 4000)
-    @Property(editing = Editing.ENABLED)
-    private String notes;
+    @Notes private String notes;
     public String getNotes() { return notes; }
     public void setNotes(final String notes) { this.notes = notes; }
 
 
     @Action(semantics = SemanticsOf.IDEMPOTENT, command = CommandReification.ENABLED, publishing = Publishing.ENABLED)
     public HelloWorldObject updateName(
-            @Parameter(maxLength = 40)
-            @ParameterLayout(named = "Name")
-            final String name) {
+            @Name final String name) {
         setName(name);
         return this;
     }
@@ -102,17 +97,16 @@ public class HelloWorldObject implements Comparable<HelloWorldObject> {
     }
 
 
-    @javax.jdo.annotations.NotPersistent
     @javax.inject.Inject
+    @javax.jdo.annotations.NotPersistent
     RepositoryService repositoryService;
 
-    @javax.jdo.annotations.NotPersistent
     @javax.inject.Inject
+    @javax.jdo.annotations.NotPersistent
     TitleService titleService;
 
-    @javax.jdo.annotations.NotPersistent
     @javax.inject.Inject
+    @javax.jdo.annotations.NotPersistent
     MessageService messageService;
 
-
 }
\ No newline at end of file
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
index 24da58a..6fbcefc 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
@@ -23,7 +23,7 @@ package domainapp.dom.impl;
 
 import java.util.List;
 
-import org.datanucleus.query.typesafe.TypesafeQuery;
+import javax.jdo.JDOQLTypedQuery;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.DomainService;
@@ -33,7 +33,7 @@ import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.RestrictTo;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
+import org.apache.isis.applib.services.jdosupport.IsisJdoSupport_v3_2;
 import org.apache.isis.applib.services.repository.RepositoryService;
 
 @DomainService(
@@ -54,7 +54,7 @@ public class HelloWorldObjects {
     @Action(semantics = SemanticsOf.SAFE)
     @MemberOrder(sequence = "2")
     public List<HelloWorldObject> findByName(final String name) {
-        TypesafeQuery<HelloWorldObject> q = isisJdoSupport.newTypesafeQuery(HelloWorldObject.class);
+    	JDOQLTypedQuery<HelloWorldObject> q = isisJdoSupport.newTypesafeQuery(HelloWorldObject.class);
         final QHelloWorldObject cand = QHelloWorldObject.candidate();
         q = q.filter(
                 cand.name.indexOf(q.stringParameter("name")).ne(-1)
@@ -73,6 +73,6 @@ public class HelloWorldObjects {
     RepositoryService repositoryService;
 
     @javax.inject.Inject
-    IsisJdoSupport isisJdoSupport;
+    IsisJdoSupport_v3_2 isisJdoSupport;
 
 }
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/types/Name.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/types/Name.java
new file mode 100644
index 0000000..dcab576
--- /dev/null
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/types/Name.java
@@ -0,0 +1,27 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package domainapp.dom.types;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.jdo.annotations.Column;
+
+import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.applib.annotation.ParameterLayout;
+import org.apache.isis.applib.annotation.Property;
+
+@Column(length = Name.MAX_LEN, allowsNull = "false")
+@Property(editing = Editing.DISABLED, maxLength = Name.MAX_LEN)
+@Parameter(maxLength = Name.MAX_LEN)
+@ParameterLayout(named = "Name")
+@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Name {
+
+    int MAX_LEN = 40;
+}
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/types/Notes.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/types/Notes.java
new file mode 100644
index 0000000..cb07e9a
--- /dev/null
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/types/Notes.java
@@ -0,0 +1,28 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package domainapp.dom.types;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.jdo.annotations.Column;
+
+import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.applib.annotation.ParameterLayout;
+import org.apache.isis.applib.annotation.Property;
+
+@Column(length = Notes.MAX_LEN, allowsNull = "true")
+@Property(editing = Editing.ENABLED, maxLength = Notes.MAX_LEN)
+@Parameter(maxLength = Notes.MAX_LEN)
+@ParameterLayout(named = "Notes")
+@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Notes {
+
+    int MAX_LEN = 4000;
+
+}
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/META-INF/context.xml b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/META-INF/context.xml
new file mode 100644
index 0000000..563f720
--- /dev/null
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/META-INF/context.xml
@@ -0,0 +1,5 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8"?>
+<Context path=""/>
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/logging.properties b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/logging.properties
index c2ca289..a26a781 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/logging.properties
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/logging.properties
@@ -234,5 +234,5 @@ log4j.additivity.dom.simple.SimpleObject=false
 
 
 ${symbol_pound} ERROR to suppress the WARNings we get as of 1.15.0
-log4j.logger.org.apache.wicket.page.XmlPartialPageUpdate=ERROR,Console
-log4j.additivity.org.apache.wicket.page.XmlPartialPageUpdate=false
+log4j.logger.org.apache.wicket.page.PartialPageUpdate=ERROR,Console
+log4j.additivity.org.apache.wicket.page.PartialPageUpdate=false
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml
index ab65538..7f8568c 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml
@@ -20,9 +20,10 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<web-app id="WebApp_ID" version="2.4"
-    xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
+	id="WebApp_ID" version="3.1"> 
 
     <display-name>Hello World</display-name>
 
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObject_delete_Test.java
similarity index 98%
rename from example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java
rename to example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObject_delete_Test.java
index da9d6f2..a4c2ea2 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObject_delete_Test.java
@@ -33,7 +33,7 @@ import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 
 import static org.hamcrest.CoreMatchers.containsString;
 
-public class HelloWorldObjectTest_delete {
+public class HelloWorldObject_delete_Test {
 
     @Rule
     public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObject_updateName_Test.java
similarity index 96%
rename from example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java
rename to example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObject_updateName_Test.java
index 4f5a1f2..c95f528 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObject_updateName_Test.java
@@ -25,7 +25,7 @@ import org.junit.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-public class HelloWorldObjectTest_updateName {
+public class HelloWorldObject_updateName_Test {
 
     @Test
     public void happy_case() throws Exception {
diff --git a/example/archetype/helloworld/src/test/resources/projects/basic/archetype.properties b/example/archetype/helloworld/src/test/resources/projects/basic/archetype.properties
index e562d52..52aa686 100644
--- a/example/archetype/helloworld/src/test/resources/projects/basic/archetype.properties
+++ b/example/archetype/helloworld/src/test/resources/projects/basic/archetype.properties
@@ -1,4 +1,4 @@
-#Wed Feb 28 22:38:12 GMT 2018
+#Sat Jul 21 14:53:45 BST 2018
 package=it.pkg
 version=0.1-SNAPSHOT
 groupId=archetype.it