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/10/19 13:06:11 UTC

[13/24] ISIS-872: recreating todoapp archetype

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/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
deleted file mode 100644
index 1267098..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/admin/AdminContributions.java
+++ /dev/null
@@ -1,110 +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 webapp.admin;
-
-import java.util.Collections;
-import java.util.List;
-
-import com.google.common.collect.Lists;
-
-import org.joda.time.LocalDate;
-
-import org.apache.isis.applib.AbstractService;
-import org.apache.isis.applib.ViewModel;
-import org.apache.isis.applib.annotation.*;
-import org.apache.isis.applib.annotation.ActionSemantics.Of;
-import org.apache.isis.applib.services.HasTransactionId;
-import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.applib.services.bookmark.BookmarkService;
-import org.apache.isis.applib.services.clock.ClockService;
-import org.apache.isis.objectstore.jdo.applib.service.DomainChangeJdoAbstract;
-import org.apache.isis.objectstore.jdo.applib.service.audit.AuditEntryJdo;
-import org.apache.isis.objectstore.jdo.applib.service.audit.AuditingServiceJdoRepository;
-import org.apache.isis.objectstore.jdo.applib.service.command.CommandJdo;
-import org.apache.isis.objectstore.jdo.applib.service.command.CommandServiceJdoRepository;
-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 {
-
-    /**
-     * Depending on which services are available, returns either a list of {@link CommandJdo command}s that have 
-     * caused a change in the domain object or a list of {@link AuditEntryJdo audit entries} capturing the 'effect' 
-     * of that change.
-     * 
-     * <p>
-     * If {@link CommandJdo command}s are returned, then the corresponding {@link AuditEntryJdo audit entries} are
-     * available from each command.
-     */
-    @NotInServiceMenu
-    @ActionSemantics(Of.SAFE)
-    @MemberOrder(sequence="30")
-    public List<? extends DomainChangeJdoAbstract> recentChanges (
-            final Object targetDomainObject,
-            final @Optional @Named("From") LocalDate from,
-            final @Optional @Named("To") LocalDate to) {
-        final Bookmark targetBookmark = bookmarkService.bookmarkFor(targetDomainObject);
-        final List<DomainChangeJdoAbstract> changes = Lists.newArrayList();
-        if(commandServiceRepository != null) {
-            changes.addAll(commandServiceRepository.findByTargetAndFromAndTo(targetBookmark, from, to));
-        } 
-        if(publishingServiceRepository != null) {
-            changes.addAll(publishingServiceRepository.findByTargetAndFromAndTo(targetBookmark, from, to));
-        }
-        changes.addAll(auditingServiceRepository.findByTargetAndFromAndTo(targetBookmark, from, to));
-        Collections.sort(changes, DomainChangeJdoAbstract.compareByTimestampDescThenType());
-        return changes;
-    }
-    /**
-     * Hide for implementations of {@link HasTransactionId} (in other words for {@link CommandJdo command}s, {@link AuditEntryJdo audit entries}
-     * and {@link PublishedEventJdo published event}s) and for {@link ViewModel}s.
-     */
-    public boolean hideRecentChanges(final Object targetDomainObject, final LocalDate from, final LocalDate to) {
-        return targetDomainObject instanceof HasTransactionId || targetDomainObject instanceof ViewModel || auditingServiceRepository == null || bookmarkService == null;
-    }
-    public LocalDate default1RecentChanges() {
-        return clockService.now().minusDays(7);
-    }
-    public LocalDate default2RecentChanges() {
-        return clockService.now();
-    }
-
-    
-    // //////////////////////////////////////
-
-    
-    @javax.inject.Inject
-    private CommandServiceJdoRepository commandServiceRepository;
-    
-    @javax.inject.Inject
-    private AuditingServiceJdoRepository auditingServiceRepository;
-    
-    @javax.inject.Inject
-    private PublishingServiceJdoRepository publishingServiceRepository;
-    
-    @javax.inject.Inject
-    private BookmarkService bookmarkService;
-
-    @javax.inject.Inject
-    private ClockService clockService;
-    
-}
-

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/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
deleted file mode 100644
index a75ecdb..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/DeveloperUtilities.java
+++ /dev/null
@@ -1,53 +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 webapp.prototyping;
-
-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;
-import org.apache.isis.core.metamodel.services.devutils.DeveloperUtilitiesServiceDefault;
-
-/**
- * These overrides are simply to 'move' the action underneath the 
- * 'Prototyping' menu.
- */
-@DomainService(menuOrder = "40.2")
-public class DeveloperUtilities extends DeveloperUtilitiesServiceDefault {
-
-    @MemberOrder(name="Prototyping", sequence="90.1")
-    @Override
-    public Clob downloadMetaModel() {
-        return super.downloadMetaModel();
-    }
-    
-    @MemberOrder(name="Prototyping", sequence="90.2")
-    @Override
-    public Blob downloadLayouts() {
-        return super.downloadLayouts();
-    }
-
-    @MemberOrder(name="Prototyping", sequence="90.3")
-    @Override
-    public void refreshServices() {
-        super.refreshServices();
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/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 b947ec1..c3b6be3 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
@@ -30,7 +30,7 @@ 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/quickstart_wicket_restful_jdo/");
+        PROJECT_ON_GITHUB("Project source code on Github", "https://github.com/apache/isis/tree/master/example/application/${parentArtifactId}/");
         
         private final String title;
         private final String url;

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/scheduler/AbstractIsisQuartzJob.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/scheduler/AbstractIsisQuartzJob.java b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/scheduler/AbstractIsisQuartzJob.java
deleted file mode 100644
index b9e1628..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/scheduler/AbstractIsisQuartzJob.java
+++ /dev/null
@@ -1,96 +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 webapp.scheduler;
-
-import com.google.common.base.Splitter;
-import com.google.common.collect.Iterables;
-
-import org.quartz.Job;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
-import org.apache.isis.core.runtime.authentication.standard.SimpleSession;
-import org.apache.isis.core.runtime.sessiontemplate.AbstractIsisSessionTemplate;
-import org.apache.isis.core.runtime.system.session.IsisSession;
-
-public class AbstractIsisQuartzJob implements Job {
-
-    public static enum ConcurrentInstancesPolicy {
-        /**
-         * Only a single instance of this job is allowed to run.  
-         * 
-         * <p>
-         * That is, if the job is invoked again before a previous instance has completed, then silently skips.
-         */
-        SINGLE_INSTANCE_ONLY,
-        /**
-         * Multiple instances of this job are allowed to run concurrently.
-         * 
-         * <p>
-         * That is, it is not required for the previous instance of this job to have completed before this one starts.
-         */
-        MULTIPLE_INSTANCES
-    }
-    
-    private final AbstractIsisSessionTemplate isisRunnable;
-
-    private final ConcurrentInstancesPolicy concurrentInstancesPolicy;
-    private boolean executing;
-
-    public AbstractIsisQuartzJob(AbstractIsisSessionTemplate isisRunnable) {
-        this(isisRunnable, ConcurrentInstancesPolicy.SINGLE_INSTANCE_ONLY);
-    }
-    public AbstractIsisQuartzJob(AbstractIsisSessionTemplate isisRunnable, ConcurrentInstancesPolicy concurrentInstancesPolicy) {
-        this.isisRunnable = isisRunnable;
-        this.concurrentInstancesPolicy = concurrentInstancesPolicy;
-    }
-
-    // //////////////////////////////////////
-
-    /**
-     * Sets up an {@link IsisSession} then delegates to the {@link ${symbol_pound}doExecute(JobExecutionContext) hook}. 
-     */
-    public void execute(final JobExecutionContext context) throws JobExecutionException {
-        final AuthenticationSession authSession = newAuthSession(context);
-        try {
-            if(concurrentInstancesPolicy == ConcurrentInstancesPolicy.SINGLE_INSTANCE_ONLY && executing) {
-                return;
-            }
-            executing = true;
-
-            isisRunnable.execute(authSession, context);
-        } finally {
-            executing = false;
-        }
-    }
-
-    AuthenticationSession newAuthSession(JobExecutionContext context) {
-        String user = getKey(context, SchedulerConstants.USER_KEY);
-        String rolesStr = getKey(context, SchedulerConstants.ROLES_KEY);
-        String[] roles = Iterables.toArray(
-                Splitter.on(",").split(rolesStr), String.class);
-        return new SimpleSession(user, roles);
-    }
-
-    String getKey(JobExecutionContext context, String key) {
-        return context.getMergedJobDataMap().getString(key);
-    }
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/scheduler/BackgroundCommandExecutionQuartzJob.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/scheduler/BackgroundCommandExecutionQuartzJob.java b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/scheduler/BackgroundCommandExecutionQuartzJob.java
deleted file mode 100644
index 0d0cf9e..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/scheduler/BackgroundCommandExecutionQuartzJob.java
+++ /dev/null
@@ -1,31 +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 webapp.scheduler;
-
-import org.apache.isis.objectstore.jdo.service.BackgroundCommandExecutionFromBackgroundCommandServiceJdo;
-
-
-public class BackgroundCommandExecutionQuartzJob extends AbstractIsisQuartzJob {
-
-    public BackgroundCommandExecutionQuartzJob() {
-        super(new BackgroundCommandExecutionFromBackgroundCommandServiceJdo());   
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/scheduler/SchedulerConstants.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/scheduler/SchedulerConstants.java b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/scheduler/SchedulerConstants.java
deleted file mode 100644
index f662fe5..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/scheduler/SchedulerConstants.java
+++ /dev/null
@@ -1,30 +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 webapp.scheduler;
-
-
-public final class SchedulerConstants {
-
-    private SchedulerConstants(){}
-    
-    public static final String USER_KEY = SchedulerConstants.class.getPackage().getName() + ".user";
-    public static final String ROLES_KEY = SchedulerConstants.class.getPackage().getName() + ".roles";
-    
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/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 311694b..1473390 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
@@ -33,8 +33,10 @@
 #
 
 sven = pass, admin_role
-dick = pass, user_role, analysis_role, self-install_role
-bob  = pass, user_role, self-install_role
+dick = pass, readwrite_role, dashboard_role, analysis_role, self-install_role
+bob  = pass, readwrite_role, dashboard_role, self-install_role
+joe  = pass, readwrite_role, self-install_role, noDueBy_role
+guest = guest, readonly_role
 
 
 
@@ -62,22 +64,31 @@ bob  = pass, user_role, self-install_role
 # perm in format: packageName:className:memberName:r,w
 
 #
-# the role/perm mappings for realm1 and realm2 are "coincidentally" the same.
-# But if using the IsisLdapRealm, it could be pointed at an ini file such as this in 
+# If using the IsisLdapRealm, it could be pointed at an ini file such as this in
 # order to share role/perm mappings.
 #
 
 
 # configuring iniRealm to use Shiro's built-in WildcardPermissions
-user_role = *:ToDoItems:*:*,\
-            *:ToDoItem:*:*,\
-            *:ToDoAppDashboard:*:*
+
+readwrite_role = *:ToDoItems:*:*,\
+                 *:ToDoItem:*:*
+
+readonly_role = *:ToDoItems:notYetComplete:*,\
+                *:ToDoItems:complete:*,\
+                *:ToDoItems:allToDos:*,\
+                *:ToDoItem:*:r
+
+dashboard_role = *:ToDoAppDashboardService:*:*,\
+                 *:ToDoAppDashboard:*:*
+
 analysis_role = *:ToDoItemAnalysis:*:*,\
             *:ToDoItemsByCategoryViewModel:*:*,\
             *:ToDoItemsByDateRangeViewModel:*:*
-self-install_role = *:ToDoItemsFixturesService:installFixtures:*
-admin_role = *
 
+self-install_role = *:ToDoItemsFixturesService:*:*
+
+admin_role = *
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/realm2.ini
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/realm2.ini b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/realm2.ini
deleted file mode 100644
index fd0ee8f..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/realm2.ini
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# 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.
-#
-
-
-# -----------------------------------------------------------------------------
-# Users and their assigned roles
-#
-# Each line conforms to the format defined in the
-# org.apache.shiro.realm.text.TextConfigurationRealm#setUserDefinitions JavaDoc
-# -----------------------------------------------------------------------------
-
-[users]
-# user = password, role1, role2, role3, ...
-
-#
-# realm2 configures joe and guest only.  Additional logins are configured in realm1
-#
-
-joe  = pass, user_role, self-install_role
-guest = guest, user_role
-
-
-
-# -----------------------------------------------------------------------------
-# Roles with assigned permissions
-# 
-# Each line conforms to the format defined in the
-# org.apache.shiro.realm.text.TextConfigurationRealm#setRoleDefinitions JavaDoc
-# -----------------------------------------------------------------------------
-
-[roles]
-# role = perm1, perm2, perm3, ...
-# perm in format: packageName:className:memberName:r,w
-
-#
-# the role/perm mappings for realm1 and realm2 are "coincidentally" the same.
-# But if using the IsisLdapRealm, it could be pointed at an ini file such as this in 
-# order to share role/perm mappings.
-#
-
-# configuring iniRealm to use Shiro's built-in WildcardPermissions
-user_role = *:ToDoItems:*:*,\
-            *:ToDoItem:*:*,\
-            *:ToDoAppDashboard:*:*
-analysis_role = *:ToDoItemAnalysis:*:*,\
-            *:ToDoItemsByCategoryViewModel:*:*,\
-            *:ToDoItemsByDateRangeViewModel:*:*
-self-install_role = *:ToDoItemsFixturesService:installFixtures:*
-admin_role = *
-

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/scheduler/quartz-config.xml
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/scheduler/quartz-config.xml b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/scheduler/quartz-config.xml
deleted file mode 100644
index c8ee858..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/scheduler/quartz-config.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-#set( $symbol_pound = '#' )
-#set( $symbol_dollar = '$' )
-#set( $symbol_escape = '\' )
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one 
-    or more contributor license agreements. See the NOTICE file 
-    distributed with this work for additional information 
-    regarding copyright ownership. The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the 
-    "License"); you may not use this file except in compliance 
-    with the License. You may obtain a copy of the License at 
-    
-        http://www.apache.org/licenses/LICENSE-2.0 
-        
-    Unless required by applicable law or agreed to in writing, 
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
-    KIND, either express or implied. See the License for the 
-    specific language governing permissions and limitations 
-    under the License. 
--->
-<job-scheduling-data
-	xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData 
-http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd"
-	version="1.8">
-
-	<schedule>
-		<job>
-			<name>BackgroundCommandExecutionJob</name>
-			<group>Isis</group>
-			<description>Poll and execute any background actions persisted by the BackgroundActionServiceJdo domain service</description>
-			<job-class>webapp.scheduler.BackgroundCommandExecutionQuartzJob</job-class>
-			<job-data-map>
-				<entry>
-					<key>webapp.scheduler.user</key>
-					<value>scheduler_user</value>
-				</entry>
-				<entry>
-					<key>webapp.scheduler.roles</key>
-					<value>admin_role</value>
-				</entry>
-			</job-data-map>
-		</job>
-
-		<!--
-		cron format: 
-		http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06
-	 	-->
-		<trigger>
-			<cron>
-				<name>BackgroundCommandExecutionJobEveryTenSeconds</name>
-				<job-name>BackgroundCommandExecutionJob</job-name>
-				<job-group>Isis</job-group>
-                <!-- 
-				<cron-expression>0 1 * * * ?</cron-expression>
-                 -->
-				<cron-expression>0/10 * * * * ?</cron-expression>
-			</cron>
-		</trigger>
-
-	</schedule>
-</job-scheduling-data>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/scheduler/quartz.properties
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/scheduler/quartz.properties b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/scheduler/quartz.properties
deleted file mode 100644
index 79ad145..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/resources/webapp/scheduler/quartz.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-#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}
-
-org.quartz.scheduler.instanceName = SchedulerQuartzConfigXml
-org.quartz.threadPool.threadCount = 1
-org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
-org.quartz.plugin.jobInitializer.class =org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin 
-org.quartz.plugin.jobInitializer.fileNames = webapp/scheduler/quartz-config.xml 
-org.quartz.plugin.jobInitializer.failOnFileNotFound = true
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authentication_file.passwords
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authentication_file.passwords b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authentication_file.passwords
deleted file mode 100644
index 9a568b0..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authentication_file.passwords
+++ /dev/null
@@ -1,28 +0,0 @@
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#  
-#         http://www.apache.org/licenses/LICENSE-2.0
-#         
-#  Unless required by applicable law or agreed to in writing,
-#  software distributed under the License is distributed on an
-#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-#  specific language governing permissions and limitations
-#  under the License.
-
-
-#
-# configuration file for the file-based authentication
-# not used by the onlinedemo
-#
-
-# list of users, and their password, and optionally roles
-sven:pass:org.apache.isis.viewer.wicket.roles.USER
-dick:pass:org.apache.isis.viewer.wicket.roles.USER
-bob:pass:org.apache.isis.viewer.wicket.roles.USER
-joe:pass:org.apache.isis.viewer.wicket.roles.USER
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authentication_file.properties
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authentication_file.properties b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authentication_file.properties
deleted file mode 100644
index 8edf17c..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authentication_file.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-#set( $symbol_pound = '#' )
-#set( $symbol_dollar = '$' )
-#set( $symbol_escape = '\' )
-${symbol_pound}  Licensed to the Apache Software Foundation (ASF) under one
-${symbol_pound}  or more contributor license agreements.  See the NOTICE file
-${symbol_pound}  distributed with this work for additional information
-${symbol_pound}  regarding copyright ownership.  The ASF licenses this file
-${symbol_pound}  to you under the Apache License, Version 2.0 (the
-${symbol_pound}  "License"); you may not use this file except in compliance
-${symbol_pound}  with the License.  You may obtain a copy of the License at
-${symbol_pound}  
-${symbol_pound}         http://www.apache.org/licenses/LICENSE-2.0
-${symbol_pound}         
-${symbol_pound}  Unless required by applicable law or agreed to in writing,
-${symbol_pound}  software distributed under the License is distributed on an
-${symbol_pound}  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-${symbol_pound}  KIND, either express or implied.  See the License for the
-${symbol_pound}  specific language governing permissions and limitations
-${symbol_pound}  under the License.
-
-${symbol_pound}
-${symbol_pound} configuration file for the File-based authentication mechanism
-${symbol_pound}
-
-
-${symbol_pound}
-${symbol_pound} (intentionally empty)
-${symbol_pound}

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authorization_file.allow
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authorization_file.allow b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authorization_file.allow
deleted file mode 100644
index 4407ec2..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authorization_file.allow
+++ /dev/null
@@ -1,28 +0,0 @@
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#  
-#         http://www.apache.org/licenses/LICENSE-2.0
-#         
-#  Unless required by applicable law or agreed to in writing,
-#  software distributed under the License is distributed on an
-#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-#  specific language governing permissions and limitations
-#  under the License.
-
-
-#
-# configuration file for the file-based authorization
-#
-
-
-#
-# (intentionally empty)
-#
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authorization_file.properties
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authorization_file.properties b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authorization_file.properties
deleted file mode 100644
index 7baee9c..0000000
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/authorization_file.properties
+++ /dev/null
@@ -1,50 +0,0 @@
-#set( $symbol_pound = '#' )
-#set( $symbol_dollar = '$' )
-#set( $symbol_escape = '\' )
-${symbol_pound}  Licensed to the Apache Software Foundation (ASF) under one
-${symbol_pound}  or more contributor license agreements.  See the NOTICE file
-${symbol_pound}  distributed with this work for additional information
-${symbol_pound}  regarding copyright ownership.  The ASF licenses this file
-${symbol_pound}  to you under the Apache License, Version 2.0 (the
-${symbol_pound}  "License"); you may not use this file except in compliance
-${symbol_pound}  with the License.  You may obtain a copy of the License at
-${symbol_pound}  
-${symbol_pound}         http://www.apache.org/licenses/LICENSE-2.0
-${symbol_pound}         
-${symbol_pound}  Unless required by applicable law or agreed to in writing,
-${symbol_pound}  software distributed under the License is distributed on an
-${symbol_pound}  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-${symbol_pound}  KIND, either express or implied.  See the License for the
-${symbol_pound}  specific language governing permissions and limitations
-${symbol_pound}  under the License.
-
-${symbol_pound}
-${symbol_pound} configuration file for the File-based authorization mechanism
-${symbol_pound}
-
-
-${symbol_pound}
-${symbol_pound} the whitelist file
-${symbol_pound} (value shown below is the default)
-${symbol_pound}
-
-${symbol_pound}isis.authorization.file.whitelist=authorization_file.allow
-
-
-
-${symbol_pound}
-${symbol_pound} the blacklist file
-${symbol_pound} (there is no default value; provide a filename)
-${symbol_pound}
-
-${symbol_pound}isis.authorization.file.blacklist=
-
-
-
-${symbol_pound}
-${symbol_pound} switch on "learning mode".  In this mode the authorization mechanism
-${symbol_pound} will grant all requests, and log those requests into the allow file.
-${symbol_pound}
-
-${symbol_pound}isis.authorization.learn=true
-

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/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 e6c49a1..6961bb1 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
@@ -53,41 +53,22 @@ isis.persistor=datanucleus
 
 
 
-
 ${symbol_pound}
 ${symbol_pound} configure authentication mechanism to use (to logon to the system)
-${symbol_pound} note:
-${symbol_pound} - authentication is disabled if running in exploration mode
-${symbol_pound} - the Scimpi viewer allows access to anonymous users
-${symbol_pound} 
+${symbol_pound}
  
-${symbol_pound} default is file in SERVER mode, none in SERVER_EXPLORATION.  Derived from wicket mode 
 ${symbol_pound}isis.authentication=bypass
 isis.authentication=shiro
 
+
 ${symbol_pound}
 ${symbol_pound} configure authorization mechanism to use
 ${symbol_pound}
-${symbol_pound} The authorization mechanism define each users' permissions to view/edit object properties 
-${symbol_pound} or collections, and to view/invoke object actions
-${symbol_pound}
-${symbol_pound} configuring this component automatically refines the metamodel (installing a facet factory
-${symbol_pound} which vetoes access as required)
-${symbol_pound} 
  
-${symbol_pound} default is file in SERVER mode, none in SERVER_EXPLORATION.  Derived from wicket mode 
-${symbol_pound}isis.authorization=file
+${symbol_pound}isis.authorization=bypass
 isis.authorization=shiro
 
 
-${symbol_pound}
-${symbol_pound} configure the user profile store to use.
-${symbol_pound} 
-${symbol_pound} the user profile store is supported by some viewers (though not the Wicket or 
-${symbol_pound} Restful viewers) as a way to store user-specific settings  (eg colours, themes etc)
-${symbol_pound} 
-isis.user-profile-store=in-memory
-
 
 
 
@@ -164,31 +145,14 @@ isis.services.ServicesInstallerFromAnnotation.packagePrefix=app,${symbol_escape}
                                                             webapp.admin,${symbol_escape}
                                                             webapp.prototyping
 
-${symbol_pound}isis.services.prefix = 
 isis.services = ${symbol_escape}
                 org.apache.isis.applib.services.bookmark.BookmarkHolderActionContributions,${symbol_escape}
                 ${symbol_escape}
                 ${symbol_pound} customizable exception handling, ${symbol_escape}
                 org.apache.isis.objectstore.jdo.applib.service.exceprecog.ExceptionRecognizerCompositeForJdoObjectStore,${symbol_escape}
-                ${symbol_escape}
-                ${symbol_pound} isis-module-command-jdo services, ${symbol_escape}
-                org.apache.isis.objectstore.jdo.applib.service.command.CommandServiceJdoContributions,${symbol_escape}
-                org.apache.isis.objectstore.jdo.applib.service.background.BackgroundCommandServiceJdoContributions,${symbol_escape}
-                ${symbol_escape}
-                ${symbol_pound} isis-module-audit-jdo services, ${symbol_escape}
-                org.apache.isis.objectstore.jdo.applib.service.audit.AuditingServiceJdoContributions,${symbol_escape}
-                ${symbol_escape}
-                ${symbol_pound} isis-module-publishing-jdo services, ${symbol_escape}
-                org.apache.isis.objectstore.jdo.applib.service.publish.PublishingServiceJdoContributions,${symbol_escape}
-                ${symbol_escape}
-                ${symbol_pound} JDO implementation of the two SettingsServices, ${symbol_escape}
-                ${symbol_pound} org.apache.isis.objectstore.jdo.applib.service.settings.ApplicationSettingsServiceJdo,${symbol_escape}
-                ${symbol_pound} org.apache.isis.objectstore.jdo.applib.service.settings.UserSettingsServiceJdo,${symbol_escape}
-                ${symbol_escape}
-                ${symbol_pound} Core (example) implementations of auditing and publishing services, ${symbol_escape}
-                ${symbol_pound} org.apache.isis.applib.services.audit.AuditingService3${symbol_dollar}Stderr,${symbol_escape}
-                ${symbol_pound} org.apache.isis.applib.services.publish.PublishingService${symbol_dollar}Stderr,${symbol_escape}
-                ${symbol_pound}
+                ${symbol_pound},${symbol_escape}
+                1:webapp.CustomMementoService,${symbol_escape}
+                1:webapp.CustomRepresentationService
 
 
 ${symbol_pound} Specify the (optional) test fixtures
@@ -197,7 +161,6 @@ ${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}
-${symbol_pound}isis.fixtures.prefix= 
 isis.fixtures=fixture.todo.scenarios.RecreateToDoItemsForSven
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/persistor.properties
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/persistor.properties b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/persistor.properties
index fe47df4..3f40b94 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/persistor.properties
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/persistor.properties
@@ -19,10 +19,28 @@ ${symbol_pound}  specific language governing permissions and limitations
 ${symbol_pound}  under the License.
 
 
-${symbol_pound} for emergency use only
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} Persistor
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+
+
+${symbol_pound} generally speaking this should not be enabled
 isis.persistor.disableConcurrencyChecking=false
 
 
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} JDBC configuration
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+
+
 ${symbol_pound}
 ${symbol_pound} configuration file holding the JDO objectstore's JDBC configuration
 ${symbol_pound} (this is a bit of a hack... just exploiting fact that Isis also loads this file)

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
index cf63b1b..b979a9d 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
@@ -48,6 +48,7 @@ isis.persistor.datanucleus.impl.datanucleus.validateConstraints=true
 
 ${symbol_pound}
 ${symbol_pound} Require explicit persistence (since entities are Comparable and using ObjectContracts${symbol_pound}compareTo).
+${symbol_pound} see http://www.datanucleus.org/products/accessplatform_3_0/jdo/transaction_types.html
 ${symbol_pound}
 isis.persistor.datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit=false
 
@@ -59,12 +60,14 @@ ${symbol_pound}
 isis.persistor.datanucleus.impl.datanucleus.identifier.case=PreserveCase
 
 
-${symbol_pound} L2 cache (on by default)
+${symbol_pound}
+${symbol_pound} L2 cache
+${symbol_pound} off except if explicitly marked as cacheable
+${symbol_pound} http://www.datanucleus.org/products/datanucleus/jdo/cache.html
+${symbol_pound}
 isis.persistor.datanucleus.impl.datanucleus.cache.level2.type=none
 isis.persistor.datanucleus.impl.datanucleus.cache.level2.mode=ENABLE_SELECTIVE
 
-${symbol_pound}see http://www.datanucleus.org/products/datanucleus/jdo/transaction_types.html${symbol_pound}optimistic
-isis.persistor.datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit=false
 
 
 ${symbol_pound}

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/shiro.ini
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/shiro.ini b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/shiro.ini
index 8c5f7d3..07ea04f 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/shiro.ini
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/shiro.ini
@@ -28,8 +28,6 @@
 realm1 = org.apache.shiro.realm.text.IniRealm
 realm1.resourcePath=classpath:webapp/realm1.ini
 
-realm2 = org.apache.shiro.realm.text.IniRealm
-realm2.resourcePath=classpath:webapp/realm2.ini
 
 
 
@@ -69,8 +67,8 @@ ldapRealm.resourcePath=classpath:webapp/realm1.ini
 # configure security manager to use realm(s)
 #######
 
-# authenticate/authorize first with realm1, then realm2
-securityManager.realms = $realm1,$realm2
+# authenticate/authorize using realm1
+securityManager.realms = $realm1
 
 
 # or to use ldap with realm1 as a backup...

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
index f02c809..9e4fb9d 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
@@ -50,6 +50,14 @@ ${symbol_pound} not stripped otherwise (Isis' PROTOTYPE mode == Wicket's DEVELOP
 ${symbol_pound} isis.viewer.wicket.stripWicketTags=false
 
 ${symbol_pound}isis.viewer.wicket.suppressRememberMe=true
+
+${symbol_pound}
+${symbol_pound} if user attempts to access a protected URL before signing in, then as a convenience the viewer will continue
+${symbol_pound} through to that destination after successful login.  If you consider this to be a security risk then this flag
+${symbol_pound} disables that behaviour.
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.clearOriginalDestination=true
+
 ${symbol_pound}isis.viewer.wicket.disableModalDialogs=true
 
 ${symbol_pound}isis.viewer.wicket.bookmarkedPages.maxSize=15

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/web.xml b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/web.xml
index d31ea09..be328e1 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/web.xml
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/web.xml
@@ -24,7 +24,7 @@
     xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
-    <display-name>Quickstart Wicket/RestfulObjects app</display-name>
+    <display-name>Todo app</display-name>
 
     <welcome-file-list>
         <welcome-file>about/index.html</welcome-file>
@@ -308,23 +308,4 @@
      -->
 
 
-    <servlet>
-         <servlet-name>QuartzInitializer</servlet-name>
-         <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
-         <init-param>
-             <param-name>config-file</param-name>
-             <param-value>webapp/scheduler/quartz.properties</param-value>
-         </init-param>
-         <init-param>
-             <param-name>shutdown-on-unload</param-name>
-             <param-value>true</param-value>
-         </init-param>
-         <init-param>
-             <param-name>start-scheduler-on-load</param-name>
-             <param-value>true</param-value>
-         </init-param>
-         <load-on-startup>1</load-on-startup>
-     </servlet>
-
-
 </web-app>

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/about/index.html
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/about/index.html b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/about/index.html
index 1200900..2a425e5 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/about/index.html
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/about/index.html
@@ -131,7 +131,7 @@ ${symbol_pound}wrapper {
               </li>
               <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/todo%61pp/webapp/src/main/webapp/WEB-INF/web.xml" target="_blank">WEB-INF/web.xml</a></tt> (in <tt>webapp</tt> module)
                 <ul>
-                  <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/todo%61pp/webapp/src/main/webapp/WEB-INF/web.xml${symbol_pound}L98" target="_blank">ResourceCachingFilter</a></tt> and <tt><a href="https://github.com/apache/isis/blob/master/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/web.xml${symbol_pound}L134" target="_blank">ResourceServlet</a></tt> - filter and servlet for serving up static resources.
+                  <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/todo%61pp/webapp/src/main/webapp/WEB-INF/web.xml${symbol_pound}L98" target="_blank">ResourceCachingFilter</a></tt> and <tt><a href="https://github.com/apache/isis/blob/master/example/application/todo%61pp/webapp/src/main/webapp/WEB-INF/web.xml${symbol_pound}L134" target="_blank">ResourceServlet</a></tt> - filter and servlet for serving up static resources.
                   </li>
                   <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/todo%61pp/webapp/src/main/webapp/WEB-INF/web.xml${symbol_pound}L174" target="_blank">WicketFilter</a></tt> - filter for the wicket application, mapped to <tt>/wicket/*</tt>
                   </li>
@@ -145,24 +145,24 @@ ${symbol_pound}wrapper {
               </li>
               <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/todo%61pp/webapp/src/main/webapp/WEB-INF/isis.properties" target="_blank">WEB-INF/isis.properties</a></tt> (in <tt>webapp</tt> module)
                 <ul>
-                  <li><tt>isis.services</tt> - specifies the two domain services described above (<tt>ToDoItems</tt> and <tt>ToDoItemsFixtureService</tt>), appearing on the menu bar in the Wicket viewer, 
-                  along with a number of hidden framework-provided domain services demonstrating Isis' support for publishing, auditing and customizable error handling 
+                  <li><tt>isis.services</tt> - explicitly loaded framework-provide domain services.  Other services (including <tt>ToDoItems</tt> and <tt>ToDoItemsFixtureService</tt> described above),
+                      are loaded automatically from the classpath.
                   </li>
-                  <li><tt>isis.persistor</tt> - specifies to use the JDO object store
+                  <li><tt>isis.persistor</tt> - specifies to use Isis' integration with <a href="http://datanucleus.org">DataNucleus</a> for (JDO-based) persistence.
                   </li>
-                  <li><tt>isis.authentication</tt> and <tt>isis.authorization</tt> - security mechanism to use (<tt>bypass</tt> effectively disables) 
+                  <li><tt>isis.authentication</tt> and <tt>isis.authorization</tt> - specifies to use Isis' integration with <a href="http://shiro.apache.org">Apache Shiro</a> for security.
                   </li>
                 </ul>
               </li>
               <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/todo%61pp/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties" target="_blank">WEB-INF/persistor_datanucleus.properties</a></tt> (in <tt>webapp</tt> module)
                 <ul>
-                  <li>configuration for JDO object store 
+                  <li>configuration for the DataNucleus (JDO) object store
                   </li>
                 </ul>
               </li>
               <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/todo%61pp/webapp/src/main/webapp/WEB-INF/persistor.properties" target="_blank">WEB-INF/persistor.properties</a></tt> (in <tt>webapp</tt> module)
                 <ul>
-                  <li>JDBC URL for JDO object store 
+                  <li>JDBC URL for DataNucleus (JDO) object store
                   </li>
                 </ul>
               </li>

http://git-wip-us.apache.org/repos/asf/isis/blob/ec94051e/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 10828aa..d48dc88 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 Jul 25 08:24:30 BST 2014
+#Mon Oct 13 23:45:24 BST 2014
 package=it.pkg
 version=0.1-SNAPSHOT
 groupId=archetype.it