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,