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/04/03 18:46:08 UTC

git commit: ISIS-377: added EventType to EventMetadata; renamed "ChangedObject..." to "ObjectChanged..."

Updated Branches:
  refs/heads/master c392f8f2c -> 62f7ab153


ISIS-377: added EventType to EventMetadata; renamed "ChangedObject..." to "ObjectChanged..."


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

Branch: refs/heads/master
Commit: 62f7ab153d617ddc15b7ea073592a7e0594c1b4e
Parents: c392f8f
Author: Dan Haywood <da...@apache.org>
Authored: Wed Apr 3 17:29:50 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Wed Apr 3 17:29:50 2013 +0100

----------------------------------------------------------------------
 .../jdo/applib/service/publish/PublishedEvent.java |   83 ++++++++++++---
 .../service/publish/PublishingServiceJdo.java      |   25 +++--
 .../RestfulObjectsSpecEventSerializer.java         |    1 +
 .../applib/services/publish/EventMetadata.java     |    7 +-
 .../publish/EventPayloadForActionInvocation.java   |    5 +-
 .../publish/EventPayloadForChangedObject.java      |   37 -------
 .../publish/EventPayloadForObjectChanged.java      |   37 +++++++
 .../applib/services/publish/EventSerializer.java   |    9 ++-
 .../isis/applib/services/publish/EventType.java    |    6 +
 .../applib/services/publish/ObjectStringifier.java |    2 +-
 .../services/publish/EventMetadataTest_getId.java  |    3 +-
 .../system/transaction/IsisTransaction.java        |    9 +-
 .../system/transaction/IsisTransactionManager.java |    6 +-
 .../dom/todo/ToDoItemChangedPayloadFactory.java    |    4 +-
 .../viewer-webapp/pom.xml                          |    9 --
 15 files changed, 160 insertions(+), 83 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/publish/PublishedEvent.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/publish/PublishedEvent.java b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/publish/PublishedEvent.java
index edc1ee1..cdfed2f 100644
--- a/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/publish/PublishedEvent.java
+++ b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/publish/PublishedEvent.java
@@ -3,13 +3,19 @@ package org.apache.isis.objectstore.jdo.applib.service.publish;
 import javax.jdo.annotations.IdentityType;
 import javax.jdo.annotations.Persistent;
 
+import org.apache.isis.applib.DomainObjectContainer;
+import org.apache.isis.applib.annotation.ActionSemantics;
+import org.apache.isis.applib.annotation.Bulk;
 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.MultiLine;
+import org.apache.isis.applib.annotation.NotInServiceMenu;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.annotation.Title;
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.annotation.ActionSemantics.Of;
+import org.apache.isis.applib.services.publish.EventType;
 
 @javax.jdo.annotations.PersistenceCapable(identityType=IdentityType.APPLICATION)
 @javax.jdo.annotations.Queries( {
@@ -17,9 +23,6 @@ import org.apache.isis.applib.annotation.Where;
             name="publishedevent_of_state", language="JDOQL",  
             value="SELECT FROM org.apache.isis.objectstore.jdo.applib.service.publish.PublishedEvent WHERE state == :state ORDER BY timestamp")
 })
-//@javax.jdo.annotations.Indices({
-//    @javax.jdo.annotations.Index(members={"timestamp,transactionId,sequence"})
-//})
 @Immutable
 public class PublishedEvent {
 
@@ -104,18 +107,50 @@ public class PublishedEvent {
     // }}
 
 
-    // {{ User (property)
-    private String user;
+    // {{ EventType (property)
+    private EventType eventType;
 
     @MemberOrder(sequence = "3")
+    public EventType getEventType() {
+        return eventType;
+    }
+
+    public void setEventType(final EventType eventType) {
+        this.eventType = eventType;
+    }
+    // }}
+
+    
+    // {{ User (property)
+    private String user;
+    
+    @MemberOrder(sequence = "4")
     public String getUser() {
         return user;
     }
-
+    
     public void setUser(final String user) {
         this.user = user;
     }
     // }}
+    
+    
+    // {{ State (property)
+    private State state;
+
+    @MemberOrder(sequence = "5")
+    public State getState() {
+        return state;
+    }
+
+    public void setState(final State state) {
+        this.state = state;
+    }
+    private PublishedEvent setStateAndReturn(State state) {
+        setState(state);
+        return this;
+    }
+    // }}
 
     
     // {{ SerializedForm (property)
@@ -124,7 +159,7 @@ public class PublishedEvent {
 
     @MultiLine(numberOfLines=20)
     @Hidden(where=Where.ALL_TABLES)
-    @MemberOrder(sequence = "5")
+    @MemberOrder(sequence = "6")
     public String getSerializedForm() {
         return serializedForm;
     }
@@ -134,17 +169,37 @@ public class PublishedEvent {
     }
     // }}
 
-    // {{ State (property)
-    private State state;
+    @Bulk
+    @ActionSemantics(Of.IDEMPOTENT)
+    @MemberOrder(sequence="10")
+    public PublishedEvent processed() {
+        return setStateAndReturn(State.PROCESSED);
+    }
 
-    @MemberOrder(sequence = "4")
-    public State getState() {
-        return state;
+
+    @Bulk
+    @ActionSemantics(Of.IDEMPOTENT)
+    @MemberOrder(sequence="11")
+    public PublishedEvent reQueue() {
+        return setStateAndReturn(State.QUEUED);
     }
 
-    public void setState(final State state) {
-        this.state = state;
+    @Bulk
+    @MemberOrder(sequence="12")
+    public void delete() {
+        container.removeIfNotAlready(this);
+    }
+    
+
+    // {{ injected: DomainObjectContainer
+    private DomainObjectContainer container;
+
+    public void setDomainObjectContainer(final DomainObjectContainer container) {
+        this.container = container;
     }
     // }}
 
+
+
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/publish/PublishingServiceJdo.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/publish/PublishingServiceJdo.java b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/publish/PublishingServiceJdo.java
index f2a45b8..898d5e0 100644
--- a/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/publish/PublishingServiceJdo.java
+++ b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/publish/PublishingServiceJdo.java
@@ -5,8 +5,10 @@ import java.util.List;
 import org.apache.isis.applib.AbstractService;
 import org.apache.isis.applib.annotation.ActionSemantics;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
+import org.apache.isis.applib.annotation.Bulk;
 import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.NotInServiceMenu;
 import org.apache.isis.applib.query.QueryDefault;
 import org.apache.isis.applib.services.publish.EventMetadata;
 import org.apache.isis.applib.services.publish.EventPayload;
@@ -31,6 +33,7 @@ public class PublishingServiceJdo extends AbstractService implements PublishingS
         publishedEvent.setId(metadata.getId());
         publishedEvent.setTransactionId(metadata.getTransactionId().toString());
         publishedEvent.setSequence(metadata.getSequence());
+        publishedEvent.setEventType(metadata.getEventType());
         publishedEvent.setTimestamp(metadata.getTimestamp());
         publishedEvent.setUser(metadata.getUser());
         publishedEvent.setTitle(metadata.getTitle());
@@ -46,18 +49,24 @@ public class PublishingServiceJdo extends AbstractService implements PublishingS
                         "state", PublishedEvent.State.QUEUED));
     }
 
-    @ActionSemantics(Of.IDEMPOTENT)
+    @ActionSemantics(Of.SAFE)
     @MemberOrder(sequence="2")
-    public PublishedEvent processed(PublishedEvent publishedEvent) {
-        publishedEvent.setState(State.PROCESSED);
-        return publishedEvent;
+    public List<PublishedEvent> processedEvents() {
+        return allMatches(
+                new QueryDefault<PublishedEvent>(PublishedEvent.class, 
+                        "publishedevent_of_state", 
+                        "state", PublishedEvent.State.PROCESSED));
     }
 
-    @ActionSemantics(Of.IDEMPOTENT)
+    @ActionSemantics(Of.SAFE)
     @MemberOrder(sequence="3")
-    public PublishedEvent reQueue(PublishedEvent publishedEvent) {
-        publishedEvent.setState(State.QUEUED);
-        return publishedEvent;
+    public void purgeProcessed() {
+        // REVIEW: this is not particularly performant.
+        // much better would be to go direct to the JDO API.
+        List<PublishedEvent> processedEvents = processedEvents();
+        for (PublishedEvent publishedEvent : processedEvents) {
+            publishedEvent.delete();
+        }
     }
 
     @Hidden

http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/eventserializer/RestfulObjectsSpecEventSerializer.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/eventserializer/RestfulObjectsSpecEventSerializer.java b/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/eventserializer/RestfulObjectsSpecEventSerializer.java
index 332780b..f92ab8e 100644
--- a/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/eventserializer/RestfulObjectsSpecEventSerializer.java
+++ b/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/eventserializer/RestfulObjectsSpecEventSerializer.java
@@ -60,6 +60,7 @@ public class RestfulObjectsSpecEventSerializer implements EventSerializer {
         metadataRepr.mapPut("id", metadata.getId());
         metadataRepr.mapPut("transactionId", metadata.getTransactionId());
         metadataRepr.mapPut("sequence", metadata.getSequence());
+        metadataRepr.mapPut("eventType", metadata.getEventType());
         metadataRepr.mapPut("user", metadata.getUser());
         metadataRepr.mapPut("timestamp", metadata.getTimestamp());
         eventRepr.mapPut("payload", payloadRepr);

http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventMetadata.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventMetadata.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventMetadata.java
index f387a54..36d105a 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventMetadata.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventMetadata.java
@@ -17,13 +17,15 @@ public class EventMetadata {
     private final String user;
     private final long timestamp;
     private final String title;
+    private final EventType eventType;
     
-    public EventMetadata(UUID transactionId, int sequence, String user, long timestamp, String title) {
+    public EventMetadata(UUID transactionId, int sequence, EventType eventType, String user, long timestamp, String title) {
         this.transactionId = transactionId;
         this.sequence = sequence;
         this.user = user;
         this.timestamp = timestamp;
         this.title = title;
+        this.eventType = eventType;
     }
     
     /**
@@ -77,6 +79,9 @@ public class EventMetadata {
         return title;
     }
 
+    public EventType getEventType() {
+        return eventType;
+    }
     
     @Override
     public String toString() {

http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForActionInvocation.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForActionInvocation.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForActionInvocation.java
index d53649a..db9f052 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForActionInvocation.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForActionInvocation.java
@@ -30,7 +30,7 @@ public class EventPayloadForActionInvocation<T> implements EventPayload {
         this.arguments = arguments != null? arguments: Collections.emptyList();
         this.result = result;
     }
-    
+
     @Programmatic
     public EventPayloadForActionInvocation<T> with(ObjectStringifier stringifier) {
         this.stringifier = stringifier;
@@ -129,7 +129,7 @@ public class EventPayloadForActionInvocation<T> implements EventPayload {
     @Override
     public String toString() {
         final StringBuilder buf = new StringBuilder();
-        buf.append("ACTION:").append(getActionName());
+        buf.append(EventType.ACTION_INVOCATION + ":").append(getActionName());
         buf.append("\n    target=").append(stringifier.toString(target));
         buf.append("\n      args=[");
         for (Object arg : arguments) {
@@ -140,4 +140,5 @@ public class EventPayloadForActionInvocation<T> implements EventPayload {
         buf.append("\n    result=").append(stringifiedResult != null ? stringifiedResult : "void");
         return buf.toString();
     }
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForChangedObject.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForChangedObject.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForChangedObject.java
deleted file mode 100644
index 51b2209..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForChangedObject.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.apache.isis.applib.services.publish;
-
-import org.apache.isis.applib.annotation.NotPersistable;
-import org.apache.isis.applib.annotation.Programmatic;
-
-/**
- * An immutable pojo that simply references some other (persistent) object.
- * 
- * <p>
- * This class is annotated as a domain object for the benefit of the
- * <tt>RestfulObjectsSpecEventSerializer</tt>.
- */
-@NotPersistable
-public class EventPayloadForChangedObject<T> implements EventPayload {
-    
-    private final T changed;
-    private ObjectStringifier stringifier = new ObjectStringifier.Simple();
-
-    public EventPayloadForChangedObject(T changed) {
-        this.changed = changed;
-    }
-
-    @Programmatic
-    public EventPayloadForChangedObject<T> with(ObjectStringifier stringifier) {
-        this.stringifier = stringifier;
-        return this;
-    }
-
-    public T getChanged() {
-        return changed;
-    }
-    
-    @Override
-    public String toString() {
-        return "CHANGED_OBJECT:"+ stringifier.toString(changed);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForObjectChanged.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForObjectChanged.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForObjectChanged.java
new file mode 100644
index 0000000..c717d27
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForObjectChanged.java
@@ -0,0 +1,37 @@
+package org.apache.isis.applib.services.publish;
+
+import org.apache.isis.applib.annotation.NotPersistable;
+import org.apache.isis.applib.annotation.Programmatic;
+
+/**
+ * An immutable pojo that simply references some other (persistent) object.
+ * 
+ * <p>
+ * This class is annotated as a domain object for the benefit of the
+ * <tt>RestfulObjectsSpecEventSerializer</tt>.
+ */
+@NotPersistable
+public class EventPayloadForObjectChanged<T> implements EventPayload {
+    
+    private final T changed;
+    private ObjectStringifier stringifier = new ObjectStringifier.Simple();
+
+    public EventPayloadForObjectChanged(T changed) {
+        this.changed = changed;
+    }
+
+    @Programmatic
+    public EventPayloadForObjectChanged<T> with(ObjectStringifier stringifier) {
+        this.stringifier = stringifier;
+        return this;
+    }
+
+    public T getChanged() {
+        return changed;
+    }
+    
+    @Override
+    public String toString() {
+        return EventType.OBJECT_CHANGED + ":"+ stringifier.toString(changed);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventSerializer.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventSerializer.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventSerializer.java
index 13008df..1b94741 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventSerializer.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventSerializer.java
@@ -26,7 +26,14 @@ public interface EventSerializer {
         @Programmatic
         @Override
         public Object serialize(EventMetadata metadata, EventPayload payload) {
-            return "PUBLISHED: \n    metadata: " + metadata.getId() + ":" + metadata.getUser() + ":" + metadata.getTimestamp() + ":    payload:s\n"+ payload.toString();
+            return "PUBLISHED:" +
+            		"\n  metadata:" + 
+                    "\n    id       :" + metadata.getId() + 
+                    "\n    eventType:" + metadata.getEventType() + 
+                    "\n    user     :" + metadata.getUser() + 
+                    "\n    timestamp:" + metadata.getTimestamp() + 
+                    "\n  payload:" +
+                    "\n" + payload.toString();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventType.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventType.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventType.java
new file mode 100644
index 0000000..31f4166
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventType.java
@@ -0,0 +1,6 @@
+package org.apache.isis.applib.services.publish;
+
+public enum EventType {
+    ACTION_INVOCATION,
+    OBJECT_CHANGED
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/core/applib/src/main/java/org/apache/isis/applib/services/publish/ObjectStringifier.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/ObjectStringifier.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/ObjectStringifier.java
index b329756..729cd12 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/publish/ObjectStringifier.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/ObjectStringifier.java
@@ -2,7 +2,7 @@ package org.apache.isis.applib.services.publish;
 
 
 /**
- * To optionally configure the way that {@link EventPayloadForChangedObject} and {@link EventPayloadForActionInvocation}
+ * To optionally configure the way that {@link EventPayloadForObjectChanged} and {@link EventPayloadForActionInvocation}
  * create the <tt>toString()</tt> form of their contents.
  */
 public interface ObjectStringifier {

http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/core/applib/src/test/java/org/apache/isis/applib/services/publish/EventMetadataTest_getId.java
----------------------------------------------------------------------
diff --git a/core/applib/src/test/java/org/apache/isis/applib/services/publish/EventMetadataTest_getId.java b/core/applib/src/test/java/org/apache/isis/applib/services/publish/EventMetadataTest_getId.java
index 8efa679..fb332c1 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/services/publish/EventMetadataTest_getId.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/services/publish/EventMetadataTest_getId.java
@@ -16,7 +16,7 @@ public class EventMetadataTest_getId {
         String user = "fred";
         long timestamp = 1364120978631L;
         String title = "some title";
-        EventMetadata eventMetadata = new EventMetadata(transactionId, sequence, user, timestamp, title);
+        EventMetadata eventMetadata = new EventMetadata(transactionId, sequence, EventType.ACTION_INVOCATION, user, timestamp, title);
         
         assertThat(eventMetadata.getTransactionId(), is(UUID.fromString("1bd8e5d4-2d67-4395-b5e8-d74acd766766")));
         assertThat(eventMetadata.getSequence(), is(2));
@@ -24,6 +24,7 @@ public class EventMetadataTest_getId {
         assertThat(eventMetadata.getTimestamp(), is(1364120978631L));
         assertThat(eventMetadata.getId(), is("1bd8e5d4-2d67-4395-b5e8-d74acd766766.2"));
         assertThat(eventMetadata.getTitle(), is("some title"));
+        assertThat(eventMetadata.getEventType(), is(EventType.ACTION_INVOCATION));
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/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 ee14acf..8f3b1e8 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.clock.Clock;
 import org.apache.isis.applib.services.audit.AuditingService;
 import org.apache.isis.applib.services.publish.EventMetadata;
+import org.apache.isis.applib.services.publish.EventType;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.components.TransactionScopedComponent;
 import org.apache.isis.core.commons.ensure.Ensure;
@@ -419,7 +420,7 @@ public class IsisTransaction implements TransactionScopedComponent {
             final String oidStr = getOidMarshaller().marshal(adapterOid);
             final String title = oidStr + ": " + currentInvocation.getAction().getIdentifier().toNameParmsIdentityString();
             
-            final EventMetadata metadata = newEventMetadata(currentUser, currentTimestampEpoch, title);
+            final EventMetadata metadata = newEventMetadata(EventType.ACTION_INVOCATION, currentUser, currentTimestampEpoch, title);
             publishingService.publishAction(payloadFactory, metadata, currentInvocation);
         } finally {
             ActionInvocationFacet.currentInvocation.set(null);
@@ -438,7 +439,7 @@ public class IsisTransaction implements TransactionScopedComponent {
             final String oidStr = getOidMarshaller().marshal(adapterOid);
             final String title = oidStr;
 
-            final EventMetadata metadata = newEventMetadata(currentUser, currentTimestampEpoch, title);
+            final EventMetadata metadata = newEventMetadata(EventType.OBJECT_CHANGED, currentUser, currentTimestampEpoch, title);
 
             publishingService.publishObject(payloadFactory, metadata, changedAdapter);
         }
@@ -448,8 +449,8 @@ public class IsisTransaction implements TransactionScopedComponent {
         return Clock.getTime();
     }
 
-    private EventMetadata newEventMetadata(final String currentUser, final long currentTimestampEpoch, String title) {
-        return new EventMetadata(getGuid(), nextEventSequence(), currentUser, currentTimestampEpoch, title);
+    private EventMetadata newEventMetadata(EventType eventType, final String currentUser, final long currentTimestampEpoch, String title) {
+        return new EventMetadata(getGuid(), nextEventSequence(), eventType, currentUser, currentTimestampEpoch, title);
     }
 
     private int nextEventSequence() {

http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
index 31f601c..706ac90 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
@@ -36,7 +36,7 @@ import org.apache.isis.applib.annotation.PublishedObject;
 import org.apache.isis.applib.services.audit.AuditingService;
 import org.apache.isis.applib.services.publish.EventPayload;
 import org.apache.isis.applib.services.publish.EventPayloadForActionInvocation;
-import org.apache.isis.applib.services.publish.EventPayloadForChangedObject;
+import org.apache.isis.applib.services.publish.EventPayloadForObjectChanged;
 import org.apache.isis.applib.services.publish.EventSerializer;
 import org.apache.isis.applib.services.publish.ObjectStringifier;
 import org.apache.isis.applib.services.publish.PublishingService;
@@ -461,7 +461,7 @@ public class IsisTransactionManager implements SessionScopedComponent {
         return new PublishedObject.PayloadFactory() {
             @Override
             public EventPayload payloadFor(final Object changedObject) {
-                return new EventPayloadForChangedObject(changedObject)
+                return new EventPayloadForObjectChanged<Object>(changedObject)
                             .with(objectStringifier());
             }
 
@@ -472,7 +472,7 @@ public class IsisTransactionManager implements SessionScopedComponent {
         return new PublishedAction.PayloadFactory(){
             @Override
             public EventPayload payloadFor(Identifier actionIdentifier, Object target, List<Object> arguments, Object result) {
-                return new EventPayloadForActionInvocation(
+                return new EventPayloadForActionInvocation<Object>(
                         actionIdentifier, 
                         target, 
                         arguments, 

http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemChangedPayloadFactory.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemChangedPayloadFactory.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemChangedPayloadFactory.java
index fd8415d..b714d1a 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemChangedPayloadFactory.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemChangedPayloadFactory.java
@@ -2,11 +2,11 @@ package dom.todo;
 
 import org.apache.isis.applib.annotation.PublishedObject.PayloadFactory;
 import org.apache.isis.applib.services.publish.EventPayload;
-import org.apache.isis.applib.services.publish.EventPayloadForChangedObject;
+import org.apache.isis.applib.services.publish.EventPayloadForObjectChanged;
 
 public class ToDoItemChangedPayloadFactory implements PayloadFactory{
 
-    public static class ToDoItemPayload extends EventPayloadForChangedObject<ToDoItem> {
+    public static class ToDoItemPayload extends EventPayloadForObjectChanged<ToDoItem> {
 
         public ToDoItemPayload(ToDoItem changed) {
             super(changed);

http://git-wip-us.apache.org/repos/asf/isis/blob/62f7ab15/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
index 03b071a..66ee625 100644
--- a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
+++ b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
@@ -287,15 +287,6 @@
         </dependency>
          -->
          
-        <!-- 
-        ActiveMQ/RA Publishing Service:
-        uncomment to use https://github.com/danhaywood/isis-publishingservice-activemq-ra
-        <dependency>
-            <groupId>com.danhaywood.isis.publishingservice</groupId>
-            <artifactId>danhaywood-isis-publishingservice-activemq-ra</artifactId>
-        </dependency>
-         -->
-
     </dependencies>
 
 </project>