mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged FILE-FOLDER-API (5.2.0) to HEAD (5.2)
120441 jvonka: RA-727: REST fwk - fix GET node binary resource (setting of content info response headers) - including encoding (Content-Type charset) & locale (Content-Language) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@126382 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1154,8 +1154,14 @@ public class NodesImpl implements Nodes
|
|||||||
throw new InvalidArgumentException("NodeId of content is expected: "+nodeRef);
|
throw new InvalidArgumentException("NodeId of content is expected: "+nodeRef);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ContentData cd = (ContentData)nodeService.getProperty(nodeRef, ContentModel.PROP_CONTENT);
|
||||||
|
org.alfresco.rest.framework.resource.content.ContentInfo ci = null;
|
||||||
|
if (cd != null) {
|
||||||
|
ci = new org.alfresco.rest.framework.resource.content.ContentInfoImpl(cd.getMimetype(), cd.getEncoding(), cd.getSize(), cd.getLocale());
|
||||||
|
}
|
||||||
|
|
||||||
// TODO attachment header - update (or extend ?) REST fwk
|
// TODO attachment header - update (or extend ?) REST fwk
|
||||||
return new NodeBinaryResource(nodeRef, ContentModel.PROP_CONTENT);
|
return new NodeBinaryResource(nodeRef, ContentModel.PROP_CONTENT, ci);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -1,3 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2005-2015 Alfresco Software Limited.
|
||||||
|
*
|
||||||
|
* This file is part of Alfresco
|
||||||
|
*
|
||||||
|
* Alfresco is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Alfresco is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
|
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
package org.alfresco.rest.framework.resource.content;
|
package org.alfresco.rest.framework.resource.content;
|
||||||
|
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
@@ -13,12 +31,14 @@ public class NodeBinaryResource implements BinaryResource
|
|||||||
|
|
||||||
final NodeRef nodeRef;
|
final NodeRef nodeRef;
|
||||||
final QName propertyQName;
|
final QName propertyQName;
|
||||||
|
final ContentInfo contentInfo;
|
||||||
|
|
||||||
public NodeBinaryResource(NodeRef nodeRef, QName propertyQName)
|
public NodeBinaryResource(NodeRef nodeRef, QName propertyQName, ContentInfo contentInfo)
|
||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
this.nodeRef = nodeRef;
|
this.nodeRef = nodeRef;
|
||||||
this.propertyQName = propertyQName;
|
this.propertyQName = propertyQName;
|
||||||
|
this.contentInfo = contentInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NodeRef getNodeRef()
|
public NodeRef getNodeRef()
|
||||||
@@ -30,4 +50,8 @@ public class NodeBinaryResource implements BinaryResource
|
|||||||
{
|
{
|
||||||
return this.propertyQName;
|
return this.propertyQName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ContentInfo getContentInfo() {
|
||||||
|
return this.contentInfo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,3 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2005-2015 Alfresco Software Limited.
|
||||||
|
*
|
||||||
|
* This file is part of Alfresco
|
||||||
|
*
|
||||||
|
* Alfresco is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Alfresco is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
|
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
package org.alfresco.rest.framework.webscripts;
|
package org.alfresco.rest.framework.webscripts;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -28,6 +46,7 @@ import org.springframework.extensions.webscripts.Description.RequiredCache;
|
|||||||
import org.springframework.extensions.webscripts.Format;
|
import org.springframework.extensions.webscripts.Format;
|
||||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||||
import org.springframework.extensions.webscripts.WebScriptResponse;
|
import org.springframework.extensions.webscripts.WebScriptResponse;
|
||||||
|
import org.springframework.extensions.webscripts.WrappingWebScriptResponse;
|
||||||
import org.springframework.extensions.webscripts.servlet.WebScriptServletResponse;
|
import org.springframework.extensions.webscripts.servlet.WebScriptServletResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -219,6 +238,13 @@ public abstract class ApiWebScript extends AbstractWebScript
|
|||||||
//Set content info on the response
|
//Set content info on the response
|
||||||
res.setContentType(contentInfo.getMimeType());
|
res.setContentType(contentInfo.getMimeType());
|
||||||
res.setContentEncoding(contentInfo.getEncoding());
|
res.setContentEncoding(contentInfo.getEncoding());
|
||||||
|
|
||||||
|
if (res instanceof WrappingWebScriptResponse)
|
||||||
|
{
|
||||||
|
WrappingWebScriptResponse wrappedRes = ((WrappingWebScriptResponse) res);
|
||||||
|
res = wrappedRes.getNext();
|
||||||
|
}
|
||||||
|
|
||||||
if (res instanceof WebScriptServletResponse)
|
if (res instanceof WebScriptServletResponse)
|
||||||
{
|
{
|
||||||
WebScriptServletResponse servletResponse = (WebScriptServletResponse) res;
|
WebScriptServletResponse servletResponse = (WebScriptServletResponse) res;
|
||||||
@@ -235,7 +261,6 @@ public abstract class ApiWebScript extends AbstractWebScript
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setResolver(ExceptionResolver<Exception> resolver)
|
public void setResolver(ExceptionResolver<Exception> resolver)
|
||||||
|
@@ -13,6 +13,8 @@ import org.alfresco.rest.framework.resource.actions.interfaces.EntityResourceAct
|
|||||||
import org.alfresco.rest.framework.resource.actions.interfaces.EntityResourceAction.ReadById;
|
import org.alfresco.rest.framework.resource.actions.interfaces.EntityResourceAction.ReadById;
|
||||||
import org.alfresco.rest.framework.resource.actions.interfaces.RelationshipResourceAction;
|
import org.alfresco.rest.framework.resource.actions.interfaces.RelationshipResourceAction;
|
||||||
import org.alfresco.rest.framework.resource.content.BinaryResource;
|
import org.alfresco.rest.framework.resource.content.BinaryResource;
|
||||||
|
import org.alfresco.rest.framework.resource.content.ContentInfo;
|
||||||
|
import org.alfresco.rest.framework.resource.content.NodeBinaryResource;
|
||||||
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
|
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
|
||||||
import org.alfresco.rest.framework.resource.parameters.Params;
|
import org.alfresco.rest.framework.resource.parameters.Params;
|
||||||
import org.alfresco.rest.framework.resource.parameters.Params.RecognizedParams;
|
import org.alfresco.rest.framework.resource.parameters.Params.RecognizedParams;
|
||||||
@@ -195,7 +197,11 @@ public class ResourceWebScriptGet extends AbstractResourceWebScript implements P
|
|||||||
Object result = executeInternal(resource, params);
|
Object result = executeInternal(resource, params);
|
||||||
if (result instanceof BinaryResource)
|
if (result instanceof BinaryResource)
|
||||||
{
|
{
|
||||||
executionCallback.onSuccess(result, null);
|
ContentInfo ci = null;
|
||||||
|
if (result instanceof NodeBinaryResource) {
|
||||||
|
ci = ((NodeBinaryResource)result).getContentInfo();
|
||||||
|
}
|
||||||
|
executionCallback.onSuccess(result, ci);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user