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 2013/10/25 13:45:39 UTC

[24/28] git commit: ISIS-437: adding simple archetype

ISIS-437: adding simple archetype


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/858a04b9
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/858a04b9
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/858a04b9

Branch: refs/heads/master
Commit: 858a04b94a918c05e3dad75ccbbd73488a254153
Parents: 2dd8aee
Author: Dan Haywood <da...@apache.org>
Authored: Tue Oct 22 00:36:23 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Tue Oct 22 00:36:23 2013 +0100

----------------------------------------------------------------------
 .../simple_wicket_restful_jdo/dom/pom.xml       |   2 +-
 .../simple_wicket_restful_jdo/fixture/pom.xml   |   2 +-
 .../integtests/pom.xml                          |   2 +-
 .../simple_wicket_restful_jdo/pom.xml           |  12 +-
 .../simple_wicket_restful_jdo/webapp/pom.xml    |   2 +-
 .../archetype/simple_wicket_restful_jdo/pom.xml |  50 +++
 .../appended-resources/supplemental-models.xml  |  26 ++
 .../META-INF/maven/archetype-metadata.xml       | 151 ++++++++
 .../archetype-resources/dom/log4j.properties    |  44 +++
 .../resources/archetype-resources/dom/pom.xml   | 147 +++++++
 .../dom/src/main/java/META-INF/persistence.xml  |  29 ++
 .../src/main/java/dom/simple/SimpleObject.java  |  81 ++++
 .../java/dom/simple/SimpleObject.layout.json    |  44 +++
 .../src/main/java/dom/simple/SimpleObjects.java |  74 ++++
 .../src/main/java/services/ClockService.java    |  36 ++
 .../src/main/resources/images/SimpleObject.gif  | Bin 0 -> 794 bytes
 .../java/dom/simple/SimpleObjectTest_name.java  |  50 +++
 .../dom/simple/SimpleObjectsTest_create.java    |  79 ++++
 .../dom/simple/SimpleObjectsTest_listAll.java   |  79 ++++
 .../archetype-resources/fixture/.gitignore      |   1 +
 .../archetype-resources/fixture/pom.xml         |  38 ++
 .../main/java/fixture/LogonAsSvenFixture.java   |  33 ++
 .../fixture/simple/SimpleObjectsFixture.java    |  74 ++++
 .../integtests/logging.properties               |  80 ++++
 .../archetype-resources/integtests/pom.xml      | 122 ++++++
 .../integration/SimpleAppSystemInitializer.java |  84 ++++
 .../integration/glue/BootstrappingGlue.java     |  56 +++
 .../integration/glue/CatalogOfFixturesGlue.java |  49 +++
 .../glue/InMemoryDBForSimpleApp.java            |  43 +++
 .../glue/simple/SimpleObjectGlue.java           | 101 +++++
 .../java/integration/specs/simple/RunSpecs.java |  41 ++
 .../SimpleObjectSpec_listAllAndCreate.feature   |  37 ++
 .../integration/tests/SimpleAppIntegTest.java   |  43 +++
 .../SimpleObjectsTest_listAll_and_create.java   |  72 ++++
 .../main/resources/archetype-resources/pom.xml  | 386 +++++++++++++++++++
 .../SimpleApp-no-fixtures-PROTOTYPE.launch      |  26 ++
 .../launch/SimpleApp-no-fixtures-SERVER.launch  |  22 ++
 .../launch/SimpleApp-with-fixtures.launch       |  26 ++
 .../archetype-resources/webapp/lib/.gitignore   |   5 +
 .../archetype-resources/webapp/pom.xml          | 299 ++++++++++++++
 .../ComponentFactoryRegistrarForSimpleApp.java  |  36 ++
 .../src/main/java/webapp/SimpleApplication.java | 145 +++++++
 .../webapp/prototyping/DeveloperUtilities.java  |  45 +++
 .../SimpleObjectsFixturesService.java           |  66 ++++
 .../src/main/jettyconsole/isis-banner.pdn       | Bin 0 -> 69658 bytes
 .../src/main/jettyconsole/isis-banner.png       | Bin 0 -> 30776 bytes
 .../src/main/resources/webapp/welcome.html      |  38 ++
 .../WEB-INF/authentication_file.passwords       |  28 ++
 .../WEB-INF/authentication_file.properties      |  28 ++
 .../webapp/WEB-INF/authorization_file.allow     |  28 ++
 .../WEB-INF/authorization_file.properties       |  50 +++
 .../src/main/webapp/WEB-INF/isis.properties     | 196 ++++++++++
 .../src/main/webapp/WEB-INF/logging.properties  | 169 ++++++++
 .../main/webapp/WEB-INF/persistor.properties    | 108 ++++++
 .../WEB-INF/persistor_datanucleus.properties    |  78 ++++
 .../webapp/src/main/webapp/WEB-INF/shiro.ini    |  93 +++++
 .../WEB-INF/viewer_restfulobjects.properties    |  26 ++
 .../webapp/WEB-INF/viewer_wicket.properties     |  52 +++
 .../webapp/src/main/webapp/WEB-INF/web.xml      | 287 ++++++++++++++
 .../src/main/webapp/about/images/isis-logo.png  | Bin 0 -> 14160 bytes
 .../webapp/src/main/webapp/about/index.html     | 120 ++++++
 .../webapp/src/main/webapp/css/application.css  |  72 ++++
 .../src/main/webapp/images/spinning-icon.gif    | Bin 0 -> 5266 bytes
 .../src/main/webapp/scripts/application.js      |   3 +
 .../projects/basic/archetype.properties         |   5 +
 .../src/test/resources/projects/basic/goal.txt  |   0
 pom.xml                                         |   3 -
 scripts/updateGeneratedArchetypeSources.groovy  |   8 +-
 68 files changed, 4216 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/application/simple_wicket_restful_jdo/dom/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simple_wicket_restful_jdo/dom/pom.xml b/example/application/simple_wicket_restful_jdo/dom/pom.xml
index 121bbf5..b513473 100644
--- a/example/application/simple_wicket_restful_jdo/dom/pom.xml
+++ b/example/application/simple_wicket_restful_jdo/dom/pom.xml
@@ -23,7 +23,7 @@
 	<parent>
     	<groupId>org.apache.isis.example.application</groupId>
     	<artifactId>simple_wicket_restful_jdo</artifactId>
-		<version>1.0.4-SNAPSHOT</version>
+		<version>1.3.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>simple_wicket_restful_jdo-dom</artifactId>

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/application/simple_wicket_restful_jdo/fixture/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simple_wicket_restful_jdo/fixture/pom.xml b/example/application/simple_wicket_restful_jdo/fixture/pom.xml
index c2a9852..3d90fd8 100644
--- a/example/application/simple_wicket_restful_jdo/fixture/pom.xml
+++ b/example/application/simple_wicket_restful_jdo/fixture/pom.xml
@@ -23,7 +23,7 @@
     <parent>
     	<groupId>org.apache.isis.example.application</groupId>
         <artifactId>simple_wicket_restful_jdo</artifactId>
-        <version>1.0.4-SNAPSHOT</version>
+        <version>1.3.0-SNAPSHOT</version>
     </parent>
 
 	<artifactId>simple_wicket_restful_jdo-fixture</artifactId>

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/application/simple_wicket_restful_jdo/integtests/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simple_wicket_restful_jdo/integtests/pom.xml b/example/application/simple_wicket_restful_jdo/integtests/pom.xml
index fc570ca..072da6b 100644
--- a/example/application/simple_wicket_restful_jdo/integtests/pom.xml
+++ b/example/application/simple_wicket_restful_jdo/integtests/pom.xml
@@ -23,7 +23,7 @@
     <parent>
     	<groupId>org.apache.isis.example.application</groupId>
         <artifactId>simple_wicket_restful_jdo</artifactId>
-        <version>1.0.4-SNAPSHOT</version>
+        <version>1.3.0-SNAPSHOT</version>
     </parent>
 
 	<artifactId>simple_wicket_restful_jdo-integtests</artifactId>

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/application/simple_wicket_restful_jdo/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simple_wicket_restful_jdo/pom.xml b/example/application/simple_wicket_restful_jdo/pom.xml
index 50f6337..826b12f 100644
--- a/example/application/simple_wicket_restful_jdo/pom.xml
+++ b/example/application/simple_wicket_restful_jdo/pom.xml
@@ -23,18 +23,18 @@
 
     <groupId>org.apache.isis.example.application</groupId>
     <artifactId>simple_wicket_restful_jdo</artifactId>
-    <version>1.0.4-SNAPSHOT</version>
+    <version>1.3.0-SNAPSHOT</version>
 
     <name>Simple Wicket/Restful/JDO App</name>
 
     <packaging>pom</packaging>
 
 	<properties>
-        <isis.version>1.3.0-SNAPSHOT</isis.version>
-		<isis-objectstore-jdo.version>1.2.0-SNAPSHOT</isis-objectstore-jdo.version>
-		<isis-viewer-wicket.version>1.3.0-SNAPSHOT</isis-viewer-wicket.version>
-		<isis-viewer-restfulobjects.version>2.1.0-SNAPSHOT</isis-viewer-restfulobjects.version>
-		<isis-security-shiro.version>1.1.2-SNAPSHOT</isis-security-shiro.version>
+        <isis.version>1.3.0</isis.version>
+		<isis-objectstore-jdo.version>1.3.0</isis-objectstore-jdo.version>
+		<isis-viewer-wicket.version>1.3.0</isis-viewer-wicket.version>
+		<isis-viewer-restfulobjects.version>2.1.0</isis-viewer-restfulobjects.version>
+		<isis-security-shiro.version>1.3.0</isis-security-shiro.version>
 
         <!-- must be consistent with the versions defined by the JDO Objectstore -->
         <datanucleus-core.version>3.2.7</datanucleus-core.version>

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/application/simple_wicket_restful_jdo/webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simple_wicket_restful_jdo/webapp/pom.xml b/example/application/simple_wicket_restful_jdo/webapp/pom.xml
index 6083696..c5ad49d 100644
--- a/example/application/simple_wicket_restful_jdo/webapp/pom.xml
+++ b/example/application/simple_wicket_restful_jdo/webapp/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.isis.example.application</groupId>
         <artifactId>simple_wicket_restful_jdo</artifactId>
-        <version>1.0.4-SNAPSHOT</version>
+        <version>1.3.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>simple_wicket_restful_jdo-webapp</artifactId>

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/pom.xml b/example/archetype/simple_wicket_restful_jdo/pom.xml
new file mode 100644
index 0000000..c22d53f
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/pom.xml
@@ -0,0 +1,50 @@
+<?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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.isis.archetype</groupId>
+  <artifactId>simple_wicket_restful_jdo-archetype</artifactId>
+  <version>1.3.0-SNAPSHOT</version>
+  <packaging>maven-archetype</packaging>
+  <name>simple_wicket_restful_jdo-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>
+  <parent>
+    <groupId>org.apache.isis.core</groupId>
+    <artifactId>isis</artifactId>
+    <version>1.3.0</version>
+    <relativePath>../../../core/pom.xm</relativePath>
+  </parent>
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/appended-resources/supplemental-models.xml
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/appended-resources/supplemental-models.xml b/example/archetype/simple_wicket_restful_jdo/src/main/appended-resources/supplemental-models.xml
new file mode 100644
index 0000000..01c58d8
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/appended-resources/supplemental-models.xml
@@ -0,0 +1,26 @@
+<?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>

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/META-INF/maven/archetype-metadata.xml
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/META-INF/maven/archetype-metadata.xml b/example/archetype/simple_wicket_restful_jdo/src/main/resources/META-INF/maven/archetype-metadata.xml
new file mode 100644
index 0000000..43eabbc
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -0,0 +1,151 @@
+<?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="simple_wicket_restful_jdo" 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">
+  <modules>
+    <module id="${rootArtifactId}-dom" dir="dom" name="${rootArtifactId}-dom">
+      <fileSets>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/main/java</directory>
+          <includes>
+            <include>**/*.xml</include>
+            <include>**/*.java</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/java</directory>
+          <includes>
+            <include>**/*.json</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/resources</directory>
+          <includes>
+            <include>**/*.gif</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>log4j.properties</include>
+          </includes>
+        </fileSet>
+      </fileSets>
+    </module>
+    <module id="${rootArtifactId}-fixture" dir="fixture" name="${rootArtifactId}-fixture">
+      <fileSets>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/main/java</directory>
+          <includes>
+            <include>**/*.java</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory/>
+          <includes>
+            <include>.gitignore</include>
+          </includes>
+        </fileSet>
+      </fileSets>
+    </module>
+    <module id="${rootArtifactId}-integtests" dir="integtests" name="${rootArtifactId}-integtests">
+      <fileSets>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/test/java</directory>
+          <includes>
+            <include>**/*.java</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/test/java</directory>
+          <includes>
+            <include>**/*.feature</include>
+          </includes>
+        </fileSet>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory/>
+          <includes>
+            <include>logging.properties</include>
+          </includes>
+        </fileSet>
+      </fileSets>
+    </module>
+    <module id="${rootArtifactId}-webapp" dir="webapp" name="${rootArtifactId}-webapp">
+      <fileSets>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/main/java</directory>
+          <includes>
+            <include>**/*.java</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 filtered="true" encoding="UTF-8">
+          <directory>src/main/resources</directory>
+          <includes>
+            <include>**/*.html</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/jettyconsole</directory>
+          <includes>
+            <include>**/*.png</include>
+            <include>**/*.pdn</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/webapp</directory>
+          <includes>
+            <include>**/*.passwords</include>
+            <include>**/*.allow</include>
+            <include>**/*.png</include>
+            <include>**/*.js</include>
+            <include>**/*.ini</include>
+            <include>**/*.gif</include>
+            <include>**/*.css</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>lib</directory>
+          <includes>
+            <include>**/*.gitignore</include>
+          </includes>
+        </fileSet>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>ide/eclipse</directory>
+          <includes>
+            <include>**/*.launch</include>
+          </includes>
+        </fileSet>
+      </fileSets>
+    </module>
+  </modules>
+</archetype-descriptor>

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/log4j.properties
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/log4j.properties b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/log4j.properties
new file mode 100644
index 0000000..2040d89
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/log4j.properties
@@ -0,0 +1,44 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+${symbol_pound}  Licensed to the Apache Software Foundation (ASF) under one
+${symbol_pound}  or more contributor license agreements.  See the NOTICE file
+${symbol_pound}  distributed with this work for additional information
+${symbol_pound}  regarding copyright ownership.  The ASF licenses this file
+${symbol_pound}  to you under the Apache License, Version 2.0 (the
+${symbol_pound}  "License"); you may not use this file except in compliance
+${symbol_pound}  with the License.  You may obtain a copy of the License at
+${symbol_pound}  
+${symbol_pound}         http://www.apache.org/licenses/LICENSE-2.0
+${symbol_pound}         
+${symbol_pound}  Unless required by applicable law or agreed to in writing,
+${symbol_pound}  software distributed under the License is distributed on an
+${symbol_pound}  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+${symbol_pound}  KIND, either express or implied.  See the License for the
+${symbol_pound}  specific language governing permissions and limitations
+${symbol_pound}  under the License.
+
+${symbol_pound} LOG4J Configuration
+${symbol_pound} ===================
+
+${symbol_pound} Basic logging goes to "datanucleus.log"
+log4j.appender.A1=org.apache.log4j.FileAppender
+log4j.appender.A1.File=datanucleus.log
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - %m%n
+${symbol_pound}log4j.appender.A1.Threshold=INFO
+
+${symbol_pound} Categories
+${symbol_pound} Each category can be set to a "level", and to direct to an appender
+
+${symbol_pound} Default to DEBUG level for all DataNucleus categories
+log4j.logger.DataNucleus = DEBUG, A1
+
+log4j.category.com.mchange.v2.c3p0=INFO, A1
+log4j.category.com.mchange.v2.resourcepool=INFO, A1
+log4j.category.org.logicalcobwebs.proxool=INFO,A1
+
+
+${symbol_pound} Hbase libs logging
+log4j.category.org.apache.hadoop=INFO,A1
+log4j.category.org.apache.zookeeper=INFO,A1
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/pom.xml b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/pom.xml
new file mode 100644
index 0000000..c6845e4
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/pom.xml
@@ -0,0 +1,147 @@
+<?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.
+--><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>${groupId}</groupId>
+    	<artifactId>${rootArtifactId}</artifactId>
+		<version>${version}</version>
+	</parent>
+
+	<artifactId>${artifactId}</artifactId>
+	<name>Simple Wicket/Restful/JDO DOM</name>
+
+	<build>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+            <resource>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**</include>
+                </includes>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+        </resources>
+		<plugins>
+            <plugin>
+                <groupId>org.datanucleus</groupId>
+                <artifactId>datanucleus-maven-plugin</artifactId>
+                <version>3.2.0-release</version>
+                <dependencies>
+                    <dependency>
+                        <!-- Force the enhancer to use the same version of core as the JDO objectstore -->
+                        <groupId>org.datanucleus</groupId>
+                        <artifactId>datanucleus-core</artifactId>
+                        <version>${datanucleus-core.version}</version>
+                    </dependency>
+                    <dependency>
+                        <!-- Force the enhancer to use the same version of jdo-api as the JDO objectstore -->
+                        <groupId>javax.jdo</groupId>
+                        <artifactId>jdo-api</artifactId>
+                        <version>${jdo-api.version}</version>
+                    </dependency>
+                </dependencies>
+                <configuration>
+                	<fork>false</fork>
+                    <log4jConfiguration>${basedir}/log4j.properties</log4jConfiguration>
+                    <verbose>true</verbose>
+                    <props>${basedir}/datanucleus.properties</props>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>compile</phase>
+                        <goals>
+                            <goal>enhance</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+		</plugins>
+		<pluginManagement>
+			<plugins>
+				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+				<plugin>
+					<groupId>org.eclipse.m2e</groupId>
+					<artifactId>lifecycle-mapping</artifactId>
+					<version>1.0.0</version>
+					<configuration>
+						<lifecycleMappingMetadata>
+							<pluginExecutions>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>org.datanucleus</groupId>
+										<artifactId>datanucleus-maven-plugin</artifactId>
+										<versionRange>[3.2.0-release,)</versionRange>
+										<goals>
+											<goal>enhance</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore></ignore>
+									</action>
+								</pluginExecution>
+							</pluginExecutions>
+						</lifecycleMappingMetadata>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+	</build>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.isis.core</groupId>
+			<artifactId>isis-core-applib</artifactId>
+		</dependency>
+
+		<dependency>
+            <groupId>org.apache.isis.objectstore</groupId>
+			<artifactId>isis-objectstore-jdo-applib</artifactId>
+		</dependency>
+        
+		<dependency>
+            <groupId>org.apache.isis.core</groupId>
+			<artifactId>isis-core-unittestsupport</artifactId>
+            <scope>test</scope>
+		</dependency>
+
+        <!-- Bytecode libraries (for mocking) -->
+        <dependency>
+            <groupId>asm</groupId>
+            <artifactId>asm</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.objenesis</groupId>
+            <artifactId>objenesis</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>cglib</groupId>
+            <artifactId>cglib-nodep</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+	</dependencies>
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/META-INF/persistence.xml b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/META-INF/persistence.xml
new file mode 100644
index 0000000..c5d8e78
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/META-INF/persistence.xml
@@ -0,0 +1,29 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?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.
+-->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
+
+    <persistence-unit name="simple">
+    </persistence-unit>
+</persistence>

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/dom/simple/SimpleObject.java
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/dom/simple/SimpleObject.java b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/dom/simple/SimpleObject.java
new file mode 100644
index 0000000..a88faba
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/dom/simple/SimpleObject.java
@@ -0,0 +1,81 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ *  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.
+ */
+package dom.simple;
+
+import javax.jdo.annotations.IdentityType;
+import javax.jdo.annotations.VersionStrategy;
+
+import org.apache.isis.applib.DomainObjectContainer;
+import org.apache.isis.applib.annotation.Bookmarkable;
+import org.apache.isis.applib.annotation.ObjectType;
+import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.util.ObjectContracts;
+
+@javax.jdo.annotations.PersistenceCapable(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.DatastoreIdentity(
+        strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY,
+         column="id")
+@javax.jdo.annotations.Version(
+        strategy=VersionStrategy.VERSION_NUMBER, 
+        column="version")
+@ObjectType("SIMPLE")
+@Bookmarkable
+public class SimpleObject implements Comparable<SimpleObject> {
+
+    // //////////////////////////////////////
+    // Name (property)
+    // //////////////////////////////////////
+    
+    private String name;
+
+    @javax.jdo.annotations.Column(allowsNull="false")
+    @Title
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+
+    // //////////////////////////////////////
+    // compareTo
+    // //////////////////////////////////////
+
+    @Override
+    public int compareTo(SimpleObject other) {
+        return ObjectContracts.compare(this, other, "name");
+    }
+
+    
+    // //////////////////////////////////////
+    // Injected
+    // //////////////////////////////////////
+
+    @SuppressWarnings("unused")
+    private DomainObjectContainer container;
+    public void injectDomainObjectContainer(final DomainObjectContainer container) {
+        this.container = container;
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/dom/simple/SimpleObject.layout.json
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/dom/simple/SimpleObject.layout.json b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/dom/simple/SimpleObject.layout.json
new file mode 100644
index 0000000..aeeb8a2
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/dom/simple/SimpleObject.layout.json
@@ -0,0 +1,44 @@
+/**
+ *  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.
+ */
+{
+    columns: [
+	    {
+	        span: 6,
+	        memberGroups: {
+	            General: {
+	                members: {
+	                    name: {}
+	                }
+	            }
+	        }
+	    },
+	    {
+	        span: 0,
+	        memberGroups: {}
+	    },
+	    {
+	        span: 0,
+	        memberGroups: {}
+	    },
+	    {
+	        span: 6,
+	        collections: {}
+	    }
+    ],
+    actions: {}
+}
+ 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/dom/simple/SimpleObjects.java
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/dom/simple/SimpleObjects.java b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/dom/simple/SimpleObjects.java
new file mode 100644
index 0000000..d3117c7
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/dom/simple/SimpleObjects.java
@@ -0,0 +1,74 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ *  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.
+ */
+package dom.simple;
+
+import java.util.List;
+
+import org.apache.isis.applib.AbstractFactoryAndRepository;
+import org.apache.isis.applib.annotation.ActionSemantics;
+import org.apache.isis.applib.annotation.ActionSemantics.Of;
+import org.apache.isis.applib.annotation.Bookmarkable;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Named;
+
+public class SimpleObjects extends AbstractFactoryAndRepository {
+
+    // //////////////////////////////////////
+    // Identification in the UI
+    // //////////////////////////////////////
+
+    @Override
+    public String getId() {
+        return "simple";
+    }
+
+    public String iconName() {
+        return "SimpleObject";
+    }
+
+    // //////////////////////////////////////
+    // List (action)
+    // //////////////////////////////////////
+    
+    @Bookmarkable
+    @ActionSemantics(Of.SAFE)
+    @MemberOrder(sequence = "1")
+    public List<SimpleObject> listAll() {
+        return allInstances(SimpleObject.class);
+    }
+
+
+    // //////////////////////////////////////
+    // Create (action)
+    // //////////////////////////////////////
+    
+    @Bookmarkable
+    @MemberOrder(sequence = "2")
+    public SimpleObject create(
+            final @Named("Name") String name) {
+        final SimpleObject obj = newTransientInstance(SimpleObject.class);
+        obj.setName(name);
+        persistIfNotAlready(obj);
+        return obj;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/services/ClockService.java
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/services/ClockService.java b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/services/ClockService.java
new file mode 100644
index 0000000..6311d76
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/services/ClockService.java
@@ -0,0 +1,36 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/**
+ *  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.
+ */
+package services;
+
+import org.joda.time.LocalDate;
+
+import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.clock.Clock;
+
+@Hidden
+public class ClockService {
+    
+    @Programmatic
+    public LocalDate now() {
+        return Clock.getTimeAsLocalDate();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/resources/images/SimpleObject.gif
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/resources/images/SimpleObject.gif b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/resources/images/SimpleObject.gif
new file mode 100644
index 0000000..a5fc6ff
Binary files /dev/null and b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/resources/images/SimpleObject.gif differ

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/test/java/dom/simple/SimpleObjectTest_name.java
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/test/java/dom/simple/SimpleObjectTest_name.java b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/test/java/dom/simple/SimpleObjectTest_name.java
new file mode 100644
index 0000000..b905ca5
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/test/java/dom/simple/SimpleObjectTest_name.java
@@ -0,0 +1,50 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/**
+ *  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.
+ */
+package dom.simple;
+
+import static org.hamcrest.CoreMatchers.*;
+import static org.junit.Assert.assertThat;
+import dom.simple.SimpleObject;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class SimpleObjectTest_name {
+
+    private SimpleObject simpleObject;
+
+    @Before
+    public void setUp() throws Exception {
+        simpleObject = new SimpleObject();
+    }
+    
+    @Test
+    public void happyCase() throws Exception {
+        // given
+        assertThat(simpleObject.getName(), is(nullValue()));
+        
+        // when
+        simpleObject.setName("Foobar");
+        
+        // then
+        assertThat(simpleObject.getName(), is("Foobar"));
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/test/java/dom/simple/SimpleObjectsTest_create.java
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/test/java/dom/simple/SimpleObjectsTest_create.java b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/test/java/dom/simple/SimpleObjectsTest_create.java
new file mode 100644
index 0000000..1639b44
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/test/java/dom/simple/SimpleObjectsTest_create.java
@@ -0,0 +1,79 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/**
+ *  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.
+ */
+package dom.simple;
+
+import static org.hamcrest.CoreMatchers.*;
+import static org.junit.Assert.assertThat;
+import dom.simple.SimpleObject;
+
+import org.jmock.Expectations;
+import org.jmock.Sequence;
+import org.jmock.auto.Mock;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.apache.isis.applib.DomainObjectContainer;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
+
+public class SimpleObjectsTest_create {
+
+    @Rule
+    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
+
+    @Mock
+    private DomainObjectContainer mockContainer;
+    
+    private SimpleObjects simpleObjects;
+
+    @Before
+    public void setUp() throws Exception {
+        simpleObjects = new SimpleObjects();
+        simpleObjects.setContainer(mockContainer);
+    }
+    
+    @Test
+    public void happyCase() throws Exception {
+        
+        // given
+        final SimpleObject simpleObject = new SimpleObject();
+        
+        final Sequence seq = context.sequence("create");
+        context.checking(new Expectations() {
+            {
+                oneOf(mockContainer).newTransientInstance(SimpleObject.class);
+                inSequence(seq);
+                will(returnValue(simpleObject));
+                
+                oneOf(mockContainer).persistIfNotAlready(simpleObject);
+                inSequence(seq);
+            }
+        });
+        
+        // when
+        final SimpleObject obj = simpleObjects.create("Foobar");
+        
+        // then
+        assertThat(obj, is(simpleObject));
+        assertThat(obj.getName(), is("Foobar"));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/test/java/dom/simple/SimpleObjectsTest_listAll.java
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/test/java/dom/simple/SimpleObjectsTest_listAll.java b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/test/java/dom/simple/SimpleObjectsTest_listAll.java
new file mode 100644
index 0000000..c9e424e
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/test/java/dom/simple/SimpleObjectsTest_listAll.java
@@ -0,0 +1,79 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/**
+ *  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.
+ */
+package dom.simple;
+
+import static org.hamcrest.CoreMatchers.*;
+import static org.junit.Assert.assertThat;
+
+import java.util.List;
+
+import com.google.common.collect.Lists;
+
+import dom.simple.SimpleObject;
+
+import org.jmock.Expectations;
+import org.jmock.Sequence;
+import org.jmock.auto.Mock;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.apache.isis.applib.DomainObjectContainer;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
+
+public class SimpleObjectsTest_listAll {
+
+    @Rule
+    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
+
+    @Mock
+    private DomainObjectContainer mockContainer;
+    
+    private SimpleObjects simpleObjects;
+
+    @Before
+    public void setUp() throws Exception {
+        simpleObjects = new SimpleObjects();
+        simpleObjects.setContainer(mockContainer);
+    }
+    
+    @Test
+    public void happyCase() throws Exception {
+        
+        
+        // given
+        final List all = Lists.newArrayList();
+        
+        context.checking(new Expectations() {
+            {
+                oneOf(mockContainer).allInstances(SimpleObject.class);
+                will(returnValue(all));
+            }
+        });
+        
+        // when
+        final List list = simpleObjects.listAll();
+        
+        // then
+        assertThat(list, is(all));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/.gitignore
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/.gitignore b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/.gitignore
@@ -0,0 +1 @@
+/target-ide

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/pom.xml b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/pom.xml
new file mode 100644
index 0000000..204bc79
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/pom.xml
@@ -0,0 +1,38 @@
+<?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.
+--><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>${groupId}</groupId>
+        <artifactId>${rootArtifactId}</artifactId>
+        <version>${version}</version>
+    </parent>
+
+	<artifactId>${artifactId}</artifactId>
+	<name>Simple Wicket/Restful/JDO Fixtures</name>
+
+	<dependencies>
+		<dependency>
+			<groupId>${project.groupId}</groupId>
+			<artifactId>${rootArtifactId}-dom</artifactId>
+		</dependency>
+	</dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/LogonAsSvenFixture.java
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/LogonAsSvenFixture.java b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/LogonAsSvenFixture.java
new file mode 100644
index 0000000..86f60ee
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/LogonAsSvenFixture.java
@@ -0,0 +1,33 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ *  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.
+ */
+
+package fixture;
+
+import org.apache.isis.applib.fixtures.LogonFixture;
+
+public class LogonAsSvenFixture extends LogonFixture {
+
+    public LogonAsSvenFixture() {
+        super("sven");
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/SimpleObjectsFixture.java
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/SimpleObjectsFixture.java b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/SimpleObjectsFixture.java
new file mode 100644
index 0000000..78511af
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/SimpleObjectsFixture.java
@@ -0,0 +1,74 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ *  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.
+ */
+
+package fixture.simple;
+
+import dom.simple.SimpleObject;
+import dom.simple.SimpleObjects;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.objectstore.jdo.applib.service.support.IsisJdoSupport;
+
+public class SimpleObjectsFixture extends AbstractFixture {
+
+    
+    @Override
+    public void install() {
+
+        isisJdoSupport.executeUpdate("delete from ${symbol_escape}"SimpleObject${symbol_escape}"");
+
+        installObjects();
+        
+        getContainer().flush();
+    }
+
+    private void installObjects() {
+
+        create("Foo");
+        create("Bar");
+        create("Baz");
+    }
+
+
+    // //////////////////////////////////////
+
+    private SimpleObject create(final String name) {
+        return simpleObjects.create(name);
+    }
+
+
+    // //////////////////////////////////////
+
+
+    private SimpleObjects simpleObjects;
+
+    public void injectSimpleObjects(final SimpleObjects simpleObjects) {
+        this.simpleObjects = simpleObjects;
+    }
+
+    
+    private IsisJdoSupport isisJdoSupport;
+    public void injectIsisJdoSupport(IsisJdoSupport isisJdoSupport) {
+        this.isisJdoSupport = isisJdoSupport;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/logging.properties
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/logging.properties b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/logging.properties
new file mode 100644
index 0000000..234ed51
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/logging.properties
@@ -0,0 +1,80 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+${symbol_pound}  Licensed to the Apache Software Foundation (ASF) under one
+${symbol_pound}  or more contributor license agreements.  See the NOTICE file
+${symbol_pound}  distributed with this work for additional information
+${symbol_pound}  regarding copyright ownership.  The ASF licenses this file
+${symbol_pound}  to you under the Apache License, Version 2.0 (the
+${symbol_pound}  "License"); you may not use this file except in compliance
+${symbol_pound}  with the License.  You may obtain a copy of the License at
+${symbol_pound}  
+${symbol_pound}         http://www.apache.org/licenses/LICENSE-2.0
+${symbol_pound}         
+${symbol_pound}  Unless required by applicable law or agreed to in writing,
+${symbol_pound}  software distributed under the License is distributed on an
+${symbol_pound}  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+${symbol_pound}  KIND, either express or implied.  See the License for the
+${symbol_pound}  specific language governing permissions and limitations
+${symbol_pound}  under the License.
+
+
+${symbol_pound}
+${symbol_pound} Isis uses log4j is used to provide system logging
+${symbol_pound}
+log4j.rootCategory=INFO, Console
+
+${symbol_pound} The console appender
+log4j.appender.Console=org.apache.log4j.ConsoleAppender
+log4j.appender.Console.target=System.out
+log4j.appender.Console.layout=org.apache.log4j.PatternLayout
+log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE}  [%-20c{1} %-10t %-5p]  %m%n
+
+log4j.appender.File=org.apache.log4j.RollingFileAppender
+log4j.appender.File.file=isis.log
+log4j.appender.File.append=false
+log4j.appender.File.layout=org.apache.log4j.PatternLayout
+log4j.appender.File.layout.ConversionPattern=%d [%-20c{1} %-10t %-5p]  %m%n
+
+! turn on the internal log4j debugging flag so we can see what it is doing
+${symbol_pound}log4j.debug=true
+
+${symbol_pound} DataNucleus
+log4j.logger.DataNucleus.Datastore.Native=DEBUG, Console
+log4j.logger.DataNucleus.Datastore.Schema=DEBUG, Console
+
+log4j.logger.DataNucleus.Persistence=WARN, Console
+log4j.logger.DataNucleus.Transaction=WARN, Console
+log4j.logger.DataNucleus.Connection=WARN, Console
+log4j.logger.DataNucleus.Query=WARN, Console
+log4j.logger.DataNucleus.Cache=WARN, Console
+log4j.logger.DataNucleus.MetaData=WARN, Console
+log4j.logger.DataNucleus.Datastore=WARN, Console
+log4j.logger.DataNucleus.Datastore.Persist=WARN, Console
+log4j.logger.DataNucleus.Datastore.Retrieve=WARN, Console
+log4j.logger.DataNucleus.General=WARN, Console
+log4j.logger.DataNucleus.Lifecycle=WARN, Console
+log4j.logger.DataNucleus.ValueGeneration=WARN, Console
+log4j.logger.DataNucleus.Enhancer=WARN, Console
+log4j.logger.DataNucleus.SchemaTool=ERROR, Console
+log4j.logger.DataNucleus.JDO=WARN, Console
+log4j.logger.DataNucleus.JPA=ERROR, Console
+log4j.logger.DataNucleus.JCA=WARN, Console
+log4j.logger.DataNucleus.IDE=ERROR, Console
+
+
+${symbol_pound} if using log4jdbc-remix as JDBC driver
+${symbol_pound}log4j.logger.jdbc.sqlonly=DEBUG, sql, Console
+${symbol_pound}log4j.additivity.jdbc.sqlonly=false
+${symbol_pound}log4j.logger.jdbc.resultsettable=DEBUG, jdbc, Console
+${symbol_pound}log4j.additivity.jdbc.resultsettable=false
+
+${symbol_pound}log4j.logger.jdbc.audit=WARN,jdbc, Console
+${symbol_pound}log4j.additivity.jdbc.audit=false
+${symbol_pound}log4j.logger.jdbc.resultset=WARN,jdbc
+${symbol_pound}log4j.additivity.jdbc.resultset=false
+${symbol_pound}log4j.logger.jdbc.sqltiming=WARN,sqltiming
+${symbol_pound}log4j.additivity.jdbc.sqltiming=false
+${symbol_pound}log4j.logger.jdbc.connection=FATAL,connection
+${symbol_pound}log4j.additivity.jdbc.connection=false
+

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/pom.xml b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/pom.xml
new file mode 100644
index 0000000..4b47301
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/pom.xml
@@ -0,0 +1,122 @@
+<?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.
+--><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>${groupId}</groupId>
+        <artifactId>${rootArtifactId}</artifactId>
+        <version>${version}</version>
+    </parent>
+
+	<artifactId>${artifactId}</artifactId>
+	<name>Simple Wicket/Restful/JDO Integration Tests</name>
+
+    <build>
+        <testResources>
+            <testResource>
+                <directory>src/test/resources</directory>
+            </testResource>
+            <testResource>
+                <directory>src/test/java</directory>
+                <includes>
+                    <include>**</include>
+                </includes>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </testResource>
+        </testResources>  
+    </build>
+  	<dependencies>
+	
+		<!-- other modules in this project -->
+		<dependency>
+			<groupId>${project.groupId}</groupId>
+			<artifactId>${rootArtifactId}-fixture</artifactId>
+		</dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-unittestsupport</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-integtestsupport</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-specsupport</artifactId>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>hamcrest-library</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-wrapper</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.objectstore</groupId>
+            <artifactId>isis-objectstore-jdo-datanucleus</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.hsqldb</groupId>
+            <artifactId>hsqldb</artifactId>
+        </dependency>
+
+        <!-- 
+        uncomment to enable enhanced cucumber-jvm reporting
+        http://www.masterthought.net/section/cucumber-reporting
+        <dependency>  
+            <groupId>com.googlecode.totallylazy</groupId>  
+            <artifactId>totallylazy</artifactId>  
+            <version>991</version>  
+        </dependency>
+
+        <dependency>
+            <groupId>net.masterthought</groupId>
+            <artifactId>cucumber-reporting</artifactId>
+            <version>0.0.21</version>
+        </dependency>
+        <dependency>
+            <groupId>net.masterthought</groupId>
+            <artifactId>maven-cucumber-reporting</artifactId>
+            <version>0.0.4</version>
+        </dependency>  
+        -->
+	</dependencies>
+
+    <!-- 
+    uncomment for enhanced cucumber-jvm reporting
+    http://www.masterthought.net/section/cucumber-reporting
+    <repositories>  
+        <repository>  
+            <id>repo.bodar.com</id>  
+            <url>http://repo.bodar.com</url>  
+        </repository>  
+    </repositories>  
+     -->
+  
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/SimpleAppSystemInitializer.java
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/SimpleAppSystemInitializer.java b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/SimpleAppSystemInitializer.java
new file mode 100644
index 0000000..361a780
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/SimpleAppSystemInitializer.java
@@ -0,0 +1,84 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/**
+ *  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.
+ */
+package integration;
+
+import dom.simple.SimpleObjects;
+
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
+import org.apache.isis.core.integtestsupport.IsisSystemForTest;
+import org.apache.isis.core.wrapper.WrapperFactoryDefault;
+import org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore;
+import org.apache.isis.objectstore.jdo.datanucleus.DataNucleusPersistenceMechanismInstaller;
+import org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJdoSupportImpl;
+import org.apache.isis.objectstore.jdo.service.RegisterEntities;
+
+/**
+ * Holds an instance of an {@link IsisSystemForTest} as a {@link ThreadLocal} on the current thread,
+ * initialized with ToDo app's domain services. 
+ */
+public class SimpleAppSystemInitializer {
+    
+    private SimpleAppSystemInitializer(){}
+
+    public static IsisSystemForTest initIsft() {
+        IsisSystemForTest isft = IsisSystemForTest.getElseNull();
+        if(isft == null) {
+            isft = new SimpleAppSystemBuilder().build().setUpSystem();
+            IsisSystemForTest.set(isft);
+        }
+        return isft;
+    }
+
+    private static class SimpleAppSystemBuilder extends IsisSystemForTest.Builder {
+
+        public SimpleAppSystemBuilder() {
+            //withFixtures( ... reference data fixtures ...); // if we had any...
+            withLoggingAt(org.apache.log4j.Level.INFO);
+            with(testConfiguration());
+            with(new DataNucleusPersistenceMechanismInstaller());
+            
+            withServices(
+                    new SimpleObjects(),
+                    new WrapperFactoryDefault(),
+                    new RegisterEntities(),
+                    new IsisJdoSupportImpl()
+                    );
+        }
+
+        private IsisConfiguration testConfiguration() {
+            final IsisConfigurationDefault testConfiguration = new IsisConfigurationDefault();
+
+            testConfiguration.add("isis.persistor.datanucleus.RegisterEntities.packagePrefix", "dom");
+            testConfiguration.add("isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL", "jdbc:hsqldb:mem:test");
+            
+            testConfiguration.add("isis.persistor.datanucleus.impl.datanucleus.defaultInheritanceStrategy", "TABLE_PER_CLASS");
+            testConfiguration.add(DataNucleusObjectStore.INSTALL_FIXTURES_KEY , "true");
+            
+            testConfiguration.add("isis.persistor.datanucleus.impl.datanucleus.cache.level2.type","none");
+
+            testConfiguration.add("isis.persistor.datanucleus.impl.datanucleus.identifier.case", "PreserveCase");
+
+            return testConfiguration;
+        }
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/BootstrappingGlue.java
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/BootstrappingGlue.java b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/BootstrappingGlue.java
new file mode 100644
index 0000000..711adc6
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/BootstrappingGlue.java
@@ -0,0 +1,56 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/**
+O *  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.
+ */
+package integration.glue;
+
+import integration.SimpleAppSystemInitializer;
+import cucumber.api.java.After;
+import cucumber.api.java.Before;
+
+import org.apache.isis.core.specsupport.scenarios.ScenarioExecutionScope;
+import org.apache.isis.core.specsupport.specs.CukeGlueAbstract;
+
+public class BootstrappingGlue extends CukeGlueAbstract {
+
+    // //////////////////////////////////////
+    
+    @Before(value={"@unit"}, order=100)
+    public void beforeScenarioUnitScope() {
+        before(ScenarioExecutionScope.UNIT);
+    }
+
+    @Before(value={"@integration"}, order=100)
+    public void beforeScenarioIntegrationScope() {
+        org.apache.log4j.PropertyConfigurator.configure("logging.properties");
+        SimpleAppSystemInitializer.initIsft();
+        
+        before(ScenarioExecutionScope.INTEGRATION);
+    }
+
+    @After
+    public void afterScenario(cucumber.api.Scenario sc) {
+        assertMocksSatisfied();
+        after(sc);
+    }
+
+    // //////////////////////////////////////
+    
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/CatalogOfFixturesGlue.java
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/CatalogOfFixturesGlue.java b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/CatalogOfFixturesGlue.java
new file mode 100644
index 0000000..c09082e
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/CatalogOfFixturesGlue.java
@@ -0,0 +1,49 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/**
+ *  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.
+ */
+package integration.glue;
+
+import cucumber.api.java.Before;
+import dom.simple.SimpleObject;
+import fixture.simple.SimpleObjectsFixture;
+
+import org.apache.isis.core.specsupport.scenarios.InMemoryDB;
+import org.apache.isis.core.specsupport.specs.CukeGlueAbstract;
+
+public class CatalogOfFixturesGlue extends CukeGlueAbstract {
+
+    
+    @Before(value={"@unit", "@SimpleObjectsFixture"}, order=20000)
+    public void unitFixtures() throws Throwable {
+        final InMemoryDB inMemoryDB = new InMemoryDBForSimpleApp(this.scenarioExecution());
+        inMemoryDB.getElseCreate(SimpleObject.class, "Foo");
+        inMemoryDB.getElseCreate(SimpleObject.class, "Bar");
+        inMemoryDB.getElseCreate(SimpleObject.class, "Baz");
+        putVar("isis", "in-memory-db", inMemoryDB);
+    }
+
+    // //////////////////////////////////////
+
+    @Before(value={"@integration", "@SimpleObjectsFixture"}, order=20000)
+    public void integrationFixtures() throws Throwable {
+        scenarioExecution().install(new SimpleObjectsFixture());
+    }
+    
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/InMemoryDBForSimpleApp.java
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/InMemoryDBForSimpleApp.java b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/InMemoryDBForSimpleApp.java
new file mode 100644
index 0000000..3aefb12
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/InMemoryDBForSimpleApp.java
@@ -0,0 +1,43 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/**
+ *  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.
+ */
+package integration.glue;
+
+import dom.simple.SimpleObject;
+
+import org.apache.isis.core.specsupport.scenarios.InMemoryDB;
+import org.apache.isis.core.specsupport.scenarios.ScenarioExecution;
+
+public class InMemoryDBForSimpleApp extends InMemoryDB {
+    
+    public InMemoryDBForSimpleApp(ScenarioExecution scenarioExecution) {
+        super(scenarioExecution);
+    }
+    
+    /**
+     * Hook to initialize if possible.
+     */
+    @Override
+    protected void init(Object obj, String str) {
+        if(obj instanceof SimpleObject) {
+            SimpleObject toDoItem = (SimpleObject) obj;
+            toDoItem.setName(str);
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/simple/SimpleObjectGlue.java
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/simple/SimpleObjectGlue.java b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/simple/SimpleObjectGlue.java
new file mode 100644
index 0000000..ccfc9ec
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/glue/simple/SimpleObjectGlue.java
@@ -0,0 +1,101 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/**
+ *  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.
+ */
+package integration.glue.simple;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+import java.util.List;
+import java.util.UUID;
+
+import cucumber.api.java.en.Given;
+import cucumber.api.java.en.When;
+import dom.simple.SimpleObject;
+import dom.simple.SimpleObjects;
+
+import org.hamcrest.Description;
+import org.jmock.Expectations;
+import org.jmock.api.Action;
+import org.jmock.api.Invocation;
+
+import org.apache.isis.core.specsupport.scenarios.InMemoryDB;
+import org.apache.isis.core.specsupport.specs.CukeGlueAbstract;
+
+public class SimpleObjectGlue extends CukeGlueAbstract {
+
+    @Given("^there are.* (${symbol_escape}${symbol_escape}d+) simple objects${symbol_dollar}")
+    public void there_are_N_simple_objects(int n) throws Throwable {
+        if(supportsMocks()) {
+            checking(new Expectations() {
+                {
+                    allowing(service(SimpleObjects.class)).listAll();
+                    will(returnValue(allSimpleObjects()));
+                }
+            });
+        }
+        try {
+            final List<SimpleObject> findAll = service(SimpleObjects.class).listAll();
+            assertThat(findAll.size(), is(n));
+            putVar("list", "all", findAll);
+            
+        } finally {
+            assertMocksSatisfied();
+        }
+    }
+    
+    @When("^I create a new simple object${symbol_dollar}")
+    public void I_create_a_new_simple_object() throws Throwable {
+        if(supportsMocks()) {
+            checking(new Expectations() {
+                {
+                    oneOf(service(SimpleObjects.class)).create(with(any(String.class)));
+                    will(addToInMemoryDB());
+                }
+            });
+        }
+        service(SimpleObjects.class).create(UUID.randomUUID().toString());
+    }
+    
+    private Action addToInMemoryDB() {
+        return new Action() {
+            
+            @Override
+            public Object invoke(Invocation invocation) throws Throwable {
+                final InMemoryDB inMemoryDB = getVar("isis", "in-memory-db", InMemoryDB.class);
+                final String name = (String)invocation.getParameter(0);
+                final SimpleObject obj = new SimpleObject();
+                obj.setName(name);
+                inMemoryDB.put(SimpleObject.class, name, obj);
+                return obj;
+            }
+            
+            @Override
+            public void describeTo(Description description) {
+                description.appendText("add to database");
+            }
+        };
+    }
+
+    // helper
+    private List<SimpleObject> allSimpleObjects() {
+        final InMemoryDB inMemoryDB = getVar("isis", "in-memory-db", InMemoryDB.class);
+        return inMemoryDB.findAll(SimpleObject.class);
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/858a04b9/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/specs/simple/RunSpecs.java
----------------------------------------------------------------------
diff --git a/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/specs/simple/RunSpecs.java b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/specs/simple/RunSpecs.java
new file mode 100644
index 0000000..e32594e
--- /dev/null
+++ b/example/archetype/simple_wicket_restful_jdo/src/main/resources/archetype-resources/integtests/src/test/java/integration/specs/simple/RunSpecs.java
@@ -0,0 +1,41 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/**
+ *  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.
+ */
+package integration.specs.simple;
+
+import cucumber.api.junit.Cucumber;
+
+import org.junit.runner.RunWith;
+
+
+/**
+ * Runs scenarios in all <tt>.feature</tt> files (this package and any subpackages). 
+ */
+@RunWith(Cucumber.class)
+@Cucumber.Options(
+        format = {
+                "html:target/cucumber-html-report"
+                ,"json:target/cucumber.json"
+        },
+        glue={"classpath:integration.glue"},
+        strict = true,
+        tags = { "~@backlog", "~@ignore" })
+public class RunSpecs {
+    // intentionally empty 
+}