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
+}