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 2012/12/06 12:09:54 UTC

[4/51] [partial] ISIS-188: moving components into correct directories.

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-bdd/src/test/resources/viewer/bdd/stories/todo/ScenarioMarkItemAsDone.html
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-bdd/src/test/resources/viewer/bdd/stories/todo/ScenarioMarkItemAsDone.html b/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-bdd/src/test/resources/viewer/bdd/stories/todo/ScenarioMarkItemAsDone.html
new file mode 100644
index 0000000..1325b09
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-bdd/src/test/resources/viewer/bdd/stories/todo/ScenarioMarkItemAsDone.html
@@ -0,0 +1,166 @@
+#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.
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "file:src/test/resources/dtd/xhtml1-strict.dtd">
+<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"
+    xmlns:concordion="http://www.concordion.org/2007/concordion"
+    xmlns:isis="http://isis.apache.org/2010/concordion">
+<link href="../../concordion.css" rel="stylesheet" type="text/css" />
+<body>
+
+<h1>Mark Item As Done</h1>
+
+<div class="example">
+
+<h2>Given</h2>
+<p>
+Given <a concordion:run="concordion"
+        href="Fixture.html">this fixture</a></p>
+
+<p>Locate to-do item:</p>
+<table
+    isis:execute="${symbol_pound}result=usingIsisViewerThatArgs(${symbol_pound}onObject, ${symbol_pound}aliasResultAs, ${symbol_pound}perform, ${symbol_pound}onMember, ${symbol_pound}thatIt, ${symbol_pound}value)">
+    <tr>
+        <th concordion:set="${symbol_pound}onObject">on object</th>
+        <th concordion:set="${symbol_pound}aliasResultAs">alias result as</th>
+        <th concordion:set="${symbol_pound}perform">perform</th>
+        <th concordion:set="${symbol_pound}onMember">on member</th>
+        <th concordion:assertEquals="${symbol_pound}result" />
+    </tr>
+    <tr>
+        <td>toDoItems</td>
+        <td>listOfItemsBefore</td>
+        <td>invoke action</td>
+        <td>not yet done</td>
+        <td>ok</td>
+    </tr>
+</table>
+
+<p
+    concordion:execute="${symbol_pound}result=aliasItemsInList(${symbol_pound}listAlias, ${symbol_pound}title, ${symbol_pound}aliasAs)">
+... and then alias the '<span concordion:set="${symbol_pound}title">Buy milk</span>' item in the returned <span
+    concordion:set="${symbol_pound}listAlias">listOfItemsBefore</span> as <span
+    concordion:set="${symbol_pound}aliasAs">buyMilkItem</span>; <span
+    concordion:assertEquals="${symbol_pound}result">ok</span>.</p>
+
+<p>Confirm to-do item is not done:</p>
+<table
+    isis:execute="${symbol_pound}result=usingIsisViewerThatArgs(${symbol_pound}onObject, ${symbol_pound}aliasResultAs, ${symbol_pound}perform, ${symbol_pound}onMember, ${symbol_pound}thatIt, ${symbol_pound}value)">
+    <tr>
+        <th concordion:set="${symbol_pound}onObject">on object</th>
+        <th concordion:set="${symbol_pound}aliasResultAs">alias result as</th>
+        <th concordion:set="${symbol_pound}perform">perform</th>
+        <th concordion:set="${symbol_pound}onMember">on member</th>
+        <th concordion:set="${symbol_pound}thatIt">that it</th>
+        <th concordion:set="${symbol_pound}value">value</th>
+        <th concordion:assertEquals="${symbol_pound}result" />
+    </tr>
+    <tr>
+        <td>buyMilkItem</td>
+        <td></td>
+        <td>check property</td>
+        <td>done</td>
+        <td>is</td>
+        <td>False</td>
+        <td>ok</td>
+    </tr>
+</table>
+
+
+
+<h2>When</h2>
+
+<p>Mark as done</p>
+<table
+	isis:execute="${symbol_pound}result=usingIsisViewerThatArgs(${symbol_pound}onObject, ${symbol_pound}aliasResultAs, ${symbol_pound}perform, ${symbol_pound}onMember, ${symbol_pound}thatIt, ${symbol_pound}value)">
+	<tr>
+		<th concordion:set="${symbol_pound}onObject">on object</th>
+		<th concordion:set="${symbol_pound}aliasResultAs">alias result as</th>
+		<th concordion:set="${symbol_pound}perform">perform</th>
+		<th concordion:set="${symbol_pound}onMember">on member</th>
+		<th concordion:assertEquals="${symbol_pound}result" />
+	</tr>
+    <tr>
+        <td>buyMilkItem</td>
+        <td></td>
+        <td>invoke action</td>
+        <td>mark as done</td>
+        <td>ok</td>
+    </tr>
+</table>
+
+<h2>Then</h2>
+<p>Confirm item is done...</p>
+<table
+    isis:execute="${symbol_pound}result=usingIsisViewerThatArgs(${symbol_pound}onObject, ${symbol_pound}aliasResultAs, ${symbol_pound}perform, ${symbol_pound}onMember, ${symbol_pound}thatIt, ${symbol_pound}value)">
+    <tr>
+        <th concordion:set="${symbol_pound}onObject">on object</th>
+        <th concordion:set="${symbol_pound}aliasResultAs">alias result as</th>
+        <th concordion:set="${symbol_pound}perform">perform</th>
+        <th concordion:set="${symbol_pound}onMember">on member</th>
+        <th concordion:set="${symbol_pound}thatIt">that it</th>
+        <th concordion:set="${symbol_pound}value">value</th>
+        <th concordion:assertEquals="${symbol_pound}result" />
+    </tr>
+    <tr>
+        <td>buyMilkItem</td>
+        <td></td>
+        <td>check property</td>
+        <td>done</td>
+        <td>is</td>
+        <td>True</td>
+        <td>ok</td>
+    </tr>
+</table>
+
+<p>... and that when the list of items is obtained again...</p>
+<table
+    isis:execute="${symbol_pound}result=usingIsisViewerThatArgs(${symbol_pound}onObject, ${symbol_pound}aliasResultAs, ${symbol_pound}perform, ${symbol_pound}onMember, ${symbol_pound}thatIt, ${symbol_pound}value)">
+    <tr>
+        <th concordion:set="${symbol_pound}onObject">on object</th>
+        <th concordion:set="${symbol_pound}aliasResultAs">alias result as</th>
+        <th concordion:set="${symbol_pound}perform">perform</th>
+        <th concordion:set="${symbol_pound}onMember">on member</th>
+        <th concordion:assertEquals="${symbol_pound}result" />
+    </tr>
+    <tr>
+        <td>toDoItems</td>
+        <td>listOfItemsAfter</td>
+        <td>invoke action</td>
+        <td>not yet done</td>
+        <td>ok</td>
+    </tr>
+</table>
+
+<p concordion:execute="${symbol_pound}result=checkCollectionDoesNotContain(${symbol_pound}listAlias,${symbol_pound}alias)">
+... then the <span concordion:set="${symbol_pound}alias">buyMilkItem</span> is no 
+longer in that list (<span concordion:set="${symbol_pound}listAlias">listOfItemsAfter</span>);
+  <span concordion:assertEquals="${symbol_pound}result">ok</span>.
+</p>
+
+<!-- uncomment the line below to run up the DnD viewer -->
+<!-- 
+<p concordion:execute="runViewer()">run viewer</p>
+--></div>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/isis.properties
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/isis.properties b/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/isis.properties
new file mode 100644
index 0000000..31ce91d
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/isis.properties
@@ -0,0 +1,32 @@
+#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.
+isis.services.prefix = objstore.dflt
+isis.services = todo.ToDoItemsDefault
+
+isis.fixtures.prefix= fixture
+isis.fixtures= LogonAsSvenFixture,todo.ToDoItemsFixture
+
+isis.exploration.users=sven, dick, bob
+
+isis.reflector.class-substitutor=org.apache.isis.runtimes.dflt.bytecode.dflt.classsubstitutor.CglibClassSubstitutor
+isis.persistor.object-factory=org.apache.isis.runtimes.dflt.bytecode.dflt.objectfactory.CglibObjectFactory
+
+isis.user-profile-store=in-memory
+isis.persistor=in-memory

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/pom.xml
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/pom.xml b/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/pom.xml
new file mode 100644
index 0000000..622b547
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/pom.xml
@@ -0,0 +1,79 @@
+<?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>Quickstart JUnit Tests</name>
+
+	<dependencies>
+
+        <!-- this project's dependencies -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>${rootArtifactId}-fixture</artifactId>
+            <version>${version}</version>
+        </dependency>
+
+        <!-- isis -->
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>runtime</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.runtimes.dflt.bytecode</groupId>
+            <artifactId>dflt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.runtimes.dflt.objectstores</groupId>
+            <artifactId>dflt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.runtimes.dflt.profilestores</groupId>
+            <artifactId>dflt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.progmodels</groupId>
+            <artifactId>dflt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.security</groupId>
+            <artifactId>dflt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.security</groupId>
+            <artifactId>file</artifactId>
+        </dependency>
+
+        <!-- isis viewers -->
+        <dependency>
+            <groupId>org.apache.isis.viewer</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+	</dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/src/test/java/junit/AbstractTest.java
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/src/test/java/junit/AbstractTest.java b/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/src/test/java/junit/AbstractTest.java
new file mode 100644
index 0000000..4873af7
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/src/test/java/junit/AbstractTest.java
@@ -0,0 +1,103 @@
+#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 junit;
+
+import dom.todo.ToDoItems;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.runner.RunWith;
+
+import org.apache.isis.applib.DomainObjectContainer;
+import org.apache.isis.progmodel.wrapper.applib.WrapperFactory;
+import org.apache.isis.progmodel.wrapper.applib.WrapperObject;
+import org.apache.isis.viewer.junit.ConfigDir;
+import org.apache.isis.viewer.junit.IsisTestRunner;
+import org.apache.isis.viewer.junit.Service;
+import org.apache.isis.viewer.junit.Services;
+
+@RunWith(IsisTestRunner.class)
+@ConfigDir("../viewer-dnd/config") // acts as default, but can be overridden by annotations
+@Services({ @Service(ToDoItems.class) })
+public abstract class AbstractTest {
+
+    private DomainObjectContainer domainObjectContainer;
+    private WrapperFactory wrapperFactory;
+
+    /**
+     * The {@link WrapperFactory${symbol_pound}wrap(Object) wrapped} equivalent of the
+     * {@link ${symbol_pound}setToDoItems(ToDoItems) injected} {@link ToDoItems}.
+     */
+    protected ToDoItems toDoItems;
+
+    @Before
+    public void wrapInjectedServices() throws Exception {
+        toDoItems = wrapped(toDoItems);
+    }
+
+    @Before
+    public void setUp() throws Exception {
+    }
+
+    protected <T> T wrapped(final T obj) {
+        return wrapperFactory.wrap(obj);
+    }
+
+    @SuppressWarnings("unchecked")
+    protected <T> T unwrapped(final T obj) {
+        if (obj instanceof WrapperObject) {
+            final WrapperObject wrapperObject = (WrapperObject) obj;
+            return (T) wrapperObject.wrapped();
+        }
+        return obj;
+    }
+
+    @After
+    public void tearDown() throws Exception {
+    }
+
+    // //////////////////////////////////////////////////////
+    // Injected.
+    // //////////////////////////////////////////////////////
+
+    protected WrapperFactory getWrapperFactory() {
+        return wrapperFactory;
+    }
+
+    public void setWrapperFactory(final WrapperFactory wrapperFactory) {
+        this.wrapperFactory = wrapperFactory;
+    }
+
+    protected DomainObjectContainer getDomainObjectContainer() {
+        return domainObjectContainer;
+    }
+
+    public void setDomainObjectContainer(final DomainObjectContainer domainObjectContainer) {
+        this.domainObjectContainer = domainObjectContainer;
+    }
+
+    public void setToDoItems(final ToDoItems toDoItems) {
+        this.toDoItems = toDoItems;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/src/test/java/junit/todo/ToDoItemRepositoryTest.java
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/src/test/java/junit/todo/ToDoItemRepositoryTest.java b/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/src/test/java/junit/todo/ToDoItemRepositoryTest.java
new file mode 100644
index 0000000..d938886
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/src/test/java/junit/todo/ToDoItemRepositoryTest.java
@@ -0,0 +1,60 @@
+#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 junit.todo;
+
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
+import static org.hamcrest.Matchers.nullValue;
+import static org.junit.Assert.assertThat;
+
+import java.util.List;
+
+import junit.AbstractTest;
+import dom.todo.ToDoItem;
+import dom.todo.ToDoItem.Category;
+import fixture.LogonAsSvenFixture;
+import fixture.todo.ToDoItemsFixture;
+
+import org.junit.Test;
+
+import org.apache.isis.viewer.junit.Fixture;
+import org.apache.isis.viewer.junit.Fixtures;
+
+@Fixtures({ @Fixture(ToDoItemsFixture.class), @Fixture(LogonAsSvenFixture.class) })
+public class ToDoItemRepositoryTest extends AbstractTest {
+
+    @Test
+    public void canFindAllItemsNotYetDone() throws Exception {
+        final List<ToDoItem> foobarList = toDoItems.notYetDone();
+        assertThat(foobarList.size(), is(5));
+    }
+
+    @Test
+    public void canCreateToDoItem() throws Exception {
+        final ToDoItem newItem = toDoItems.newToDo("item description", Category.Professional);
+        assertThat(newItem, is(not(nullValue())));
+        assertThat(newItem.getDescription(), is("item description"));
+        assertThat(getDomainObjectContainer().isPersistent(newItem), is(true));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/src/test/java/junit/todo/ToDoItemTest.java
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/src/test/java/junit/todo/ToDoItemTest.java b/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/src/test/java/junit/todo/ToDoItemTest.java
new file mode 100644
index 0000000..a6049b7
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/tests-junit/src/test/java/junit/todo/ToDoItemTest.java
@@ -0,0 +1,69 @@
+#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 junit.todo;
+
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
+import junit.AbstractTest;
+import dom.todo.ToDoItem;
+import fixture.LogonAsSvenFixture;
+import fixture.todo.ToDoItemsFixture;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import org.apache.isis.progmodel.wrapper.applib.DisabledException;
+import org.apache.isis.viewer.junit.Fixture;
+import org.apache.isis.viewer.junit.Fixtures;
+
+@Fixtures({ @Fixture(ToDoItemsFixture.class), @Fixture(LogonAsSvenFixture.class) })
+public class ToDoItemTest extends AbstractTest {
+
+    private ToDoItem toDoItem;
+
+    @Override
+    @Before
+    public void setUp() {
+        toDoItem = toDoItems.notYetDone().get(0);
+        toDoItem = wrapped(toDoItem);
+    }
+
+    @Test
+    public void canMarkAsDone() throws Exception {
+        toDoItem.markAsDone();
+        assertThat(toDoItem.getDone(), is(true));
+    }
+
+    @Test
+    public void cannotMarkAsDoneTwice() throws Exception {
+        toDoItem.markAsDone();
+        try {
+            toDoItem.markAsDone();
+            fail("Should have been disabled");
+        } catch (final DisabledException e) {
+            assertThat(e.getMessage(), is("Already done"));
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/isis.properties
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/isis.properties b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/isis.properties
new file mode 100644
index 0000000..6efac05
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/isis.properties
@@ -0,0 +1,119 @@
+#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}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} specify system components.
+${symbol_pound}
+${symbol_pound} The values correspond to the named components in the installer-registry.properties file
+${symbol_pound} in the org.apache.isis.runtimes.dflt:runtime JAR (in the org.apache.isis.runtimes.dflt.runtime package)
+${symbol_pound}
+${symbol_pound} Although all configuration could reside in isis.properties, the recommendation is
+${symbol_pound} to split out into component specific files:
+${symbol_pound} 
+${symbol_pound}    xxx_yyy.properties files
+${symbol_pound}
+${symbol_pound} where
+${symbol_pound}    * xxx is the component type, and
+${symbol_pound}    * yyy is the component name.
+${symbol_pound}
+${symbol_pound} For example, persistor_sql.properties holds configuration information specific to the
+${symbol_pound}
+${symbol_pound}
+${symbol_pound} If the components are changed, also remember to edit pom.xml (further comments can be 
+${symbol_pound} found in the persistor_xxx.properties files)
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+${symbol_pound}
+${symbol_pound} configure the persistor (object store) to use
+${symbol_pound}
+${symbol_pound} * in-memory   requires no additional configuration, but stores object in-memory.
+${symbol_pound}               Only suitable for prototyping
+${symbol_pound} 
+${symbol_pound} other persistor implementations are not appropriate for the DnD viewer
+${symbol_pound}
+
+isis.persistor=in-memory
+${symbol_pound}isis.persistor=xml
+
+
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} MetaModel
+${symbol_pound}
+${symbol_pound} The metamodel typically does not require additional configuration, although
+${symbol_pound} the system components (defined above) may refine the metamodel for their needs.
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+
+${symbol_pound}
+${symbol_pound} additional programming model facets
+${symbol_pound}
+
+${symbol_pound}isis.reflector.facets.include=
+${symbol_pound}isis.reflector.facets.exclude=
+
+
+${symbol_pound}
+${symbol_pound} metamodel validator
+${symbol_pound}
+
+${symbol_pound}isis.reflector.validator=
+
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} Application Services and fixtures
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+${symbol_pound}
+${symbol_pound} Specify the domain services.
+${symbol_pound} 
+${symbol_pound} These are the most important configuration properties in the system, as they define
+${symbol_pound} the set of the classes for Isis to instantiate as domain service singletons.
+${symbol_pound} From these domain service instances the rest of the metamodel is discovered, while the 
+${symbol_pound} end-user gains access to other domain objects by invoking the actions of the domain services.
+${symbol_pound}
+${symbol_pound} The implementations depend on the configured (see isis.persistor above) 
+${symbol_pound}
+
+${symbol_pound} if using the in-memory object store
+isis.services.prefix = dom
+isis.services = todo.ToDoItems
+
+
+
+
+${symbol_pound}
+${symbol_pound} Specify the (optional) test fixtures
+${symbol_pound}
+${symbol_pound} Fixtures are used to seed the object store with an initial set of data.  For the 
+${symbol_pound} in-memory object store, the fixtures are installed on every run.
+${symbol_pound}
+isis.fixtures.prefix= fixture
+isis.fixtures= todo.ToDoItemsFixture
+

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/logging.properties
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/logging.properties b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/logging.properties
new file mode 100644
index 0000000..f005231
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/logging.properties
@@ -0,0 +1,37 @@
+#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

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/persistor_in-memory.properties
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/persistor_in-memory.properties b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/persistor_in-memory.properties
new file mode 100644
index 0000000..da15c31
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/persistor_in-memory.properties
@@ -0,0 +1,28 @@
+#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} configuration file for the In-memory objectstore
+${symbol_pound}
+
+
+${symbol_pound}
+${symbol_pound} (intentionally empty)
+${symbol_pound}

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/persistor_xml.properties
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/persistor_xml.properties b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/persistor_xml.properties
new file mode 100644
index 0000000..e37c811
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/persistor_xml.properties
@@ -0,0 +1,25 @@
+#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} configuration file for the XML objectstore
+${symbol_pound}
+
+isis.xmlos.dir=/tmp/isis-${parentArtifactId}/persistor-xml/data
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/viewer_dnd.properties
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/viewer_dnd.properties b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/viewer_dnd.properties
new file mode 100644
index 0000000..648583a
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/config/viewer_dnd.properties
@@ -0,0 +1,25 @@
+#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} configuration file for the DnD viewer
+${symbol_pound}
+
+${symbol_pound} (intentionally empty)

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/ide/eclipse/launch/quickstart-viewer-dnd.launch
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/ide/eclipse/launch/quickstart-viewer-dnd.launch b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/ide/eclipse/launch/quickstart-viewer-dnd.launch
new file mode 100644
index 0000000..872889c
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/ide/eclipse/launch/quickstart-viewer-dnd.launch
@@ -0,0 +1,23 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+  <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+    <listEntry value="/org.apache.isis.runtimes.dflt.runtime/src/main/java/org/apache/isis/Isis.java"/>
+  </listAttribute>
+  <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+    <listEntry value="1"/>
+  </listAttribute>
+  <mapAttribute key="org.eclipse.debug.core.preferred_launchers">
+    <mapEntry value="org.eclipse.jdt.launching.localJavaApplication" key="[debug]"/>
+    <mapEntry value="org.eclipse.jdt.launching.localJavaApplication" key="[run]"/>
+  </mapAttribute>
+  <stringAttribute value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector" key="org.eclipse.debug.core.source_locator_id"/>
+  <booleanAttribute value="true" key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS"/>
+  <stringAttribute value="org.eclipse.m2e.launchconfig.classpathProvider" key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER"/>
+  <stringAttribute value="org.apache.isis.Isis" key="org.eclipse.jdt.launching.MAIN_TYPE"/>
+  <stringAttribute value="--type exploration --viewer dnd" key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"/>
+  <stringAttribute value="${rootArtifactId}-viewer-dnd" key="org.eclipse.jdt.launching.PROJECT_ATTR"/>
+  <stringAttribute value="org.eclipse.m2e.launchconfig.sourcepathProvider" key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER"/>
+</launchConfiguration>

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/pom.xml
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/pom.xml b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/pom.xml
new file mode 100644
index 0000000..456259e
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-dnd/pom.xml
@@ -0,0 +1,165 @@
+<?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>Quickstart Viewer DnD</name>
+    
+    <description>This module runs Isis' DnD viewer, intended for exploration, prototyping and
+    design.  By default the viewer is configured to run with the in-memory object store, 
+    meaning that changes will not be persisted from one run to the next; initial seed data
+    is read in from the isis.fixtures key in the isis.properties config file.  Alternatively,
+    the viewer may be configured to run with the XML object store, which persists changes to set of 
+    XML files.</description>
+
+    <!--
+    can run the dnd using either:
+    mvn antrun:run
+    or
+    mvn test -P dnd
+    -->
+
+	<properties>
+        <siteBaseDir>..</siteBaseDir>
+	</properties>
+    
+    <build>
+        <plugins>
+            <!-- mvn package -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <transformers>
+                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+                                    <mainClass>org.apache.isis.Isis</mainClass>
+                                </transformer>
+                            </transformers>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+                <configuration>
+                    <tasks>
+                        <exec executable="java" failonerror="true">
+                            <arg value="-jar" />
+                            <arg value="${project.build.directory}/${project.build.finalName}.jar" />
+                            <arg value="-type" />
+                            <arg value="exploration" />
+                            <arg value="-viewer" />
+                            <arg value="dnd" />
+                        </exec>
+                    </tasks>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <!-- other modules in this project -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>${rootArtifactId}-fixture</artifactId>
+        </dependency>
+
+        <!-- isis core -->
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>runtime</artifactId>
+        </dependency>
+
+        <!-- isis default runtime -->
+        <dependency>
+            <groupId>org.apache.isis.runtimes.dflt</groupId>
+            <artifactId>runtime</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.runtimes.dflt.bytecode</groupId>
+            <artifactId>dflt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.runtimes.dflt.objectstores</groupId>
+            <artifactId>dflt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.runtimes.dflt.objectstores</groupId>
+            <artifactId>xml</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.runtimes.dflt.profilestores</groupId>
+            <artifactId>dflt</artifactId>
+        </dependency>
+        
+        <!-- isis defaults (other) -->
+        <dependency>
+            <groupId>org.apache.isis.progmodels</groupId>
+            <artifactId>dflt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.security</groupId>
+            <artifactId>dflt</artifactId>
+        </dependency>
+        
+        <!-- isis viewers -->
+        <dependency>
+            <groupId>org.apache.isis.viewer</groupId>
+            <artifactId>dnd</artifactId>
+        </dependency>
+
+    </dependencies>
+    
+    <profiles>
+    	<profile>
+    		<id>dnd</id>
+			<build>
+				<plugins>
+		            <plugin>
+		                <groupId>org.apache.maven.plugins</groupId>
+		                <artifactId>maven-antrun-plugin</artifactId>
+                        <executions>
+		                    <execution>
+		                        <phase>test</phase>
+		                        <goals>
+		                            <goal>run</goal>
+		                        </goals>
+							</execution>
+                        </executions>
+		            </plugin>
+				</plugins>
+			</build>    		
+    	</profile>
+    </profiles>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/hsql-db/tests.lck
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/hsql-db/tests.lck b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/hsql-db/tests.lck
new file mode 100644
index 0000000..5cd2e57
Binary files /dev/null and b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/hsql-db/tests.lck differ

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/hsql-db/tests.properties
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/hsql-db/tests.properties b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/hsql-db/tests.properties
new file mode 100644
index 0000000..f621581
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/hsql-db/tests.properties
@@ -0,0 +1,7 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+${symbol_pound}HSQL Database Engine 2.2.8
+${symbol_pound}Wed Oct 10 18:15:49 BST 2012
+version=2.2.8
+modified=yes

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/hsql-db/tests.script
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/hsql-db/tests.script b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/hsql-db/tests.script
new file mode 100644
index 0000000..13c8dd0
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/hsql-db/tests.script
@@ -0,0 +1,46 @@
+SET DATABASE UNIQUE NAME HSQLDB3A4BACD59D
+SET DATABASE GC 0
+SET DATABASE DEFAULT RESULT MEMORY ROWS 0
+SET DATABASE EVENT LOG LEVEL 0
+SET DATABASE SQL NAMES FALSE
+SET DATABASE SQL REFERENCES FALSE
+SET DATABASE SQL SIZE TRUE
+SET DATABASE SQL TYPES FALSE
+SET DATABASE SQL TDC DELETE TRUE
+SET DATABASE SQL TDC UPDATE TRUE
+SET DATABASE SQL TRANSLATE TTI TYPES TRUE
+SET DATABASE SQL CONCAT NULLS TRUE
+SET DATABASE SQL NULLS FIRST TRUE
+SET DATABASE SQL UNIQUE NULLS TRUE
+SET DATABASE SQL CONVERT TRUNCATE TRUE
+SET DATABASE SQL AVG SCALE 0
+SET DATABASE SQL DOUBLE NAN TRUE
+SET DATABASE SQL LONGVAR IS LOB FALSE
+SET DATABASE TRANSACTION CONTROL LOCKS
+SET DATABASE DEFAULT ISOLATION LEVEL READ COMMITTED
+SET DATABASE TRANSACTION ROLLBACK ON CONFLICT TRUE
+SET DATABASE TEXT TABLE DEFAULTS ''
+SET FILES WRITE DELAY 500 MILLIS
+SET FILES BACKUP INCREMENT TRUE
+SET FILES CACHE SIZE 10000
+SET FILES CACHE ROWS 50000
+SET FILES SCALE 8
+SET FILES LOB SCALE 32
+SET FILES DEFRAG 0
+SET FILES NIO TRUE
+SET FILES NIO SIZE 256
+SET FILES LOG TRUE
+SET FILES LOG SIZE 50
+CREATE USER SA PASSWORD DIGEST 'd41d8cd98f00b204e9800998ecf8427e'
+ALTER USER SA SET LOCAL TRUE
+CREATE SCHEMA PUBLIC AUTHORIZATION DBA
+ALTER SEQUENCE SYSTEM_LOBS.LOB_ID RESTART WITH 1
+SET DATABASE DEFAULT INITIAL SCHEMA PUBLIC
+GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.YES_OR_NO TO PUBLIC
+GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.TIME_STAMP TO PUBLIC
+GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.CARDINAL_NUMBER TO PUBLIC
+GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.CHARACTER_DATA TO PUBLIC
+GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.SQL_IDENTIFIER TO PUBLIC
+GRANT DBA TO SA
+SET SCHEMA SYSTEM_LOBS
+INSERT INTO BLOCKS VALUES(0,2147483647,0)

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/ide/eclipse/launch/quickstart-viewer-html.launch
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/ide/eclipse/launch/quickstart-viewer-html.launch b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/ide/eclipse/launch/quickstart-viewer-html.launch
new file mode 100644
index 0000000..d25a88c
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/ide/eclipse/launch/quickstart-viewer-html.launch
@@ -0,0 +1,23 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+  <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+    <listEntry value="/org.apache.isis.runtimes.dflt.webserver/src/main/java/org/apache/isis/WebServer.java"/>
+  </listAttribute>
+  <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+    <listEntry value="1"/>
+  </listAttribute>
+  <mapAttribute key="org.eclipse.debug.core.preferred_launchers">
+    <mapEntry value="org.eclipse.jdt.launching.localJavaApplication" key="[debug]"/>
+    <mapEntry value="org.eclipse.jdt.launching.localJavaApplication" key="[run]"/>
+  </mapAttribute>
+  <stringAttribute value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector" key="org.eclipse.debug.core.source_locator_id"/>
+  <booleanAttribute value="true" key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS"/>
+  <stringAttribute value="org.eclipse.m2e.launchconfig.classpathProvider" key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER"/>
+  <stringAttribute value="org.apache.isis.WebServer" key="org.eclipse.jdt.launching.MAIN_TYPE"/>
+  <stringAttribute value="--type server_exploration" key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"/>
+  <stringAttribute value="${rootArtifactId}-viewer-html" key="org.eclipse.jdt.launching.PROJECT_ATTR"/>
+  <stringAttribute value="org.eclipse.m2e.launchconfig.sourcepathProvider" key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER"/>
+</launchConfiguration>

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/lib/.gitignore
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/lib/.gitignore b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/lib/.gitignore
new file mode 100644
index 0000000..70eee7e
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/lib/.gitignore
@@ -0,0 +1,5 @@
+#
+# explicitly ignoring Microsoft JDBC4 jar
+# (cannot redistribute, licensing)
+#
+sqljdbc4.jar

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/pom.xml
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/pom.xml b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/pom.xml
new file mode 100644
index 0000000..d7653a2
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/pom.xml
@@ -0,0 +1,205 @@
+<?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>Quickstart HTML Viewer</name>
+	<description>This module runs Isis' HTML webapp viewer.  By default it is configured to
+	run using the sql object store.  See other viewer modules for more persistence
+	options.</description>
+	
+	<packaging>war</packaging>
+
+	<build>
+		<plugins>
+            <plugin>
+                <groupId>org.mortbay.jetty</groupId>
+                <artifactId>maven-jetty-plugin</artifactId>
+            </plugin>
+
+            <!-- mvn package -->
+            <plugin>
+                <groupId>org.simplericity.jettyconsole</groupId>
+                <artifactId>jetty-console-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>createconsole</goal>
+                        </goals>
+                        <configuration>
+                            <backgroundImage>${basedir}/src/main/jettyconsole/isis-banner.png</backgroundImage>
+                        </configuration>
+                        <phase>package</phase>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <!-- prereqs: mvn package -->
+            <!-- mvn antrun:run -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+                <configuration>
+                    <tasks>
+                        <exec executable="java" failonerror="true">
+                            <arg value="-jar" />
+                            <arg value="${project.build.directory}/${project.build.finalName}-jetty-console.war" />
+                        </exec>
+                    </tasks>
+                </configuration>
+            </plugin>
+
+		</plugins>
+	</build>
+
+	<dependencies>
+	
+        <!-- other modules in this project -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>${rootArtifactId}-dom</artifactId>
+        </dependency>
+        
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>${rootArtifactId}-fixture</artifactId>
+        </dependency>
+
+
+
+        <!-- objectstore/domain service/repository implementations -->
+
+        <!--
+         - uncomment in order to use default object store
+         - (also edit isis.properties)
+         - 
+		<dependency>
+			<groupId>org.apache.isis.runtimes.dflt.objectstores</groupId>
+			<artifactId>dflt</artifactId>
+		</dependency>
+        -->
+
+		<dependency>
+			<groupId>org.apache.isis.runtimes.dflt.objectstores</groupId>
+			<artifactId>sql-impl</artifactId>
+		</dependency>
+        
+        <!--
+         - uncomment in order to use jdo object store
+         - (also edit isis.properties)
+         -
+         - (also uncomment in order to install facet factories used to
+         -  filter out any JDO enhancement to pojos) 
+        -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>${rootArtifactId}-objstore-jdo</artifactId>
+        </dependency>
+        
+
+
+        <!-- isis viewer -->
+		<dependency>
+	        <groupId>org.apache.isis.viewer</groupId>
+			<artifactId>html</artifactId>
+		</dependency>
+
+
+
+        <!-- isis runtime -->
+        <dependency>
+            <groupId>org.apache.isis.runtimes.dflt.bytecode</groupId>
+            <artifactId>dflt</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.runtimes.dflt.profilestores</groupId>
+            <artifactId>dflt</artifactId>
+        </dependency>
+        
+        <!-- isis progmodel -->
+        <dependency>
+            <groupId>org.apache.isis.progmodels</groupId>
+            <artifactId>dflt</artifactId>
+        </dependency>
+
+        <!-- isis security implementations -->        
+        <dependency>
+            <groupId>org.apache.isis.security</groupId>
+            <artifactId>file</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.security</groupId>
+            <artifactId>dflt</artifactId>
+        </dependency>
+        
+        <!-- to run using WebServer (optional) -->
+        <dependency>
+            <groupId>org.apache.isis.runtimes.dflt</groupId>
+            <artifactId>isis-webserver</artifactId>
+            <scope>runtime</scope>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-servlet_2.5_spec</artifactId>
+            <version>1.2</version>
+        </dependency>
+
+
+
+		<!-- 
+		  JDBC drivers 
+		  (if using jdo or sql object store)
+		  -->
+
+        <dependency>
+            <groupId>org.hsqldb</groupId>
+            <artifactId>hsqldb</artifactId>
+            <version>2.2.9</version>
+        </dependency>
+
+		<!-- 
+		<dependency>
+			<groupId>com.microsoft.sqlserver</groupId>
+			<artifactId>jdbc</artifactId>
+			<version>4.0</version>
+			<scope>system</scope>
+			<optional>true</optional>
+			<systemPath>${basedir}/lib/sqljdbc4.jar</systemPath>
+		</dependency>
+		-->	
+			
+		<dependency>
+		  <groupId>org.lazyluke</groupId>
+		  <artifactId>log4jdbc-remix</artifactId>
+		  <version>0.2.7</version>
+		</dependency>
+
+	</dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/jettyconsole/isis-banner.pdn
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/jettyconsole/isis-banner.pdn b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/jettyconsole/isis-banner.pdn
new file mode 100644
index 0000000..ee6b1c4
Binary files /dev/null and b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/jettyconsole/isis-banner.pdn differ

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/jettyconsole/isis-banner.png
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/jettyconsole/isis-banner.png b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/jettyconsole/isis-banner.png
new file mode 100644
index 0000000..c6dea47
Binary files /dev/null and b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/jettyconsole/isis-banner.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/resources/images/Default.png
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/resources/images/Default.png b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/resources/images/Default.png
new file mode 100644
index 0000000..8409e46
Binary files /dev/null and b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/resources/images/Default.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authentication_file.passwords
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authentication_file.passwords b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authentication_file.passwords
new file mode 100644
index 0000000..97b228e
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authentication_file.passwords
@@ -0,0 +1,28 @@
+#  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.
+
+
+#
+# configuration file for the file-based authentication
+# not used by the onlinedemo
+#
+
+# list of users, and their password, and optionally roles
+sven:pass:role1|role2|role3
+dick:pass
+bob:pass
+joe:pass

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authentication_file.properties
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authentication_file.properties b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authentication_file.properties
new file mode 100644
index 0000000..8edf17c
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authentication_file.properties
@@ -0,0 +1,28 @@
+#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} configuration file for the File-based authentication mechanism
+${symbol_pound}
+
+
+${symbol_pound}
+${symbol_pound} (intentionally empty)
+${symbol_pound}

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authorization_file.allow
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authorization_file.allow b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authorization_file.allow
new file mode 100644
index 0000000..4407ec2
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authorization_file.allow
@@ -0,0 +1,28 @@
+#  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.
+
+
+#
+# configuration file for the file-based authorization
+#
+
+
+#
+# (intentionally empty)
+#
+
+

http://git-wip-us.apache.org/repos/asf/isis/blob/cd9f2e4a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authorization_file.properties
----------------------------------------------------------------------
diff --git a/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authorization_file.properties b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authorization_file.properties
new file mode 100644
index 0000000..7baee9c
--- /dev/null
+++ b/framework/archetype/quickstart/src/main/resources/archetype-resources/viewer-html/src/main/webapp/WEB-INF/authorization_file.properties
@@ -0,0 +1,50 @@
+#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} configuration file for the File-based authorization mechanism
+${symbol_pound}
+
+
+${symbol_pound}
+${symbol_pound} the whitelist file
+${symbol_pound} (value shown below is the default)
+${symbol_pound}
+
+${symbol_pound}isis.authorization.file.whitelist=authorization_file.allow
+
+
+
+${symbol_pound}
+${symbol_pound} the blacklist file
+${symbol_pound} (there is no default value; provide a filename)
+${symbol_pound}
+
+${symbol_pound}isis.authorization.file.blacklist=
+
+
+
+${symbol_pound}
+${symbol_pound} switch on "learning mode".  In this mode the authorization mechanism
+${symbol_pound} will grant all requests, and log those requests into the allow file.
+${symbol_pound}
+
+${symbol_pound}isis.authorization.learn=true
+