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/12/17 21:57:02 UTC

[4/4] isis git commit: ISIS-928: recreating todoapp archetype

ISIS-928: recreating todoapp archetype


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

Branch: refs/heads/master
Commit: f76185dedbb83b0cf68c7412e9445cd114d9b4b7
Parents: 857e356
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Dec 17 18:15:02 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Dec 17 18:15:02 2014 +0000

----------------------------------------------------------------------
 .../resources/archetype-resources/dom/pom.xml   | 33 +++++++++++++++++
 .../dom/src/main/java/app/ToDoItemAnalysis.java |  6 ++--
 .../java/app/ToDoItemsByCategoryViewModel.java  |  6 ++--
 .../java/app/ToDoItemsByDateRangeViewModel.java |  4 +--
 .../dom/src/main/java/dom/todo/ToDoItem.java    | 10 +++---
 .../java/dom/todo/ToDoItemSubscriptions.java    | 10 +++---
 .../dom/src/main/java/dom/todo/ToDoItems.java   | 37 ++++++++++++--------
 .../fixture/todo/ToDoItemsFixturesService.java  | 22 ++++++------
 .../integtests/ToDoItemsIntegTestFixture.java   |  2 +-
 .../complete/ToDoItemCompleteAbstract.java      | 20 +----------
 .../complete/ToDoItemCompleteForBuyStamps.java  |  5 ---
 .../ToDoItemCompleteForWriteBlogPost.java       |  5 ---
 .../todo/items/create/ToDoItemAbstract.java     |  2 +-
 .../todo/items/delete/ToDoItemsDelete.java      | 15 --------
 .../todo/scenarios/ToDoItemsRecreate.java       | 26 +++++++-------
 .../ToDoItemsRecreateAndCompleteSeveral.java    | 34 +++++++++++++++---
 .../tests/ToDoItemContributionsIntegTest.java   | 10 +++---
 .../integration/tests/ToDoItemIntegTest.java    | 10 +++---
 .../main/java/webapp/CustomMementoService.java  |  2 +-
 .../prototyping/ExternalLinksService.java       |  5 +--
 .../prototyping/WicketDeveloperUtilities.java   |  4 ++-
 .../src/main/webapp/WEB-INF/isis.properties     | 18 ++++++----
 .../projects/basic/archetype.properties         |  2 +-
 23 files changed, 161 insertions(+), 127 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/dom/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/pom.xml b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/pom.xml
index 271e198..740c4c8 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/pom.xml
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/pom.xml
@@ -45,6 +45,39 @@
         </resources>
         <plugins>
             <plugin>
+                <groupId>org.apache.isis.tool</groupId>
+                <artifactId>isis-maven-plugin</artifactId>
+                <version>1.8.0-SNAPSHOT</version>
+                <configuration>
+                    <isisConfigDir>..\webapp\src\main\webapp\WEB-INF</isisConfigDir>
+                </configuration>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.apache.isis.example.application</groupId>
+                        <artifactId>todoapp-dom</artifactId>
+                        <version>1.8.0-SNAPSHOT</version>
+                    </dependency>
+                    <!--
+                    ... workaround to avoid conflict with plexus-default
+                        (not sure why exclusions in the isis-maven-plugin aren't sufficient, though ...
+                    -->
+                    <dependency>
+                        <groupId>com.google.guava</groupId>
+                        <artifactId>guava</artifactId>
+                        <version>16.0.1</version>
+                    </dependency>
+                </dependencies>
+                <executions>
+                    <execution>
+                        <phase>test</phase>
+                        <goals>
+                            <goal>validate</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
                 <groupId>org.datanucleus</groupId>
                 <artifactId>datanucleus-maven-plugin</artifactId>
                 <version>${datanucleus-maven-plugin.version}</version>

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemAnalysis.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemAnalysis.java b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemAnalysis.java
index 0937878..094b9f3 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemAnalysis.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemAnalysis.java
@@ -33,13 +33,13 @@ import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.ActionSemantics;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
 import org.apache.isis.applib.annotation.Bookmarkable;
-import org.apache.isis.applib.annotation.ClassLayout;
 import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Programmatic;
 
-@ClassLayout(named="Analysis")
-@DomainService(menuOrder = "20")
+@DomainServiceLayout(named="Analysis", menuOrder = "20")
+@DomainService()
 public class ToDoItemAnalysis {
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java
index 97e39d5..fda72fc 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java
@@ -34,7 +34,7 @@ import com.google.common.collect.Lists;
 import org.apache.isis.applib.DomainObjectContainer;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.Bookmarkable;
-import org.apache.isis.applib.annotation.ClassLayout;
+import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Render;
 import org.apache.isis.applib.annotation.Render.Type;
@@ -42,8 +42,8 @@ import org.apache.isis.applib.annotation.Title;
 import org.apache.isis.applib.annotation.ViewModel;
 import org.apache.isis.applib.util.ObjectContracts;
 
-@ClassLayout(
-        named="By Category"
+@DomainObjectLayout(
+    named="By Category"
 )
 @Bookmarkable
 @ViewModel

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java
index 7166028..001bdf4 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java
@@ -32,7 +32,7 @@ import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import org.joda.time.DateTime;
 import org.apache.isis.applib.annotation.Bookmarkable;
-import org.apache.isis.applib.annotation.ClassLayout;
+import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.annotation.Render;
 import org.apache.isis.applib.annotation.Render.Type;
 import org.apache.isis.applib.annotation.Title;
@@ -40,7 +40,7 @@ import org.apache.isis.applib.annotation.ViewModel;
 import org.apache.isis.applib.services.clock.ClockService;
 import org.apache.isis.applib.util.ObjectContracts;
 
-@ClassLayout(
+@DomainObjectLayout(
     named="By Date Range"
 )
 @Bookmarkable

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItem.java b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItem.java
index 2e4dd33..27749f4 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItem.java
@@ -51,10 +51,10 @@ import org.apache.isis.applib.annotation.Bulk;
 import org.apache.isis.applib.annotation.Bulk.AppliesTo;
 import org.apache.isis.applib.annotation.Bulk.InteractionContext.InvokedAs;
 import org.apache.isis.applib.annotation.CollectionInteraction;
+import org.apache.isis.applib.annotation.CollectionLayout;
 import org.apache.isis.applib.annotation.Disabled;
 import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.annotation.MinLength;
-import org.apache.isis.applib.annotation.Named;
 import org.apache.isis.applib.annotation.ObjectType;
 import org.apache.isis.applib.annotation.Optional;
 import org.apache.isis.applib.annotation.ParameterLayout;
@@ -62,7 +62,6 @@ import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.annotation.PropertyInteraction;
 import org.apache.isis.applib.annotation.Prototype;
 import org.apache.isis.applib.annotation.RegEx;
-import org.apache.isis.applib.annotation.SortedBy;
 import org.apache.isis.applib.annotation.TypicalLength;
 import org.apache.isis.applib.security.UserMemento;
 import org.apache.isis.applib.services.eventbus.ActionInteractionEvent;
@@ -212,7 +211,7 @@ public class ToDoItem implements Categorized, Comparable<ToDoItem> {
         Professional {
             @Override
             public List<Subcategory> subcategories() {
-                return Arrays.asList(null, Subcategory.OpenSource, Subcategory.Consulting, Subcategory.Education);
+                return Arrays.asList(null, Subcategory.OpenSource, Subcategory.Consulting, Subcategory.Education, Subcategory.Marketing);
             }
         }, Domestic {
             @Override
@@ -498,7 +497,7 @@ public class ToDoItem implements Categorized, Comparable<ToDoItem> {
     private SortedSet<ToDoItem> dependencies = new TreeSet<ToDoItem>();
 
     @CollectionInteraction
-    @SortedBy(DependenciesComparator.class)
+    @CollectionLayout(sortedBy = DependenciesComparator.class)
     public SortedSet<ToDoItem> getDependencies() {
         return dependencies;
     }
@@ -659,7 +658,8 @@ public class ToDoItem implements Categorized, Comparable<ToDoItem> {
     
     @Prototype
     @ActionSemantics(Of.SAFE)
-    public void demoException(final @Named("Type") DemoExceptionType type) {
+    public void demoException(
+            final @ParameterLayout(named="Type") DemoExceptionType type) {
         switch(type) {
         case NonRecoverableException:
             throw new NonRecoverableException("Demo throwing " + type.name());

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java
index b018f07..f8cacc4 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java
@@ -35,11 +35,11 @@ import org.apache.isis.applib.RecoverableException;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.ActionSemantics;
 import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Named;
 import org.apache.isis.applib.annotation.NotContributed;
+import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.annotation.Prototype;
 import org.apache.isis.applib.services.eventbus.ActionInteractionEvent;
 import org.apache.isis.applib.services.eventbus.CollectionInteractionEvent;
 import org.apache.isis.applib.services.eventbus.EventBusService;
@@ -59,7 +59,8 @@ import static com.google.common.collect.Lists.newArrayList;
  *     vetoing the change).
  * </p>
  */
-@DomainService(menuBar = DomainService.MenuBar.SECONDARY, menuOrder = "30")
+@DomainService
+@DomainServiceLayout(menuBar = DomainServiceLayout.MenuBar.SECONDARY, menuOrder = "30")
 public class ToDoItemSubscriptions {
 
     //region > LOG
@@ -135,7 +136,8 @@ public class ToDoItemSubscriptions {
     )
     @NotContributed
     @ActionSemantics(ActionSemantics.Of.IDEMPOTENT)
-    public void subscriberBehaviour(@Named("Behaviour") Behaviour behaviour) {
+    public void subscriberBehaviour(
+            @ParameterLayout(named="Behaviour") Behaviour behaviour) {
         this.behaviour = behaviour;
         container.informUser("Subscriber behaviour set to: " + behaviour);
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItems.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItems.java b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItems.java
index 6bbcf10..aaabb71 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItems.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItems.java
@@ -29,28 +29,28 @@ import java.util.List;
 import com.google.common.base.Predicates;
 import org.joda.time.LocalDate;
 import org.apache.isis.applib.DomainObjectContainer;
+import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.ActionSemantics;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
 import org.apache.isis.applib.annotation.Bookmarkable;
-import org.apache.isis.applib.annotation.ClassLayout;
-import org.apache.isis.applib.annotation.CssClassFa;
 import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Named;
 import org.apache.isis.applib.annotation.Optional;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.annotation.Prototype;
 import org.apache.isis.applib.annotation.RegEx;
 import org.apache.isis.applib.query.QueryDefault;
 import org.apache.isis.applib.services.clock.ClockService;
 
-@ClassLayout(named="ToDos")
-@DomainService(menuOrder = "10", repositoryFor = ToDoItem.class)
+@DomainServiceLayout(named="ToDos", menuOrder = "10")
+@DomainService(repositoryFor = ToDoItem.class)
 public class ToDoItems {
 
     //region > notYetComplete (action)
-    @CssClassFa("fa fa-thumbs-down")
+    @ActionLayout(
+        cssClassFa = "fa fa-thumbs-down"
+    )
     @Bookmarkable
     @ActionSemantics(Of.SAFE)
     @MemberOrder(sequence = "10")
@@ -72,7 +72,9 @@ public class ToDoItems {
     //endregion
 
     //region > complete (action)
-    @CssClassFa("fa fa-thumbs-up")
+    @ActionLayout(
+        cssClassFa = "fa fa-thumbs-up"
+    )
     @ActionSemantics(Of.SAFE)
     @MemberOrder(sequence = "20")
     public List<ToDoItem> complete() {
@@ -93,11 +95,13 @@ public class ToDoItems {
     //endregion
 
     //region > categorized (action)
-	@SuppressWarnings("unchecked")
-	@Bookmarkable
+    @SuppressWarnings("unchecked")
+    @Bookmarkable
     @ActionSemantics(Of.SAFE)
     @MemberOrder(sequence = "40")
-    @CssClassFa("fa fa-question")
+    @ActionLayout(
+        cssClassFa = "fa fa-question"
+    )
     public List<ToDoItem> categorized(
     		@ParameterLayout(named="Category") final Category category,
     		@ParameterLayout(named="Subcategory") final Subcategory subcategory,
@@ -131,10 +135,11 @@ public class ToDoItems {
     //endregion
 
     //region > newToDo (action)
-    @CssClassFa("fa fa-plus")
+    @ActionLayout(cssClassFa = "fa fa-plus")
     @MemberOrder(sequence = "5")
     public ToDoItem newToDo(
-            final @RegEx(validation = "${symbol_escape}${symbol_escape}w[@&:${symbol_escape}${symbol_escape}-${symbol_escape}${symbol_escape},${symbol_escape}${symbol_escape}.${symbol_escape}${symbol_escape}+ ${symbol_escape}${symbol_escape}w]*") @Named("Description") String description, 
+            final @RegEx(validation = "${symbol_escape}${symbol_escape}w[@&:${symbol_escape}${symbol_escape}-${symbol_escape}${symbol_escape},${symbol_escape}${symbol_escape}.${symbol_escape}${symbol_escape}+ ${symbol_escape}${symbol_escape}w]*")
+                  @ParameterLayout(named="Description") String description,
             final @ParameterLayout(named="Category") Category category,
             final @Optional @ParameterLayout(named="Subcategory") Subcategory subcategory,
             final @Optional @ParameterLayout(named="Due by") LocalDate dueBy,
@@ -163,8 +168,10 @@ public class ToDoItems {
     //endregion
 
     //region > allToDos (action)
-    @CssClassFa("fa fa-globe")
-    @Prototype
+    @ActionLayout(
+        cssClassFa = "fa fa-globe",
+        prototype = true
+    )
     @ActionSemantics(Of.SAFE)
     @MemberOrder(sequence = "50")
     public List<ToDoItem> allToDos() {

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
index 27fa0eb..6bad4ef 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
@@ -24,13 +24,12 @@ package fixture.todo;
 import fixture.todo.scenarios.ToDoItemsRecreateAndCompleteSeveral;
 
 import java.util.List;
-import org.apache.isis.applib.annotation.ClassLayout;
-import org.apache.isis.applib.annotation.CssClassFa;
+import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Optional;
 import org.apache.isis.applib.annotation.ParameterLayout;
-import org.apache.isis.applib.annotation.Prototype;
 import org.apache.isis.applib.fixturescripts.FixtureResult;
 import org.apache.isis.applib.fixturescripts.FixtureScript;
 import org.apache.isis.applib.fixturescripts.FixtureScripts;
@@ -38,17 +37,18 @@ import org.apache.isis.applib.fixturescripts.FixtureScripts;
 /**
  * Enables fixtures to be installed from the application.
  */
-@ClassLayout(
-        named = "Prototyping"
-)
-@DomainService(menuBar = DomainService.MenuBar.SECONDARY, menuOrder = "10")
+@DomainService
+@DomainServiceLayout(named = "Prototyping", menuBar = DomainServiceLayout.MenuBar.SECONDARY, menuOrder = "10")
 public class ToDoItemsFixturesService extends FixtureScripts {
 
     public ToDoItemsFixturesService() {
         super("fixture.todo");
     }
 
-    @CssClassFa("fa fa-bolt")
+    @ActionLayout(
+        cssClassFa="fa fa-bolt",
+        prototype = true
+    )
     @Override
     public List<FixtureResult> runFixtureScript(
             final FixtureScript fixtureScript,
@@ -78,8 +78,10 @@ public class ToDoItemsFixturesService extends FixtureScripts {
     // //////////////////////////////////////
 
 
-    @Prototype
-    @CssClassFa("fa fa-list")
+    @ActionLayout(
+        cssClassFa="fa fa-list",
+        prototype = true
+    )
     @MemberOrder(sequence="20")
     public Object recreateToDoItemsReturnFirst() {
         final List<FixtureResult> run = findFixtureScriptFor(ToDoItemsRecreateAndCompleteSeveral.class).run(null);

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/integtests/ToDoItemsIntegTestFixture.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/integtests/ToDoItemsIntegTestFixture.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/integtests/ToDoItemsIntegTestFixture.java
index d8743b5..eb2c28f 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/integtests/ToDoItemsIntegTestFixture.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/integtests/ToDoItemsIntegTestFixture.java
@@ -37,7 +37,7 @@ public class ToDoItemsIntegTestFixture extends FixtureScript {
 
     @Override
     protected void execute(ExecutionContext executionContext) {
-        executeChild(new ToDoItemsRecreateAndCompleteSeveral(), executionContext);
+        executionContext.executeChild(this, new ToDoItemsRecreateAndCompleteSeveral());
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteAbstract.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteAbstract.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteAbstract.java
index 383dee9..b1ffcd1 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteAbstract.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteAbstract.java
@@ -31,23 +31,6 @@ import org.apache.isis.applib.fixturescripts.FixtureScript;
 
 public abstract class ToDoItemCompleteAbstract extends FixtureScript {
 
-    @Override
-    protected void execute(ExecutionContext executionContext) {
-        validateParameters(executionContext);
-
-
-    }
-
-    /**
-     * Subclasses should call from within {@link ${symbol_pound}execute(org.apache.isis.applib.fixturescripts.FixtureScript.ExecutionContext)}.
-     */
-    protected void validateParameters(ExecutionContext executionContext) {
-        final String ownedBy = executionContext.getParameter("ownedBy");
-        if(ownedBy == null) {
-            throw new IllegalArgumentException("'ownedBy' must be specified");
-        }
-    }
-
     /**
      * Looks up item from repository, and completes.
      */
@@ -55,10 +38,9 @@ public abstract class ToDoItemCompleteAbstract extends FixtureScript {
         String ownedBy = executionContext.getParameter("ownedBy");
         final ToDoItem toDoItem = findToDoItem(description, ownedBy);
         toDoItem.setComplete(true);
-        executionContext.add(this, toDoItem);
+        executionContext.addResult(this, toDoItem);
     }
 
-
     private ToDoItem findToDoItem(final String description, final String ownedBy) {
         final Collection<ToDoItem> filtered = Collections2.filter(getContainer().allInstances(ToDoItem.class), new Predicate<ToDoItem>() {
             @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForBuyStamps.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForBuyStamps.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForBuyStamps.java
index 7f2bb5b..3a5d149 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForBuyStamps.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForBuyStamps.java
@@ -27,11 +27,6 @@ public class ToDoItemCompleteForBuyStamps extends ToDoItemCompleteAbstract {
 
     @Override
     protected void execute(ExecutionContext executionContext) {
-
-        // prereqs
-        executeChild(new ToDoItemForBuyStamps(), executionContext);
-
-        // this fixture
         complete(ToDoItemForBuyStamps.DESCRIPTION, executionContext);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForWriteBlogPost.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForWriteBlogPost.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForWriteBlogPost.java
index 1288528..14e417f 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForWriteBlogPost.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForWriteBlogPost.java
@@ -27,11 +27,6 @@ public class ToDoItemCompleteForWriteBlogPost extends ToDoItemCompleteAbstract {
 
     @Override
     protected void execute(ExecutionContext executionContext) {
-
-        // prereqs
-        executeChild(new ToDoItemForWriteBlogPost(), executionContext);
-
-        // this fixture
         complete(ToDoItemForWriteBlogPost.DESCRIPTION, executionContext);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/create/ToDoItemAbstract.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/create/ToDoItemAbstract.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/create/ToDoItemAbstract.java
index b9ce83a..305cef7 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/create/ToDoItemAbstract.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/create/ToDoItemAbstract.java
@@ -49,7 +49,7 @@ public abstract class ToDoItemAbstract extends FixtureScript {
         // execute
         ToDoItem newToDo = toDoItems.newToDo(
                 description, category, subcategory, ownedBy, dueBy, cost);
-        return executionContext.add(this, newToDo);
+        return executionContext.addResult(this, newToDo);
     }
 
     protected LocalDate nowPlusDays(int days) {

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/delete/ToDoItemsDelete.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/delete/ToDoItemsDelete.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/delete/ToDoItemsDelete.java
index 656d625..429d596 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/delete/ToDoItemsDelete.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/delete/ToDoItemsDelete.java
@@ -26,26 +26,11 @@ import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
 
 public class ToDoItemsDelete extends FixtureScript {
 
-    //region > ownedBy (optional)
-    private String ownedBy;
-
-    public String getOwnedBy() {
-        return ownedBy;
-    }
-
-    public void setOwnedBy(String ownedBy) {
-        this.ownedBy = ownedBy;
-    }
-    //endregion
-
     //region > execute
     protected void execute(ExecutionContext executionContext) {
-
         final String ownedBy = executionContext.getParameter("ownedBy");
-
         isisJdoSupport.executeUpdate("delete from ${symbol_escape}"ToDoItem${symbol_escape}" where ${symbol_escape}"ownedBy${symbol_escape}" = '" + ownedBy + "'");
     }
-
     //endregion
 
     //region > injected services

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreate.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreate.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreate.java
index d7b758d..a1bb33f 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreate.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreate.java
@@ -65,20 +65,20 @@ public class ToDoItemsRecreate extends FixtureScript {
                 Util.coalesce(getOwnedBy(), getContainer().getUser().getName()));
 
         // prereqs
-        executeChild(new ToDoItemsDelete(), executionContext);
+        executionContext.executeChild(this, new ToDoItemsDelete());
 
         // create items
-        executeChild(new ToDoItemForBuyMilk(), executionContext);
-        executeChild(new ToDoItemForBuyBread(), executionContext);
-        executeChild(new ToDoItemForBuyStamps(), executionContext);
-        executeChild(new ToDoItemForPickUpLaundry(), executionContext);
-        executeChild(new ToDoItemForMowLawn(), executionContext);
-        executeChild(new ToDoItemForVacuumHouse(), executionContext);
-        executeChild(new ToDoItemForSharpenKnives(), executionContext);
-        executeChild(new ToDoItemForWriteToPenPal(), executionContext);
-        executeChild(new ToDoItemForWriteBlogPost(), executionContext);
-        executeChild(new ToDoItemForOrganizeBrownBag(), executionContext);
-        executeChild(new ToDoItemForSubmitConferenceSession(), executionContext);
-        executeChild(new ToDoItemForStageIsisRelease(), executionContext);
+        executionContext.executeChild(this, new ToDoItemForBuyMilk());
+        executionContext.executeChild(this, new ToDoItemForBuyBread());
+        executionContext.executeChild(this, new ToDoItemForBuyStamps());
+        executionContext.executeChild(this, new ToDoItemForPickUpLaundry());
+        executionContext.executeChild(this, new ToDoItemForMowLawn());
+        executionContext.executeChild(this, new ToDoItemForVacuumHouse());
+        executionContext.executeChild(this, new ToDoItemForSharpenKnives());
+        executionContext.executeChild(this, new ToDoItemForWriteToPenPal());
+        executionContext.executeChild(this, new ToDoItemForWriteBlogPost());
+        executionContext.executeChild(this, new ToDoItemForOrganizeBrownBag());
+        executionContext.executeChild(this, new ToDoItemForSubmitConferenceSession());
+        executionContext.executeChild(this, new ToDoItemForStageIsisRelease());
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreateAndCompleteSeveral.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreateAndCompleteSeveral.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreateAndCompleteSeveral.java
index 7ae2d7f..3d790b7 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreateAndCompleteSeveral.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreateAndCompleteSeveral.java
@@ -23,6 +23,19 @@ package fixture.todo.scenarios;
 
 import fixture.todo.items.actions.complete.ToDoItemCompleteForBuyStamps;
 import fixture.todo.items.actions.complete.ToDoItemCompleteForWriteBlogPost;
+import fixture.todo.items.create.ToDoItemForBuyBread;
+import fixture.todo.items.create.ToDoItemForBuyMilk;
+import fixture.todo.items.create.ToDoItemForBuyStamps;
+import fixture.todo.items.create.ToDoItemForMowLawn;
+import fixture.todo.items.create.ToDoItemForOrganizeBrownBag;
+import fixture.todo.items.create.ToDoItemForPickUpLaundry;
+import fixture.todo.items.create.ToDoItemForSharpenKnives;
+import fixture.todo.items.create.ToDoItemForStageIsisRelease;
+import fixture.todo.items.create.ToDoItemForSubmitConferenceSession;
+import fixture.todo.items.create.ToDoItemForVacuumHouse;
+import fixture.todo.items.create.ToDoItemForWriteBlogPost;
+import fixture.todo.items.create.ToDoItemForWriteToPenPal;
+import fixture.todo.items.delete.ToDoItemsDelete;
 import fixture.todo.util.Util;
 
 import org.apache.isis.applib.fixturescripts.FixtureScript;
@@ -53,11 +66,24 @@ public class ToDoItemsRecreateAndCompleteSeveral extends FixtureScript {
                 "ownedBy",
                 Util.coalesce(getOwnedBy(), getContainer().getUser().getName()));
 
-        // prereqs
-        executeChild(new ToDoItemsRecreate(), executionContext);
+        executionContext.executeChild(this, new ToDoItemsDelete());
+
+        // create items
+        executionContext.executeChild(this, new ToDoItemForBuyMilk());
+        executionContext.executeChild(this, new ToDoItemForBuyBread());
+        executionContext.executeChild(this, new ToDoItemForBuyStamps());
+        executionContext.executeChild(this, new ToDoItemForPickUpLaundry());
+        executionContext.executeChild(this, new ToDoItemForMowLawn());
+        executionContext.executeChild(this, new ToDoItemForVacuumHouse());
+        executionContext.executeChild(this, new ToDoItemForSharpenKnives());
+        executionContext.executeChild(this, new ToDoItemForWriteToPenPal());
+        executionContext.executeChild(this, new ToDoItemForWriteBlogPost());
+        executionContext.executeChild(this, new ToDoItemForOrganizeBrownBag());
+        executionContext.executeChild(this, new ToDoItemForSubmitConferenceSession());
+        executionContext.executeChild(this, new ToDoItemForStageIsisRelease());
 
         // this fixture
-        executeChild(new ToDoItemCompleteForBuyStamps(), executionContext);
-        executeChild(new ToDoItemCompleteForWriteBlogPost(), executionContext);
+        executionContext.executeChild(this, new ToDoItemCompleteForBuyStamps());
+        executionContext.executeChild(this, new ToDoItemCompleteForWriteBlogPost());
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemContributionsIntegTest.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemContributionsIntegTest.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemContributionsIntegTest.java
index 0725ca9..7440088 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemContributionsIntegTest.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemContributionsIntegTest.java
@@ -24,7 +24,7 @@ package integration.tests;
 import dom.todo.ToDoItem;
 import dom.todo.ToDoItemContributions;
 import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
+import fixture.todo.scenarios.ToDoItemsRecreateAndCompleteSeveral;
 
 import java.util.List;
 import javax.inject.Inject;
@@ -40,12 +40,12 @@ import static org.junit.Assert.assertThat;
 
 public abstract class ToDoItemContributionsIntegTest extends AbstractToDoIntegTest {
 
-    ToDoItemsIntegTestFixture fixture;
+    ToDoItemsRecreateAndCompleteSeveral fixtureScript;
 
     @Before
     public void setUpData() throws Exception {
-        // executing the fixtures directly allows us to look up the results later.
-        fixtureScripts.runFixtureScript(fixture = new ToDoItemsIntegTestFixture(), null);
+        fixtureScript = new ToDoItemsRecreateAndCompleteSeveral();
+        fixtureScripts.runFixtureScript(fixtureScript, null);
     }
 
     @Inject
@@ -61,7 +61,7 @@ public abstract class ToDoItemContributionsIntegTest extends AbstractToDoIntegTe
     @Before
     public void setUp() throws Exception {
 
-        toDoItem = wrap(fixture.lookup("integ-test/to-do-items-recreate-and-complete-several/to-do-item-complete-for-buy-stamps/item-1", ToDoItem.class));
+        toDoItem = wrap(fixtureScript.lookup("to-do-items-recreate-and-complete-several/to-do-item-complete-for-buy-stamps/item-1", ToDoItem.class));
         assertThat(toDoItem, is(not(nullValue())));
 
         toDoItemContributionsWrapped = wrap(toDoItemContributions);

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java
index 54f2adf..b9091fb 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java
@@ -24,7 +24,7 @@ package integration.tests;
 import dom.todo.ToDoItem;
 import dom.todo.ToDoItemSubscriptions;
 import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
+import fixture.todo.scenarios.ToDoItemsRecreateAndCompleteSeveral;
 
 import java.math.BigDecimal;
 import java.nio.charset.Charset;
@@ -64,12 +64,12 @@ import static org.junit.Assert.assertThat;
 
 public class ToDoItemIntegTest extends AbstractToDoIntegTest {
 
-    ToDoItemsIntegTestFixture fixture;
+    ToDoItemsRecreateAndCompleteSeveral fixtureScript;
 
     @Before
     public void setUpData() throws Exception {
-        // executing the fixtures directly allows us to look up the results later.
-        fixtureScripts.runFixtureScript(fixture = new ToDoItemsIntegTestFixture(), null);
+        fixtureScript = new ToDoItemsRecreateAndCompleteSeveral();
+        fixtureScripts.runFixtureScript(fixtureScript, null);
     }
 
     @Inject
@@ -103,7 +103,7 @@ public class ToDoItemIntegTest extends AbstractToDoIntegTest {
             final List<ToDoItem> all = wrap(toDoItems).notYetComplete();
             toDoItem = wrap(all.get(0));
 
-            toDoItem = wrap(fixture.lookup("integ-test/to-do-items-recreate-and-complete-several/to-do-items-recreate/to-do-item-for-buy-bread/item-1", ToDoItem.class));
+            toDoItem = wrap(fixtureScript.lookup("to-do-items-recreate-and-complete-several/to-do-item-for-buy-bread/item-1", ToDoItem.class));
             assertThat(toDoItem, is(not(nullValue())));
 
             nextTransaction();

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/CustomMementoService.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/CustomMementoService.java b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/CustomMementoService.java
index 51f3db9..dc619cd 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/CustomMementoService.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/CustomMementoService.java
@@ -35,7 +35,7 @@ import org.apache.isis.core.runtime.services.memento.MementoServiceDefault;
  * <pre>
  *     isis.services = ${symbol_escape}
  *                     ...,
- *                     1:webapp.MyMementoService,
+ *                     1:webapp.CustomMementoService,
  *                     ...,
  * </pre>
  * <p>

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/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 a1edab5..828897c 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
@@ -25,11 +25,12 @@ import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.ActionSemantics;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
 import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.ParameterLayout;
-import org.apache.isis.applib.annotation.Prototype;
 
-@DomainService(menuBar = DomainService.MenuBar.SECONDARY, menuOrder = "20")
+@DomainService
+@DomainServiceLayout(menuBar = DomainServiceLayout.MenuBar.SECONDARY, menuOrder = "20")
 public class ExternalLinksService {
 
     public static enum ExternalLink {

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/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
index 5ef2093..40213a3 100644
--- 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
@@ -21,6 +21,7 @@ package webapp.prototyping;
 
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.viewer.wicket.viewer.applib.WicketDeveloperUtilitiesService;
 
@@ -28,7 +29,8 @@ import org.apache.isis.viewer.wicket.viewer.applib.WicketDeveloperUtilitiesServi
  * These overrides are simply to 'move' the action underneath the 
  * 'Prototyping' menu.
  */
-@DomainService(menuBar = DomainService.MenuBar.SECONDARY, menuOrder = "40")
+@DomainService
+@DomainServiceLayout(menuBar = DomainServiceLayout.MenuBar.SECONDARY, menuOrder = "40")
 public class WicketDeveloperUtilities extends WicketDeveloperUtilitiesService {
 
     @ActionLayout(named="Clear i18n Cache")

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties
index dfcbaf3..b4942ff 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties
@@ -24,7 +24,7 @@ ${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} in the org.apache.isis.core:isis-core-runtime JAR (in the org.apache.isis.core.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:
@@ -35,11 +35,7 @@ ${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} For example, viewer_wicket.properties holds configuration information specific to the Wicket viewer.
 ${symbol_pound}
 ${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${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}
 
@@ -99,6 +95,14 @@ ${symbol_pound}isis.reflector.validator=
 
 
 ${symbol_pound}
+${symbol_pound} layoutMetadataReader(s)
+${symbol_pound}
+
+${symbol_pound} isis.reflector.layoutMetadataReaders=org.apache.isis.core.metamodel.layoutmetadata.json.LayoutMetadataReaderFromJson
+
+
+
+${symbol_pound}
 ${symbol_pound} patterns for applying CssClassFa facet (font-awesome icons) to member names
 ${symbol_pound}
 isis.reflector.facet.cssClassFa.patterns=${symbol_escape}
@@ -194,7 +198,7 @@ ${symbol_pound} Fixtures are used to seed the object store with an initial set o
 ${symbol_pound} in-memory object store, the fixtures are installed on every run.  For other
 ${symbol_pound} object stores, they are used only when the object store is first initialized.
 ${symbol_pound}
-isis.fixtures=fixture.todo.scenarios.ToDoItemsRecreateForSven
+${symbol_pound}isis.fixtures=fixture.todo.scenarios.ToDoItemsRecreateForSven
 
 
 ${symbol_pound}

http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/test/resources/projects/basic/archetype.properties
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/test/resources/projects/basic/archetype.properties b/example/archetype/todoapp/src/test/resources/projects/basic/archetype.properties
index 9d6cbff..038d8a8 100644
--- a/example/archetype/todoapp/src/test/resources/projects/basic/archetype.properties
+++ b/example/archetype/todoapp/src/test/resources/projects/basic/archetype.properties
@@ -1,4 +1,4 @@
-#Fri Dec 05 11:57:56 GMT 2014
+#Wed Dec 17 18:14:56 GMT 2014
 package=it.pkg
 version=0.1-SNAPSHOT
 groupId=archetype.it