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 2016/04/12 09:08:31 UTC

[5/8] isis git commit: ISIS-1370: removing concept of payload factories from PublishingService.

ISIS-1370: removing concept of payload factories from PublishingService.


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

Branch: refs/heads/ISIS-1291
Commit: fec5e920899df6f95146a21b3fb4ef7b92180b7b
Parents: 4967495
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Apr 12 00:27:06 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Apr 12 00:27:06 2016 +0100

----------------------------------------------------------------------
 .../src/main/asciidoc/guides/_rgant-Action.adoc |  2 +-
 .../asciidoc/guides/_rgant-DomainObject.adoc    |  2 +-
 .../apache/isis/applib/annotation/Action.java   |  8 ++-
 .../isis/applib/annotation/DomainObject.java    |  7 +--
 .../PublishingPayloadFactoryForAction.java      |  9 ++++
 .../PublishingPayloadFactoryForObject.java      |  9 ++++
 .../applib/services/publish/EventPayload.java   |  3 ++
 .../EventPayloadForActionInvocation.java        |  3 ++
 .../publish/EventPayloadForObjectChanged.java   |  3 ++
 .../services/publish/PublishingService.java     |  9 +++-
 .../services/publish/PublishingService2.java    | 11 ++--
 ...shingServiceWithDefaultPayloadFactories.java | 55 --------------------
 .../system/transaction/IsisTransaction.java     | 46 +++-------------
 13 files changed, 57 insertions(+), 110 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/fec5e920/adocs/documentation/src/main/asciidoc/guides/_rgant-Action.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rgant-Action.adoc b/adocs/documentation/src/main/asciidoc/guides/_rgant-Action.adoc
index bde910d..6531286 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rgant-Action.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rgant-Action.adoc
@@ -67,7 +67,7 @@ Currently this is only supported for no-arg actions.
 |`publishing-` +
 `PayloadFactory()`
 |subtype of `PublishingPayloadFactory-` `ForAction` (none)
-|specifies that a custom implementation of `PublishingPayloadFactoryForAction` be used to create the (payload of the) published event representing the action invocation
+|(deprecated in `1.13.0-SNAPSHOT`); specifies that a custom implementation of `PublishingPayloadFactoryForAction` be used to create the (payload of the) published event representing the action invocation
 
 |xref:rgant.adoc#_rgant-Action_restrictTo[`restrictTo()`]
 |`NO_RESTRICTIONS`,`PROTOTYPING` +

http://git-wip-us.apache.org/repos/asf/isis/blob/fec5e920/adocs/documentation/src/main/asciidoc/guides/_rgant-DomainObject.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rgant-DomainObject.adoc b/adocs/documentation/src/main/asciidoc/guides/_rgant-DomainObject.adoc
index 7a0b7e1..3590df5 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rgant-DomainObject.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rgant-DomainObject.adoc
@@ -84,7 +84,7 @@ The table below summarizes the annotation's attributes.
 |`publishing-` +
 `PayloadFactory()`
 |subtype of `PublishingPayloadFactory-` `ForObject` (none)
-|specifies that a custom implementation of `PublishingPayloadFactoryForObject` be used to create the (payload of the) published event representing the change to the object
+|(deprecated in `1.13.0-SNAPSHOT`); specifies that a custom implementation of `PublishingPayloadFactoryForObject` be used to create the (payload of the) published event representing the change to the object
 
 |xref:rgant.adoc#_rgant-DomainObject_removingLifecycleEvent[`removing-` +
 `LifecycleEvent()`]

http://git-wip-us.apache.org/repos/asf/isis/blob/fec5e920/core/applib/src/main/java/org/apache/isis/applib/annotation/Action.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Action.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Action.java
index b94926b..7892db8 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Action.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/Action.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.services.eventbus.ActionDomainEvent;
+import org.apache.isis.applib.services.publish.EventMetadata;
+import org.apache.isis.applib.services.publish.EventPayload;
 
 /**
  * Domain semantics for domain object collection.
@@ -156,8 +158,10 @@ public @interface Action {
      */
     Publishing publishing() default Publishing.AS_CONFIGURED;
 
-
-    // TODO: factor out PayloadFactory.Default so similar to interaction
+    /**
+     * @deprecated - {@link org.apache.isis.applib.services.publish.PublishingService#publish(EventMetadata, EventPayload)} replaced by {@link org.apache.isis.applib.services.publish.PublishingService2#publish(EventMetadata)}   .
+     */
+    @Deprecated
     Class<? extends PublishingPayloadFactoryForAction> publishingPayloadFactory() default PublishingPayloadFactoryForAction.class;
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/fec5e920/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainObject.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainObject.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainObject.java
index 0621def..87d5001 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainObject.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainObject.java
@@ -31,6 +31,8 @@ import org.apache.isis.applib.services.eventbus.ObjectPersistingEvent;
 import org.apache.isis.applib.services.eventbus.ObjectRemovingEvent;
 import org.apache.isis.applib.services.eventbus.ObjectUpdatedEvent;
 import org.apache.isis.applib.services.eventbus.ObjectUpdatingEvent;
+import org.apache.isis.applib.services.publish.EventMetadata;
+import org.apache.isis.applib.services.publish.EventPayload;
 
 /**
  * Domain semantics for domain objects (entities and view models; for services see {@link org.apache.isis.applib.annotation.DomainService}).
@@ -71,10 +73,9 @@ public @interface DomainObject {
      *     If not specified then a default implementation will be used.
      * </p>
      *
-     * <p>
-     *     TODO: ??? factor out PayloadFactory.Default so similar to design similar to @Action(domainEvent=...)
-     * </p>
+     * @deprecated - {@link org.apache.isis.applib.services.publish.PublishingService#publish(EventMetadata, EventPayload)} replaced by {@link org.apache.isis.applib.services.publish.PublishingService2#publish(EventMetadata)}   .
      */
+    @Deprecated
     Class<? extends PublishingPayloadFactoryForObject> publishingPayloadFactory() default PublishingPayloadFactoryForObject.class;
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/fec5e920/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishingPayloadFactoryForAction.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishingPayloadFactoryForAction.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishingPayloadFactoryForAction.java
index 4a3a93e..f62ef0f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishingPayloadFactoryForAction.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishingPayloadFactoryForAction.java
@@ -20,10 +20,19 @@ package org.apache.isis.applib.annotation;
 
 import java.util.List;
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.publish.EventMetadata;
 import org.apache.isis.applib.services.publish.EventPayload;
 
+/**
+ * @deprecated - {@link org.apache.isis.applib.services.publish.PublishingService#publish(EventMetadata, EventPayload)} replaced by {@link org.apache.isis.applib.services.publish.PublishingService2#publish(EventMetadata)}   .
+ */
+@Deprecated
 public interface PublishingPayloadFactoryForAction {
 
+    /**
+     * @deprecated - {@link org.apache.isis.applib.services.publish.PublishingService#publish(EventMetadata, EventPayload)} replaced by {@link org.apache.isis.applib.services.publish.PublishingService2#publish(EventMetadata)}   .
+     */
+    @Deprecated
     @Programmatic
     public EventPayload payloadFor(Identifier actionIdentifier, Object target, List<Object> arguments, Object result);
 

http://git-wip-us.apache.org/repos/asf/isis/blob/fec5e920/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishingPayloadFactoryForObject.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishingPayloadFactoryForObject.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishingPayloadFactoryForObject.java
index fb3df0d..df5f9ad 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishingPayloadFactoryForObject.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishingPayloadFactoryForObject.java
@@ -18,10 +18,19 @@
  */
 package org.apache.isis.applib.annotation;
 
+import org.apache.isis.applib.services.publish.EventMetadata;
 import org.apache.isis.applib.services.publish.EventPayload;
 
+/**
+ * @deprecated - {@link org.apache.isis.applib.services.publish.PublishingService#publish(EventMetadata, EventPayload)} replaced by {@link org.apache.isis.applib.services.publish.PublishingService2#publish(EventMetadata)}   .
+ */
+@Deprecated
 public interface PublishingPayloadFactoryForObject {
 
+    /**
+     * @deprecated - {@link org.apache.isis.applib.services.publish.PublishingService#publish(EventMetadata, EventPayload)} replaced by {@link org.apache.isis.applib.services.publish.PublishingService2#publish(EventMetadata)}   .
+     */
+    @Deprecated
     @Programmatic
     public EventPayload payloadFor(Object changedObject, PublishingChangeKind publishingChangeKind);
 

http://git-wip-us.apache.org/repos/asf/isis/blob/fec5e920/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayload.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayload.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayload.java
index 4dd96e1..740911c 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayload.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayload.java
@@ -43,7 +43,10 @@ import org.apache.isis.applib.annotation.Programmatic;
  * </ul>
  * 
  * @see EventMetadata
+ *
+ * @deprecated - {@link org.apache.isis.applib.services.publish.PublishingService#publish(EventMetadata, EventPayload)} replaced by {@link org.apache.isis.applib.services.publish.PublishingService2#publish(EventMetadata)}   .
  */
+@Deprecated
 public interface EventPayload {
 
     /**

http://git-wip-us.apache.org/repos/asf/isis/blob/fec5e920/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 b0f4a26..7b5c8b2 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
@@ -33,7 +33,10 @@ import org.apache.isis.applib.annotation.Programmatic;
  * <p>
  * This class is annotated as a domain object for the benefit of the
  * <tt>RestfulObjectsSpecEventSerializer</tt>.
+ *
+ * @deprecated - {@link org.apache.isis.applib.services.publish.PublishingService#publish(EventMetadata, EventPayload)} replaced by {@link org.apache.isis.applib.services.publish.PublishingService2#publish(EventMetadata)}   .
  */
+@Deprecated
 @NotPersistable
 public class EventPayloadForActionInvocation<T> implements EventPayload {
     

http://git-wip-us.apache.org/repos/asf/isis/blob/fec5e920/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
index 38f9c6b..859c817 100644
--- 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
@@ -28,7 +28,10 @@ import org.apache.isis.applib.annotation.Programmatic;
  * <p>
  * This class is annotated as a domain object for the benefit of the
  * <tt>RestfulObjectsSpecEventSerializer</tt>.
+ *
+ * @deprecated - {@link org.apache.isis.applib.services.publish.PublishingService#publish(EventMetadata, EventPayload)} replaced by {@link org.apache.isis.applib.services.publish.PublishingService2#publish(EventMetadata)}   .
  */
+@Deprecated
 @NotPersistable
 public class EventPayloadForObjectChanged<T> implements EventPayload {
     

http://git-wip-us.apache.org/repos/asf/isis/blob/fec5e920/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService.java
index a5f4277..219740dd 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService.java
@@ -39,7 +39,14 @@ import org.apache.isis.applib.annotation.Programmatic;
  * To use either service, must include on the classpath and also register the service (eg in <tt>isis.properties</tt>).
  */
 public interface PublishingService {
-    
+
+    /**
+     * @deprecated - replaced by simpler {@link PublishingService2#publish(EventMetadata)}.
+     *
+     * @param metadata
+     * @param payload - will always be <tt>null</tt>; will not be called if service implements {@link PublishingService2}.
+     */
+    @Deprecated
     @Programmatic
     void publish(EventMetadata metadata, EventPayload payload);
     

http://git-wip-us.apache.org/repos/asf/isis/blob/fec5e920/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService2.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService2.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService2.java
index 5c56216..c046bcf 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService2.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService2.java
@@ -23,20 +23,15 @@ import org.apache.isis.applib.services.command.Command;
 
 public interface PublishingService2 extends PublishingService {
 
+    @Programmatic
+    void publish(EventMetadata metadata);
+
     /**
      * To support implementations that allow the republishing of commands, eg onto an JMS message bus.
      */
     @Programmatic
     void republish(final Command command);
     
-    class Stderr extends PublishingService.Stderr implements PublishingService2 {
-
-        @Override
-        public void republish(Command command) {
-            System.err.println(command.getMemento());
-        }
-
-    }
 }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/fec5e920/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
index 2dc6ab0..f794e65 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
@@ -27,13 +27,8 @@ import com.google.common.collect.Lists;
 
 import org.apache.isis.applib.annotation.PublishedAction;
 import org.apache.isis.applib.annotation.PublishedObject;
-import org.apache.isis.applib.annotation.PublishedObject.ChangeKind;
-import org.apache.isis.applib.services.publish.EventMetadata;
-import org.apache.isis.applib.services.publish.EventPayload;
-import org.apache.isis.applib.services.publish.ObjectStringifier;
 import org.apache.isis.applib.services.publish.PublishingService;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet.CurrentInvocation;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 
@@ -43,10 +38,6 @@ import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
  */
 public class PublishingServiceWithDefaultPayloadFactories {
 
-    private final PublishingService publishingService;
-    private final PublishedObject.PayloadFactory defaultObjectPayloadFactory;
-    private final PublishedAction.PayloadFactory defaultActionPayloadFactory;
-
     private final static Function<ObjectAdapter, ObjectAdapter> NOT_DESTROYED_ELSE_EMPTY = new Function<ObjectAdapter, ObjectAdapter>() {
         public ObjectAdapter apply(ObjectAdapter adapter) {
             if(adapter == null) {
@@ -68,52 +59,6 @@ public class PublishingServiceWithDefaultPayloadFactories {
 
     };
     
-    public PublishingServiceWithDefaultPayloadFactories (
-            final PublishingService publishingService, 
-            final PublishedObject.PayloadFactory defaultObjectPayloadFactory, 
-            final PublishedAction.PayloadFactory defaultActionPayloadFactory) {
-        this.publishingService = publishingService;
-        this.defaultObjectPayloadFactory = defaultObjectPayloadFactory;
-        this.defaultActionPayloadFactory = defaultActionPayloadFactory;
-    }
-
-    public void publishObject(
-            final PublishedObject.PayloadFactory payloadFactoryIfAny, 
-            final EventMetadata metadata, 
-            final ObjectAdapter changedAdapter, 
-            final ChangeKind changeKind, 
-            final ObjectStringifier stringifier) {
-        final PublishedObject.PayloadFactory payloadFactoryToUse = 
-                payloadFactoryIfAny != null
-                ? payloadFactoryIfAny
-                : defaultObjectPayloadFactory;
-        final EventPayload payload = payloadFactoryToUse.payloadFor(
-                ObjectAdapter.Util.unwrap(undeletedElseEmpty(changedAdapter)), changeKind);
-        payload.withStringifier(stringifier);
-        publishingService.publish(metadata, payload);
-    }
-
-    public void publishAction(
-            final PublishedAction.PayloadFactory payloadFactoryIfAny, 
-            final EventMetadata metadata, 
-            final CurrentInvocation currentInvocation, 
-            final ObjectStringifier stringifier) {
-        final PublishedAction.PayloadFactory payloadFactoryToUse = 
-                payloadFactoryIfAny != null
-                ? payloadFactoryIfAny
-                : defaultActionPayloadFactory;
-        final ObjectAdapter target = currentInvocation.getTarget();
-        final ObjectAdapter result = currentInvocation.getResult();
-        final List<ObjectAdapter> parameters = currentInvocation.getParameters();
-        final EventPayload payload = payloadFactoryToUse.payloadFor(
-                currentInvocation.getIdentifiedHolder().getIdentifier(),
-                ObjectAdapter.Util.unwrap(undeletedElseEmpty(target)), 
-                ObjectAdapter.Util.unwrap(undeletedElseEmpty(parameters)), 
-                ObjectAdapter.Util.unwrap(undeletedElseEmpty(result)));
-        payload.withStringifier(stringifier);
-        publishingService.publish(metadata, payload);
-    }
-
     private static List<ObjectAdapter> undeletedElseEmpty(List<ObjectAdapter> parameters) {
         return Lists.newArrayList(Iterables.transform(parameters, NOT_DESTROYED_ELSE_EMPTY));
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/fec5e920/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 f5e57d3..ccd335a 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
@@ -71,7 +71,6 @@ import org.apache.isis.core.commons.ensure.Ensure;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.commons.util.ToString;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -83,7 +82,6 @@ import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInv
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
 import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet;
 import org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet;
-import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
 import org.apache.isis.core.metamodel.facets.object.publishedobject.PublishedObjectFacet;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
@@ -94,7 +92,6 @@ import org.apache.isis.core.runtime.persistence.PersistenceConstants;
 import org.apache.isis.core.runtime.persistence.objectstore.transaction.CreateObjectCommand;
 import org.apache.isis.core.runtime.persistence.objectstore.transaction.DestroyObjectCommand;
 import org.apache.isis.core.runtime.persistence.objectstore.transaction.PersistenceCommand;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.PublishingServiceWithDefaultPayloadFactories;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 
 import static org.apache.isis.core.commons.ensure.Ensure.ensureThatArg;
@@ -256,7 +253,7 @@ public class IsisTransaction implements TransactionScopedComponent {
     /**
      * could be null if none has been registered
      */
-    private final PublishingServiceWithDefaultPayloadFactories publishingService;
+    private final PublishingService publishingService;
 
     /**
      * Will be that of the {@link #command} if not <tt>null</tt>, otherwise will be randomly created.
@@ -316,7 +313,7 @@ public class IsisTransaction implements TransactionScopedComponent {
     // Publishing service
     // ///////////////////////////////////////////
 
-    private PublishingServiceWithDefaultPayloadFactories getPublishingServiceIfAny(ServicesInjector servicesInjector) {
+    private PublishingService getPublishingServiceIfAny(ServicesInjector servicesInjector) {
         final PublishingService publishingService = servicesInjector.lookupService(PublishingService.class);
         if(publishingService == null) {
             return null;
@@ -332,7 +329,7 @@ public class IsisTransaction implements TransactionScopedComponent {
             actionPayloadFactory = newDefaultActionPayloadFactory();
         }
         
-        return new PublishingServiceWithDefaultPayloadFactories(publishingService, objectPayloadFactory, actionPayloadFactory);
+        return publishingService;
     }
     
 
@@ -591,7 +588,7 @@ public class IsisTransaction implements TransactionScopedComponent {
                     actionTargetClass, actionTargetAction, actionTarget, actionMemberIdentifier,
                     // commandTargetClass, commandTargetAction, commandTarget, commandMemberIdentifier,
                     parameterNames, parameterTypes, returnType);
-            publishingService.publishAction(payloadFactory, metadata, currentInvocation, objectStringifier());
+            publishingService.publish(metadata, null);
         } finally {
             // ensures that cannot publish this action more than once
             ActionInvocationFacet.currentInvocation.set(null);
@@ -620,8 +617,7 @@ public class IsisTransaction implements TransactionScopedComponent {
             if(publishedObjectFacet == null) {
                 continue;
             }
-            final PublishedObject.PayloadFactory payloadFactory = publishedObjectFacet.value();
-        
+
             final RootOid enlistedAdapterOid = (RootOid) enlistedAdapter.getOid();
             final String oidStr = getOidMarshaller().marshal(enlistedAdapterOid);
             final String title = oidStr;
@@ -632,8 +628,8 @@ public class IsisTransaction implements TransactionScopedComponent {
             final Bookmark enlistedTarget = enlistedAdapterOid.asBookmark();
             
             final EventMetadata metadata = newEventMetadata(eventTypeFor, currentUser, timestamp, title, enlistedAdapterClass, null, enlistedTarget, null, null, null, null);
-        
-            publishingService.publishObject(payloadFactory, metadata, enlistedAdapter, changeKind, objectStringifier());
+
+            publishingService.publish(metadata, null);
         }
         return enlistedAdapters;
     }
@@ -651,34 +647,6 @@ public class IsisTransaction implements TransactionScopedComponent {
         throw new IllegalArgumentException("unknown ChangeKind '" + changeKind + "'");
     }
 
-    protected ObjectStringifier objectStringifier() {
-        if(objectStringifier == null) {
-            // lazily created; is threadsafe so no need to guard against race conditions
-            objectStringifier = new ObjectStringifier() {
-                @Override
-                public String toString(Object object) {
-                    if(object == null) {
-                        return null;
-                    }
-                    final ObjectAdapter adapter = IsisContext.getPersistenceSession().adapterFor(object);
-                    Oid oid = adapter.getOid();
-                    return oid != null? oid.enString(getOidMarshaller()): encodedValueOf(adapter);
-                }
-                private String encodedValueOf(ObjectAdapter adapter) {
-                    EncodableFacet facet = adapter.getSpecification().getFacet(EncodableFacet.class);
-                    return facet != null? facet.toEncodedString(adapter): adapter.toString();
-                }
-                @Override
-                public String classNameOf(Object object) {
-                    final ObjectAdapter adapter = getPersistenceSession().adapterFor(object);
-                    final String className = adapter.getSpecification().getFullIdentifier();
-                    return className;
-                }
-            };
-        }
-        return objectStringifier;
-    }
-
     private EventMetadata newEventMetadata(
             final EventType eventType,
             final String currentUser,