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/03/28 11:23:52 UTC

git commit: ISIS-351, ISIS-379, ISIS-380: remove RecognizedException, move AuditServiceDemo to JDO, enhance BookmarkService

Updated Branches:
  refs/heads/master 06f2b0f63 -> 39500cd19
Updated Tags:  refs/tags/origin/origin/isis-1.1.0-RC1 [created] 4859004d0
  refs/tags/origin/origin/isis-security-shiro-1.1.0-RC1 [created] 340f5709d
  refs/tags/origin/origin/isis-viewer-wicket-1.1.0-RC1 [created] e11c74411
  refs/tags/origin/origin/origin/isis-1.0.0-RC1 [created] 771f7e393
  refs/tags/origin/origin/origin/isis-1.0.0-RC2 [created] 53dddebcb
  refs/tags/origin/origin/origin/isis-objectstore-jdo-1.0.0-RC1 [created] 1a2b468b2
  refs/tags/origin/origin/origin/isis-objectstore-jdo-1.0.0-RC2 [created] 423f7a110
  refs/tags/origin/origin/origin/isis-security-file-1.0.0-RC1 [created] ad852d3ef
  refs/tags/origin/origin/origin/isis-security-file-1.0.0-RC2 [created] b71ec3d05
  refs/tags/origin/origin/origin/isis-security-shiro-1.0.0-RC1 [created] d7afb7606
  refs/tags/origin/origin/origin/isis-viewer-restfulobjects-1.0.0-RC1 [created] 6916f21e3
  refs/tags/origin/origin/origin/isis-viewer-restfulobjects-1.0.0-RC2 [created] e21e1f19f
  refs/tags/origin/origin/origin/isis-viewer-wicket-1.0.0-RC1 [created] 8f8a549a0
  refs/tags/origin/origin/origin/isis-viewer-wicket-1.0.0-RC2 [created] f12423d73
  refs/tags/origin/origin/origin/origin/isis-0.1.2-RC2-incubating [created] 073e279a0
  refs/tags/origin/origin/origin/origin/isis-0.1.2-RC3-incubating [created] 0b09a4c2e
  refs/tags/origin/origin/origin/origin/isis-0.1.2-RC4-incubating [created] 234a55fb5
  refs/tags/origin/origin/origin/origin/isis-0.1.2-incubating [created] 40c529018
  refs/tags/origin/origin/origin/origin/isis-0.2.0-incubating [created] 6dce716dd
  refs/tags/origin/origin/origin/origin/isis-1.0.0 [created] 53dddebcb
  refs/tags/origin/origin/origin/origin/isis-1.1.0 [created] 4859004d0
  refs/tags/origin/origin/origin/origin/isis-objectstore-jdo-1.0.0 [created] 423f7a110
  refs/tags/origin/origin/origin/origin/isis-security-file-1.0.0 [created] b71ec3d05
  refs/tags/origin/origin/origin/origin/isis-security-shiro-1.0.0 [created] d7afb7606
  refs/tags/origin/origin/origin/origin/isis-security-shiro-1.1.0 [created] 340f5709d
  refs/tags/origin/origin/origin/origin/isis-viewer-restfulobjects-1.0.0 [created] e21e1f19f
  refs/tags/origin/origin/origin/origin/isis-viewer-wicket-1.0.0 [created] f12423d73
  refs/tags/origin/origin/origin/origin/isis-viewer-wicket-1.1.0 [created] e11c74411
  refs/tags/origin/origin/origin/origin/quickstart_wicket_restful_jdo-archetype-1.0.0 [created] cdb171f80
  refs/tags/origin/origin/origin/origin/quickstart_wicket_restful_jdo-archetype-1.0.1 [created] 86878f4c3
  refs/tags/origin/origin/origin/origin/quickstart_wicket_restful_jdo-archetype-1.0.2 [created] 87c2b682c
  refs/tags/origin/origin/origin/quickstart_wicket_restful_jdo-archetype-1.0.0-RC1 [created] cdb171f80
  refs/tags/origin/origin/origin/quickstart_wicket_restful_jdo-archetype-1.0.1-RC1 [created] e1c22b22a
  refs/tags/origin/origin/origin/quickstart_wicket_restful_jdo-archetype-1.0.1-RC2 [created] 86878f4c3
  refs/tags/origin/origin/quickstart_wicket_restful_jdo-archetype-1.0.2-RC1 [created] 87c2b682c
  refs/tags/origin/origin/upstream/isis-0.1.2-RC2-incubating [created] 073e279a0
  refs/tags/origin/origin/upstream/isis-0.1.2-RC3-incubating [created] 0b09a4c2e
  refs/tags/origin/origin/upstream/isis-0.1.2-RC4-incubating [created] 234a55fb5
  refs/tags/origin/origin/upstream/isis-0.1.2-incubating [created] 40c529018
  refs/tags/origin/origin/upstream/isis-0.2.0-incubating [created] 6dce716dd
  refs/tags/origin/origin/upstream/isis-1.0.0 [created] 53dddebcb
  refs/tags/origin/origin/upstream/isis-1.0.0-RC1 [created] 771f7e393
  refs/tags/origin/origin/upstream/isis-1.0.0-RC2 [created] 53dddebcb
  refs/tags/origin/origin/upstream/isis-1.1.0 [created] 4859004d0
  refs/tags/origin/origin/upstream/isis-objectstore-jdo-1.0.0 [created] 423f7a110
  refs/tags/origin/origin/upstream/isis-objectstore-jdo-1.0.0-RC1 [created] 1a2b468b2
  refs/tags/origin/origin/upstream/isis-objectstore-jdo-1.0.0-RC2 [created] 423f7a110
  refs/tags/origin/origin/upstream/isis-security-file-1.0.0 [created] b71ec3d05
  refs/tags/origin/origin/upstream/isis-security-file-1.0.0-RC1 [created] ad852d3ef
  refs/tags/origin/origin/upstream/isis-security-file-1.0.0-RC2 [created] b71ec3d05
  refs/tags/origin/origin/upstream/isis-security-shiro-1.0.0 [created] d7afb7606
  refs/tags/origin/origin/upstream/isis-security-shiro-1.0.0-RC1 [created] d7afb7606
  refs/tags/origin/origin/upstream/isis-security-shiro-1.1.0 [created] 340f5709d
  refs/tags/origin/origin/upstream/isis-viewer-restfulobjects-1.0.0 [created] e21e1f19f
  refs/tags/origin/origin/upstream/isis-viewer-restfulobjects-1.0.0-RC1 [created] 6916f21e3
  refs/tags/origin/origin/upstream/isis-viewer-restfulobjects-1.0.0-RC2 [created] e21e1f19f
  refs/tags/origin/origin/upstream/isis-viewer-wicket-1.0.0 [created] f12423d73
  refs/tags/origin/origin/upstream/isis-viewer-wicket-1.0.0-RC1 [created] 8f8a549a0
  refs/tags/origin/origin/upstream/isis-viewer-wicket-1.0.0-RC2 [created] f12423d73
  refs/tags/origin/origin/upstream/isis-viewer-wicket-1.1.0 [created] e11c74411
  refs/tags/origin/origin/upstream/origin/isis-0.1.2-RC2-incubating [created] 073e279a0
  refs/tags/origin/origin/upstream/origin/isis-0.1.2-RC3-incubating [created] 0b09a4c2e
  refs/tags/origin/origin/upstream/origin/isis-0.1.2-RC4-incubating [created] 234a55fb5
  refs/tags/origin/origin/upstream/origin/isis-0.1.2-incubating [created] 40c529018
  refs/tags/origin/origin/upstream/origin/isis-0.2.0-incubating [created] 6dce716dd
  refs/tags/origin/origin/upstream/origin/isis-1.0.0 [created] 53dddebcb
  refs/tags/origin/origin/upstream/origin/isis-1.0.0-RC1 [created] 771f7e393
  refs/tags/origin/origin/upstream/origin/isis-1.0.0-RC2 [created] 53dddebcb
  refs/tags/origin/origin/upstream/origin/isis-1.1.0 [created] 4859004d0
  refs/tags/origin/origin/upstream/origin/isis-objectstore-jdo-1.0.0 [created] 423f7a110
  refs/tags/origin/origin/upstream/origin/isis-objectstore-jdo-1.0.0-RC1 [created] 1a2b468b2
  refs/tags/origin/origin/upstream/origin/isis-objectstore-jdo-1.0.0-RC2 [created] 423f7a110
  refs/tags/origin/origin/upstream/origin/isis-security-file-1.0.0 [created] b71ec3d05
  refs/tags/origin/origin/upstream/origin/isis-security-file-1.0.0-RC1 [created] ad852d3ef
  refs/tags/origin/origin/upstream/origin/isis-security-file-1.0.0-RC2 [created] b71ec3d05
  refs/tags/origin/origin/upstream/origin/isis-security-shiro-1.0.0 [created] d7afb7606
  refs/tags/origin/origin/upstream/origin/isis-security-shiro-1.0.0-RC1 [created] d7afb7606
  refs/tags/origin/origin/upstream/origin/isis-security-shiro-1.1.0 [created] 340f5709d
  refs/tags/origin/origin/upstream/origin/isis-viewer-restfulobjects-1.0.0 [created] e21e1f19f
  refs/tags/origin/origin/upstream/origin/isis-viewer-restfulobjects-1.0.0-RC1 [created] 6916f21e3
  refs/tags/origin/origin/upstream/origin/isis-viewer-restfulobjects-1.0.0-RC2 [created] e21e1f19f
  refs/tags/origin/origin/upstream/origin/isis-viewer-wicket-1.0.0 [created] f12423d73
  refs/tags/origin/origin/upstream/origin/isis-viewer-wicket-1.0.0-RC1 [created] 8f8a549a0
  refs/tags/origin/origin/upstream/origin/isis-viewer-wicket-1.0.0-RC2 [created] f12423d73
  refs/tags/origin/origin/upstream/origin/isis-viewer-wicket-1.1.0 [created] e11c74411
  refs/tags/origin/origin/upstream/origin/origin/isis-0.1.2-RC2-incubating [created] 073e279a0
  refs/tags/origin/origin/upstream/origin/origin/isis-0.1.2-RC3-incubating [created] 0b09a4c2e
  refs/tags/origin/origin/upstream/origin/origin/isis-0.1.2-RC4-incubating [created] 234a55fb5
  refs/tags/origin/origin/upstream/origin/origin/isis-0.1.2-incubating [created] 40c529018
  refs/tags/origin/origin/upstream/origin/origin/isis-0.2.0-incubating [created] 6dce716dd
  refs/tags/origin/origin/upstream/origin/origin/isis-1.0.0 [created] 53dddebcb
  refs/tags/origin/origin/upstream/origin/origin/isis-1.1.0 [created] 4859004d0
  refs/tags/origin/origin/upstream/origin/origin/isis-objectstore-jdo-1.0.0 [created] 423f7a110
  refs/tags/origin/origin/upstream/origin/origin/isis-security-file-1.0.0 [created] b71ec3d05
  refs/tags/origin/origin/upstream/origin/origin/isis-security-shiro-1.0.0 [created] d7afb7606
  refs/tags/origin/origin/upstream/origin/origin/isis-security-shiro-1.1.0 [created] 340f5709d
  refs/tags/origin/origin/upstream/origin/origin/isis-viewer-restfulobjects-1.0.0 [created] e21e1f19f
  refs/tags/origin/origin/upstream/origin/origin/isis-viewer-wicket-1.0.0 [created] f12423d73
  refs/tags/origin/origin/upstream/origin/origin/isis-viewer-wicket-1.1.0 [created] e11c74411
  refs/tags/origin/origin/upstream/origin/origin/quickstart_wicket_restful_jdo-archetype-1.0.0 [created] cdb171f80
  refs/tags/origin/origin/upstream/origin/origin/quickstart_wicket_restful_jdo-archetype-1.0.1 [created] 86878f4c3
  refs/tags/origin/origin/upstream/origin/origin/quickstart_wicket_restful_jdo-archetype-1.0.2 [created] 87c2b682c
  refs/tags/origin/origin/upstream/origin/quickstart_wicket_restful_jdo-archetype-1.0.0 [created] cdb171f80
  refs/tags/origin/origin/upstream/origin/quickstart_wicket_restful_jdo-archetype-1.0.0-RC1 [created] cdb171f80
  refs/tags/origin/origin/upstream/origin/quickstart_wicket_restful_jdo-archetype-1.0.1 [created] 86878f4c3
  refs/tags/origin/origin/upstream/origin/quickstart_wicket_restful_jdo-archetype-1.0.1-RC1 [created] e1c22b22a
  refs/tags/origin/origin/upstream/origin/quickstart_wicket_restful_jdo-archetype-1.0.1-RC2 [created] 86878f4c3
  refs/tags/origin/origin/upstream/origin/quickstart_wicket_restful_jdo-archetype-1.0.2 [created] 87c2b682c
  refs/tags/origin/origin/upstream/quickstart_wicket_restful_jdo-archetype-1.0.0 [created] cdb171f80
  refs/tags/origin/origin/upstream/quickstart_wicket_restful_jdo-archetype-1.0.0-RC1 [created] cdb171f80
  refs/tags/origin/origin/upstream/quickstart_wicket_restful_jdo-archetype-1.0.1 [created] 86878f4c3
  refs/tags/origin/origin/upstream/quickstart_wicket_restful_jdo-archetype-1.0.1-RC1 [created] e1c22b22a
  refs/tags/origin/origin/upstream/quickstart_wicket_restful_jdo-archetype-1.0.1-RC2 [created] 86878f4c3
  refs/tags/origin/origin/upstream/quickstart_wicket_restful_jdo-archetype-1.0.2 [created] 87c2b682c


ISIS-351, ISIS-379, ISIS-380: remove RecognizedException, move AuditServiceDemo to JDO, enhance BookmarkService

* removed RecognizedException; there's no need for it (it isn't used anywhere) and just complicates the programming model.  Instead, applications should continue to throw the Isis applib's ApplicationException
* moved AuditServiceDemo into JDO objectstore, and renamed to AuditingServiceJdo
* enhanced BookmarkService API so that allows a domain object to be looked up directly, rather than requiring there to be a BookmarkHolder impl
* registered BookmarkServiceDefault with ToDo app services (example for quickstart)
* registered RegisterEntities with ToDo app services (example for quickstart)


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

Branch: refs/heads/master
Commit: 39500cd19c01ef7ab32920813604f81101c040b5
Parents: 06f2b0f
Author: Dan Haywood <da...@apache.org>
Authored: Thu Mar 28 10:23:17 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Thu Mar 28 10:23:17 2013 +0000

----------------------------------------------------------------------
 .../jdo/applib/service/audit/AuditEntry.java       |  133 +++++++++++++++
 .../applib/service/audit/AuditingServiceJdo.java   |   45 +++++
 .../applib/services/bookmark/BookmarkService.java  |    3 +
 .../services/exceprecog/RecognizedException.java   |   43 -----
 .../services/bookmarks/BookmarkServiceDefault.java |    5 +
 .../container/DomainObjectContainerDefault.java    |    2 -
 ...omainObjectContainerDefaultTest_recognizes.java |    7 -
 .../dom/src/main/java/dom/audit/AuditEntry.java    |  133 ---------------
 .../src/main/java/dom/audit/AuditServiceDemo.java  |   45 -----
 .../src/main/webapp/WEB-INF/isis.properties        |    1 +
 .../WEB-INF/persistor_datanucleus.properties       |   10 +-
 11 files changed, 196 insertions(+), 231 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/39500cd1/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/audit/AuditEntry.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/audit/AuditEntry.java b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/audit/AuditEntry.java
new file mode 100644
index 0000000..ad74fc4
--- /dev/null
+++ b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/audit/AuditEntry.java
@@ -0,0 +1,133 @@
+/*
+ *  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.objectstore.jdo.applib.service.audit;
+
+import javax.jdo.annotations.IdGeneratorStrategy;
+import javax.jdo.annotations.IdentityType;
+
+import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.applib.annotation.Immutable;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.applib.services.bookmark.BookmarkHolder;
+import org.apache.isis.applib.value.DateTime;
+
+@javax.jdo.annotations.PersistenceCapable(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.DatastoreIdentity(strategy=IdGeneratorStrategy.UUIDHEX)
+@Immutable
+public class AuditEntry implements BookmarkHolder {
+
+    // {{ TimestampUtc (property)
+    private Long timestampEpoch;
+
+    @Hidden
+    public Long getTimestampEpoch() {
+        return timestampEpoch;
+    }
+
+    public void setTimestampEpoch(final Long timestampEpoch) {
+        this.timestampEpoch = timestampEpoch;
+    }
+    // }}
+    
+    // {{ Timestamp (property)
+    @Title(sequence="1")
+    @MemberOrder(sequence = "1")
+    public DateTime getTimestamp() {
+        return timestampEpoch != null? new DateTime(timestampEpoch): null;
+    }
+
+    // }}
+    
+    // {{ User (property)
+    private String user;
+
+    @MemberOrder(sequence = "2")
+    public String getUser() {
+        return user;
+    }
+
+    public void setUser(final String user) {
+        this.user = user;
+    }
+    // }}
+
+    // {{ ObjectType (property)
+    private String objectType;
+
+    @Title(sequence="3", prepend=":")
+    @MemberOrder(sequence = "3")
+    public String getObjectType() {
+        return objectType;
+    }
+
+    public void setObjectType(final String objectType) {
+        this.objectType = objectType;
+    }
+    // }}
+
+    // {{ Identifier (property)
+    private String identifier;
+
+    @MemberOrder(sequence = "4")
+    public String getIdentifier() {
+        return identifier;
+    }
+
+    public void setIdentifier(final String identifier) {
+        this.identifier = identifier;
+    }
+    // }}
+    
+    // {{ PreValue (property)
+    private String preValue;
+
+    @MemberOrder(sequence = "5")
+    public String getPreValue() {
+        return preValue;
+    }
+
+    public void setPreValue(final String preValue) {
+        this.preValue = preValue;
+    }
+    // }}
+
+    // {{ PostValue (property)
+    private String postValue;
+
+    @MemberOrder(sequence = "6")
+    public String getPostValue() {
+        return postValue;
+    }
+
+    public void setPostValue(final String postValue) {
+        this.postValue = postValue;
+    }
+    // }}
+
+    // {{ bookmark (action)
+    @Override
+    @Programmatic
+    public Bookmark bookmark() {
+        return new Bookmark(getObjectType(), getIdentifier());
+    }
+    // }}
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/39500cd1/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/audit/AuditingServiceJdo.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/audit/AuditingServiceJdo.java b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/audit/AuditingServiceJdo.java
new file mode 100644
index 0000000..ccd1511
--- /dev/null
+++ b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/audit/AuditingServiceJdo.java
@@ -0,0 +1,45 @@
+/*
+ *  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.objectstore.jdo.applib.service.audit;
+
+import java.util.List;
+
+import org.apache.isis.applib.AbstractFactoryAndRepository;
+import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.objectstore.jdo.applib.AuditService;
+
+public class AuditingServiceJdo extends AbstractFactoryAndRepository  implements AuditService {
+    
+    public List<AuditEntry> list() {
+        return allInstances(AuditEntry.class);
+    }
+    
+    @Hidden
+    public void audit(String user, long currentTimestampEpoch, String objectType, String identifier, String preValue, String postValue) {
+        AuditEntry auditEntry = newTransientInstance(AuditEntry.class);
+        auditEntry.setTimestampEpoch(currentTimestampEpoch);
+        auditEntry.setUser(user);
+        auditEntry.setObjectType(objectType);
+        auditEntry.setIdentifier(identifier);
+        auditEntry.setPreValue(preValue);
+        auditEntry.setPostValue(postValue);
+        persist(auditEntry);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/39500cd1/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkService.java b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkService.java
index f6f3f66..d7fedf3 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkService.java
@@ -29,6 +29,9 @@ public interface BookmarkService {
     Object lookup(BookmarkHolder bookmarkHolder);
 
     @Hidden
+    Object lookup(Bookmark bookmarkHolder);
+
+    @Hidden
     Bookmark bookmarkFor(Object domainObject);
     
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/39500cd1/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/RecognizedException.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/RecognizedException.java b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/RecognizedException.java
deleted file mode 100644
index 2acce4f..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/RecognizedException.java
+++ /dev/null
@@ -1,43 +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.services.exceprecog;
-
-/**
- * An exception that will be recognized by the framework
- * and handled as a regular validation message.
- * 
- * <p>
- * See {@link ExceptionRecognizer} for further
- * discussion. 
- * 
- * @see ExceptionRecognizer
- */
-public class RecognizedException extends RuntimeException {
-
-    private static final long serialVersionUID = 1L;
-
-    public RecognizedException(String message, Throwable ex) {
-        super(message, ex);
-    }
-
-    public RecognizedException(String message) {
-        super(message);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/39500cd1/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceDefault.java
index c1146bb..1dc97e9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceDefault.java
@@ -35,6 +35,11 @@ public class BookmarkServiceDefault implements BookmarkService, DomainObjectServ
     @NotInServiceMenu
     public Object lookup(BookmarkHolder bookmarkHolder) {
         Bookmark bookmark = bookmarkHolder.bookmark();
+        return lookup(bookmark);
+    }
+
+    @Hidden
+    public Object lookup(Bookmark bookmark) {
         Object lookup = domainObjectServices.lookup(bookmark);
         return lookup;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/39500cd1/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 32cfc0f..5be28f8 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
@@ -33,7 +33,6 @@ import org.apache.isis.applib.security.UserMemento;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerForType;
-import org.apache.isis.applib.services.exceprecog.RecognizedException;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAware;
@@ -450,7 +449,6 @@ public class  DomainObjectContainerDefault implements DomainObjectContainer, Que
     
     private final ExceptionRecognizer recognizer = 
             new ExceptionRecognizerComposite(
-                    new ExceptionRecognizerForType(RecognizedException.class),
                     new ExceptionRecognizerForConcurrencyException()
                 );
     

http://git-wip-us.apache.org/repos/asf/isis/blob/39500cd1/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefaultTest_recognizes.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefaultTest_recognizes.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefaultTest_recognizes.java
index 26085e0..eb8d853 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefaultTest_recognizes.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefaultTest_recognizes.java
@@ -9,7 +9,6 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
-import org.apache.isis.applib.services.exceprecog.RecognizedException;
 import org.apache.isis.core.metamodel.adapter.oid.RootOidDefault;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
@@ -41,12 +40,6 @@ public class DomainObjectContainerDefaultTest_recognizes {
     }
 
     @Test
-    public void whenRecognizedException_is_recognized() throws Exception {
-        ex = new RecognizedException("foo");
-        assertThat(container.recognize(ex), is(not(nullValue())));
-    }
-
-    @Test
     public void whenSomeRandomException_is_not_recognized() throws Exception {
         ex = new SomeRandomException();
         assertThat(container.recognize(ex), is(nullValue()));

http://git-wip-us.apache.org/repos/asf/isis/blob/39500cd1/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/audit/AuditEntry.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/audit/AuditEntry.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/audit/AuditEntry.java
deleted file mode 100644
index b6978e1..0000000
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/audit/AuditEntry.java
+++ /dev/null
@@ -1,133 +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 dom.audit;
-
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.IdentityType;
-
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.applib.annotation.Immutable;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.annotation.Title;
-import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.applib.services.bookmark.BookmarkHolder;
-import org.apache.isis.applib.value.DateTime;
-
-@javax.jdo.annotations.PersistenceCapable(identityType=IdentityType.DATASTORE)
-@javax.jdo.annotations.DatastoreIdentity(strategy=IdGeneratorStrategy.UUIDHEX)
-@Immutable
-public class AuditEntry implements BookmarkHolder {
-
-    // {{ TimestampUtc (property)
-    private Long timestampEpoch;
-
-    @Hidden
-    public Long getTimestampEpoch() {
-        return timestampEpoch;
-    }
-
-    public void setTimestampEpoch(final Long timestampEpoch) {
-        this.timestampEpoch = timestampEpoch;
-    }
-    // }}
-    
-    // {{ Timestamp (property)
-    @Title(sequence="1")
-    @MemberOrder(sequence = "1")
-    public DateTime getTimestamp() {
-        return timestampEpoch != null? new DateTime(timestampEpoch): null;
-    }
-
-    // }}
-    
-    // {{ User (property)
-    private String user;
-
-    @MemberOrder(sequence = "2")
-    public String getUser() {
-        return user;
-    }
-
-    public void setUser(final String user) {
-        this.user = user;
-    }
-    // }}
-
-    // {{ ObjectType (property)
-    private String objectType;
-
-    @Title(sequence="3", prepend=":")
-    @MemberOrder(sequence = "3")
-    public String getObjectType() {
-        return objectType;
-    }
-
-    public void setObjectType(final String objectType) {
-        this.objectType = objectType;
-    }
-    // }}
-
-    // {{ Identifier (property)
-    private String identifier;
-
-    @MemberOrder(sequence = "4")
-    public String getIdentifier() {
-        return identifier;
-    }
-
-    public void setIdentifier(final String identifier) {
-        this.identifier = identifier;
-    }
-    // }}
-    
-    // {{ PreValue (property)
-    private String preValue;
-
-    @MemberOrder(sequence = "5")
-    public String getPreValue() {
-        return preValue;
-    }
-
-    public void setPreValue(final String preValue) {
-        this.preValue = preValue;
-    }
-    // }}
-
-    // {{ PostValue (property)
-    private String postValue;
-
-    @MemberOrder(sequence = "6")
-    public String getPostValue() {
-        return postValue;
-    }
-
-    public void setPostValue(final String postValue) {
-        this.postValue = postValue;
-    }
-    // }}
-
-    // {{ bookmark (action)
-    @Override
-    @Programmatic
-    public Bookmark bookmark() {
-        return new Bookmark(getObjectType(), getIdentifier());
-    }
-    // }}
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/39500cd1/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/audit/AuditServiceDemo.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/audit/AuditServiceDemo.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/audit/AuditServiceDemo.java
deleted file mode 100644
index 9fcb203..0000000
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/audit/AuditServiceDemo.java
+++ /dev/null
@@ -1,45 +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 dom.audit;
-
-import java.util.List;
-
-import org.apache.isis.applib.AbstractFactoryAndRepository;
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.objectstore.jdo.applib.AuditService;
-
-public class AuditServiceDemo extends AbstractFactoryAndRepository  implements AuditService {
-    
-    public List<AuditEntry> list() {
-        return allInstances(AuditEntry.class);
-    }
-    
-    @Hidden
-    public void audit(String user, long currentTimestampEpoch, String objectType, String identifier, String preValue, String postValue) {
-        AuditEntry auditEntry = newTransientInstance(AuditEntry.class);
-        auditEntry.setTimestampEpoch(currentTimestampEpoch);
-        auditEntry.setUser(user);
-        auditEntry.setObjectType(objectType);
-        auditEntry.setIdentifier(identifier);
-        auditEntry.setPreValue(preValue);
-        auditEntry.setPostValue(postValue);
-        persist(auditEntry);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/39500cd1/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/isis.properties b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
index 4fea83e..7117145 100644
--- a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
@@ -161,6 +161,7 @@ isis.user-profile-store=in-memory
 #isis.services.prefix = 
 isis.services = objstore.jdo.todo.ToDoItemsJdo,\
                 fixture.todo.ToDoItemsFixturesService,\
+                org.apache.isis.core.metamodel.services.bookmarks.BookmarkServiceDefault,\
                 org.apache.isis.objectstore.jdo.service.RegisterEntities,\
                 org.apache.isis.objectstore.jdo.applib.service.exceprecog.ExceptionRecognizerCompositeForJdoObjectStore,\
                 org.apache.isis.viewer.restfulobjects.rendering.eventserializer.RestfulObjectsSpecEventSerializer,\

http://git-wip-us.apache.org/repos/asf/isis/blob/39500cd1/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
index e061e4f..d0b06d0 100644
--- a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
+++ b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
@@ -16,9 +16,17 @@
 #  under the License.
 
 #
-# configuration file for the JDO objectstore
+# configuration file for the JDO/DataNucleus objectstore
 #
 
+# identifies @PersistenceCapable entities to be eagerly registered
+# if move class to other package (eg com.mycompany.myapp.dom) then update 
+isis.persistor.datanucleus.RegisterEntities.packagePrefix=dom
+
+
+#
+# DataNucleus' configuration
+#
 isis.persistor.datanucleus.impl.javax.jdo.PersistenceManagerFactoryClass=org.datanucleus.api.jdo.JDOPersistenceManagerFactory
 isis.persistor.datanucleus.impl.datanucleus.autoCreateSchema=true
 isis.persistor.datanucleus.impl.datanucleus.validateTables=true