ISIS-1472: set Command#Executor when invoking an action or editing a property.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/32e01615 Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/32e01615 Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/32e01615 Branch: refs/heads/master Commit: 32e01615381e9a3721f61b3b08117d93605fcac6 Parents: f264a79 Author: Dan Haywood <[email protected]> Authored: Tue Jul 19 15:56:25 2016 +0100 Committer: Dan Haywood <[email protected]> Committed: Tue Aug 23 21:54:27 2016 +0100 ---------------------------------------------------------------------- .../server/resources/DomainObjectResourceServerside.java | 11 +++++++++++ .../resources/DomainServiceResourceServerside.java | 9 ++++++++- .../server/resources/ResourceAbstract.java | 6 ++++++ 3 files changed, 25 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/isis/blob/32e01615/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java ---------------------------------------------------------------------- diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java index 8948555..6afa9f4 100644 --- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java +++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java @@ -31,6 +31,7 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.apache.isis.applib.annotation.Where; +import org.apache.isis.applib.services.command.Command; import org.apache.isis.core.commons.url.UrlEncodingUtils; import org.apache.isis.core.metamodel.adapter.ObjectAdapter; import org.apache.isis.core.metamodel.consent.Consent; @@ -206,6 +207,8 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements public Response modifyProperty(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("propertyId") final String propertyId, final InputStream body) { init(Where.OBJECT_FORMS, RepresentationService.Intent.NOT_APPLICABLE); + setCommandExecutor(Command.Executor.USER); + final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId); final DomainResourceHelper helper = newDomainResourceHelper(objectAdapter); final ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(getResourceContext(), objectAdapter); @@ -243,6 +246,8 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements public Response clearProperty(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("propertyId") final String propertyId) { init(Where.OBJECT_FORMS, RepresentationService.Intent.NOT_APPLICABLE); + setCommandExecutor(Command.Executor.USER); + final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId); final DomainResourceHelper helper = newDomainResourceHelper(objectAdapter); final ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(getResourceContext(), objectAdapter); @@ -454,6 +459,8 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements final String urlUnencodedQueryString = UrlEncodingUtils.urlDecodeNullSafe(xIsisUrlEncodedQueryString != null? xIsisUrlEncodedQueryString: httpServletRequest.getQueryString()); init(RepresentationType.ACTION_RESULT, Where.STANDALONE_TABLES, RepresentationService.Intent.NOT_APPLICABLE, urlUnencodedQueryString); + setCommandExecutor(Command.Executor.USER); + final JsonRepresentation arguments = getResourceContext().getQueryStringAsJsonRepr(); final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId); @@ -479,6 +486,8 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements init(RepresentationType.ACTION_RESULT, Where.STANDALONE_TABLES, RepresentationService.Intent.NOT_APPLICABLE, body); + setCommandExecutor(Command.Executor.USER); + final JsonRepresentation arguments = getResourceContext().getQueryStringAsJsonRepr(); final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId); @@ -504,6 +513,8 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements init(RepresentationType.ACTION_RESULT, Where.STANDALONE_TABLES, RepresentationService.Intent.NOT_APPLICABLE, body); + setCommandExecutor(Command.Executor.USER); + final JsonRepresentation arguments = getResourceContext().getQueryStringAsJsonRepr(); final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId); http://git-wip-us.apache.org/repos/asf/isis/blob/32e01615/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java ---------------------------------------------------------------------- diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java index 4fcad7f..010785c 100644 --- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java +++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java @@ -36,6 +36,7 @@ import com.google.common.collect.Lists; import org.apache.isis.applib.annotation.NatureOfService; import org.apache.isis.applib.annotation.Where; +import org.apache.isis.applib.services.command.Command; import org.apache.isis.core.commons.url.UrlEncodingUtils; import org.apache.isis.core.metamodel.adapter.ObjectAdapter; import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet; @@ -201,10 +202,10 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements final @PathParam("actionId") String actionId, final @QueryParam("x-isis-querystring") String xIsisUrlEncodedQueryString) { - final String urlUnencodedQueryString = UrlEncodingUtils.urlDecodeNullSafe(xIsisUrlEncodedQueryString != null? xIsisUrlEncodedQueryString: httpServletRequest.getQueryString()); init(RepresentationType.ACTION_RESULT, Where.STANDALONE_TABLES, RepresentationService.Intent.NOT_APPLICABLE, urlUnencodedQueryString); + setCommandExecutor(Command.Executor.USER); final JsonRepresentation arguments = getResourceContext().getQueryStringAsJsonRepr(); @@ -230,6 +231,8 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements final InputStream body) { init(RepresentationType.ACTION_RESULT, Where.STANDALONE_TABLES, RepresentationService.Intent.NOT_APPLICABLE, body); + setCommandExecutor(Command.Executor.USER); + final JsonRepresentation arguments = getResourceContext().getQueryStringAsJsonRepr(); final ObjectAdapter serviceAdapter = getServiceAdapter(serviceId); @@ -250,6 +253,8 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements public Response invokeAction(@PathParam("serviceId") final String serviceId, @PathParam("actionId") final String actionId, final InputStream body) { init(RepresentationType.ACTION_RESULT, Where.STANDALONE_TABLES, RepresentationService.Intent.NOT_APPLICABLE, body); + setCommandExecutor(Command.Executor.USER); + final JsonRepresentation arguments = getResourceContext().getQueryStringAsJsonRepr(); final ObjectAdapter serviceAdapter = getServiceAdapter(serviceId); @@ -268,4 +273,6 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements } + + } http://git-wip-us.apache.org/repos/asf/isis/blob/32e01615/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java ---------------------------------------------------------------------- diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java index 9911d63..8806959 100644 --- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java +++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java @@ -31,6 +31,8 @@ import javax.ws.rs.core.UriInfo; import javax.ws.rs.ext.Providers; import org.apache.isis.applib.annotation.Where; +import org.apache.isis.applib.services.command.Command; +import org.apache.isis.applib.services.command.CommandContext; import org.apache.isis.core.commons.authentication.AuthenticationSession; import org.apache.isis.core.commons.config.IsisConfiguration; import org.apache.isis.core.commons.url.UrlEncodingUtils; @@ -129,6 +131,10 @@ public abstract class ResourceAbstract { } + protected void setCommandExecutor(Command.Executor executor) { + getServicesInjector().lookupServiceElseFail(CommandContext.class).getCommand().setExecutor(executor); + } + // ////////////////////////////////////////////////////////////// // Isis integration // //////////////////////////////////////////////////////////////
