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/10/15 09:13:17 UTC

git commit: ISIS-564, ISIS-553: Extended AuditingService to AuditingService2; view model package fix

Updated Branches:
  refs/heads/master b717f39f0 -> 5e9d586a3


ISIS-564, ISIS-553: Extended AuditingService to AuditingService2; view model package fix

in addition:
- ISIS-553: move ViewModel interface from annotation package to just oai.applib
- fixed CSS which was preventing fullcalendar component's icon from rendering
- fixed shiro.ini for todo app


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

Branch: refs/heads/master
Commit: 5e9d586a3a1dcb9e4cf23470f6cb4ef43ebae06d
Parents: b717f39
Author: Dan Haywood <da...@apache.org>
Authored: Tue Oct 15 08:13:04 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Tue Oct 15 08:13:04 2013 +0100

----------------------------------------------------------------------
 .../spi/DataNucleusIdentifierGenerator.java     |  2 +-
 .../links/LinksSelectorPanelAbstract.css        | 12 -----
 .../isis/applib/AbstractContainedObject.java    |  1 -
 .../apache/isis/applib/AbstractViewModel.java   |  1 -
 .../isis/applib/DomainObjectContainer.java      |  1 -
 .../java/org/apache/isis/applib/ViewModel.java  | 49 ++++++++++++++++++++
 .../apache/isis/applib/annotation/HomePage.java |  2 +
 .../isis/applib/annotation/ViewModel.java       | 47 -------------------
 .../applib/services/audit/AuditingService.java  | 17 ++++++-
 .../applib/services/audit/AuditingService2.java | 41 ++++++++++++++++
 .../AbstractHomePageDashboardService.java       |  2 +-
 .../container/DomainObjectContainerDefault.java |  2 +-
 .../annotation/ViewModelFacetForInterface.java  |  2 +-
 .../ViewModelIntefaceFacetFactory.java          |  2 +-
 .../ViewModelInteraceFacetFactoryTest.java      |  2 +-
 .../system/persistence/OidGenerator.java        |  2 +-
 .../system/persistence/PersistenceSession.java  |  2 +-
 .../system/transaction/IsisTransaction.java     | 15 +++++-
 .../tck/dom/viewmodels/SimpleViewModel.java     |  2 +-
 .../dom/src/main/java/dom/todo/ToDoItem.java    |  2 +-
 .../src/main/webapp/WEB-INF/isis.properties     |  2 +-
 .../webapp/src/main/webapp/WEB-INF/shiro.ini    | 10 ++--
 22 files changed, 139 insertions(+), 79 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/spi/DataNucleusIdentifierGenerator.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/spi/DataNucleusIdentifierGenerator.java b/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/spi/DataNucleusIdentifierGenerator.java
index c152b51..f1fc002 100644
--- a/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/spi/DataNucleusIdentifierGenerator.java
+++ b/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/spi/DataNucleusIdentifierGenerator.java
@@ -26,7 +26,7 @@ import javax.jdo.spi.PersistenceCapable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.isis.applib.annotation.ViewModel;
+import org.apache.isis.applib.ViewModel;
 import org.apache.isis.core.commons.debug.DebugBuilder;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.css
index 8e02ac2..6552c8d 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.css
@@ -72,12 +72,6 @@ span.ViewLinkItem.hide {
 	background-repeat:no-repeat;
 }
 
-a span.ViewLinkItem.calendar {
-	background-image:url('images/icon_calendar_off.png');
-	background-position: center center;
-	background-repeat:no-repeat;
-}
-
 span.ViewLinkItem.table {
 	background-image:url('images/icon_table_on.png');
 	background-position: center center;
@@ -90,12 +84,6 @@ a span.ViewLinkItem.hide {
 	background-repeat:no-repeat;
 }
 
-span.ViewLinkItem.calendar {
-	background-image:url('images/icon_calendar_on.png');
-	background-position: center center;
-	background-repeat:no-repeat;
-}
-
 a span.ViewLinkItem.table {
 	background-image:url('images/icon_table_off.png');
 	background-position: center center;

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/applib/src/main/java/org/apache/isis/applib/AbstractContainedObject.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/AbstractContainedObject.java b/core/applib/src/main/java/org/apache/isis/applib/AbstractContainedObject.java
index c9703ed..d3f376c 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/AbstractContainedObject.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/AbstractContainedObject.java
@@ -25,7 +25,6 @@ import com.google.common.base.Predicate;
 
 import org.apache.isis.applib.annotation.Aggregated;
 import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.applib.annotation.ViewModel;
 import org.apache.isis.applib.filter.Filter;
 import org.apache.isis.applib.query.Query;
 import org.apache.isis.applib.security.UserMemento;

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/applib/src/main/java/org/apache/isis/applib/AbstractViewModel.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/AbstractViewModel.java b/core/applib/src/main/java/org/apache/isis/applib/AbstractViewModel.java
index b28888a..34f4203 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/AbstractViewModel.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/AbstractViewModel.java
@@ -20,7 +20,6 @@
 package org.apache.isis.applib;
 
 import org.apache.isis.applib.annotation.Disabled;
-import org.apache.isis.applib.annotation.ViewModel;
 
 /**
  * Convenience super class for all view models that wish to interact with the

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java b/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
index ebf0751..edabe32 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
@@ -24,7 +24,6 @@ import java.util.List;
 import com.google.common.base.Predicate;
 
 import org.apache.isis.applib.annotation.Aggregated;
-import org.apache.isis.applib.annotation.ViewModel;
 import org.apache.isis.applib.filter.Filter;
 import org.apache.isis.applib.query.Query;
 import org.apache.isis.applib.security.UserMemento;

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/applib/src/main/java/org/apache/isis/applib/ViewModel.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/ViewModel.java b/core/applib/src/main/java/org/apache/isis/applib/ViewModel.java
new file mode 100644
index 0000000..0ed855d
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/ViewModel.java
@@ -0,0 +1,49 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.isis.applib;
+
+import org.apache.isis.applib.annotation.Hidden;
+
+
+/**
+ * Indicates that a domain object is intended to be used as a view model.
+ */
+public interface ViewModel {
+
+    /**
+     * Obtain a memento of the view model.
+     *
+     * <p>
+     * Typically this will be the identifier of a backing domain entity, but it could also be an arbitrary string,
+     * for example a bunch of JSON.
+     * 
+     * <p>
+     * This method is called by the framework in order that the view model may be recreated subsequently
+     * through {@link #viewModelInit(String)}.
+     */
+    @Hidden
+    public String viewModelMemento();
+    
+    /**
+     * Used to re-initialize a view model with a memento obtained from {@link #viewModelMemento()}.
+     */
+    @Hidden
+    public void viewModelInit(String memento);
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/applib/src/main/java/org/apache/isis/applib/annotation/HomePage.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/HomePage.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/HomePage.java
index 03c040e..2cf3969 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/HomePage.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/HomePage.java
@@ -25,6 +25,8 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
+import org.apache.isis.applib.ViewModel;
+
 /**
  * Indicates that the (no-arg) action (on a domain service) to be invoked automatically
  * and the contents used for the home page.

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/applib/src/main/java/org/apache/isis/applib/annotation/ViewModel.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/ViewModel.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/ViewModel.java
deleted file mode 100644
index 26bc81e..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/ViewModel.java
+++ /dev/null
@@ -1,47 +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.
- */
-
-package org.apache.isis.applib.annotation;
-
-
-/**
- * Indicates that a domain object is intended to be used as a view model.
- */
-public interface ViewModel {
-
-    /**
-     * Obtain a memento of the view model.
-     *
-     * <p>
-     * Typically this will be the identifier of a backing domain entity, but it could also be an arbitrary string,
-     * for example a bunch of JSON.
-     * 
-     * <p>
-     * This method is called by the framework in order that the view model may be recreated subsequently
-     * through {@link #viewModelInit(String)}.
-     */
-    @Hidden
-    public String viewModelMemento();
-    
-    /**
-     * Used to re-initialize a view model with a memento obtained from {@link #viewModelMemento()}.
-     */
-    @Hidden
-    public void viewModelInit(String memento);
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditingService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditingService.java b/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditingService.java
index 0675a3f..f9b08a0 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditingService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditingService.java
@@ -20,14 +20,29 @@ package org.apache.isis.applib.services.audit;
 
 import org.apache.isis.applib.annotation.Hidden;
 
+/**
+ * Will be called whenever an object has changed its state.
+ * 
+ * <p>
+ * Deprecated because the {@link #audit(String, long, String, String, String, String)} method does not include details
+ * of the object association being modified.
+ * 
+ * @see AuditingService2
+ * 
+ * @deprecated
+ */
+@Deprecated
 public interface AuditingService {
-    
+
+    @Deprecated
     @Hidden
     public void audit(String user, long currentTimestampEpoch, String objectType, String identifier, String preValue, String postValue);
     
     
+    @Deprecated
     public static class Stderr implements AuditingService {
 
+        @Deprecated
         @Hidden
         public void audit(String user, long currentTimestampEpoch, String objectType, String identifier, String preValue, String postValue) {
             String auditMessage = objectType + ":" + identifier + " by " + user + ": " + preValue + " -> " + postValue;

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditingService2.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditingService2.java b/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditingService2.java
new file mode 100644
index 0000000..4a1ae39
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditingService2.java
@@ -0,0 +1,41 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.applib.services.audit;
+
+import org.apache.isis.applib.annotation.Hidden;
+
+/**
+ * Will be called whenever an object has changed its state.
+ */
+public interface AuditingService2 extends AuditingService {
+    
+    @Hidden
+    public void audit(String user, long currentTimestampEpoch, String objectType, String identifier, String propertyId, String preValue, String postValue);
+    
+    
+    public static class Stderr extends AuditingService.Stderr implements AuditingService2 {
+
+        @Hidden
+        public void audit(String user, long currentTimestampEpoch, String objectType, String identifier, String propertyId, String preValue, String postValue) {
+            String auditMessage = objectType + ":" + identifier + " by " + user + ", " + propertyId +": " + preValue + " -> " + postValue;
+            System.err.println(auditMessage);
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/applib/src/main/java/org/apache/isis/applib/services/homepage/AbstractHomePageDashboardService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/homepage/AbstractHomePageDashboardService.java b/core/applib/src/main/java/org/apache/isis/applib/services/homepage/AbstractHomePageDashboardService.java
index 4c2390b..d3cd37a 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/homepage/AbstractHomePageDashboardService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/homepage/AbstractHomePageDashboardService.java
@@ -19,11 +19,11 @@
 package org.apache.isis.applib.services.homepage;
 
 import org.apache.isis.applib.AbstractService;
+import org.apache.isis.applib.ViewModel;
 import org.apache.isis.applib.annotation.ActionSemantics;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
 import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.annotation.HomePage;
-import org.apache.isis.applib.annotation.ViewModel;
 
 /**
  * Convenience domain service to create a view model (eg a dashboard) to be rendered automatically

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
index 89b4c25..9cf7636 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
@@ -27,7 +27,7 @@ import com.google.common.base.Predicate;
 import org.apache.isis.applib.DomainObjectContainer;
 import org.apache.isis.applib.PersistFailedException;
 import org.apache.isis.applib.RepositoryException;
-import org.apache.isis.applib.annotation.ViewModel;
+import org.apache.isis.applib.ViewModel;
 import org.apache.isis.applib.filter.Filter;
 import org.apache.isis.applib.filter.Filters;
 import org.apache.isis.applib.query.Query;

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/viewmodel/annotation/ViewModelFacetForInterface.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/viewmodel/annotation/ViewModelFacetForInterface.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/viewmodel/annotation/ViewModelFacetForInterface.java
index 77d9904..8c7f2ec 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/viewmodel/annotation/ViewModelFacetForInterface.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/viewmodel/annotation/ViewModelFacetForInterface.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.core.progmodel.facets.object.viewmodel.annotation;
 
-import org.apache.isis.applib.annotation.ViewModel;
+import org.apache.isis.applib.ViewModel;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacetAbstract;
 

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/viewmodel/annotation/ViewModelIntefaceFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/viewmodel/annotation/ViewModelIntefaceFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/viewmodel/annotation/ViewModelIntefaceFacetFactory.java
index f7d6f8b..087b478 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/viewmodel/annotation/ViewModelIntefaceFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/viewmodel/annotation/ViewModelIntefaceFacetFactory.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.core.progmodel.facets.object.viewmodel.annotation;
 
-import org.apache.isis.applib.annotation.ViewModel;
+import org.apache.isis.applib.ViewModel;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/object/stable/ViewModelInteraceFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/object/stable/ViewModelInteraceFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/object/stable/ViewModelInteraceFacetFactoryTest.java
index 12c9625..af4101e 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/object/stable/ViewModelInteraceFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/object/stable/ViewModelInteraceFacetFactoryTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.core.progmodel.facets.object.stable;
 
-import org.apache.isis.applib.annotation.ViewModel;
+import org.apache.isis.applib.ViewModel;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/OidGenerator.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/OidGenerator.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/OidGenerator.java
index 12a3349..d5b8cb7 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/OidGenerator.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/OidGenerator.java
@@ -19,8 +19,8 @@
 
 package org.apache.isis.core.runtime.system.persistence;
 
+import org.apache.isis.applib.ViewModel;
 import org.apache.isis.applib.annotation.Aggregated;
-import org.apache.isis.applib.annotation.ViewModel;
 import org.apache.isis.core.commons.debug.DebugBuilder;
 import org.apache.isis.core.commons.debug.DebuggableWithTitle;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
index 703c917..f2a2a17 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
@@ -35,7 +35,7 @@ import com.google.common.collect.Maps;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.isis.applib.annotation.ViewModel;
+import org.apache.isis.applib.ViewModel;
 import org.apache.isis.applib.query.Query;
 import org.apache.isis.applib.query.QueryDefault;
 import org.apache.isis.applib.query.QueryFindAllInstances;

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
index 5acddef..079bdaa 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
@@ -46,6 +46,7 @@ import org.apache.isis.applib.annotation.PublishedObject;
 import org.apache.isis.applib.annotation.PublishedObject.ChangeKind;
 import org.apache.isis.applib.clock.Clock;
 import org.apache.isis.applib.services.audit.AuditingService;
+import org.apache.isis.applib.services.audit.AuditingService2;
 import org.apache.isis.applib.services.publish.EventMetadata;
 import org.apache.isis.applib.services.publish.EventType;
 import org.apache.isis.applib.services.publish.ObjectStringifier;
@@ -189,6 +190,11 @@ public class IsisTransaction implements TransactionScopedComponent {
      */
     private final AuditingService auditingService;
     /**
+     * could be null if none has been registered, or if the service provided does not
+     * implement the {@link AuditingService2} sub-interface.
+     */
+    private final AuditingService2 auditingService2;
+    /**
      * could be null if none has been registered
      */
     private final PublishingServiceWithDefaultPayloadFactories publishingService;
@@ -210,9 +216,9 @@ public class IsisTransaction implements TransactionScopedComponent {
         this.messageBroker = messageBroker;
         this.updateNotifier = updateNotifier;
         this.auditingService = auditingService;
+        this.auditingService2 = (AuditingService2) (auditingService instanceof AuditingService2? auditingService: null);
         this.publishingService = publishingService;
 
-
         this.guid = UUID.randomUUID();
         this.eventSequence = 0;
 
@@ -538,7 +544,12 @@ public class IsisTransaction implements TransactionScopedComponent {
         final PreAndPostValues papv = auditEntry.getValue();
         final String preValue = asString(papv.getPre());
         final String postValue = asString(papv.getPost());
-        auditingService.audit(currentUser, currentTimestampEpoch, objectType, identifier, preValue, postValue);
+        final String propertyId = aap.getProperty().getId();
+        if(auditingService2 != null) {
+            auditingService2.audit(currentUser, currentTimestampEpoch, objectType, identifier, propertyId, preValue, postValue);
+        } else {
+            auditingService.audit(currentUser, currentTimestampEpoch, objectType, identifier, preValue, postValue);
+        }
     }
 
     private static String asString(Object object) {

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/viewmodels/SimpleViewModel.java
----------------------------------------------------------------------
diff --git a/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/viewmodels/SimpleViewModel.java b/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/viewmodels/SimpleViewModel.java
index 658cb1d..ab987c6 100644
--- a/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/viewmodels/SimpleViewModel.java
+++ b/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/viewmodels/SimpleViewModel.java
@@ -20,8 +20,8 @@
 package org.apache.isis.core.tck.dom.viewmodels;
 
 import org.apache.isis.applib.AbstractDomainObject;
+import org.apache.isis.applib.ViewModel;
 import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.ViewModel;
 import org.apache.isis.applib.util.TitleBuffer;
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
index b4dca66..4ad7cec 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
@@ -329,7 +329,7 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
     }
     // disable action dependent on state of object
     public String disableCompleted() {
-        return complete ? "Already completed" : null;
+        return isComplete() ? "Already completed" : null;
     }
 
     @Named("Not done")

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties
index e3a54b1..1cf474d 100644
--- a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties
@@ -173,7 +173,7 @@ isis.services = \
                 org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJdoSupportImpl,\
                 org.apache.isis.objectstore.jdo.applib.service.exceprecog.ExceptionRecognizerCompositeForJdoObjectStore,\
                 org.apache.isis.viewer.restfulobjects.rendering.eventserializer.RestfulObjectsSpecEventSerializer,\
-                org.apache.isis.applib.services.audit.AuditingService$Stderr,\
+                org.apache.isis.applib.services.audit.AuditingService2$Stderr,\
                 org.apache.isis.applib.services.publish.PublishingService$Stderr
                 
                 # if using the JDO implementation of the settings services

http://git-wip-us.apache.org/repos/asf/isis/blob/5e9d586a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/shiro.ini
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/shiro.ini b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/shiro.ini
index a643d86..edf1a2b 100644
--- a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/shiro.ini
+++ b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/shiro.ini
@@ -69,7 +69,7 @@ securityManager.realms = $iniRealm
 
 
 sven = pass, admin_role
-dick = pass, user_role, self-install_role
+dick = pass, user_role, analysis_role, self-install_role
 bob  = pass, user_role, self-install_role
 joe  = pass, user_role, self-install_role
 guest = guest, user_role
@@ -87,7 +87,11 @@ guest = guest, user_role
 # role = perm1, perm2, perm3, ...
 # perm in format: packageName:className:memberName:r,w
 
-user_role =   *:ToDoItemsJdo:*:*,\
-              *:ToDoItem:*:*
+user_role = *:ToDoItems:*:*,\
+            *:ToDoItem:*:*
+analysis_role = *:ToDoItemAnalysis:*:*,\
+            *:ToDoItemsByCategoryViewModel:*:*,\
+            *:ToDoItemsByDateRangeViewModel:*:*,\
+            *:ToDoAppDashboard:*:*
 self-install_role = *:ToDoItemsFixturesService:install:*
 admin_role = *