diff --git a/source/java/org/alfresco/rest/framework/resource/actions/ActionExecutor.java b/source/java/org/alfresco/rest/framework/resource/actions/ActionExecutor.java index 57e74aa3d7..1f32111089 100644 --- a/source/java/org/alfresco/rest/framework/resource/actions/ActionExecutor.java +++ b/source/java/org/alfresco/rest/framework/resource/actions/ActionExecutor.java @@ -29,6 +29,7 @@ import org.alfresco.rest.framework.core.HttpMethodSupport; import org.alfresco.rest.framework.core.ResourceWithMetadata; import org.alfresco.rest.framework.resource.content.ContentInfo; import org.alfresco.rest.framework.resource.parameters.Params; +import org.alfresco.rest.framework.webscripts.ResponseCallBack; import org.springframework.extensions.webscripts.Status; import org.springframework.extensions.webscripts.WebScriptResponse; @@ -46,6 +47,6 @@ public interface ActionExecutor extends HttpMethodSupport * @param params Params */ @SuppressWarnings("rawtypes") - public Object executeAction(ResourceWithMetadata resource, Params params) throws Throwable; + public Object executeAction(ResourceWithMetadata resource, Params params, ResponseCallBack withResponse) throws Throwable; } diff --git a/source/java/org/alfresco/rest/framework/webscripts/AbstractResourceWebScript.java b/source/java/org/alfresco/rest/framework/webscripts/AbstractResourceWebScript.java index 3f47430ea3..5b61920df6 100644 --- a/source/java/org/alfresco/rest/framework/webscripts/AbstractResourceWebScript.java +++ b/source/java/org/alfresco/rest/framework/webscripts/AbstractResourceWebScript.java @@ -159,7 +159,7 @@ public abstract class AbstractResourceWebScript extends ApiWebScript implements public Object execute() throws Throwable { - Object result = executeAction(resource, params); + Object result = executeAction(resource, params, callBack); if (result instanceof BinaryResource) { return result; //don't postprocess it. @@ -171,8 +171,6 @@ public abstract class AbstractResourceWebScript extends ApiWebScript implements return toReturn; } - public abstract Object executeAction(ResourceWithMetadata resource, Params params) throws Throwable; - protected void streamResponse(final WebScriptRequest req, final WebScriptResponse res, BinaryResource resource) throws IOException { if (resource instanceof FileBinaryResource) diff --git a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptDelete.java b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptDelete.java index 06dff6bb03..168e69089f 100644 --- a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptDelete.java +++ b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptDelete.java @@ -113,7 +113,8 @@ public class ResourceWebScriptDelete extends AbstractResourceWebScript implement * @param params parameters to use * @return anObject the result of the execute */ - public Object executeAction(ResourceWithMetadata resource, Params params) + @Override + public Object executeAction(ResourceWithMetadata resource, Params params, ResponseCallBack withResponse) { switch (resource.getMetaData().getType()) { @@ -174,7 +175,7 @@ public class ResourceWebScriptDelete extends AbstractResourceWebScript implement @Override public Void execute() throws Throwable { - executeAction(resource, params); //ignore return result + executeAction(resource, params, callBack); //ignore return result return null; } }, false, true); diff --git a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptGet.java b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptGet.java index 944249e08d..b7740d8b8a 100644 --- a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptGet.java +++ b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptGet.java @@ -124,7 +124,7 @@ public class ResourceWebScriptGet extends AbstractResourceWebScript implements P * @return anObject the result of the execute */ @Override - public Object executeAction(ResourceWithMetadata resource, Params params) throws Throwable + public Object executeAction(ResourceWithMetadata resource, Params params, ResponseCallBack withResponse) throws Throwable { switch (resource.getMetaData().getType()) diff --git a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptHelper.java b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptHelper.java index 8c10425da6..fd465c9796 100644 --- a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptHelper.java +++ b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptHelper.java @@ -77,6 +77,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.codehaus.jackson.map.JsonMappingException; import org.springframework.beans.BeanUtils; +import org.springframework.extensions.webscripts.Status; import org.springframework.extensions.webscripts.WebScriptRequest; import org.springframework.extensions.webscripts.WebScriptResponse; import org.springframework.http.HttpMethod; @@ -636,8 +637,9 @@ public class ResourceWebScriptHelper paramFilter = filters.get(resourceKey); } final Params executionParams = Params.valueOf(paramFilter, uniqueEntityId, params.getRequest()); + final ResponseCallBack callBack = new ResponseCallBack(Status.STATUS_OK,ApiWebScript.DEFAULT_JSON_CONTENT,ApiWebScript.CACHE_NEVER); //Read only because this only occurs for GET requests - Object result = executor.executeAction(resource, executionParams); + Object result = executor.executeAction(resource, executionParams, callBack); return processAdditionsToTheResponse(null, api, null, executionParams, result); } catch(NotFoundException e) diff --git a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptPost.java b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptPost.java index 248aeacae3..4f7d660db2 100644 --- a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptPost.java +++ b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptPost.java @@ -217,7 +217,7 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements * @return anObject the result of the execute */ @Override - public Object executeAction(ResourceWithMetadata resource, Params params) throws Throwable + public Object executeAction(ResourceWithMetadata resource, Params params, ResponseCallBack withResponse) throws Throwable { final Object resObj = resource.getResource(); diff --git a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptPut.java b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptPut.java index 997e3e7676..0987aabc6f 100644 --- a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptPut.java +++ b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptPut.java @@ -186,7 +186,7 @@ public class ResourceWebScriptPut extends AbstractResourceWebScript implements P * @return anObject the result of the execute */ @Override - public Object executeAction(ResourceWithMetadata resource, Params params) throws Throwable + public Object executeAction(ResourceWithMetadata resource, Params params, ResponseCallBack withResponse) throws Throwable { switch (resource.getMetaData().getType()) {