You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2012/12/04 23:30:56 UTC

[16/47] ISIS-188: normalizing file endings throughout

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/webapp/src/main/webapp/generic/app.js
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/generic/app.js b/examples/onlinedemo/webapp/src/main/webapp/generic/app.js
index ed384af..43a4604 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/generic/app.js
+++ b/examples/onlinedemo/webapp/src/main/webapp/generic/app.js
@@ -1,339 +1,339 @@
-// [START] Code specific to this app
-$(function() {
-	$('#Find').submit(findObject)
-});
-
-$(function() {
-	$('#serviceMenu').click(getServices)
-});
-
-getServices = function() {
-	var div = $('#objects').empty();
-	var server = $('#Find input#server').val();
-	var url = 'http://' + server + '/services/';
-
-	var username = $('#Find input#username').val();
-	var password = $('#Find input#password').val();
-
-	// TODO: Factor out function below
-	$.ajax({
-		url : url,
-		dataType : 'json',
-		username : username,
-		password : password,
-		success : function(data) {
-			var html = listRepAsHtml(data);
-			div.append(html);
-		}
-	});
-
-	return false; // To stop event bubbling up
-}
-
-findObject = function() {
-	var server = $('#Find input#server').val();
-	var oid = $('#Find input#oid').val();
-	getObject('http://' + server + '/objects/' + oid);
-	return false; // To stop event bubbling up
-}
-// [END] Code specific to this app
-
-
-
-// Generic library methods below
-bindLinks = function() {
-	$(".property a").click(linkToObject);
-	$(".collection a").click(linkToCollection);
-	$(".action a").click(linkToAction);
-};
-
-
-createLink = function(href, label, onClick) {
-	var link = $('<a href="' + href + '">' + label + '</a>');
-	link.click(onClick);
-	return link;
-}
-
-linkToObject = function() {
-	getObject($(this)[0].href);
-	return false; // To stop event bubbling up
-}
-
-linkToCollection = function() {
-	getCollection($(this)[0].href);
-	return false; // To stop event bubbling up
-}
-
-linkToAction = function() {
-	getAction($(this)[0].href);
-	return false; // To stop event bubbling up
-}
-
-// TODO: Factor out common logic between this and linkToActionInvokePost
-// Ideally, we could store the method (GET/POST/PUT) as an Html 5 attribute on
-// the
-// <a> link and use that.
-linkToActionInvokeGet = function() {
-	// TODO: See comment within linkToActionInvokePost (below)
-
-	var arguments = $('#objects form').serialize(); // TODO: Use $.param()
-													// instead of serialize?
-	var button = $('#objects form button');
-	invokeActionWithGet(button[0].href, '?' + arguments);
-	return false; // To stop event bubbling up
-}
-
-linkToActionInvokePost = function() {
-	// TODO: Not the intended design! We really want to pass in the actual
-	// form that was submitted, and extract the button/href from there, but
-	// I couldn't get that to work. This (naive) approach assumes there is only
-	// one
-	// form & one button in the objects div.
-	var button = $('#objects form button');
-	var input = $('#objects form input');
-	var arguments = {};
-	if (input.length > 0) {
-		for ( var j = 0; j < input.length; j++) {
-			var value = input.val();
-			arguments[input[j].name] = value;
-		}
-	}
-	invokeActionWithPost(button[0].href, arguments);
-	return false; // To stop event bubbling up
-}
-
-getObject = function(url) {
-
-	var username = $('#Find input#username').val();
-	var password = $('#Find input#password').val();
-
-	$.ajax({
-		url : url,
-		dataType : 'json',
-		username : username,
-		password : password,
-		success : function(data) {
-			renderObject(data)
-		}
-	});
-
-}
-
-renderObject = function(objectRep) {
-	var objects = $("#objects").empty();
-	objects.append(objectRepAsHtml(objectRep, true, true));
-	bindLinks();
-}
-
-getCollection = function(url) {
-	var username = $('#Find input#username').val();
-	var password = $('#Find input#password').val();
-
-	$.ajax({
-		url : url,
-		dataType : 'json',
-		username : username,
-		password : password,
-		success : function(data) {
-			var objects = $("#objects").empty();
-			objects.append(collectionRepAsHtml(data));
-		}
-	});
-}
-
-getAction = function(url) {
-
-	var username = $('#Find input#username').val();
-	var password = $('#Find input#password').val();
-
-	$
-			.ajax({
-				url : url,
-				username : username,
-				password : password,
-				success : function(data) {
-					if (data.parameters.length == 0) { // Zero-parameter
-														// actions invoked
-														// immediately
-						var invokeLink = getLinkRep(data, 'invoke');
-						var url = invokeLink.href;
-						switch (invokeLink.method) {
-						case 'GET':
-							invokeActionWithGet(url);
-							break;
-						case 'POST':
-							invokeActionWithPost(url);
-							break;
-						case 'PUT':
-							alert('PUT method not currently supported in this context');
-							break;
-						}
-					} else { // Actions with params rendered as a dialog
-						var objects = $("#objects").empty();
-						objects.append(actionRepAsHtml(data));
-					}
-				}
-			});
-
-}
-
-// TODO: This and next method could be merged, with the type (method) passed in
-// as a
-// param (values defined on an Enum). Would be better to always treat arguments
-// as a
-// map, and url-encode it for the GET case.
-// See also comment on linkToActionInvokeGet.
-invokeActionWithGet = function(url, arguments) {
-
-	var username = $('#Find input#username').val();
-	var password = $('#Find input#password').val();
-
-	$.ajax({
-		type : 'GET',
-		url : url + arguments,
-		username : username,
-		password : password,
-		success : function(data) {
-			var objects = $("#objects").empty();
-			objects.append(actionResultRepAsHtml(data));
-		},
-		dataType : 'json'
-	});
-}
-
-invokeActionWithPost = function(url, arguments) {
-	if (arguments != null) {
-		alert("POST actions with parameters not yet supported");
-	}
-
-	var username = $('#Find input#username').val();
-	var password = $('#Find input#password').val();
-
-	$.ajax({
-		type : 'POST',
-		url : url,
-		data : arguments,
-		username : username,
-		password : password,
-		success : function(data) {
-			var objects = $("#objects").empty();
-			objects.append(actionResultRepAsHtml(data));
-		},
-		dataType : 'json'
-	});
-}
-
-actionResultRepAsHtml = function(data) {
-	var html = $('<div>');
-	// TODO: Make more use of the other information in links
-	switch (data.resulttype) {
-	case 'list':
-		html.append(listRepAsHtml(data.result));
-		break;
-	case 'object':
-		html.append(objectRepAsHtml(data.result, true, true));
-		break;
-	default:
-		alert(data.resulttype + ' result type not supported at present');
-		break;
-	}
-	html.append('</div>');
-	return html;
-}
-
-listRepAsHtml = function(data) {
-	var html = $('<div>');
-	var items = data.value;
-	for ( var j = 0; j < items.length; j++) {
-		html.append(createLink(items[j].href, items[j].title, linkToObject));
-		html.append("<br>");
-	}
-	html.append('</div>');
-	return html;
-}
-
-objectRepAsHtml = function(data, includeProperties, includeActions) {
-
-	var result = $('<div>');
-	var objectRep = {
-		title : data.title,
-		members : data.members,
-		includeProperties : includeProperties,
-		includeActions : includeActions
-	};
-
-	$("#objectRepAsHtml-tmpl").tmpl(objectRep).appendTo(result);
-
-	return result;
-}
-
-collectionRepAsHtml = function(data) {
-	var result = $('<div>');
-	// TODO: Factor out next two lines into createParentLink - used in next
-	// method also
-	var parentLink = getLinkRep(data, 'up');
-	if (!parentLink) {
-		parentLink = getLinkRep(data, 'parent'); // HACK: remove this.
-	}
-	result.append(createLink(parentLink.href, 'Back To Parent', linkToObject));
-	result.append('<br><h3>' + data.id + '</h3>');
-	result.append(listRepAsHtml(data));
-	result.append('</div>');
-	return result;
-}
-
-actionRepAsHtml = function(data) {
-	var form = $('<form id="' + data.id + '"></form>'); // TODO: Form id needs
-														// to be improved
-	var parentLink = getLinkRep(data, 'up');
-	if (!parentLink) {
-		parentLink = getLinkRep(data, 'parent'); // HACK: remove this.
-	}
-	form.append(createLink(parentLink.href, 'Back To Parent', linkToObject));
-	form.append('<br><h3>' + data.id + '</h3>');
-	var params = data.parameters;
-	for ( var j = 0; j < params.length; j++) {
-		form.append(params[j].name + ' ');
-		form.append('<input type="text" name="' + params[j].name + '">');
-		form.append('<br>');
-	}
-	var invokeLink = getLinkRep(data, 'invoke');
-	var button = $('<button href="' + invokeLink.href + '">OK</button>');
-	form.append(button);
-	switch (invokeLink.method) {
-	// TODO: Refactor so that method is held as an Html attribute on the <a>
-	// link
-	case 'GET':
-		form.submit(linkToActionInvokeGet);
-		break;
-	case 'POST':
-		form.submit(linkToActionInvokePost);
-		break;
-	default:
-		alert(invokeLink.method
-				+ ' method not currently supported by this viewer');
-		break;
-	}
-	return form;
-}
-
-actionMemberAsHtml = function(member) {
-	var result = $('<dt class="action">');
-	result.append(member.id);
-	result.append('<\dt>');
-
-	result.append('<dd class="action">')
-	result.append(createLink(member.links[0].href, member.id, linkToAction));
-	return result.append('<\dd>');
-}
-
-getLinkRep = function(objectWithLinks, rel) {
-	var result;
-	var links = objectWithLinks.links;
-	for ( var j = 0; j < links.length; j++) {
-		if (links[j].rel == rel) {
-			result = links[j];
-		}
-	}
-	return result;
-}
+// [START] Code specific to this app
+$(function() {
+	$('#Find').submit(findObject)
+});
+
+$(function() {
+	$('#serviceMenu').click(getServices)
+});
+
+getServices = function() {
+	var div = $('#objects').empty();
+	var server = $('#Find input#server').val();
+	var url = 'http://' + server + '/services/';
+
+	var username = $('#Find input#username').val();
+	var password = $('#Find input#password').val();
+
+	// TODO: Factor out function below
+	$.ajax({
+		url : url,
+		dataType : 'json',
+		username : username,
+		password : password,
+		success : function(data) {
+			var html = listRepAsHtml(data);
+			div.append(html);
+		}
+	});
+
+	return false; // To stop event bubbling up
+}
+
+findObject = function() {
+	var server = $('#Find input#server').val();
+	var oid = $('#Find input#oid').val();
+	getObject('http://' + server + '/objects/' + oid);
+	return false; // To stop event bubbling up
+}
+// [END] Code specific to this app
+
+
+
+// Generic library methods below
+bindLinks = function() {
+	$(".property a").click(linkToObject);
+	$(".collection a").click(linkToCollection);
+	$(".action a").click(linkToAction);
+};
+
+
+createLink = function(href, label, onClick) {
+	var link = $('<a href="' + href + '">' + label + '</a>');
+	link.click(onClick);
+	return link;
+}
+
+linkToObject = function() {
+	getObject($(this)[0].href);
+	return false; // To stop event bubbling up
+}
+
+linkToCollection = function() {
+	getCollection($(this)[0].href);
+	return false; // To stop event bubbling up
+}
+
+linkToAction = function() {
+	getAction($(this)[0].href);
+	return false; // To stop event bubbling up
+}
+
+// TODO: Factor out common logic between this and linkToActionInvokePost
+// Ideally, we could store the method (GET/POST/PUT) as an Html 5 attribute on
+// the
+// <a> link and use that.
+linkToActionInvokeGet = function() {
+	// TODO: See comment within linkToActionInvokePost (below)
+
+	var arguments = $('#objects form').serialize(); // TODO: Use $.param()
+													// instead of serialize?
+	var button = $('#objects form button');
+	invokeActionWithGet(button[0].href, '?' + arguments);
+	return false; // To stop event bubbling up
+}
+
+linkToActionInvokePost = function() {
+	// TODO: Not the intended design! We really want to pass in the actual
+	// form that was submitted, and extract the button/href from there, but
+	// I couldn't get that to work. This (naive) approach assumes there is only
+	// one
+	// form & one button in the objects div.
+	var button = $('#objects form button');
+	var input = $('#objects form input');
+	var arguments = {};
+	if (input.length > 0) {
+		for ( var j = 0; j < input.length; j++) {
+			var value = input.val();
+			arguments[input[j].name] = value;
+		}
+	}
+	invokeActionWithPost(button[0].href, arguments);
+	return false; // To stop event bubbling up
+}
+
+getObject = function(url) {
+
+	var username = $('#Find input#username').val();
+	var password = $('#Find input#password').val();
+
+	$.ajax({
+		url : url,
+		dataType : 'json',
+		username : username,
+		password : password,
+		success : function(data) {
+			renderObject(data)
+		}
+	});
+
+}
+
+renderObject = function(objectRep) {
+	var objects = $("#objects").empty();
+	objects.append(objectRepAsHtml(objectRep, true, true));
+	bindLinks();
+}
+
+getCollection = function(url) {
+	var username = $('#Find input#username').val();
+	var password = $('#Find input#password').val();
+
+	$.ajax({
+		url : url,
+		dataType : 'json',
+		username : username,
+		password : password,
+		success : function(data) {
+			var objects = $("#objects").empty();
+			objects.append(collectionRepAsHtml(data));
+		}
+	});
+}
+
+getAction = function(url) {
+
+	var username = $('#Find input#username').val();
+	var password = $('#Find input#password').val();
+
+	$
+			.ajax({
+				url : url,
+				username : username,
+				password : password,
+				success : function(data) {
+					if (data.parameters.length == 0) { // Zero-parameter
+														// actions invoked
+														// immediately
+						var invokeLink = getLinkRep(data, 'invoke');
+						var url = invokeLink.href;
+						switch (invokeLink.method) {
+						case 'GET':
+							invokeActionWithGet(url);
+							break;
+						case 'POST':
+							invokeActionWithPost(url);
+							break;
+						case 'PUT':
+							alert('PUT method not currently supported in this context');
+							break;
+						}
+					} else { // Actions with params rendered as a dialog
+						var objects = $("#objects").empty();
+						objects.append(actionRepAsHtml(data));
+					}
+				}
+			});
+
+}
+
+// TODO: This and next method could be merged, with the type (method) passed in
+// as a
+// param (values defined on an Enum). Would be better to always treat arguments
+// as a
+// map, and url-encode it for the GET case.
+// See also comment on linkToActionInvokeGet.
+invokeActionWithGet = function(url, arguments) {
+
+	var username = $('#Find input#username').val();
+	var password = $('#Find input#password').val();
+
+	$.ajax({
+		type : 'GET',
+		url : url + arguments,
+		username : username,
+		password : password,
+		success : function(data) {
+			var objects = $("#objects").empty();
+			objects.append(actionResultRepAsHtml(data));
+		},
+		dataType : 'json'
+	});
+}
+
+invokeActionWithPost = function(url, arguments) {
+	if (arguments != null) {
+		alert("POST actions with parameters not yet supported");
+	}
+
+	var username = $('#Find input#username').val();
+	var password = $('#Find input#password').val();
+
+	$.ajax({
+		type : 'POST',
+		url : url,
+		data : arguments,
+		username : username,
+		password : password,
+		success : function(data) {
+			var objects = $("#objects").empty();
+			objects.append(actionResultRepAsHtml(data));
+		},
+		dataType : 'json'
+	});
+}
+
+actionResultRepAsHtml = function(data) {
+	var html = $('<div>');
+	// TODO: Make more use of the other information in links
+	switch (data.resulttype) {
+	case 'list':
+		html.append(listRepAsHtml(data.result));
+		break;
+	case 'object':
+		html.append(objectRepAsHtml(data.result, true, true));
+		break;
+	default:
+		alert(data.resulttype + ' result type not supported at present');
+		break;
+	}
+	html.append('</div>');
+	return html;
+}
+
+listRepAsHtml = function(data) {
+	var html = $('<div>');
+	var items = data.value;
+	for ( var j = 0; j < items.length; j++) {
+		html.append(createLink(items[j].href, items[j].title, linkToObject));
+		html.append("<br>");
+	}
+	html.append('</div>');
+	return html;
+}
+
+objectRepAsHtml = function(data, includeProperties, includeActions) {
+
+	var result = $('<div>');
+	var objectRep = {
+		title : data.title,
+		members : data.members,
+		includeProperties : includeProperties,
+		includeActions : includeActions
+	};
+
+	$("#objectRepAsHtml-tmpl").tmpl(objectRep).appendTo(result);
+
+	return result;
+}
+
+collectionRepAsHtml = function(data) {
+	var result = $('<div>');
+	// TODO: Factor out next two lines into createParentLink - used in next
+	// method also
+	var parentLink = getLinkRep(data, 'up');
+	if (!parentLink) {
+		parentLink = getLinkRep(data, 'parent'); // HACK: remove this.
+	}
+	result.append(createLink(parentLink.href, 'Back To Parent', linkToObject));
+	result.append('<br><h3>' + data.id + '</h3>');
+	result.append(listRepAsHtml(data));
+	result.append('</div>');
+	return result;
+}
+
+actionRepAsHtml = function(data) {
+	var form = $('<form id="' + data.id + '"></form>'); // TODO: Form id needs
+														// to be improved
+	var parentLink = getLinkRep(data, 'up');
+	if (!parentLink) {
+		parentLink = getLinkRep(data, 'parent'); // HACK: remove this.
+	}
+	form.append(createLink(parentLink.href, 'Back To Parent', linkToObject));
+	form.append('<br><h3>' + data.id + '</h3>');
+	var params = data.parameters;
+	for ( var j = 0; j < params.length; j++) {
+		form.append(params[j].name + ' ');
+		form.append('<input type="text" name="' + params[j].name + '">');
+		form.append('<br>');
+	}
+	var invokeLink = getLinkRep(data, 'invoke');
+	var button = $('<button href="' + invokeLink.href + '">OK</button>');
+	form.append(button);
+	switch (invokeLink.method) {
+	// TODO: Refactor so that method is held as an Html attribute on the <a>
+	// link
+	case 'GET':
+		form.submit(linkToActionInvokeGet);
+		break;
+	case 'POST':
+		form.submit(linkToActionInvokePost);
+		break;
+	default:
+		alert(invokeLink.method
+				+ ' method not currently supported by this viewer');
+		break;
+	}
+	return form;
+}
+
+actionMemberAsHtml = function(member) {
+	var result = $('<dt class="action">');
+	result.append(member.id);
+	result.append('<\dt>');
+
+	result.append('<dd class="action">')
+	result.append(createLink(member.links[0].href, member.id, linkToAction));
+	return result.append('<\dd>');
+}
+
+getLinkRep = function(objectWithLinks, rel) {
+	var result;
+	var links = objectWithLinks.links;
+	for ( var j = 0; j < links.length; j++) {
+		if (links[j].rel == rel) {
+			result = links[j];
+		}
+	}
+	return result;
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/webapp/src/main/webapp/generic/generic.css
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/generic/generic.css b/examples/onlinedemo/webapp/src/main/webapp/generic/generic.css
index fc9a811..d5e326d 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/generic/generic.css
+++ b/examples/onlinedemo/webapp/src/main/webapp/generic/generic.css
@@ -1,56 +1,56 @@
-ul 
-{
-    padding: 0;
-}
-   
-div.actions 
-{
-     float: left;
-     width: 400px;
-}
-   
-.actions li 
-{
-    list-style-type: none;
-}
-
-dl.properties-and-collections
-{
-    float: left;
-    width: 780px;
-    margin: 1em 0;
-    padding: 0;
-    border-bottom: 1px solid #999;
-}
-
-.properties-and-collections dt
-{
-    clear: left;
-    float: left;
-    width: 300px;
-    margin: 0;
-    padding: 5px;
-    border-top: 1px solid #999;
-    text-align: right;
-    font-weight: bold;
-    color: green;
-}
-
-.properties-and-collections dt:after
-{
-    content: ":";
-}
-
-.properties-and-collections dd
-{
-    float: left;
-    width: 300px;
-    margin: 0;
-    padding: 5px;
-    border-top: 1px solid #999;
-}
-    
-.clear 
-{
-    clear: both;
-}
+ul 
+{
+    padding: 0;
+}
+   
+div.actions 
+{
+     float: left;
+     width: 400px;
+}
+   
+.actions li 
+{
+    list-style-type: none;
+}
+
+dl.properties-and-collections
+{
+    float: left;
+    width: 780px;
+    margin: 1em 0;
+    padding: 0;
+    border-bottom: 1px solid #999;
+}
+
+.properties-and-collections dt
+{
+    clear: left;
+    float: left;
+    width: 300px;
+    margin: 0;
+    padding: 5px;
+    border-top: 1px solid #999;
+    text-align: right;
+    font-weight: bold;
+    color: green;
+}
+
+.properties-and-collections dt:after
+{
+    content: ":";
+}
+
+.properties-and-collections dd
+{
+    float: left;
+    width: 300px;
+    margin: 0;
+    padding: 5px;
+    border-top: 1px solid #999;
+}
+    
+.clear 
+{
+    clear: both;
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/webapp/src/main/webapp/generic/index.html
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/generic/index.html b/examples/onlinedemo/webapp/src/main/webapp/generic/index.html
index 70c8900..c6a95d1 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/generic/index.html
+++ b/examples/onlinedemo/webapp/src/main/webapp/generic/index.html
@@ -1,87 +1,87 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-
-<html>
-	<head>
-	<script type="text/javascript" src="../jquery/jquery-1.6.4.js"></script>
-	<script type="text/javascript"
-		src="../jquery.tmpl/jquery.tmpl-vBeta1.0.0.js"></script>
-	
-	<link type="text/css" href="generic.css" />
-	
-	<script type="text/javascript" src="app.js"></script>
-</head>
-
-<body>
-
-	<form id="Find" action="#">
-		<h3>Navigate directly to an object:</h3>
-		User:<input type="text" id="username" value="sven"> Password:
-		<input type="text" id="password" value="pass"> <br>
-		Server:<input type="text" id="server" value="localhost:8080">
-		OId: <input type="text" id="oid" value="OID:1" size="50"> <br>
-		<button id="ok">OK</button>
-	</form>
-
-	<br />
-	<h3>
-		<a href="" id="serviceMenu">Main Menu</a>
-	</h3>
-	<div id="objects"></div>
-
-	<script id="objectRepAsHtml-tmpl" type="text/x-jquery-tmpl">
-        <div>
-            <br><h3>${title}</h3></br>
-
-        {{if includeActions}}
-            <div class="actions">
-            <ul>
-              {{each members}}
-                {{if $value.memberType == 'action' }}
-                  {{tmpl($value) "#actionMemberAsHtml-tmpl" }}
-                {{/if}}
-              {{/each}}
-            </ul>
-            </div>
-        {{/if}}
-
-        {{if includeProperties}}
-            <dl class="properties-and-collections">
-
-              {{each members }}
-                {{if $value.memberType == 'property'}}
-                    {{tmpl($value) "#propertyMemberAsHtml-tmpl" }}
-                {{/if}}
-                {{if $value.memberType == 'collection'}}
-                    {{tmpl($value) "#collectionMemberAsHtml-tmpl" }}
-                {{/if}}
-              {{/each}}
-
-            </dl>
-            <div class="clear"/>
-        {{/if}}
-
-        </div>
-    </script>
-
-	<script id="propertyMemberAsHtml-tmpl" type="text/x-jquery-tmpl">
-        <dt class='property'>${id}</dt>
-        <dd class='property'>
-            {{if value.href}}
-              <a href="${value.href}">${value.title}</a>
-            {{else}}
-              ${value}
-            {{/if}}
-        </dd>
-    </script>
-
-	<script id="collectionMemberAsHtml-tmpl" type="text/x-jquery-tmpl">
-        <dt class='collection'>${id}</dt>
-        <dd class='collection'><a href="${links[0].href}">Collection Contents</a></dd>
-    </script>
-
-	<script id="actionMemberAsHtml-tmpl" type="text/x-jquery-tmpl">
-        <li class='action'><a href="${links[0].href}">${id}</a></li>
-    </script>
-</body>
-
-</html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+	<head>
+	<script type="text/javascript" src="../jquery/jquery-1.6.4.js"></script>
+	<script type="text/javascript"
+		src="../jquery.tmpl/jquery.tmpl-vBeta1.0.0.js"></script>
+	
+	<link type="text/css" href="generic.css" />
+	
+	<script type="text/javascript" src="app.js"></script>
+</head>
+
+<body>
+
+	<form id="Find" action="#">
+		<h3>Navigate directly to an object:</h3>
+		User:<input type="text" id="username" value="sven"> Password:
+		<input type="text" id="password" value="pass"> <br>
+		Server:<input type="text" id="server" value="localhost:8080">
+		OId: <input type="text" id="oid" value="OID:1" size="50"> <br>
+		<button id="ok">OK</button>
+	</form>
+
+	<br />
+	<h3>
+		<a href="" id="serviceMenu">Main Menu</a>
+	</h3>
+	<div id="objects"></div>
+
+	<script id="objectRepAsHtml-tmpl" type="text/x-jquery-tmpl">
+        <div>
+            <br><h3>${title}</h3></br>
+
+        {{if includeActions}}
+            <div class="actions">
+            <ul>
+              {{each members}}
+                {{if $value.memberType == 'action' }}
+                  {{tmpl($value) "#actionMemberAsHtml-tmpl" }}
+                {{/if}}
+              {{/each}}
+            </ul>
+            </div>
+        {{/if}}
+
+        {{if includeProperties}}
+            <dl class="properties-and-collections">
+
+              {{each members }}
+                {{if $value.memberType == 'property'}}
+                    {{tmpl($value) "#propertyMemberAsHtml-tmpl" }}
+                {{/if}}
+                {{if $value.memberType == 'collection'}}
+                    {{tmpl($value) "#collectionMemberAsHtml-tmpl" }}
+                {{/if}}
+              {{/each}}
+
+            </dl>
+            <div class="clear"/>
+        {{/if}}
+
+        </div>
+    </script>
+
+	<script id="propertyMemberAsHtml-tmpl" type="text/x-jquery-tmpl">
+        <dt class='property'>${id}</dt>
+        <dd class='property'>
+            {{if value.href}}
+              <a href="${value.href}">${value.title}</a>
+            {{else}}
+              ${value}
+            {{/if}}
+        </dd>
+    </script>
+
+	<script id="collectionMemberAsHtml-tmpl" type="text/x-jquery-tmpl">
+        <dt class='collection'>${id}</dt>
+        <dd class='collection'><a href="${links[0].href}">Collection Contents</a></dd>
+    </script>
+
+	<script id="actionMemberAsHtml-tmpl" type="text/x-jquery-tmpl">
+        <li class='action'><a href="${links[0].href}">${id}</a></li>
+    </script>
+</body>
+
+</html>

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/webapp/src/main/webapp/mobile/app.js
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/mobile/app.js b/examples/onlinedemo/webapp/src/main/webapp/mobile/app.js
index 131c2d2..5f2c500 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/mobile/app.js
+++ b/examples/onlinedemo/webapp/src/main/webapp/mobile/app.js
@@ -1,24 +1,24 @@
-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"))
-  }
+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/211aee9b/examples/onlinedemo/webapp/src/main/webapp/mobile/generic.js
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/mobile/generic.js b/examples/onlinedemo/webapp/src/main/webapp/mobile/generic.js
index 6d266f7..d428a3e 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/mobile/generic.js
+++ b/examples/onlinedemo/webapp/src/main/webapp/mobile/generic.js
@@ -1,226 +1,226 @@
-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.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.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();
-}
-
+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.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.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/211aee9b/examples/onlinedemo/webapp/src/main/webapp/mobile/index.html
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/mobile/index.html b/examples/onlinedemo/webapp/src/main/webapp/mobile/index.html
index 8f4624a..2d57f4e 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/mobile/index.html
+++ b/examples/onlinedemo/webapp/src/main/webapp/mobile/index.html
@@ -1,191 +1,191 @@
-<!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.min.css" />
-
-<script src="../jquery/jquery-1.6.4.min.js"></script>
-<script src="../jquery.mobile/jquery.mobile-1.0.min.js"></script>
-<script src="../jquery.tmpl/jquery.tmpl-vBeta1.0.0.min.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">
-        <!-- 
-            <a href="#settings" data-icon="gear" class="ui-btn-right" data-transition="slideup">Settings</a>
-        -->
-			<h1>Home</h1>
-		</div>
-
-		<div data-role="content">
-            <br/>
-            <button>Todays Tasks</button>
-            <ul data-role="listview" class="tasks"></ul>
-		</div>
-
-        <script class="tmpl" type="text/x-jquery-tmpl">
-            <li>
-                <a href="${href}">${title}</a>
-            </li>
-        </script>
-        
-        <script type="text/javascript">
-            $("#home button").click(function(){
-                $.mobile.changePage("../services/toDoItems/actions/toDosForToday/invoke", "pop")
-            });
-        </script>
-	</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="${href}">${title}</a>
-            </li>
-        </script>
-    </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="${href}">${title}</a>
-            </li>
-        </script>
-    </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="${id}">${id}:</label>
-                <input type="text"
-                    name="${id}" id="${id}" value="${value}" placeholder="${id}"
-                    class="required"/>
-            {{/if}}
-            {{if dataTypeIsBoolean}}
-                <div data-role="fieldcontain">
-                    <fieldset data-role="controlgroup">
-                        <legend>${id}?</legend>
-                        <input type="checkbox" 
-                            name="${id}" id="${id}" value="${value}"
-                            class="required"/>
-                        <label for="${id}">${id}</label>
-                    </fieldset>
-                </div>
-            {{/if}}
-         </script>
-
-        <script class="referenceProperties-tmpl" type="text/x-jquery-tmpl">
-            <li>
-                <a data-transition="slide" href="${value.href}">
-                    <p>${id}</p>
-                    <p><b>${value.title}</b></p>
-                </a>
-            </li>
-         </script>
-
-        <script class="collections-tmpl" type="text/x-jquery-tmpl">
-            <li>
-                <a data-transition="slideup" href="${href}">${id}</a>
-            </li>
-         </script>
-
-    </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">
-            $("#settings input").change(function(e){
-                var theme = $(this).attr("value");
-                $("div").filter( function() {
-                    var divDataRole = $(this).attr("data-role")
-                    var isPage = (divDataRole === "page"); 
-                    return isPage;
-                }).attr("data-theme", theme);
-            });
-        </script>
-
-		<div data-role="footer">
-			<h4></h4>
-		</div>
-	</div>
-
-
-</body>
+<!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.min.css" />
+
+<script src="../jquery/jquery-1.6.4.min.js"></script>
+<script src="../jquery.mobile/jquery.mobile-1.0.min.js"></script>
+<script src="../jquery.tmpl/jquery.tmpl-vBeta1.0.0.min.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">
+        <!-- 
+            <a href="#settings" data-icon="gear" class="ui-btn-right" data-transition="slideup">Settings</a>
+        -->
+			<h1>Home</h1>
+		</div>
+
+		<div data-role="content">
+            <br/>
+            <button>Todays Tasks</button>
+            <ul data-role="listview" class="tasks"></ul>
+		</div>
+
+        <script class="tmpl" type="text/x-jquery-tmpl">
+            <li>
+                <a href="${href}">${title}</a>
+            </li>
+        </script>
+        
+        <script type="text/javascript">
+            $("#home button").click(function(){
+                $.mobile.changePage("../services/toDoItems/actions/toDosForToday/invoke", "pop")
+            });
+        </script>
+	</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="${href}">${title}</a>
+            </li>
+        </script>
+    </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="${href}">${title}</a>
+            </li>
+        </script>
+    </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="${id}">${id}:</label>
+                <input type="text"
+                    name="${id}" id="${id}" value="${value}" placeholder="${id}"
+                    class="required"/>
+            {{/if}}
+            {{if dataTypeIsBoolean}}
+                <div data-role="fieldcontain">
+                    <fieldset data-role="controlgroup">
+                        <legend>${id}?</legend>
+                        <input type="checkbox" 
+                            name="${id}" id="${id}" value="${value}"
+                            class="required"/>
+                        <label for="${id}">${id}</label>
+                    </fieldset>
+                </div>
+            {{/if}}
+         </script>
+
+        <script class="referenceProperties-tmpl" type="text/x-jquery-tmpl">
+            <li>
+                <a data-transition="slide" href="${value.href}">
+                    <p>${id}</p>
+                    <p><b>${value.title}</b></p>
+                </a>
+            </li>
+         </script>
+
+        <script class="collections-tmpl" type="text/x-jquery-tmpl">
+            <li>
+                <a data-transition="slideup" href="${href}">${id}</a>
+            </li>
+         </script>
+
+    </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">
+            $("#settings input").change(function(e){
+                var theme = $(this).attr("value");
+                $("div").filter( function() {
+                    var divDataRole = $(this).attr("data-role")
+                    var isPage = (divDataRole === "page"); 
+                    return isPage;
+                }).attr("data-theme", theme);
+            });
+        </script>
+
+		<div data-role="footer">
+			<h4></h4>
+		</div>
+	</div>
+
+
+</body>
 </html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/webapp/src/main/webapp/mobile/namespace.js
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/mobile/namespace.js b/examples/onlinedemo/webapp/src/main/webapp/mobile/namespace.js
index b2c0a33..7da5ff2 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/mobile/namespace.js
+++ b/examples/onlinedemo/webapp/src/main/webapp/mobile/namespace.js
@@ -1,13 +1,13 @@
-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;
+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/211aee9b/examples/onlinedemo/webapp/src/main/webapp/mobile/util.js
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/mobile/util.js b/examples/onlinedemo/webapp/src/main/webapp/mobile/util.js
index 637fcef..fe17a03 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/mobile/util.js
+++ b/examples/onlinedemo/webapp/src/main/webapp/mobile/util.js
@@ -1,94 +1,94 @@
-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);
+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/211aee9b/examples/quickstart/viewer-dnd/config/viewer_dnd.properties
----------------------------------------------------------------------
diff --git a/examples/quickstart/viewer-dnd/config/viewer_dnd.properties b/examples/quickstart/viewer-dnd/config/viewer_dnd.properties
index 62460a5..80de8f1 100644
--- a/examples/quickstart/viewer-dnd/config/viewer_dnd.properties
+++ b/examples/quickstart/viewer-dnd/config/viewer_dnd.properties
@@ -1,22 +1,22 @@
-#  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 DnD viewer
-#
-
-# (intentionally empty)
+#  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 DnD viewer
+#
+
+# (intentionally empty)

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/quickstart/viewer-html/lib/.gitignore
----------------------------------------------------------------------
diff --git a/examples/quickstart/viewer-html/lib/.gitignore b/examples/quickstart/viewer-html/lib/.gitignore
index 385d3d8..70eee7e 100644
--- a/examples/quickstart/viewer-html/lib/.gitignore
+++ b/examples/quickstart/viewer-html/lib/.gitignore
@@ -1,5 +1,5 @@
-#
-# explicitly ignoring Microsoft JDBC4 jar
-# (cannot redistribute, licensing)
-#
-sqljdbc4.jar
+#
+# explicitly ignoring Microsoft JDBC4 jar
+# (cannot redistribute, licensing)
+#
+sqljdbc4.jar

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/authentication_file.passwords
----------------------------------------------------------------------
diff --git a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/authentication_file.passwords b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/authentication_file.passwords
index 7048902..97b228e 100644
--- a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/authentication_file.passwords
+++ b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/authentication_file.passwords
@@ -22,7 +22,7 @@
 #
 
 # list of users, and their password, and optionally roles
-sven:pass:role1|role2|role3
-dick:pass
-bob:pass
-joe:pass
+sven:pass:role1|role2|role3
+dick:pass
+bob:pass
+joe:pass

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/isis.properties b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/isis.properties
index 2ba2456..c46aeb5 100644
--- a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/isis.properties
+++ b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/isis.properties
@@ -175,6 +175,6 @@ isis.services = todo.ToDoItems
 # in-memory object store, the fixtures are installed on every run.  For other
 # object stores, they are used only when the object store is first initialized.
 #
-isis.fixtures.prefix= fixture
+isis.fixtures.prefix= fixture
 isis.fixtures= todo.ToDoItemsFixture
 

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/logging.properties
----------------------------------------------------------------------
diff --git a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/logging.properties b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/logging.properties
index dd16433..50b23d7 100644
--- a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/logging.properties
+++ b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/logging.properties
@@ -1,89 +1,89 @@
-#  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.
-
-
-#
-# Isis uses log4j is used to provide system logging
-#
-log4j.rootCategory=INFO, Console
-
-# 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
-#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=DEBUG,jdbc, Console
-log4j.additivity.jdbc.audit=false
-
-log4j.logger.jdbc.resultset=DEBUG,jdbc
-log4j.additivity.jdbc.resultset=false
-
-log4j.logger.jdbc.sqltiming=WARNING,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
-
+#  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.
+
+
+#
+# Isis uses log4j is used to provide system logging
+#
+log4j.rootCategory=INFO, Console
+
+# 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
+#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=DEBUG,jdbc, Console
+log4j.additivity.jdbc.audit=false
+
+log4j.logger.jdbc.resultset=DEBUG,jdbc
+log4j.additivity.jdbc.resultset=false
+
+log4j.logger.jdbc.sqltiming=WARNING,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/211aee9b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/viewer_html.properties
----------------------------------------------------------------------
diff --git a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/viewer_html.properties b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/viewer_html.properties
index 3282708..d714f3e 100644
--- a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/viewer_html.properties
+++ b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/viewer_html.properties
@@ -1,31 +1,31 @@
-#  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 HTML viewer
-#
-
-#
-# customization for the header and footer
-#
-isis.viewer.html.header=<div id="site-header"><div id="site-logo">&nbsp;</div></div>
-isis.viewer.html.footer=<div id="page-footer"><small>Powered by Apache Isis</small><div><small><a href="index.html">home</a>&nbsp;|&nbsp;<a href="index.shtml">scimpi</a>&nbsp;|&nbsp;<a href="services">rest</a>&nbsp;|&nbsp;<a href="mobile/index.html">mobile</a></small></div></div>
-
-#
-# stylesheet
-#
-isis.viewer.html.style-sheet=htmlviewer/style/default.css
+#  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 HTML viewer
+#
+
+#
+# customization for the header and footer
+#
+isis.viewer.html.header=<div id="site-header"><div id="site-logo">&nbsp;</div></div>
+isis.viewer.html.footer=<div id="page-footer"><small>Powered by Apache Isis</small><div><small><a href="index.html">home</a>&nbsp;|&nbsp;<a href="index.shtml">scimpi</a>&nbsp;|&nbsp;<a href="services">rest</a>&nbsp;|&nbsp;<a href="mobile/index.html">mobile</a></small></div></div>
+
+#
+# stylesheet
+#
+isis.viewer.html.style-sheet=htmlviewer/style/default.css