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 2014/08/13 00:23:11 UTC

[11/21] ISIS-839: updating todoapp archetype

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/colls/ToDoItemTest_dependencies_add.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/colls/ToDoItemTest_dependencies_add.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/colls/ToDoItemTest_dependencies_add.java
deleted file mode 100644
index 3423a34..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/colls/ToDoItemTest_dependencies_add.java
+++ /dev/null
@@ -1,181 +0,0 @@
-#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.tests.colls;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItemSubscriptions;
-import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
-import integration.tests.ToDoIntegTest;
-
-import java.util.List;
-import javax.inject.Inject;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.apache.isis.applib.NonRecoverableException;
-import org.apache.isis.applib.RecoverableException;
-import org.apache.isis.applib.services.eventbus.CollectionAddedToEvent;
-
-import static org.hamcrest.CoreMatchers.*;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-
-public class ToDoItemTest_dependencies_add extends ToDoIntegTest {
-
-    @Before
-    public void setUpData() throws Exception {
-        scenarioExecution().install(new ToDoItemsIntegTestFixture());
-    }
-
-
-    @Inject
-    private ToDoItems toDoItems;
-    @Inject
-    private ToDoItemSubscriptions toDoItemSubscriptions;
-
-    private ToDoItem toDoItem;
-    private ToDoItem otherToDoItem;
-
-    @Before
-    public void setUp() throws Exception {
-        final List<ToDoItem> items = wrap(toDoItems).notYetComplete();
-        toDoItem = wrap(items.get(0));
-        otherToDoItem = wrap(items.get(1));
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        unwrap(toDoItem).getDependencies().clear();
-        toDoItemSubscriptions.reset();
-    }
-
-    @Test
-    public void happyCase() throws Exception {
-
-        // given
-        assertThat(toDoItem.getDependencies().size(), is(0));
-        
-        // when
-        toDoItem.add(otherToDoItem);
-        
-        // then
-        assertThat(toDoItem.getDependencies().size(), is(1));
-        assertThat(toDoItem.getDependencies().first(), is(unwrap(otherToDoItem)));
-        
-        // and then
-        @SuppressWarnings("unchecked")
-        final CollectionAddedToEvent<ToDoItem,ToDoItem> ev = toDoItemSubscriptions.mostRecentlyReceivedEvent(CollectionAddedToEvent.class);
-        assertThat(ev, is(not(nullValue()))); 
-        
-        ToDoItem source = ev.getSource();
-        assertThat(source, is(equalTo(unwrap(toDoItem))));
-        assertThat(ev.getIdentifier().getMemberName(), is("dependencies"));
-        assertThat(ev.getValue(), is(unwrap(otherToDoItem)));
-    }
-
-
-    @Test
-    public void cannotDependOnSelf() throws Exception {
-
-        // then
-        expectedExceptions.expectMessage("Can't set up a dependency to self");
-
-        // when
-        toDoItem.add(toDoItem);
-    }
-
-    @Test
-    public void cannotAddDependencyIfComplete() throws Exception {
-
-        // given
-        unwrap(toDoItem).setComplete(true);
-        
-        // then
-        expectedExceptions.expectMessage("Cannot add dependencies for items that are complete");
-
-        // when
-        toDoItem.add(otherToDoItem);
-    }
-
-
-    @Test
-    public void subscriberReceivesEvent() throws Exception {
-
-        // given
-        assertThat(toDoItemSubscriptions.getSubscriberBehaviour(), is(ToDoItemSubscriptions.Behaviour.AcceptEvents));
-
-        // when
-        toDoItem.add(otherToDoItem);
-
-        // then
-        @SuppressWarnings("unchecked")
-        final CollectionAddedToEvent<ToDoItem,ToDoItem> ev = toDoItemSubscriptions.mostRecentlyReceivedEvent(CollectionAddedToEvent.class);
-        assertThat(ev, is(not(nullValue())));
-
-        ToDoItem source = ev.getSource();
-        assertThat(source, is(equalTo(unwrap(toDoItem))));
-        assertThat(ev.getIdentifier().getMemberName(), is("dependencies"));
-        assertThat(ev.getValue(), is(unwrap(otherToDoItem)));
-    }
-
-    @Test
-    public void subscriberVetoesEventWithRecoverableException() throws Exception {
-
-        // given
-        toDoItemSubscriptions.subscriberBehaviour(ToDoItemSubscriptions.Behaviour.RejectEventsWithRecoverableException);
-
-        // then
-        expectedExceptions.expect(RecoverableException.class);
-
-        // when
-        toDoItem.add(otherToDoItem);
-    }
-
-    @Test
-    public void subscriberVetoesEventWithNonRecoverableException() throws Exception {
-
-        // given
-        toDoItemSubscriptions.subscriberBehaviour(ToDoItemSubscriptions.Behaviour.RejectEventsWithNonRecoverableException);
-
-        // then
-        expectedExceptions.expect(NonRecoverableException.class);
-
-        // when
-        toDoItem.add(otherToDoItem);
-    }
-
-    @Test
-    public void subscriberThrowingOtherExceptionIsIgnored() throws Exception {
-
-        // given
-        toDoItemSubscriptions.subscriberBehaviour(ToDoItemSubscriptions.Behaviour.ThrowOtherException);
-
-        // when
-        toDoItem.add(otherToDoItem);
-
-        // then
-        // (no expectedExceptions setup, expect to continue)
-        assertTrue(true);
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/colls/ToDoItemTest_dependencies_remove.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/colls/ToDoItemTest_dependencies_remove.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/colls/ToDoItemTest_dependencies_remove.java
deleted file mode 100644
index de8fb37..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/colls/ToDoItemTest_dependencies_remove.java
+++ /dev/null
@@ -1,176 +0,0 @@
-#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.tests.colls;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItemSubscriptions;
-import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
-import integration.tests.ToDoIntegTest;
-
-import java.util.List;
-import javax.inject.Inject;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.apache.isis.applib.NonRecoverableException;
-import org.apache.isis.applib.RecoverableException;
-import org.apache.isis.applib.services.eventbus.CollectionRemovedFromEvent;
-
-import static org.hamcrest.CoreMatchers.*;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-
-public class ToDoItemTest_dependencies_remove extends ToDoIntegTest {
-
-    @Before
-    public void setUpData() throws Exception {
-        scenarioExecution().install(new ToDoItemsIntegTestFixture());
-    }
-
-    @Inject
-    private ToDoItems toDoItems;
-    @Inject
-    private ToDoItemSubscriptions toDoItemSubscriptions;
-
-    private ToDoItem toDoItem;
-    private ToDoItem otherToDoItem;
-    private ToDoItem yetAnotherToDoItem;
-
-
-    @Before
-    public void setUp() throws Exception {
-
-        final List<ToDoItem> items = wrap(toDoItems).notYetComplete();
-        toDoItem = wrap(items.get(0));
-        otherToDoItem = wrap(items.get(1));
-        yetAnotherToDoItem = wrap(items.get(2));
-        
-        toDoItem.add(otherToDoItem);
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        unwrap(toDoItem).getDependencies().clear();
-        toDoItemSubscriptions.reset();
-    }
-
-    @Test
-    public void happyCase() throws Exception {
-
-        // given
-        assertThat(toDoItem.getDependencies().size(), is(1));
-        
-        // when
-        toDoItem.remove(otherToDoItem);
-        
-        // then
-        assertThat(toDoItem.getDependencies().size(), is(0));
-    }
-
-
-    @Test
-    public void cannotRemoveItemIfNotADependency() throws Exception {
-
-        // then
-        expectedExceptions.expectMessage("Not a dependency");
-
-        // when
-        toDoItem.remove(yetAnotherToDoItem);
-    }
-
-    @Test
-    public void cannotRemoveDependencyIfComplete() throws Exception {
-
-        // given
-        unwrap(toDoItem).setComplete(true);
-
-        // then
-        expectedExceptions.expectMessage("Cannot remove dependencies for items that are complete");
-
-        // when
-        toDoItem.remove(otherToDoItem);
-    }
-
-    @Test
-    public void subscriberReceivesEvent() throws Exception {
-
-        // given
-        assertThat(toDoItemSubscriptions.getSubscriberBehaviour(), is(ToDoItemSubscriptions.Behaviour.AcceptEvents));
-        assertThat(toDoItem.getDependencies().size(), is(1));
-
-        // when
-        toDoItem.remove(otherToDoItem);
-
-        // then
-        @SuppressWarnings("unchecked")
-        final CollectionRemovedFromEvent<ToDoItem,ToDoItem> ev = toDoItemSubscriptions.mostRecentlyReceivedEvent(CollectionRemovedFromEvent.class);
-        assertThat(ev, is(not(nullValue())));
-
-        ToDoItem source = ev.getSource();
-        assertThat(source, is(equalTo(unwrap(toDoItem))));
-        assertThat(ev.getIdentifier().getMemberName(), is("dependencies"));
-        assertThat(ev.getValue(), is(unwrap(otherToDoItem)));
-    }
-
-    @Test
-    public void subscriberVetoesEventWithRecoverableException() throws Exception {
-
-        // given
-        toDoItemSubscriptions.subscriberBehaviour(ToDoItemSubscriptions.Behaviour.RejectEventsWithRecoverableException);
-
-        // then
-        expectedExceptions.expect(RecoverableException.class);
-
-        // when
-        toDoItem.remove(otherToDoItem);
-    }
-
-    @Test
-    public void subscriberVetoesEventWithNonRecoverableException() throws Exception {
-
-        // given
-        toDoItemSubscriptions.subscriberBehaviour(ToDoItemSubscriptions.Behaviour.RejectEventsWithNonRecoverableException);
-
-        // then
-        expectedExceptions.expect(NonRecoverableException.class);
-
-        // when
-        toDoItem.remove(otherToDoItem);
-    }
-
-    @Test
-    public void subscriberThrowingOtherExceptionIsIgnored() throws Exception {
-
-        // given
-        toDoItemSubscriptions.subscriberBehaviour(ToDoItemSubscriptions.Behaviour.ThrowOtherException);
-
-        // when
-        toDoItem.remove(otherToDoItem);
-
-        // then
-        // (no expectedExceptions setup, expect to continue)
-        assertTrue(true);
-    }
-
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemContributionsTest_priority.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemContributionsTest_priority.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemContributionsTest_priority.java
deleted file mode 100644
index 6f358c7..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemContributionsTest_priority.java
+++ /dev/null
@@ -1,75 +0,0 @@
-#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.tests.props;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItemContributions;
-import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
-import integration.tests.ToDoIntegTest;
-
-import java.util.List;
-import javax.inject.Inject;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public class ToDoItemContributionsTest_priority extends ToDoIntegTest {
-
-    @Before
-    public void setUpData() throws Exception {
-        scenarioExecution().install(new ToDoItemsIntegTestFixture());
-    }
-
-    @Inject
-    private ToDoItems toDoItems;
-    @Inject
-    private ToDoItemContributions toDoItemContributions;
-    
-    private List<ToDoItem> notYetComplete;
-
-    @Before
-    public void setUp() throws Exception {
-        notYetComplete = wrap(toDoItems).notYetComplete();
-    }
-
-    @Test
-    public void happyCase() throws Exception {
-        assertPriority(0, 1);
-        assertPriority(1, 2);
-        assertPriority(2, 4);
-        assertPriority(3, 6);
-        assertPriority(4, 5);
-        assertPriority(5, 7);
-        assertPriority(6, 9);
-        assertPriority(7, 8);
-        assertPriority(8, 3);
-        assertPriority(9, 10);
-    }
-
-    private void assertPriority(final int n, final int priority) {
-        assertThat(toDoItemContributions.relativePriority(notYetComplete.get(n)), is(Integer.valueOf(priority)));
-    }
-    
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_attachment.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_attachment.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_attachment.java
deleted file mode 100644
index 0e08405..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_attachment.java
+++ /dev/null
@@ -1,82 +0,0 @@
-#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.tests.props;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
-import integration.tests.ToDoIntegTest;
-
-import java.nio.charset.Charset;
-import java.util.List;
-import javax.activation.MimeType;
-import javax.inject.Inject;
-import org.junit.Before;
-import org.junit.Test;
-import org.apache.isis.applib.value.Blob;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public class ToDoItemTest_attachment extends ToDoIntegTest {
-
-    @Before
-    public void setUpData() throws Exception {
-        scenarioExecution().install(new ToDoItemsIntegTestFixture());
-    }
-
-    @Inject
-    private ToDoItems toDoItems;
-
-    private ToDoItem toDoItem;
-
-    @Before
-    public void setUp() throws Exception {
-        final List<ToDoItem> all = wrap(toDoItems).notYetComplete();
-        toDoItem = wrap(all.get(0));
-    }
-
-    @Test
-    public void happyCase() throws Exception {
-        
-        byte[] bytes = "{${symbol_escape}"foo${symbol_escape}": ${symbol_escape}"bar${symbol_escape}"}".getBytes(Charset.forName("UTF-8"));
-        final Blob newAttachment = new Blob("myfile.json", new MimeType("application/json"), bytes);
-        
-        // when
-        toDoItem.setAttachment(newAttachment);
-        
-        // then
-        assertThat(toDoItem.getAttachment(), is(newAttachment));
-    }
-
-    @Test
-    public void canBeNull() throws Exception {
-        
-        // when
-        toDoItem.setAttachment((Blob)null);
-        
-        // then
-        assertThat(toDoItem.getAttachment(), is((Blob)null));
-    }
-
-    
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_category.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_category.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_category.java
deleted file mode 100644
index 75b907b..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_category.java
+++ /dev/null
@@ -1,62 +0,0 @@
-#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.tests.props;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItem.Category;
-import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
-import integration.tests.ToDoIntegTest;
-
-import java.util.List;
-import javax.inject.Inject;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.containsString;
-
-public class ToDoItemTest_category extends ToDoIntegTest {
-
-    @Before
-    public void setUpData() throws Exception {
-        scenarioExecution().install(new ToDoItemsIntegTestFixture());
-    }
-
-    @Inject
-    private ToDoItems toDoItems;
-
-    private ToDoItem toDoItem;
-
-    @Before
-    public void setUp() throws Exception {
-        final List<ToDoItem> all = wrap(toDoItems).notYetComplete();
-        toDoItem = wrap(all.get(0));
-    }
-
-    @Test
-    public void cannotModify() throws Exception {
-        
-        // when, then
-        expectedExceptions.expectMessage(containsString("Reason: Use action to update both category and subcategory."));
-        toDoItem.setCategory(Category.Professional);
-    }
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_cost.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_cost.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_cost.java
deleted file mode 100644
index f9f2278..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_cost.java
+++ /dev/null
@@ -1,100 +0,0 @@
-#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.tests.props;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
-import integration.tests.ToDoIntegTest;
-
-import java.math.BigDecimal;
-import java.util.List;
-import javax.inject.Inject;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public class ToDoItemTest_cost extends ToDoIntegTest {
-
-    @Before
-    public void setUpData() throws Exception {
-        scenarioExecution().install(new ToDoItemsIntegTestFixture());
-    }
-
-    @Inject
-    private ToDoItems toDoItems;
-
-    private ToDoItem toDoItem;
-    private BigDecimal cost;
-
-    @Before
-    public void setUp() throws Exception {
-        final List<ToDoItem> all = wrap(toDoItems).notYetComplete();
-        toDoItem = wrap(all.get(0));
-        cost = toDoItem.getCost();
-    }
-
-    @Test
-    public void happyCaseUsingProperty() throws Exception {
-        
-        final BigDecimal newCost = new BigDecimal("123.45");
-        
-        // when
-        toDoItem.updateCost(newCost);
-        
-        // then
-        assertThat(toDoItem.getCost(), is(newCost));
-    }
-
-    @Test
-    public void happyCaseUsingAction() throws Exception {
-        
-        final BigDecimal newCost = new BigDecimal("123.45");
-        
-        // when
-        toDoItem.updateCost(newCost);
-        
-        // then
-        assertThat(toDoItem.getCost(), is(newCost));
-    }
-    
-    @Test
-    public void canBeNull() throws Exception {
-        
-        // when
-        toDoItem.updateCost((BigDecimal)null);
-        
-        // then
-        assertThat(toDoItem.getCost(), is((BigDecimal)null));
-    }
-
-    @Test
-    public void defaultForAction() throws Exception {
-        
-        // then
-        assertThat(unwrap(toDoItem).default0UpdateCost(), is(cost));
-    }
-    
-    
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_description.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_description.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_description.java
deleted file mode 100644
index 619520a..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_description.java
+++ /dev/null
@@ -1,220 +0,0 @@
-#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.tests.props;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItemSubscriptions;
-import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
-import integration.tests.ToDoIntegTest;
-
-import java.util.List;
-import javax.inject.Inject;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.apache.isis.applib.NonRecoverableException;
-import org.apache.isis.applib.RecoverableException;
-import org.apache.isis.applib.services.eventbus.PropertyChangedEvent;
-
-import static org.hamcrest.CoreMatchers.*;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-
-public class ToDoItemTest_description extends ToDoIntegTest {
-
-    @Before
-    public void setUpData() throws Exception {
-        scenarioExecution().install(new ToDoItemsIntegTestFixture());
-    }
-
-    @Inject
-    private ToDoItems toDoItems;
-    @Inject
-    private ToDoItemSubscriptions toDoItemSubscriptions;
-
-    private ToDoItem toDoItem;
-
-    @Before
-    public void setUp() throws Exception {
-        final List<ToDoItem> all = wrap(toDoItems).notYetComplete();
-        toDoItem = wrap(all.get(0));
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        toDoItemSubscriptions.reset();
-    }
-
-    @Test
-    public void happyCase() throws Exception {
-        
-        // given
-        assertThat(toDoItem.getDescription(), is("Buy bread"));
-        
-        // when
-        toDoItem.setDescription("Buy bread and butter");
-        
-        // then
-        assertThat(toDoItem.getDescription(), is("Buy bread and butter"));
-    }
-
-
-    @Test
-    public void failsRegex() throws Exception {
-        
-        // when
-        expectedExceptions.expectMessage("Doesn't match pattern");
-        toDoItem.setDescription("exclamation marks are not allowed!!!");
-    }
-
-    @Test
-    public void cannotBeNull() throws Exception {
-        
-        // when, then
-        expectedExceptions.expectMessage("Mandatory");
-        toDoItem.setDescription(null);
-    }
-
-    @Test
-    public void cannotUseModify() throws Exception {
-
-        expectedExceptions.expectMessage("Cannot invoke supporting method for 'Description'; use only property accessor/mutator");
-
-        // given
-        assertThat(toDoItem.getDescription(), is("Buy bread"));
-        
-        // when
-        toDoItem.modifyDescription("Buy bread and butter");
-        
-        // then
-        assertThat(toDoItem.getDescription(), is("Buy bread"));
-    }
-
-    @Test
-    public void cannotUseClear() throws Exception {
-        
-        expectedExceptions.expectMessage("Cannot invoke supporting method for 'Description'; use only property accessor/mutator");
-        
-        // given
-        assertThat(toDoItem.getDescription(), is("Buy bread"));
-        
-        // when
-        toDoItem.clearDescription();
-        
-        // then
-        assertThat(toDoItem.getDescription(), is("Buy bread"));
-    }
-    
-
-    @Test
-    public void onlyJustShortEnough() throws Exception {
-        
-        // when, then
-        toDoItem.setDescription(characters(100));
-    }
-
-    @Test
-    public void tooLong() throws Exception {
-
-        // then
-        expectedExceptions.expectMessage("The value proposed exceeds the maximum length of 100");
-
-        // when
-        toDoItem.setDescription(characters(101));
-    }
-
-
-    @Test
-    public void subscriberReceivesEvent() throws Exception {
-
-        // given
-        assertThat(toDoItemSubscriptions.getSubscriberBehaviour(), is(ToDoItemSubscriptions.Behaviour.AcceptEvents));
-        assertThat(toDoItem.getDescription(), is("Buy bread"));
-
-        // when
-        toDoItem.setDescription("Buy bread and butter");
-
-        // then published and received
-        @SuppressWarnings("unchecked")
-        final PropertyChangedEvent<ToDoItem,String> ev = toDoItemSubscriptions.mostRecentlyReceivedEvent(PropertyChangedEvent.class);
-        assertThat(ev, is(not(nullValue())));
-
-        ToDoItem source = ev.getSource();
-        assertThat(source, is(equalTo(unwrap(toDoItem))));
-        assertThat(ev.getIdentifier().getMemberName(), is("description"));
-        assertThat(ev.getOldValue(), is("Buy bread"));
-        assertThat(ev.getNewValue(), is("Buy bread and butter"));
-    }
-
-    @Test
-    public void subscriberVetoesEventWithRecoverableException() throws Exception {
-
-        // given
-        toDoItemSubscriptions.subscriberBehaviour(ToDoItemSubscriptions.Behaviour.RejectEventsWithRecoverableException);
-
-        // then
-        expectedExceptions.expect(RecoverableException.class);
-
-        // when
-        toDoItem.setDescription("Buy bread and butter");
-    }
-
-
-    @Test
-    public void subscriberVetoesEventWithNonRecoverableException() throws Exception {
-
-        // given
-        toDoItemSubscriptions.subscriberBehaviour(ToDoItemSubscriptions.Behaviour.RejectEventsWithNonRecoverableException);
-
-        // then
-        expectedExceptions.expect(NonRecoverableException.class);
-
-        // when
-        toDoItem.setDescription("Buy bread and butter");
-    }
-
-
-    @Test
-    public void subscriberThrowingOtherExceptionIsIgnored() throws Exception {
-
-        // given
-        toDoItemSubscriptions.subscriberBehaviour(ToDoItemSubscriptions.Behaviour.ThrowOtherException);
-
-        // when
-        toDoItem.setDescription("Buy bread and butter");
-
-        // then
-        // (no expectedExceptions setup, expect to continue)
-        assertTrue(true);
-    }
-
-
-    private static String characters(final int n) {
-        StringBuffer buf = new StringBuffer();
-        for(int i=0; i<n; i++) {
-            buf.append("a");
-        }
-        return buf.toString();
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_dueBy.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_dueBy.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_dueBy.java
deleted file mode 100644
index f9b043f..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_dueBy.java
+++ /dev/null
@@ -1,106 +0,0 @@
-#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.tests.props;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
-import integration.tests.ToDoIntegTest;
-
-import java.util.List;
-import javax.inject.Inject;
-import org.joda.time.LocalDate;
-import org.junit.Before;
-import org.junit.Test;
-import org.apache.isis.applib.clock.Clock;
-import org.apache.isis.applib.services.clock.ClockService;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public class ToDoItemTest_dueBy extends ToDoIntegTest {
-
-    @Before
-    public void setUpData() throws Exception {
-        scenarioExecution().install(new ToDoItemsIntegTestFixture());
-    }
-
-    @Inject
-    private ClockService clockService;
-    @Inject
-    private ToDoItems toDoItems;
-
-    private ToDoItem toDoItem;
-
-    @Before
-    public void setUp() throws Exception {
-        final List<ToDoItem> all = wrap(toDoItems).notYetComplete();
-        toDoItem = wrap(all.get(0));
-    }
-
-    @Test
-    public void happyCase() throws Exception {
-        
-        // when
-        final LocalDate fiveDaysFromNow = clockService.now().plusDays(5);
-        toDoItem.setDueBy(fiveDaysFromNow);
-        
-        // then
-        assertThat(toDoItem.getDueBy(), is(fiveDaysFromNow));
-    }
-
-
-    @Test
-    public void canBeNull() throws Exception {
-        
-        // when
-        toDoItem.setDueBy((LocalDate)null);
-        
-        // then
-        assertThat(toDoItem.getDueBy(), is((LocalDate)null));
-    }
-
-    @Test
-    public void canBeUpToSixDaysInPast() throws Exception {
-        
-        final LocalDate nowAsLocalDate = clockService.now();
-        final LocalDate sixDaysAgo = nowAsLocalDate.plusDays(-5);
-
-        // when
-        toDoItem.setDueBy(sixDaysAgo);
-        
-        // then
-        assertThat(toDoItem.getDueBy(), is(sixDaysAgo));
-    }
-
-
-    @Test
-    public void cannotBeMoreThanSixDaysInPast() throws Exception {
-        
-        final LocalDate sevenDaysAgo = Clock.getTimeAsLocalDate().plusDays(-7);
-        
-        // when, then
-        expectedExceptions.expectMessage("Due by date cannot be more than one week old");
-        toDoItem.setDueBy(sevenDaysAgo);
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_notes.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_notes.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_notes.java
deleted file mode 100644
index e8b9a00..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_notes.java
+++ /dev/null
@@ -1,90 +0,0 @@
-#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.tests.props;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItemSubscriptions;
-import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
-import integration.tests.ToDoIntegTest;
-
-import java.util.List;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.apache.isis.applib.services.eventbus.PropertyChangedEvent;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.nullValue;
-import static org.junit.Assert.assertThat;
-
-public class ToDoItemTest_notes extends ToDoIntegTest {
-
-    @Before
-    public void setUpData() throws Exception {
-        scenarioExecution().install(new ToDoItemsIntegTestFixture());
-    }
-
-    private ToDoItem toDoItem;
-    private ToDoItemSubscriptions toDoItemSubscriptions;
-
-    @Before
-    public void setUp() throws Exception {
-        final List<ToDoItem> all = wrap(service(ToDoItems.class)).notYetComplete();
-        toDoItem = wrap(all.get(0));
-        toDoItemSubscriptions = service(ToDoItemSubscriptions.class);
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        toDoItemSubscriptions.reset();
-    }
-
-    @Test
-    public void happyCase() throws Exception {
-        
-        final String newNotes = "Lorem ipsum yada yada";
-        
-        // when
-        toDoItem.setNotes(newNotes);
-        
-        // then
-        assertThat(toDoItem.getNotes(), is(newNotes));
-
-        // and then not published so not received
-        @SuppressWarnings("unchecked")
-        final PropertyChangedEvent<ToDoItem,String> ev = toDoItemSubscriptions.mostRecentlyReceivedEvent(PropertyChangedEvent.class);
-        assertThat(ev, is(nullValue())); 
-    }
-
-    @Test
-    public void canBeNull() throws Exception {
-        
-        // when
-        toDoItem.setNotes((String)null);
-        
-        // then
-        assertThat(toDoItem.getNotes(), is((String)null));
-    }
-
-    
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_ownedBy.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_ownedBy.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_ownedBy.java
deleted file mode 100644
index caeb116..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_ownedBy.java
+++ /dev/null
@@ -1,61 +0,0 @@
-#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.tests.props;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
-import integration.tests.ToDoIntegTest;
-
-import java.util.List;
-import javax.inject.Inject;
-import org.junit.Before;
-import org.junit.Test;
-
-public class ToDoItemTest_ownedBy extends ToDoIntegTest {
-
-    @Before
-    public void setUpData() throws Exception {
-        scenarioExecution().install(new ToDoItemsIntegTestFixture());
-    }
-
-    @Inject
-    private ToDoItems toDoItems;
-
-    private ToDoItem toDoItem;
-
-    @Before
-    public void setUp() throws Exception {
-        final List<ToDoItem> all = wrap(toDoItems).notYetComplete();
-        toDoItem = wrap(all.get(0));
-    }
-
-    @Test
-    public void cannotModify() throws Exception {
-        
-        // when, then
-        expectedExceptions.expectMessage("Always hidden");
-        toDoItem.setOwnedBy("other");
-    }
-
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_subcategory.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_subcategory.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_subcategory.java
deleted file mode 100644
index 20579b2..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/props/ToDoItemTest_subcategory.java
+++ /dev/null
@@ -1,62 +0,0 @@
-#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.tests.props;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItem.Subcategory;
-import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
-import integration.tests.ToDoIntegTest;
-
-import java.util.List;
-import javax.inject.Inject;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.containsString;
-
-public class ToDoItemTest_subcategory extends ToDoIntegTest {
-
-    @Before
-    public void setUpData() throws Exception {
-        scenarioExecution().install(new ToDoItemsIntegTestFixture());
-    }
-
-    @Inject
-    private ToDoItems toDoItems;
-
-    private ToDoItem toDoItem;
-
-    @Before
-    public void setUp() throws Exception {
-        final List<ToDoItem> all = wrap(toDoItems).notYetComplete();
-        toDoItem = wrap(all.get(0));
-    }
-
-    @Test
-    public void cannotModify() throws Exception {
-        
-        // when, then
-        expectedExceptions.expectMessage(containsString("Reason: Use action to update both category and subcategory."));
-        toDoItem.setSubcategory(Subcategory.Chores);
-    }
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/repo/ToDoItemsTest_finders.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/repo/ToDoItemsTest_finders.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/repo/ToDoItemsTest_finders.java
deleted file mode 100644
index 03681ff..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/repo/ToDoItemsTest_finders.java
+++ /dev/null
@@ -1,84 +0,0 @@
-#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.tests.repo;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
-import integration.tests.ToDoIntegTest;
-
-import java.util.List;
-import javax.inject.Inject;
-import org.hamcrest.Matchers;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public class ToDoItemsTest_finders extends ToDoIntegTest {
-
-    @Before
-    public void setUpData() throws Exception {
-        scenarioExecution().install(new ToDoItemsIntegTestFixture());
-    }
-
-    @Inject
-    private ToDoItems toDoItems;
-
-    private int notYetCompletedSize;
-    private int completedSize;
-
-    @Before
-    public void setUp() throws Exception {
-        final List<ToDoItem> notYetCompleteItems = wrap(toDoItems).notYetComplete();
-        final List<ToDoItem> completedItems = wrap(toDoItems).complete();
-
-        notYetCompletedSize = notYetCompleteItems.size();
-        completedSize = completedItems.size();
-        
-        assertThat(notYetCompletedSize, is(Matchers.greaterThan(5)));
-    }
-
-    @Test
-    public void complete_and_notYetComplete() throws Exception {
-        
-        // given
-        List<ToDoItem> notYetCompleteItems = wrap(service(ToDoItems.class)).notYetComplete();
-        final ToDoItem toDoItem = wrap(notYetCompleteItems.get(0));
-        
-        // when
-        toDoItem.completed();
-        
-        // then
-        assertThat(wrap(service(ToDoItems.class)).notYetComplete().size(), is(notYetCompletedSize-1));
-        assertThat(wrap(service(ToDoItems.class)).complete().size(), is(completedSize+1));
-        
-        // and when
-        toDoItem.notYetCompleted();
-        
-        // then
-        assertThat(wrap(service(ToDoItems.class)).notYetComplete().size(), is(notYetCompletedSize));
-        assertThat(wrap(service(ToDoItems.class)).complete().size(), is(completedSize));
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/repo/ToDoItemsTest_newToDo_and_delete.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/repo/ToDoItemsTest_newToDo_and_delete.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/repo/ToDoItemsTest_newToDo_and_delete.java
deleted file mode 100644
index 6b8e94d..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/repo/ToDoItemsTest_newToDo_and_delete.java
+++ /dev/null
@@ -1,68 +0,0 @@
-#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.tests.repo;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItem.Category;
-import dom.todo.ToDoItem.Subcategory;
-import dom.todo.ToDoItems;
-import integration.tests.ToDoIntegTest;
-
-import javax.inject.Inject;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public class ToDoItemsTest_newToDo_and_delete extends ToDoIntegTest {
-
-    @Before
-    public void setUpData() throws Exception {
-        // none
-    }
-
-    @Inject
-    private ToDoItems toDoItems;
-
-    @Test
-    public void happyCase() throws Exception {
-        
-        // given
-        int size = wrap(toDoItems).notYetComplete().size();
-        
-        // when
-        final ToDoItem newToDo = wrap(service(ToDoItems.class)).newToDo("new todo", Category.Professional, Subcategory.OpenSource, null, null);
-
-        // then
-        assertThat(newToDo.getDescription(), is("new todo"));
-        assertThat(newToDo.getCategory(), is(Category.Professional));
-        assertThat(wrap(service(ToDoItems.class)).notYetComplete().size(), is(size+1));
-        
-        // when
-        newToDo.delete();
-
-        // then
-        assertThat(wrap(service(ToDoItems.class)).notYetComplete().size(), is(size));
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/smoke/ToDoItemTest_title.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/smoke/ToDoItemTest_title.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/smoke/ToDoItemTest_title.java
deleted file mode 100644
index afbc6b7..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/smoke/ToDoItemTest_title.java
+++ /dev/null
@@ -1,116 +0,0 @@
-#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.tests.smoke;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
-import integration.tests.ToDoIntegTest;
-
-import java.util.List;
-import javax.inject.Inject;
-import org.joda.time.LocalDate;
-import org.junit.Before;
-import org.junit.Test;
-import org.apache.isis.applib.clock.Clock;
-
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.not;
-import static org.junit.Assert.assertThat;
-
-public class ToDoItemTest_title extends ToDoIntegTest {
-
-    @Before
-    public void setUpData() throws Exception {
-        scenarioExecution().install(new ToDoItemsIntegTestFixture());
-    }
-
-    @Inject
-    private ToDoItems toDoItems;
-
-    private ToDoItem toDoItem;
-    private LocalDate dueBy;
-
-    @Before
-    public void setUp() throws Exception {
-
-        final List<ToDoItem> all = wrap(toDoItems).notYetComplete();
-        toDoItem = wrap(all.get(0));
-
-        dueBy = toDoItem.getDueBy();
-    }
-
-    
-    @Test
-    public void includesDescription() throws Exception {
-
-        // given
-        assertThat(container().titleOf(toDoItem), containsString("Buy bread due by"));
-
-        // when
-        unwrap(toDoItem).setDescription("Buy bread and butter");
-        
-        // then
-        assertThat(container().titleOf(toDoItem), containsString("Buy bread and butter due by"));
-    }
-
-    @Test
-    public void includesDueDateIfAny() throws Exception {
-
-        // given
-        assertThat(container().titleOf(toDoItem), containsString("due by " + dueBy.toString("yyyy-MM-dd")));
-
-        // when
-        final LocalDate fiveDaysFromNow = Clock.getTimeAsLocalDate().plusDays(5);
-        unwrap(toDoItem).setDueBy(fiveDaysFromNow);
-
-        // then
-        assertThat(container().titleOf(toDoItem), containsString("due by " + fiveDaysFromNow.toString("yyyy-MM-dd")));
-    }
-
-
-    @Test
-    public void ignoresDueDateIfNone() throws Exception {
-
-        // when
-        // (since wrapped, will call clearDueBy) 
-        toDoItem.setDueBy(null);
-
-        // then
-        assertThat(container().titleOf(toDoItem), not(containsString("due by")));
-    }
-
-    @Test
-    public void usesWhetherCompleted() throws Exception {
-
-        // given
-        assertThat(container().titleOf(toDoItem), not(containsString("Completed!")));
-
-        // when
-        toDoItem.completed();
-
-        // then
-        assertThat(container().titleOf(toDoItem), not(containsString("due by")));
-        assertThat(container().titleOf(toDoItem), containsString("Buy bread - Completed!"));
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/pom.xml b/example/archetype/todoapp/src/main/resources/archetype-resources/pom.xml
index 1ba2a5a..8b6ee60 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/pom.xml
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/pom.xml
@@ -23,7 +23,7 @@
     <artifactId>${artifactId}</artifactId>
     <version>${version}</version>
 
-    <name>Quickstart Wicket/Restful/JDO App</name>
+    <name>ToDo App</name>
 
     <packaging>pom</packaging>
 
@@ -32,11 +32,8 @@
     </prerequisites>
 
 	<properties>
-        <isis.version>1.5.0</isis.version>
-		<isis-objectstore-jdo.version>1.5.0</isis-objectstore-jdo.version>
-		<isis-viewer-wicket.version>1.5.0</isis-viewer-wicket.version>
-		<isis-viewer-restfulobjects.version>2.3.0</isis-viewer-restfulobjects.version>
-		<isis-security-shiro.version>1.5.0</isis-security-shiro.version>
+        <isis.version>1.6.0</isis.version>
+		<isis-viewer-wicket.version>1.6.0</isis-viewer-wicket.version>
 
         <!-- must be consistent with the versions defined by the JDO Objectstore -->
         <datanucleus-accessplatform-jdo-rdbms.version>3.3.6</datanucleus-accessplatform-jdo-rdbms.version>
@@ -90,13 +87,9 @@
                     <version>2.16</version>
                     <configuration>
                         <includes>
-                            <include>**/*Test.java</include>
-                            <include>**/*Test_*.java</include>
-                            <include>**/*Spec*.java</include>
+                            <include>**/*.java</include>
                         </includes>
                         <excludes>
-                            <exclude>**/Test*.java</exclude>
-                            <exclude>**/*ForTesting.java</exclude>
                             <exclude>**/*Abstract*.java</exclude>
                         </excludes>
                         <useFile>true</useFile>
@@ -310,14 +303,6 @@
 			</dependency>
 
 			<dependency>
-				<groupId>org.apache.isis.objectstore</groupId>
-				<artifactId>isis-objectstore-jdo</artifactId>
-				<version>${isis-objectstore-jdo.version}</version>
-				<type>pom</type>
-				<scope>import</scope>
-			</dependency>
-
-			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-wicket</artifactId>
 				<version>${isis-viewer-wicket.version}</version>
@@ -325,22 +310,6 @@
 				<scope>import</scope>
 			</dependency>
 
-			<dependency>
-				<groupId>org.apache.isis.viewer</groupId>
-				<artifactId>isis-viewer-restfulobjects</artifactId>
-				<version>${isis-viewer-restfulobjects.version}</version>
-				<type>pom</type>
-				<scope>import</scope>
-			</dependency>
-
-			<dependency>
-				<groupId>org.apache.isis.security</groupId>
-				<artifactId>isis-security-shiro</artifactId>
-				<version>${isis-security-shiro.version}</version>
-				<type>pom</type>
-				<scope>import</scope>
-			</dependency>
-
 
             <!-- this project's own modules -->
             <dependency>
@@ -360,7 +329,6 @@
             </dependency>
 
 
-
             <!-- quartz scheduler integration -->
 
             <dependency>

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE-jrebel.launch
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE-jrebel.launch b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE-jrebel.launch
index 358e3d9..87bfd3b 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE-jrebel.launch
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE-jrebel.launch
@@ -20,7 +20,7 @@
   <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="--port 8080 --type SERVER_PROTOTYPE" key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"/>
-  <stringAttribute value="${rootArtifactId}-webapp" key="org.eclipse.jdt.launching.PROJECT_ATTR"/>
+  <stringAttribute value="quickstart_wicket_restful_jdo-webapp" key="org.eclipse.jdt.launching.PROJECT_ATTR"/>
   <stringAttribute value="org.eclipse.m2e.launchconfig.sourcepathProvider" key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER"/>
   <stringAttribute value="${jrebel_args} -Drebel.log=false -Drebel.check_class_hash=true -Drebel.packages_exclude=org.apache.isis -Dproject.root=${project_loc}/.. -Dtarget.dir=target-ide -Drebel.plugins=C:/github/danhaywood/isis-jrebel-plugin/target/danhaywood-isis-jrebel-plugin-1.0.0-SNAPSHOT.jar -Disis-jrebel-plugin.packagePrefix=dom.todo,org.apache.isis.objectstore.jdo.applib -Disis-jrebel-plugin.loggingLevel=warn -XX:MaxPermSize=128m" key="org.eclipse.jdt.launching.VM_ARGUMENTS"/>
 </launchConfiguration>

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE-with-fixtures.launch
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE-with-fixtures.launch b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE-with-fixtures.launch
index 3376620..456dc66 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE-with-fixtures.launch
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE-with-fixtures.launch
@@ -17,6 +17,6 @@
   <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="--port 8080 -D isis.persistor.datanucleus.install-fixtures=true --type SERVER_PROTOTYPE" key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"/>
-  <stringAttribute value="${rootArtifactId}-webapp" key="org.eclipse.jdt.launching.PROJECT_ATTR"/>
+  <stringAttribute value="quickstart_wicket_restful_jdo-webapp" 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/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE.launch
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE.launch b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE.launch
index 4fd7be2..cd6c8a8 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE.launch
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE.launch
@@ -20,6 +20,6 @@
   <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="--port 8080 --type SERVER_PROTOTYPE" key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"/>
-  <stringAttribute value="${rootArtifactId}-webapp" key="org.eclipse.jdt.launching.PROJECT_ATTR"/>
+  <stringAttribute value="quickstart_wicket_restful_jdo-webapp" 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/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-SERVER.launch
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-SERVER.launch b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-SERVER.launch
index 2e2e0ea..3577cbc 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-SERVER.launch
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/ide/eclipse/launch/ToDoApp-SERVER.launch
@@ -20,6 +20,6 @@
   <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="--port 8080 --type SERVER" key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"/>
-  <stringAttribute value="${rootArtifactId}-webapp" key="org.eclipse.jdt.launching.PROJECT_ATTR"/>
+  <stringAttribute value="quickstart_wicket_restful_jdo-webapp" 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/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/pom.xml b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/pom.xml
index fd82d02..346ddc2 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/pom.xml
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/pom.xml
@@ -26,7 +26,7 @@
     </parent>
 
     <artifactId>${artifactId}</artifactId>
-    <name>Quickstart Wicket/Restful/JDO Webapp</name>
+    <name>ToDo App Webapp</name>
 
     <description>This module runs both the Wicket viewer and the Restfulobjects viewer in a single webapp configured to run using the datanucleus object store.</description>
 
@@ -156,20 +156,20 @@
         
         <!-- other isis components -->
         <dependency>
-            <groupId>org.apache.isis.objectstore</groupId>
-            <artifactId>isis-objectstore-jdo-datanucleus</artifactId>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-objectstore-jdo-datanucleus</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.isis.viewer</groupId>
             <artifactId>isis-viewer-wicket-impl</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.isis.viewer</groupId>
-            <artifactId>isis-viewer-restfulobjects-server</artifactId>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-viewer-restfulobjects-server</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.isis.security</groupId>
-            <artifactId>isis-security-shiro</artifactId>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-security-shiro</artifactId>
         </dependency>
 
 
@@ -179,8 +179,8 @@
             <artifactId>isis-core-runtime</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-wrapper</artifactId>
+            <groupId>org.apache.isis.module</groupId>
+            <artifactId>isis-module-wrapper</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.isis.core</groupId>
@@ -190,7 +190,39 @@
             <groupId>org.apache.isis.core</groupId>
             <artifactId>isis-core-security</artifactId>
         </dependency>
-        
+
+
+        <!-- isis modules -->
+        <dependency>
+            <groupId>org.apache.isis.module</groupId>
+            <artifactId>isis-module-background</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.module</groupId>
+            <artifactId>isis-module-devutils-impl</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.module</groupId>
+            <artifactId>isis-module-audit-jdo</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.module</groupId>
+            <artifactId>isis-module-command-jdo</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.module</groupId>
+            <artifactId>isis-module-publishing-jdo</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.module</groupId>
+            <artifactId>isis-module-publishingeventserializer-ro</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.module</groupId>
+            <artifactId>isis-module-settings-impl-jdo</artifactId>
+        </dependency>
+
+
         <!-- to run using WebServer (optional) -->
         <dependency>
             <groupId>org.apache.isis.core</groupId>

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/admin/Admin.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/admin/Admin.java b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/admin/Admin.java
index 748b29e..9130c31 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/admin/Admin.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/admin/Admin.java
@@ -33,6 +33,7 @@ import org.apache.isis.objectstore.jdo.applib.service.command.CommandServiceJdoR
 import org.apache.isis.objectstore.jdo.applib.service.publish.PublishedEventJdo;
 import org.apache.isis.objectstore.jdo.applib.service.publish.PublishingServiceJdoRepository;
 
+@DomainService(menuOrder = "35")
 public class Admin extends AbstractService {
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/admin/AdminContributions.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/admin/AdminContributions.java b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/admin/AdminContributions.java
index a4b6707..1267098 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/admin/AdminContributions.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/admin/AdminContributions.java
@@ -28,12 +28,8 @@ import org.joda.time.LocalDate;
 
 import org.apache.isis.applib.AbstractService;
 import org.apache.isis.applib.ViewModel;
-import org.apache.isis.applib.annotation.ActionSemantics;
+import org.apache.isis.applib.annotation.*;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Named;
-import org.apache.isis.applib.annotation.NotInServiceMenu;
-import org.apache.isis.applib.annotation.Optional;
 import org.apache.isis.applib.services.HasTransactionId;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
@@ -46,6 +42,7 @@ import org.apache.isis.objectstore.jdo.applib.service.command.CommandServiceJdoR
 import org.apache.isis.objectstore.jdo.applib.service.publish.PublishedEventJdo;
 import org.apache.isis.objectstore.jdo.applib.service.publish.PublishingServiceJdoRepository;
 
+@DomainService
 public class AdminContributions extends AbstractService {
 
     /**

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/DeveloperUtilities.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/DeveloperUtilities.java b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/DeveloperUtilities.java
index f9bf99e..a75ecdb 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/DeveloperUtilities.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/DeveloperUtilities.java
@@ -19,8 +19,7 @@
  */
 package webapp.prototyping;
 
-import fixture.todo.ToDoItemsFixturesService;
-
+import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.value.Blob;
 import org.apache.isis.applib.value.Clob;
@@ -28,8 +27,9 @@ import org.apache.isis.core.metamodel.services.devutils.DeveloperUtilitiesServic
 
 /**
  * These overrides are simply to 'move' the action underneath the 
- * {@link ToDoItemsFixturesService fixtures} menu.
+ * 'Prototyping' menu.
  */
+@DomainService(menuOrder = "40.2")
 public class DeveloperUtilities extends DeveloperUtilitiesServiceDefault {
 
     @MemberOrder(name="Prototyping", sequence="90.1")

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java
index a7326a8..b947ec1 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java
@@ -22,17 +22,15 @@ package webapp.prototyping;
 import java.net.MalformedURLException;
 import java.net.URL;
 
-import org.apache.isis.applib.annotation.ActionSemantics;
-import org.apache.isis.applib.annotation.Named;
-import org.apache.isis.applib.annotation.Prototype;
+import org.apache.isis.applib.annotation.*;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
-import org.apache.isis.applib.annotation.MemberOrder;
 
+@DomainService(menuOrder = "40.3")
 public class ExternalLinksService {
 
     public static enum ExternalLink {
         ISIS_DOCUMENTATION("Apache Isis docs", "http://isis.apache.org/documentation.html"),
-        PROJECT_ON_GITHUB("Project source code on Github", "https://github.com/apache/isis/tree/master/example/application/${parentArtifactId}/");
+        PROJECT_ON_GITHUB("Project source code on Github", "https://github.com/apache/isis/tree/master/example/application/quickstart_wicket_restful_jdo/");
         
         private final String title;
         private final String url;

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/WicketDeveloperUtilities.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/WicketDeveloperUtilities.java b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/WicketDeveloperUtilities.java
new file mode 100644
index 0000000..5c7678f
--- /dev/null
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/WicketDeveloperUtilities.java
@@ -0,0 +1,42 @@
+#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 webapp.prototyping;
+
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Named;
+import org.apache.isis.viewer.wicket.viewer.applib.WicketDeveloperUtilitiesService;
+
+/**
+ * These overrides are simply to 'move' the action underneath the 
+ * 'Prototyping' menu.
+ */
+@DomainService(menuOrder = "40.3")
+public class WicketDeveloperUtilities extends WicketDeveloperUtilitiesService {
+
+    @Named("Clear i18n Cache")
+    @MemberOrder(name="Prototyping", sequence="90.3")
+    @Override
+    public void resetI18nCache() {
+        super.resetI18nCache();
+    }
+
+}
+

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/ToDoApplication_en.properties
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/ToDoApplication_en.properties b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/ToDoApplication_en.properties
new file mode 100644
index 0000000..65dc6ea
--- /dev/null
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/ToDoApplication_en.properties
@@ -0,0 +1,54 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+${symbol_pound}
+${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} override WicketSignInPage.properties
+loginHeader=Login
+
+${symbol_pound} override PageAbstract.properties
+aboutLabel=About
+logoutLabel=Logout
+
+${symbol_pound} override EntityPropertiesForm.properties and also
+${symbol_pound} override ActionParametersFormPanel.properties
+okLabel=OK
+cancelLabel=Cancel
+editLabel=Edit
+
+
+
+
+${symbol_pound}
+${symbol_pound} 3rd-party components
+${symbol_pound}
+
+${symbol_pound} Select2Choice
+
+${symbol_pound}noMatches=...
+${symbol_pound}inputTooShortSingular=...
+${symbol_pound}inputTooShortPlural=...
+${symbol_pound}loadMore=...
+${symbol_pound}searching=...
+
+${symbol_pound} datatables
+${symbol_pound}no-records-found=...
+

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/realm1.ini
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/realm1.ini b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/realm1.ini
index 13246ad..311694b 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/realm1.ini
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/realm1.ini
@@ -38,6 +38,18 @@ bob  = pass, user_role, self-install_role
 
 
 
+#
+# some additional users/roles
+# require IsisPermissionResolver to be configured in shiro.ini, and
+# require additional role/perms to be configured below in [roles]
+#
+
+# # fred should have access to everything except the analysis features
+# fred = pass,isisperms_all_but_analysis_role
+# # bill should have access to everything (the admin role 'trumps' the vetos)
+# bill = pass,isisperms_all_but_analysis_role,isisperms_admin_role
+
+
 # -----------------------------------------------------------------------------
 # Roles with assigned permissions
 # 
@@ -66,3 +78,17 @@ analysis_role = *:ToDoItemAnalysis:*:*,\
 self-install_role = *:ToDoItemsFixturesService:installFixtures:*
 admin_role = *
 
+
+
+
+#
+# some additional role/perms
+# require IsisPermissionResolver to be configured in shiro.ini
+#
+
+# isisperms_all_but_analysis_role =  aba/*,\
+#                                   !aba/*:ToDoItemAnalysis:*,\
+#                                   !aba/*:ToDoItemsByCategoryViewModel:*:*,\
+#                                   !aba/*:ToDoItemsByDateRangeViewModel:*:*
+# isisperms_admin_role = adm/*
+

http://git-wip-us.apache.org/repos/asf/isis/blob/04e8ba20/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/welcome.html
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/welcome.html b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/welcome.html
index a71ec99..e9155b0 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/welcome.html
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/welcome.html
@@ -30,7 +30,7 @@
     which configures Isis' most commonly used components in a straightforward &quot;todo&quot; app.
     <br/>
     <br/>
-    The core domain functionality class is provided by the <a href="https://github.com/apache/isis/blob/master/example/application/${parentArtifactId}/dom/src/main/java/dom/todo/ToDoItem.java"  target="_blank">ToDoItem</a> domain class.  
+    The core domain functionality class is provided by the <a href="https://github.com/apache/isis/blob/master/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java"  target="_blank">ToDoItem</a> domain class.  
     Supporting services provide additional capabilities.
     <br/>
     <br/>