You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2013/01/04 09:10:35 UTC

[3/22] ISIS-293: updating quickstart_wrj archetype

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/app.css
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/app.css b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/app.css
deleted file mode 100644
index eaeea17..0000000
--- a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/app.css
+++ /dev/null
@@ -1,18 +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.
- */

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/app.js
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/app.js b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/app.js
deleted file mode 100644
index 5f2c500..0000000
--- a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/app.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var util    = namespace('org.apache.isis.viewer.json.jqmobile.util');
-var generic = namespace('org.apache.isis.viewer.json.jqmobile.generic');
-
-$(function() {
-  $("#settings-theme input").click(function(e) {
-    
-    var theme = e.currentTarget.value;
-    $("div[data-role='page']").each( function() {
-      $(this).attr("data-theme", e);
-      // TODO: how refresh?
-    });
-  });
-
-  $(document).bind("pagebeforechange", generic.submitRenderAndNavigate);
-
-  // if user manually refreshes page for domain object, then re-retrieve
-  var locationHref = location.href;
-  if(locationHref.indexOf("genericDomainObjectView") != -1) {
-    var urlHref = generic.extract(locationHref);
-    generic.submitAndRender(urlHref, "pop");
-  } else {
-    $.mobile.changePage($("#home"))
-  }
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/generic.js
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/generic.js b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/generic.js
deleted file mode 100644
index 71b38d8..0000000
--- a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/generic.js
+++ /dev/null
@@ -1,226 +0,0 @@
-var util = namespace('org.apache.isis.viewer.json.jqmobile.util');
-var generic = namespace('org.apache.isis.viewer.json.jqmobile.generic');
-
-generic.itemLinks = function(jsonItems) { 
-  var items = $.map(jsonItems, function(value, i) {
-    return {
-      "hrefUrlEncoded" : util.urlencode(value.href),
-      "title" : value.title,
-      "href" : value.href
-    }
-  })
-  return items
-}
-
-generic.extract = function(urlHref) {
-  // does it match: foobar.html?dataUrl=xxx; if so, then return xxx
-  var matches = /.*?dataUrl=(.*)/.exec(urlHref)
-  var url = matches && matches[1]
-  if(url) {
-    return util.urldecode(url)
-  }
-  // does it simply match foobar.html; if so, then return null
-  if ( /.*\.html$/.test(urlHref)) {
-    return null
-  }
-  // simply return the URL, assuming it is the data url we need to get.
-  return urlHref
-}
-
-generic.returnTypeFor = function(memberItem) {
-  var detailsJson = util.grepAndFollowLink(memberItem.links, "details")
-  if (!detailsJson) {
-    return null;
-  }
-  var describedByJson = util.grepAndFollowLink(detailsJson.links, "describedby")
-  if (!describedByJson) {
-    return null;
-  }
-  var returnTypeLink = util.grepLink(describedByJson.links, "returntype")
-  return returnTypeLink? returnTypeLink.href : null;
-}
-
-generic.dataTypeFor = function(memberItem) {
-  var returnType = generic.returnTypeFor(memberItem);
-  if(returnType.endsWith("boolean")) return "boolean"
-  return "string"
-}
-
-generic.pageAndOptions = function(page, view, dataUrl, transition) {
-  var pageAndOptions = {
-      "page": page,
-      "options": { 
-         "dataUrl": "#" + view + "?dataUrl=" + util.urlencode(dataUrl),
-         "allowSamePageTransition": true,
-         "transition": transition
-       }
-    }
-  return pageAndOptions
-}
-
-generic.handleDomainObjectRepresentation = function(urlHref, pageChangeData, json, xhr) {
-  
-  var page = $("#genericDomainObjectView");
-  var header = page.children(":jqmData(role=header)");
-  var content = page.children(":jqmData(role=content)");
-  
-  header.find("h1").html(json.title);
-
-  // value properties
-  var valueProperties = json.members.filter(function(item) {
-    return item.memberType === "property" && item.value && !item.value.href;
-  });
-  
-  valueProperties = $.map( valueProperties, function(value, i) {
-    var dataType = generic.dataTypeFor(value)
-    return {
-      "id": value.id,
-      "value": value.value,
-      "dataTypeIsString": dataType === "string",
-      "dataTypeIsBoolean": dataType === "boolean"
-    }
-  } );
-
-  var valuePropertiesDiv = page.children(":jqmData(role=content)").find(".valueProperties");
-  var valuePropertiesTemplateDiv = page.children(".valueProperties-tmpl");
-  util.applyTemplateDiv(valueProperties, valuePropertiesDiv, valuePropertiesTemplateDiv);
-
-  
-  // reference properties
-  var referenceProperties = json.members.filter(function(item) {
-    return item.memberType === "property" && item.value && item.value.href;
-  });
-  var referencePropertiesList = page.children(":jqmData(role=content)").find(".referenceProperties");
-  var referencePropertiesTemplateDiv = page.children(".referenceProperties-tmpl");
-  util.applyTemplateDiv(referenceProperties, referencePropertiesList, referencePropertiesTemplateDiv);
-
-  var collections = json.members.filter(function(item) {
-    return item.memberType === "collection";
-  }).map(function(value, i) {
-    var href = util.grepLink(value.links, "details").href
-    return {
-      "hrefUrlEncoded" : util.urlencode(value.links[0].href),
-      "id" : value.id,
-      "href" : value.links[0].href
-    }
-  });
-
-  // collections
-  var collectionsList = page.children(":jqmData(role=content)").find(".collections");
-  var collectionsTemplateDiv = page.children(".collections-tmpl");
-  util.applyTemplateDiv(collections, collectionsList, collectionsTemplateDiv);
-
-  page.page();
-  content.find( ":jqmData(role=listview)" ).listview("refresh");
-  page.trigger("create");
-
-  return generic.pageAndOptions(page, "genericDomainObjectView", urlHref)
-} 
-
-
-generic.handleListRepresentation = function(urlHref, pageChangeData, json, xhr) {
-  
-  var page = $("#genericListView");
-  var header = page.children(":jqmData(role=header)");
-  var content = page.children(":jqmData(role=content)");
-
-  var items = generic.itemLinks(json.value)
-
-  header.find("h1").html("Objects");
-
-  var div = page.find("ul");
-  var templateDiv = page.find(".tmpl");
-  
-  util.applyTemplateDiv(items, div, templateDiv);
-
-  page.page();
-  content.find( ":jqmData(role=listview)" ).listview("refresh");
-  page.trigger("create");
-
-  return generic.pageAndOptions(page, "genericListView", urlHref)
-}
-
-generic.handleObjectCollectionRepresentation = function(urlHref, pageChangeData, json, xhr) {
-  
-  var page = $("#genericObjectCollectionView");
-  var header = page.children(":jqmData(role=header)");
-  var content = page.children(":jqmData(role=content)");
-
-  var items = generic.itemLinks(json.value)
-
-  var parentTitle = util.grepLink(json.links, "up").title
-  
-  var collectionId = json.id;
-  header.find("h1").html(collectionId + " for " + parentTitle);
-
-  var div = page.find("ul");
-  var templateDiv = page.find(".tmpl");
-  util.applyTemplateDiv(items, div, templateDiv);
-
-  page.page();
-  content.find( ":jqmData(role=listview)" ).listview("refresh");
-  page.trigger("create");
-
-  return generic.pageAndOptions(page, "genericObjectCollectionView", urlHref, "slideup")
-}
-
-
-generic.actionResultHandlers = {
-    "object": generic.handleDomainObjectRepresentation,
-    "list": generic.handleListRepresentation
-}
-
-generic.handleActionResultRepresentation = function(urlHref, pageChangeData, json, xhr) {
-  var resultType = json.resulttype
-  var handler = generic.actionResultHandlers[resultType];
-  if(!handler) {
-    alert("unable to handle result type")
-    return;
-  } 
-  return handler(urlHref, pageChangeData, json.result, xhr)
-}
-
-generic.handlers = {
-    "application/json;profile=\"urn:org.restfulobjects/domainobject\"": generic.handleDomainObjectRepresentation,
-    "application/json; profile=\"urn:org.restfulobjects/domainobject\"": generic.handleDomainObjectRepresentation,
-    "application/json;profile=\"urn:org.restfulobjects/list\"": generic.handleListRepresentation,
-    "application/json; profile=\"urn:org.restfulobjects/list\"": generic.handleListRepresentation,
-    "application/json;profile=\"urn:org.restfulobjects/objectcollection\"": generic.handleObjectCollectionRepresentation,
-    "application/json; profile=\"urn:org.restfulobjects/objectcollection\"": generic.handleObjectCollectionRepresentation,
-    "application/json;profile=\"urn:org.restfulobjects/actionresult\"": generic.handleActionResultRepresentation,
-    "application/json; profile=\"urn:org.restfulobjects/actionresult\"": generic.handleActionResultRepresentation
-}
-
-generic.submitAndRender = function(urlHref, pageChangeData) {
-  $.ajax({
-    url : urlHref,
-    dataType : 'json',
-    success : function(json, str, xhr) {
-      var contentType = xhr.getResponseHeader("Content-Type");
-      var handler = generic.handlers[contentType];
-      if(!handler) {
-        alert("unable to handle response")
-        return;
-      } 
-      var pageAndOptions = handler(urlHref, pageChangeData, json, xhr)
-
-      $.mobile.changePage(pageAndOptions.page, pageAndOptions.options);
-    }
-  })
-}
-
-generic.submitRenderAndNavigate = function(e, pageChangeData) {
-  if (typeof pageChangeData.toPage !== "string") {
-    return;
-  }
-
-  var url = $.mobile.path.parseUrl(pageChangeData.toPage)
-  var urlHref = generic.extract(url.href)
-  if(!urlHref) {
-    return;
-  }
-
-  generic.submitAndRender(urlHref, pageChangeData);
-  e.preventDefault();
-}
-

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/index.html
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/index.html b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/index.html
deleted file mode 100644
index c72b645..0000000
--- a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/index.html
+++ /dev/null
@@ -1,205 +0,0 @@
-#set( $symbol_pound = '#' )
-#set( $symbol_dollar = '$' )
-#set( $symbol_escape = '\' )
-<!DOCTYPE html>
-<html>
-
-<head>
-<meta charset="utf-8">
-<meta name="viewport" content="initial-scale=1, width=device-width, target-densitydpi=device-dpi"/>
-
-<title>Apache Isis Online Demo</title>
-
-<link rel="stylesheet" href="../jquery.mobile/jquery.mobile-1.0.css" />
-
-<script src="../jquery/jquery-1.6.4.js"></script>
-<script src="../jquery.mobile/jquery.mobile-1.0.js"></script>
-<script src="../jquery.tmpl/jquery.tmpl-vBeta1.0.0.js"></script>
-
-<link rel="stylesheet" type="text/css" href="app.css" />
-
-<script type="text/javascript" src="namespace.js"></script>
-<script type="text/javascript" src="util.js"></script>
-<script type="text/javascript" src="generic.js"></script>
-<script type="text/javascript" src="app.js"></script>
-</head>
-
-<body id="pageHolder">
-	<div data-role="page" id="home">
-
-		<div data-role="header">
-			<h1>Home</h1>
-		</div>
-
-		<div data-role="content">
-            <br/>
-            <button>Tasks</button>
-            <ul data-role="listview" class="tasks"></ul>
-		</div>
-
-        <script class="tmpl" type="text/x-jquery-tmpl">
-            <li>
-                <a href="${symbol_dollar}{href}">${symbol_dollar}{title}</a>
-            </li>
-        </script>
-        
-        <script type="text/javascript">
-            ${symbol_dollar}("${symbol_pound}home button").click(function(){
-                ${symbol_dollar}.mobile.changePage("../services/toDoItems/actions/notYetDone/invoke", "pop")
-            });
-        </script>
-
-        <div data-role="footer" data-id="global-footer" data-position="fixed">
-            <a href="../index.html"  rel="external">home</a>&nbsp;|&nbsp;<a href="../services" rel="external">rest</a>&nbsp;|&nbsp;<a href="../logon.htmlviewer" rel="external">html</a>&nbsp;|&nbsp;<a href="../index.shtml" rel="external">scimpi</a>
-        </div>
-	</div>
-
-    <div data-role="page" id="genericListView">
-
-        <div data-role="header">
-            <a data-icon="back" data-rel="back">Back</a>
-            <h1>List</h1>
-        </div>
-
-        <div data-role="content">
-            <br/>
-            <ul data-filter="true" data-role="listview"></ul>
-        </div>
-
-        <script class="tmpl" type="text/x-jquery-tmpl">
-            <li>
-                <a href="${symbol_dollar}{href}">${symbol_dollar}{title}</a>
-            </li>
-        </script>
-
-        <div data-role="footer" data-id="global-footer" data-position="fixed">
-            <a href="../index.html"  rel="external">home</a>&nbsp;|&nbsp;<a href="../services" rel="external">rest</a>&nbsp;|&nbsp;<a href="../logon.htmlviewer" rel="external">html</a>&nbsp;|&nbsp;<a href="../index.shtml" rel="external">scimpi</a>
-        </div>
-    </div>
-
-    <div data-role="page" id="genericObjectCollectionView">
-
-        <div data-role="header">
-            <a data-icon="back" data-rel="back">Back</a>
-            <h1>Collection</h1>
-        </div>
-
-        <div data-role="content">
-            <br/>
-            <ul data-filter="true" data-role="listview"></ul>
-        </div>
-
-        <script class="tmpl" type="text/x-jquery-tmpl">
-            <li>
-                <a href="${symbol_dollar}{href}">${symbol_dollar}{title}</a>
-            </li>
-        </script>
-
-        <div data-role="footer" data-id="global-footer" data-position="fixed">
-            <a href="../index.html"  rel="external">home</a>&nbsp;|&nbsp;<a href="../services" rel="external">rest</a>&nbsp;|&nbsp;<a href="../logon.htmlviewer" rel="external">html</a>&nbsp;|&nbsp;<a href="../index.shtml" rel="external">scimpi</a>
-        </div>
-    </div>
-
-    <div data-role="page" id="genericDomainObjectView">
-
-        <div data-role="header">
-            <a data-icon="back" data-rel="back">Back</a>
-            <h1>Object</h1>
-        </div>
-
-        <div data-role="content">
-            <div class="valueProperties"></div>
-            <br/>
-            <p>References</p>
-            <ul data-role="listview" data-inset="true" class="referenceProperties"></ul>
-            <br/>
-            <p>Collections</p>
-            <ul data-role="listview" data-inset="true" class="collections"></ul>
-        </div>
-
-        <script class="valueProperties-tmpl" type="text/x-jquery-tmpl">
-            {{if dataTypeIsString}}
-                <label for="${symbol_dollar}{id}">${symbol_dollar}{id}:</label>
-                <input type="text"
-                    name="${symbol_dollar}{id}" id="${symbol_dollar}{id}" value="${symbol_dollar}{value}" placeholder="${symbol_dollar}{id}"
-                    class="required"/>
-            {{/if}}
-            {{if dataTypeIsBoolean}}
-                <div data-role="fieldcontain">
-                    <fieldset data-role="controlgroup">
-                        <legend>${symbol_dollar}{id}?</legend>
-                        <input type="checkbox" 
-                            name="${symbol_dollar}{id}" id="${symbol_dollar}{id}" value="${symbol_dollar}{value}"
-                            class="required"/>
-                        <label for="${symbol_dollar}{id}">${symbol_dollar}{id}</label>
-                    </fieldset>
-                </div>
-            {{/if}}
-         </script>
-
-        <script class="referenceProperties-tmpl" type="text/x-jquery-tmpl">
-            <li>
-                <a data-transition="slide" href="${symbol_dollar}{value.href}">
-                    <p>${symbol_dollar}{id}</p>
-                    <p><b>${symbol_dollar}{value.title}</b></p>
-                </a>
-            </li>
-         </script>
-
-        <script class="collections-tmpl" type="text/x-jquery-tmpl">
-            <li>
-                <a data-transition="slideup" href="${symbol_dollar}{href}">${symbol_dollar}{id}</a>
-            </li>
-         </script>
-
-        <div data-role="footer" data-id="global-footer" data-position="fixed">
-            <a href="../index.html"  rel="external">home</a>&nbsp;|&nbsp;<a href="../services" rel="external">rest</a>&nbsp;|&nbsp;<a href="../logon.htmlviewer" rel="external">html</a>&nbsp;|&nbsp;<a href="../index.shtml" rel="external">scimpi</a>
-        </div>
-    </div>
-
-	<div data-role="page" id="settings" data-add-back-btn="true">
-
-		<div data-role="header">
-			<h1>Settings</h1>
-		</div>
-
-		<div data-role="content">
-            
-            <fieldset id="settings-theme">
-                <legend>Theme:</legend>
-                    <input type="radio" name="settings-theme" id="settings-theme-a" value="a" checked="checked" />
-                    <label for="settings-theme-a">Dark</label>
-        
-                    <input type="radio" name="settings-theme" id="settings-theme-b" value="b"/>
-                    <label for="settings-theme-b">Blue</label>
-        
-                    <input type="radio" name="settings-theme" id="settings-theme-c" value="c"/>
-                    <label for="settings-theme-c">Grey</label>
-        
-                    <input type="radio" name="settings-theme" id="settings-theme-d" value="d"/>
-                    <label for="settings-theme-d">White</label>
-        
-                    <input type="radio" name="settings-theme" id="settings-theme-e" value="e"/>
-                    <label for="settings-theme-e">Yellow</label>
-            </fieldset>
-
-        </div>
-        
-        <script type="text/javascript">
-            ${symbol_dollar}("${symbol_pound}settings input").change(function(e){
-                var theme = ${symbol_dollar}(this).attr("value");
-                ${symbol_dollar}("div").filter( function() {
-                    var divDataRole = ${symbol_dollar}(this).attr("data-role")
-                    var isPage = (divDataRole === "page"); 
-                    return isPage;
-                }).attr("data-theme", theme);
-            });
-        </script>
-
-        <div data-role="footer" data-id="global-footer" data-position="fixed">
-            <a href="../index.html"  rel="external">home</a>&nbsp;|&nbsp;<a href="../services" rel="external">rest</a>&nbsp;|&nbsp;<a href="../logon.htmlviewer" rel="external">html</a>&nbsp;|&nbsp;<a href="../index.shtml" rel="external">scimpi</a>
-        </div>
-	</div>
-
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/namespace.js
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/namespace.js b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/namespace.js
deleted file mode 100644
index 7da5ff2..0000000
--- a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/namespace.js
+++ /dev/null
@@ -1,13 +0,0 @@
-namespace = function(namespaceString) {
-    var parts = namespaceString.split('.'),
-        parent = window,
-        currentPart = '';    
-
-    for(var i = 0, length = parts.length; i < length; i++) {
-        currentPart = parts[i];
-        parent[currentPart] = parent[currentPart] || {};
-        parent = parent[currentPart];
-    }
-
-    return parent;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/util.js
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/util.js b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/util.js
deleted file mode 100644
index fe17a03..0000000
--- a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-restfulobjects/src/main/webapp/mobile/util.js
+++ /dev/null
@@ -1,94 +0,0 @@
-String.prototype.endsWith = function(pattern) {
-    var d = this.length - pattern.length;
-    return d >= 0 && this.lastIndexOf(pattern) === d;
-};
-
-
-var util = namespace('org.apache.isis.viewer.json.jqmobile.util');
-
-util.findPage = function(selector) {
-  var page = $("#pageHolder").find(selector);
-  if(page[0]) {
-    return page[0];
-  }
-  return null
-}
-
-util.removePage = function(id) {
-  var page = util.findPage(id)
-  if(page) {
-    page.remove();
-  }
-}
-
-util.cloneAndInsertPage = function(sourceId, targetId) {
-  var page = $("#"+sourceId).clone().attr("id", targetId);
-  page.appendTo("#pageHolder");
-  return page
-}
-
-util.grepLink = function(links, relStr) {
-  return $.grep(links, function(v) { return v.rel === relStr } )[0]
-}
-
-util.followLink = function(link) {
-  var response = {};
-  $.ajax({
-    url : link.href,
-    dataType : 'json',
-    async: false,
-    success : function(json, str, xhr) {
-      response = { 
-          "json": json,
-          "str": str,
-          "xhr": xhr
-      }
-    }
-  })
-  return response;
-}
-
-util.grepAndFollowLink = function(links, rel) {
-  var link = util.grepLink(links, rel)
-  if (!link) { return null; }
-  var response = util.followLink(link);
-  if (!response) { return null; }
-  return response.json;
-}
-
-util.queryParamsFor = function (href) {
-    var vars = [], hash;
-    var hashes = href.slice(href.indexOf('?') + 1).split('&');
-    for(var i = 0; i < hashes.length; i++)
-    {
-        hash = hashes[i].split('=');
-        vars.push(hash[0]);
-        vars[hash[0]] = urldecode(hash[1]);
-    }
-    return vars;
-}
-
-// from http://phpjs.org/functions/urlencode:573
-util.urlencode = function(str) {
-    str = (str + '').toString();
-    return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
-}
-
-// from http://phpjs.org/functions/urldecode:572
-util.urldecode = function(str) {
-	return decodeURIComponent((str + '').replace(/\+/g, '%20'));
-}
-
-util.applyTemplate = function(data, selector, templateSelector) {
-    $(selector).empty();
-    $(templateSelector)
-        .tmpl(data)
-        .appendTo(selector);
-}
-
-util.applyTemplateDiv = function(data, div, templateDiv) {
-  div.empty();
-  templateDiv
-      .tmpl(data)
-      .appendTo(div);
-}
\ No newline at end of file

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

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

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/pom.xml b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/pom.xml
new file mode 100644
index 0000000..4a3f52e
--- /dev/null
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/pom.xml
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+         http://www.apache.org/licenses/LICENSE-2.0
+         
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>${groupId}</groupId>
+        <artifactId>${rootArtifactId}</artifactId>
+        <version>${version}</version>
+    </parent>
+
+	<artifactId>${artifactId}</artifactId>
+	<name>Quickstart Wicket/Restful/JDO Webapp</name>
+
+	<description>This module runs both the Wicket viewer and the Restfulobjects viewer in a single webapp configured to run using the datanucleus object store.</description>
+
+	<packaging>war</packaging>
+
+	<properties>
+        <siteBaseDir>..</siteBaseDir>
+	</properties>
+    
+	<build>
+		<plugins>
+            <plugin>
+                <groupId>org.mortbay.jetty</groupId>
+                <artifactId>maven-jetty-plugin</artifactId>
+            </plugin>
+
+            <!-- mvn package -->
+            <plugin>
+                <groupId>org.simplericity.jettyconsole</groupId>
+                <artifactId>jetty-console-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>createconsole</goal>
+                        </goals>
+                        <configuration>
+                            <backgroundImage>${basedir}/src/main/jettyconsole/isis-banner.png</backgroundImage>
+                        </configuration>
+                        <phase>package</phase>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <!-- prereqs: mvn package -->
+            <!-- mvn antrun:run -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+                <configuration>
+                    <tasks>
+                        <exec executable="java" failonerror="true">
+                            <arg value="-jar" />
+                            <arg value="${project.build.directory}/${project.build.finalName}-jetty-console.war" />
+                        </exec>
+                    </tasks>
+                </configuration>
+            </plugin>
+
+		</plugins>
+	</build>
+
+	<dependencies>
+	
+        <!-- other modules in this project -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>${rootArtifactId}-dom</artifactId>
+        </dependency>
+        
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>${rootArtifactId}-fixture</artifactId>
+        </dependency>
+
+
+        <!-- objectstore/domain service/repository implementations -->
+        
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>${rootArtifactId}-objstore-jdo</artifactId>
+        </dependency>
+        
+        
+        
+
+        <!-- isis viewers -->
+		<dependency>
+			<groupId>org.apache.isis.viewer</groupId>
+			<artifactId>isis-viewer-wicket-impl</artifactId>
+		</dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.viewer</groupId>
+            <artifactId>isis-viewer-restfulobjects-impl</artifactId>
+        </dependency>
+
+
+
+
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-metamodel</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-runtime</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-bytecode-cglib</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-objectstore</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-profilestore</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-security</artifactId>
+        </dependency>
+        <!-- 
+        <dependency>
+            <groupId>org.apache.isis.security</groupId>
+            <artifactId>isis-security-file</artifactId>
+        </dependency>
+         -->
+        
+        <!-- to run using WebServer (optional) -->
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-webserver</artifactId>
+            <scope>runtime</scope>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-servlet_2.5_spec</artifactId>
+        </dependency>
+
+
+		<!-- 
+		  JDBC drivers 
+		  (if using jdo or sql object store)
+		  -->
+
+        <dependency>
+            <groupId>org.hsqldb</groupId>
+            <artifactId>hsqldb</artifactId>
+        </dependency>
+
+		<!-- 
+		<dependency>
+			<groupId>com.microsoft.sqlserver</groupId>
+			<artifactId>jdbc</artifactId>
+			<version>4.0</version>
+			<scope>system</scope>
+			<optional>true</optional>
+			<systemPath>${basedir}/lib/sqljdbc4.jar</systemPath>
+		</dependency>
+		-->	
+
+		<dependency>
+		  <groupId>org.lazyluke</groupId>
+		  <artifactId>log4jdbc-remix</artifactId>
+		  <version>0.2.7</version>
+		</dependency>
+
+	</dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/java/app/AboutPageFilter.java
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/java/app/AboutPageFilter.java b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/java/app/AboutPageFilter.java
new file mode 100644
index 0000000..4b7162d
--- /dev/null
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/java/app/AboutPageFilter.java
@@ -0,0 +1,38 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package app;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+
+public class AboutPageFilter implements Filter {
+
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {
+    }
+
+    @Override
+    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
+        String acceptHeader = httpServletRequest.getHeader("Accept");
+        String requestURI = httpServletRequest.getRequestURI();
+        if(requestURI.equals("/") && acceptHeader.contains("text/html")) {
+            request.getRequestDispatcher("/about/index.html").forward(request, response);
+        } else {
+            chain.doFilter(request, response);
+        }
+    }
+
+    @Override
+    public void destroy() {
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/java/app/ComponentFactoryRegistrarForQuickStart.java
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/java/app/ComponentFactoryRegistrarForQuickStart.java b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/java/app/ComponentFactoryRegistrarForQuickStart.java
new file mode 100644
index 0000000..bc7227c
--- /dev/null
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/java/app/ComponentFactoryRegistrarForQuickStart.java
@@ -0,0 +1,18 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package app;
+
+import com.google.inject.Singleton;
+
+import org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistrarDefault;
+
+@Singleton
+public class ComponentFactoryRegistrarForQuickStart extends ComponentFactoryRegistrarDefault {
+
+    @Override
+    public void addComponentFactories(ComponentFactoryList componentFactories) {
+        super.addComponentFactories(componentFactories);
+        // currently no replacements
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/java/app/QuickStartApplication.java
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/java/app/QuickStartApplication.java b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/java/app/QuickStartApplication.java
new file mode 100644
index 0000000..5d60a58
--- /dev/null
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/java/app/QuickStartApplication.java
@@ -0,0 +1,74 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package app;
+
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.util.List;
+import java.util.ResourceBundle;
+
+import com.google.common.base.Joiner;
+import com.google.common.io.Resources;
+import com.google.inject.AbstractModule;
+import com.google.inject.Module;
+import com.google.inject.name.Names;
+import com.google.inject.util.Modules;
+
+import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistrar;
+import org.apache.isis.viewer.wicket.viewer.IsisWicketApplication;
+
+
+/**
+ * As specified in <tt>web.xml</tt>.
+ * 
+ * <p>
+ * See:
+ * <pre>
+ * &lt;filter>
+ *   &lt;filter-name>wicket&lt;/filter-name>
+ *    &lt;filter-class>org.apache.wicket.protocol.http.WicketFilter&lt;/filter-class>
+ *    &lt;init-param>
+ *      &lt;param-name>applicationClassName&lt;/param-name>
+ *      &lt;param-value>app.QuickStartApplication&lt;/param-value>
+ *    &lt;/init-param>
+ * &lt;/filter>
+ * </pre>
+ * 
+ */
+public class QuickStartApplication extends IsisWicketApplication {
+
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    protected Module newIsisWicketModule() {
+        final Module isisDefaults = super.newIsisWicketModule();
+        
+        final Module quickstartOverrides = new AbstractModule() {
+            @Override
+            protected void configure() {
+                bind(ComponentFactoryRegistrar.class).to(ComponentFactoryRegistrarForQuickStart.class);
+                
+                bind(String.class).annotatedWith(Names.named("applicationName")).toInstance("Quick Start App");
+                bind(String.class).annotatedWith(Names.named("applicationCss")).toInstance("css/application.css");
+                bind(String.class).annotatedWith(Names.named("applicationJs")).toInstance("scripts/application.js");
+                bind(String.class).annotatedWith(Names.named("welcomeMessage")).toInstance(readLines("welcome.html"));
+                bind(String.class).annotatedWith(Names.named("aboutMessage")).toInstance("QuickStart v1.0.0");
+            }
+
+        };
+
+        return Modules.override(isisDefaults).with(quickstartOverrides);
+    }
+
+    private static String readLines(final String resourceName) {
+        try {
+            List<String> readLines = Resources.readLines(Resources.getResource(QuickStartApplication.class, resourceName), Charset.defaultCharset());
+            final String aboutText = Joiner.on("${symbol_escape}n").join(readLines);
+            return aboutText;
+        } catch (IOException e) {
+            return "This is Quick Start";
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.pdn
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.pdn b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.pdn
new file mode 100644
index 0000000..1ce228c
Binary files /dev/null and b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.pdn differ

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.png
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.png b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.png
new file mode 100644
index 0000000..1f2811f
Binary files /dev/null and b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/resources/app/welcome.html
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/resources/app/welcome.html b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/resources/app/welcome.html
new file mode 100644
index 0000000..bd17e28
--- /dev/null
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/resources/app/welcome.html
@@ -0,0 +1,12 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<p class="intro">
+This is a <a href="https://github.com/apache/isis/blob/master/example/application/${parentArtifactId}/dom/src/main/java/dom/todo/ToDoItem.java"  target="_blank">single-class</a> domain application, configured to run with Isis' wicket viewer and the JDO/DataNucleus objectstore.
+</p>
+
+<br/>
+<br/>
+<p>
+For more details, see the <a href="http://isis.apache.org/documentation.html" target="_blank">Isis website</a>.
+</p>

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

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

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

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

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/isis.properties b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
new file mode 100644
index 0000000..141f2c7
--- /dev/null
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
@@ -0,0 +1,183 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+${symbol_pound}  Licensed to the Apache Software Foundation (ASF) under one
+${symbol_pound}  or more contributor license agreements.  See the NOTICE file
+${symbol_pound}  distributed with this work for additional information
+${symbol_pound}  regarding copyright ownership.  The ASF licenses this file
+${symbol_pound}  to you under the Apache License, Version 2.0 (the
+${symbol_pound}  "License"); you may not use this file except in compliance
+${symbol_pound}  with the License.  You may obtain a copy of the License at
+${symbol_pound}  
+${symbol_pound}         http://www.apache.org/licenses/LICENSE-2.0
+${symbol_pound}         
+${symbol_pound}  Unless required by applicable law or agreed to in writing,
+${symbol_pound}  software distributed under the License is distributed on an
+${symbol_pound}  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+${symbol_pound}  KIND, either express or implied.  See the License for the
+${symbol_pound}  specific language governing permissions and limitations
+${symbol_pound}  under the License.
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} specify system components.
+${symbol_pound}
+${symbol_pound} The values correspond to the named components in the installer-registry.properties file
+${symbol_pound} in the org.apache.isis.runtimes.dflt:runtime JAR (in the org.apache.isis.runtimes.dflt.runtime package)
+${symbol_pound}
+${symbol_pound} Although all configuration could reside in isis.properties, the recommendation is
+${symbol_pound} to split out into component specific files:
+${symbol_pound} 
+${symbol_pound}    xxx_yyy.properties files
+${symbol_pound}
+${symbol_pound} where
+${symbol_pound}    * xxx is the component type, and
+${symbol_pound}    * yyy is the component name.
+${symbol_pound}
+${symbol_pound} For example, persistor_sql.properties holds configuration information specific to the
+${symbol_pound}
+${symbol_pound}
+${symbol_pound} If the components are changed, also remember to edit pom.xml (further comments can be 
+${symbol_pound} found in the persistor_xxx.properties files)
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+${symbol_pound}
+${symbol_pound} configure the persistor (object store) to use
+${symbol_pound}
+${symbol_pound} * in-memory   requires no additional configuration, but stores object in-memory.
+${symbol_pound}               Only suitable for prototyping
+${symbol_pound} * datanucleus uses JDO DataNucleus to persist objects to relational database.
+${symbol_pound}               for objectstore-specific properties, see persistor_datanucleus.properties   
+${symbol_pound} * fileserver  uses a simple FileServer to persist objects as JSON documents.  It requires the fileserver component to be running
+${symbol_pound}               for objectstore-specific properties, see persistor_fileserver.properties 
+${symbol_pound} * mongodb     uses MongoDB to be persist objects as JSON documents.  It requires MongoDB to be installed and running
+${symbol_pound}               for objectstore-specific properties, see persistor_fileserver.properties  
+${symbol_pound} * sql         uses an RDBMS to persist objects as table rows.  
+${symbol_pound}               for objectstore-specific properties, see persistor_sql.properties
+${symbol_pound} * xml         uses the XML ObjectStore to be persist objects to a set of XML files.  Only suitable for prototyping.
+${symbol_pound}               for objectstore-specific properties, see persistor_xml.properties 
+${symbol_pound}
+${symbol_pound} NOTE:
+${symbol_pound} * if using non-naive implementations of services, edit isis.services (below) and 
+${symbol_pound} * if necessary, update the pom.xml to reference appropriate objstore-xxx module
+${symbol_pound} * for sql and datanucleus objectstores, update the pom.xml to reference appropriate JDBC driver
+${symbol_pound} 
+
+${symbol_pound}isis.persistor=in-memory
+isis.persistor=datanucleus
+${symbol_pound}isis.persistor=fileserver
+${symbol_pound}isis.persistor=mongodb
+${symbol_pound}isis.persistor=sql
+${symbol_pound}isis.persistor=xml
+
+
+
+
+${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} default is file in SERVER mode, none in SERVER_EXPLORATION.  Derived from wicket mode 
+isis.authentication=bypass
+
+
+${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}
+${symbol_pound} configure the user profile store to use.
+${symbol_pound} 
+${symbol_pound} the user profile store is supported by some viewers as a way to store 
+${symbol_pound} user-specific settings (eg colours, themes etc)
+${symbol_pound} 
+isis.user-profile-store=in-memory
+
+
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} MetaModel
+${symbol_pound}
+${symbol_pound} The metamodel typically does not require additional configuration, although
+${symbol_pound} the system components (defined above) may refine the metamodel for their needs.
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+
+${symbol_pound}
+${symbol_pound} additional programming model facets
+${symbol_pound}
+
+${symbol_pound}isis.reflector.facets.include=
+${symbol_pound}isis.reflector.facets.exclude=
+
+
+${symbol_pound}
+${symbol_pound} metamodel validator
+${symbol_pound}
+
+${symbol_pound}isis.reflector.validator=
+
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} Application Services and fixtures
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
 l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+${symbol_pound}
+${symbol_pound} Specify the domain services.
+${symbol_pound} 
+${symbol_pound} These are the most important configuration properties in the system, as they define
+${symbol_pound} the set of the classes for Isis to instantiate as domain service singletons.
+${symbol_pound} From these domain service instances the rest of the metamodel is discovered, while the 
+${symbol_pound} end-user gains access to other domain objects by invoking the actions of the domain services.
+${symbol_pound}
+${symbol_pound} The implementations depend on the configured (see isis.persistor above) 
+${symbol_pound}
+
+${symbol_pound} if using the in-memory, XML, SQL, fileserver or mongo object stores:
+${symbol_pound}isis.services.prefix = dom
+${symbol_pound}isis.services = todo.ToDoItems
+
+
+${symbol_pound} if using the DataNucleus object store
+${symbol_pound} (with support for JDO's audit service, and installing fixtures using a domain service)
+${symbol_pound}isis.services.prefix = 
+isis.services = objstore.jdo.todo.ToDoItemsJdo,${symbol_escape}
+                fixture.todo.ToDoItemsFixturesService,${symbol_escape}
+                dom.audit.AuditServiceDemo
+
+
+
+
+
+${symbol_pound}
+${symbol_pound} Specify the (optional) test fixtures
+${symbol_pound}
+${symbol_pound} Fixtures are used to seed the object store with an initial set of data.  For the 
+${symbol_pound} in-memory object store, the fixtures are installed on every run.  For other
+${symbol_pound} object stores, they are used only when the object store is first initialized.
+${symbol_pound}
+${symbol_pound}isis.fixtures.prefix= 
+${symbol_pound}isis.fixtures= 
+

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/logging.properties
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/logging.properties b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/logging.properties
new file mode 100644
index 0000000..bdf331e
--- /dev/null
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/logging.properties
@@ -0,0 +1,93 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+${symbol_pound}  Licensed to the Apache Software Foundation (ASF) under one
+${symbol_pound}  or more contributor license agreements.  See the NOTICE file
+${symbol_pound}  distributed with this work for additional information
+${symbol_pound}  regarding copyright ownership.  The ASF licenses this file
+${symbol_pound}  to you under the Apache License, Version 2.0 (the
+${symbol_pound}  "License"); you may not use this file except in compliance
+${symbol_pound}  with the License.  You may obtain a copy of the License at
+${symbol_pound}  
+${symbol_pound}         http://www.apache.org/licenses/LICENSE-2.0
+${symbol_pound}         
+${symbol_pound}  Unless required by applicable law or agreed to in writing,
+${symbol_pound}  software distributed under the License is distributed on an
+${symbol_pound}  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+${symbol_pound}  KIND, either express or implied.  See the License for the
+${symbol_pound}  specific language governing permissions and limitations
+${symbol_pound}  under the License.
+
+
+${symbol_pound}
+${symbol_pound} Isis uses log4j is used to provide system logging
+${symbol_pound}
+log4j.rootCategory=INFO, Console
+
+${symbol_pound} The console appender
+log4j.appender.Console=org.apache.log4j.ConsoleAppender
+log4j.appender.Console.target=System.out
+log4j.appender.Console.layout=org.apache.log4j.PatternLayout
+log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE}  [%-20c{1} %-10t %-5p]  %m%n
+
+log4j.appender.File=org.apache.log4j.RollingFileAppender
+log4j.appender.File.file=isis.log
+log4j.appender.File.append=false
+log4j.appender.File.layout=org.apache.log4j.PatternLayout
+log4j.appender.File.layout.ConversionPattern=%d [%-20c{1} %-10t %-5p]  %m%n
+
+
+
+
+
+
+! turn on the internal log4j debugging flag so we can see what it is doing
+${symbol_pound}log4j.debug=true
+
+
+log4j.logger.jdbc.sqlonly=DEBUG, sql, Console
+log4j.additivity.jdbc.sqlonly=false
+
+log4j.logger.jdbc.resultsettable=DEBUG, jdbc, Console
+log4j.additivity.jdbc.resultsettable=false
+
+
+
+log4j.logger.jdbc.audit=WARN,jdbc, Console
+log4j.additivity.jdbc.audit=false
+
+log4j.logger.jdbc.resultset=WARN,jdbc
+log4j.additivity.jdbc.resultset=false
+
+log4j.logger.jdbc.sqltiming=WARN,sqltiming
+log4j.additivity.jdbc.sqltiming=false
+
+log4j.logger.jdbc.connection=FATAL,connection
+log4j.additivity.jdbc.connection=false
+
+
+
+log4j.appender.sql=org.apache.log4j.FileAppender
+log4j.appender.sql.File=./logs/sql.log
+log4j.appender.sql.Append=false
+log4j.appender.sql.layout=org.apache.log4j.PatternLayout
+log4j.appender.sql.layout.ConversionPattern=-----> %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n
+
+log4j.appender.sqltiming=org.apache.log4j.FileAppender
+log4j.appender.sqltiming.File=./logs/sqltiming.log
+log4j.appender.sqltiming.Append=false
+log4j.appender.sqltiming.layout=org.apache.log4j.PatternLayout
+log4j.appender.sqltiming.layout.ConversionPattern=-----> %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n
+
+log4j.appender.jdbc=org.apache.log4j.FileAppender
+log4j.appender.jdbc.File=./logs/jdbc.log
+log4j.appender.jdbc.Append=false
+log4j.appender.jdbc.layout=org.apache.log4j.PatternLayout
+log4j.appender.jdbc.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n
+
+log4j.appender.connection=org.apache.log4j.FileAppender
+log4j.appender.connection.File=./logs/connection.log
+log4j.appender.connection.Append=false
+log4j.appender.connection.layout=org.apache.log4j.PatternLayout
+log4j.appender.connection.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n
+

http://git-wip-us.apache.org/repos/asf/isis/blob/90490171/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
new file mode 100644
index 0000000..14f8038
--- /dev/null
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
@@ -0,0 +1,114 @@
+#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 JDO objectstore
+${symbol_pound}
+
+isis.persistor.datanucleus.impl.javax.jdo.PersistenceManagerFactoryClass=org.datanucleus.api.jdo.JDOPersistenceManagerFactory
+isis.persistor.datanucleus.impl.datanucleus.autoCreateSchema=true
+isis.persistor.datanucleus.impl.datanucleus.validateTables=true
+isis.persistor.datanucleus.impl.datanucleus.validateConstraints=true
+
+
+${symbol_pound} L2 cache (on by default)
+isis.persistor.datanucleus.impl.datanucleus.cache.level2.type=none
+
+${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}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${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} JDBC connection details
+${symbol_pound} (also update the pom.xml to reference the appropriate JDBC driver)
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${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} HSQLDB in-memory
+${symbol_pound}
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=org.hsqldb.jdbcDriver
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:hsqldb:mem:test
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=sa
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=
+
+${symbol_pound}
+${symbol_pound} HSQLDB in-memory (using log4jdbc-remix)
+${symbol_pound}
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=net.sf.log4jdbc.DriverSpy
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:log4jdbc:hsqldb:mem:test
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=sa
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=
+
+
+
+${symbol_pound}
+${symbol_pound} HSQLDB to file
+${symbol_pound}
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=org.hsqldb.jdbcDriver
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:hsqldb:file:/tmp/isis-todo-app/hsql-db;hsqldb.write_delay=false;shutdown=true
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=sa
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=
+
+${symbol_pound}
+${symbol_pound} HSQLDB to file (using log4jdbc-remix)
+${symbol_pound}
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=net.sf.log4jdbc.DriverSpy
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:log4jdbc:hsqldb:file:/tmp/isis-todo-app/hsql-db;hsqldb.write_delay=false;shutdown=true
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=sa
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=
+
+
+
+${symbol_pound}
+${symbol_pound} PostgreSQL Server 
+${symbol_pound}
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=org.postgresql.Driver
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:postgresql://localhost:5432/isis
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=isis
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=isis
+
+${symbol_pound}
+${symbol_pound} PostgreSQL Server (using log4jdbc-remix)
+${symbol_pound}
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=net.sf.log4jdbc.DriverSpy
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:log4jdbc:postgresql://localhost:5432/isis
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=isis
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=isis
+
+
+
+${symbol_pound}
+${symbol_pound} MS SQL Server
+${symbol_pound}
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=com.microsoft.sqlserver.jdbc.SQLServerDriver
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:sqlserver://127.0.0.1:1433;instance=SQLEXPRESS;databaseName=jdo
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=jdo
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=jdopass
+
+${symbol_pound}
+${symbol_pound} MS SQL Server (using log4jdbc-remix)
+${symbol_pound}
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=net.sf.log4jdbc.DriverSpy
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:log4jdbc:sqlserver://127.0.0.1:1433;instance=SQLEXPRESS;databaseName=jdo
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=jdo
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=jdopass