mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-21 18:09:20 +00:00
Merged FILE-FOLDER-API (5.2.0) to HEAD (5.2)
122518 gjames: RA-211: Added the webscriptrequest to the Params interface git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@126477 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -66,7 +66,7 @@ public class NetworkWebScriptGet extends ApiWebScript
|
||||
{
|
||||
// TODO this is not ideal, but the only way to populate the embedded network entities (this would normally be
|
||||
// done automatically by the api framework).
|
||||
Object wrapped = helper.processAdditionsToTheResponse(Api.ALFRESCO_PUBLIC, NetworksEntityResource.NAME, Params.valueOf(personId, null), networkMembership);
|
||||
Object wrapped = helper.processAdditionsToTheResponse(Api.ALFRESCO_PUBLIC, NetworksEntityResource.NAME, Params.valueOf(personId, null, req), networkMembership);
|
||||
|
||||
objectMapper.writeValue(generator, wrapped);
|
||||
}
|
||||
|
@@ -95,7 +95,7 @@ public class NetworksWebScriptGet extends ApiWebScript
|
||||
{
|
||||
// TODO this is not ideal, but the only way to populate the embedded network entities (this would normally be
|
||||
// done automatically by the api framework).
|
||||
Object wrapped = helper.processAdditionsToTheResponse(Api.ALFRESCO_PUBLIC, NetworksEntityResource.NAME, Params.valueOf(personId, null), networkMember);
|
||||
Object wrapped = helper.processAdditionsToTheResponse(Api.ALFRESCO_PUBLIC, NetworksEntityResource.NAME, Params.valueOf(personId, null, req), networkMember);
|
||||
entities.add(wrapped);
|
||||
}
|
||||
|
||||
|
@@ -8,6 +8,7 @@ import org.alfresco.rest.framework.resource.content.BasicContentInfo;
|
||||
import org.alfresco.rest.framework.resource.parameters.where.Query;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.springframework.extensions.webscripts.Status;
|
||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||
|
||||
|
||||
/**
|
||||
@@ -91,5 +92,11 @@ public interface Parameters
|
||||
* Gets the basic information about content, typically taken from a HTTPServletRequest.
|
||||
* @return BasicContentInfo the content info
|
||||
*/
|
||||
BasicContentInfo getContentInfo();
|
||||
public BasicContentInfo getContentInfo();
|
||||
|
||||
/**
|
||||
* Gets access to the entire webscript request.
|
||||
* @return WebScriptRequest
|
||||
*/
|
||||
public WebScriptRequest getRequest();
|
||||
}
|
||||
|
@@ -14,7 +14,7 @@ import org.alfresco.rest.framework.resource.parameters.where.Query;
|
||||
import org.alfresco.rest.framework.resource.parameters.where.QueryImpl;
|
||||
import org.apache.commons.beanutils.ConvertUtils;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.springframework.extensions.webscripts.Status;
|
||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||
|
||||
/**
|
||||
* Parameters passed in from a Rest client for use in calls to the rest api.
|
||||
@@ -30,12 +30,13 @@ public class Params implements Parameters
|
||||
private final RecognizedParams recognizedParams;
|
||||
private final String addressedProperty;
|
||||
private final BasicContentInfo contentInfo;
|
||||
private final WebScriptRequest request;
|
||||
|
||||
//Constants
|
||||
private static final RecognizedParams NULL_PARAMS = new RecognizedParams(null, null, null, null, null, null, null, false);
|
||||
private static final BasicContentInfo DEFAULT_CONTENT_INFO = new ContentInfoImpl(MimetypeMap.MIMETYPE_BINARY, "UTF-8", -1, null);
|
||||
|
||||
protected Params(String entityId, String relationshipId, Object passedIn, InputStream stream, String addressedProperty, RecognizedParams recognizedParams, BasicContentInfo contentInfo)
|
||||
protected Params(String entityId, String relationshipId, Object passedIn, InputStream stream, String addressedProperty, RecognizedParams recognizedParams, BasicContentInfo contentInfo, WebScriptRequest request)
|
||||
{
|
||||
super();
|
||||
this.entityId = entityId;
|
||||
@@ -44,37 +45,39 @@ public class Params implements Parameters
|
||||
this.stream = stream;
|
||||
this.recognizedParams = recognizedParams;
|
||||
this.addressedProperty = addressedProperty;
|
||||
this.request = request;
|
||||
this.contentInfo = contentInfo==null?DEFAULT_CONTENT_INFO:contentInfo;
|
||||
}
|
||||
|
||||
public static Params valueOf(BeanPropertiesFilter paramFilter, String entityId)
|
||||
public static Params valueOf(BeanPropertiesFilter paramFilter, String entityId, WebScriptRequest request)
|
||||
{
|
||||
return new Params(entityId, null, null, null, null, new RecognizedParams(null, null, paramFilter, null, null, null, null, false), null);
|
||||
return new Params(entityId, null, null, null, null, new RecognizedParams(null, null, paramFilter, null, null, null, null, false), null, request);
|
||||
}
|
||||
|
||||
public static Params valueOf(String entityId, String relationshipId)
|
||||
public static Params valueOf(String entityId, String relationshipId, WebScriptRequest request)
|
||||
{
|
||||
return new Params(entityId, relationshipId, null, null, null, NULL_PARAMS, null);
|
||||
return new Params(entityId, relationshipId, null, null, null, NULL_PARAMS, null, request);
|
||||
}
|
||||
|
||||
public static Params valueOf(RecognizedParams recognizedParams, String entityId, String relationshipId)
|
||||
public static Params valueOf(RecognizedParams recognizedParams, String entityId, String relationshipId, WebScriptRequest request)
|
||||
{
|
||||
return new Params(entityId, relationshipId, null, null, null, recognizedParams, null);
|
||||
return new Params(entityId, relationshipId, null, null, null, recognizedParams, null, request);
|
||||
}
|
||||
|
||||
public static Params valueOf(String entityId, RecognizedParams recognizedParams, Object passedIn)
|
||||
public static Params valueOf(String entityId, RecognizedParams recognizedParams, Object passedIn, WebScriptRequest request)
|
||||
{
|
||||
return new Params(entityId, null, passedIn, null, null, recognizedParams, null);
|
||||
return new Params(entityId, null, passedIn, null, null, recognizedParams, null, request);
|
||||
}
|
||||
|
||||
public static Params valueOf(String entityId, String relationshipId, RecognizedParams recognizedParams, Object passedIn)
|
||||
public static Params valueOf(String entityId, String relationshipId, RecognizedParams recognizedParams, Object passedIn, WebScriptRequest request)
|
||||
{
|
||||
return new Params(entityId, relationshipId, passedIn, null, null, recognizedParams, null);
|
||||
return new Params(entityId, relationshipId, passedIn, null, null, recognizedParams, null, request);
|
||||
}
|
||||
|
||||
public static Params valueOf(String entityId, String relationshipId, Object passedIn, InputStream stream, String addressedProperty, RecognizedParams recognizedParams, BasicContentInfo contentInfo)
|
||||
public static Params valueOf(String entityId, String relationshipId, Object passedIn, InputStream stream,
|
||||
String addressedProperty, RecognizedParams recognizedParams, BasicContentInfo contentInfo, WebScriptRequest request)
|
||||
{
|
||||
return new Params(entityId, relationshipId, passedIn, stream, addressedProperty, recognizedParams, contentInfo);
|
||||
return new Params(entityId, relationshipId, passedIn, stream, addressedProperty, recognizedParams, contentInfo, request);
|
||||
}
|
||||
|
||||
public String getEntityId()
|
||||
@@ -214,6 +217,12 @@ public class Params implements Parameters
|
||||
return contentInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WebScriptRequest getRequest()
|
||||
{
|
||||
return request;
|
||||
}
|
||||
|
||||
/**
|
||||
* A formal set of params that any rest service could potentially have passed in as request params
|
||||
*/
|
||||
|
@@ -48,7 +48,7 @@ public class ResourceWebScriptDelete extends AbstractResourceWebScript implement
|
||||
}
|
||||
else
|
||||
{
|
||||
return Params.valueOf(entityId, relationshipId);
|
||||
return Params.valueOf(entityId, relationshipId, req);
|
||||
|
||||
}
|
||||
case RELATIONSHIP:
|
||||
@@ -59,7 +59,7 @@ public class ResourceWebScriptDelete extends AbstractResourceWebScript implement
|
||||
}
|
||||
else
|
||||
{
|
||||
return Params.valueOf(entityId, relationshipId);
|
||||
return Params.valueOf(entityId, relationshipId, req);
|
||||
}
|
||||
case PROPERTY:
|
||||
final String resourceName = req.getServiceMatch().getTemplateVars().get(ResourceLocator.RELATIONSHIP_RESOURCE);
|
||||
@@ -69,11 +69,11 @@ public class ResourceWebScriptDelete extends AbstractResourceWebScript implement
|
||||
{
|
||||
if (StringUtils.isNotBlank(propertyName))
|
||||
{
|
||||
return Params.valueOf(entityId, relationshipId, null, null, propertyName, null, null);
|
||||
return Params.valueOf(entityId, relationshipId, null, null, propertyName, null, null, req);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Params.valueOf(entityId, null, null, null, resourceName, null, null);
|
||||
return Params.valueOf(entityId, null, null, null, resourceName, null, null, req);
|
||||
}
|
||||
}
|
||||
//Fall through to unsupported.
|
||||
|
@@ -73,20 +73,20 @@ public class ResourceWebScriptGet extends AbstractResourceWebScript implements P
|
||||
case ENTITY:
|
||||
if (StringUtils.isNotBlank(entityId))
|
||||
{
|
||||
return Params.valueOf(params, entityId, null);
|
||||
return Params.valueOf(params, entityId, null, req);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Params.valueOf(params, null, null);// collection resource
|
||||
return Params.valueOf(params, null, null, req);// collection resource
|
||||
}
|
||||
case RELATIONSHIP:
|
||||
if (StringUtils.isNotBlank(relationshipId))
|
||||
{
|
||||
return Params.valueOf(params, entityId, relationshipId);
|
||||
return Params.valueOf(params, entityId, relationshipId, req);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Params.valueOf(params, entityId, null); //relationship collection resource
|
||||
return Params.valueOf(params, entityId, null, req); //relationship collection resource
|
||||
}
|
||||
case PROPERTY:
|
||||
final String resourceName = req.getServiceMatch().getTemplateVars().get(ResourceLocator.RELATIONSHIP_RESOURCE);
|
||||
@@ -96,11 +96,11 @@ public class ResourceWebScriptGet extends AbstractResourceWebScript implements P
|
||||
{
|
||||
if (StringUtils.isNotBlank(propertyName))
|
||||
{
|
||||
return Params.valueOf(entityId, relationshipId, null, null, propertyName, params, null);
|
||||
return Params.valueOf(entityId, relationshipId, null, null, propertyName, params, null, req);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Params.valueOf(entityId, null, null, null, resourceName, params, null);
|
||||
return Params.valueOf(entityId, null, null, null, resourceName, params, null, req);
|
||||
}
|
||||
}
|
||||
//Fall through to unsupported.
|
||||
|
@@ -478,7 +478,7 @@ public class ResourceWebScriptHelper
|
||||
if (objectToWrap instanceof SerializablePagedCollection<?>)
|
||||
{
|
||||
SerializablePagedCollection<?> collectionToWrap = (SerializablePagedCollection<?>) objectToWrap;
|
||||
Object sourceEntity = executeIncludedSource(api,entityCollectionName,params.getEntityId(),params.includeSource());
|
||||
Object sourceEntity = executeIncludedSource(api, params, entityCollectionName);
|
||||
Collection<Object> resultCollection = new ArrayList(collectionToWrap.getCollection().size());
|
||||
if (!collectionToWrap.getCollection().isEmpty())
|
||||
{
|
||||
@@ -510,7 +510,7 @@ public class ResourceWebScriptHelper
|
||||
{
|
||||
Map<String, ResourceWithMetadata> relationshipResources = locator.locateRelationResource(api,entityCollectionName, params.getRelationsFilter().keySet(), HttpMethod.GET);
|
||||
String uniqueEntityId = ResourceInspector.findUniqueId(objectToWrap);
|
||||
Map<String,Object> relatedResources = executeRelatedResources(api,params.getRelationsFilter(), relationshipResources, uniqueEntityId);
|
||||
Map<String,Object> relatedResources = executeRelatedResources(api, params, relationshipResources, uniqueEntityId);
|
||||
execRes.addRelated(relatedResources);
|
||||
}
|
||||
|
||||
@@ -519,14 +519,14 @@ public class ResourceWebScriptHelper
|
||||
}
|
||||
}
|
||||
|
||||
private Object executeIncludedSource(Api api, String entityCollectionName, String uniqueEntityId, boolean includeSource)
|
||||
private Object executeIncludedSource(Api api, Params params, String entityCollectionName)
|
||||
{
|
||||
if (includeSource)
|
||||
if (params.includeSource())
|
||||
{
|
||||
ResourceWithMetadata res = locator.locateEntityResource(api, entityCollectionName, HttpMethod.GET);
|
||||
if (res != null)
|
||||
{
|
||||
Object result = executeRelatedResource(api, null, uniqueEntityId, null, res);
|
||||
Object result = executeRelatedResource(api, params, params.getEntityId(), null, res);
|
||||
if (result!=null && result instanceof ExecutionResult) return ((ExecutionResult) result).getRoot();
|
||||
}
|
||||
}
|
||||
@@ -554,7 +554,7 @@ public class ResourceWebScriptHelper
|
||||
Object id = ResourceInspectorUtil.invokeMethod(embeddedEntry.getValue().getSecond(), objectToWrap);
|
||||
if (id != null)
|
||||
{
|
||||
Object execEmbeddedResult = executeRelatedResource(api, params.getRelationsFilter(), String.valueOf(id), embeddedEntry.getKey(), res);
|
||||
Object execEmbeddedResult = executeRelatedResource(api, params, String.valueOf(id), embeddedEntry.getKey(), res);
|
||||
if (execEmbeddedResult != null)
|
||||
{
|
||||
if (execEmbeddedResult instanceof ExecutionResult)
|
||||
@@ -584,14 +584,14 @@ public class ResourceWebScriptHelper
|
||||
* @param uniqueEntityId String
|
||||
* @return Map
|
||||
*/
|
||||
private Map<String,Object> executeRelatedResources(final Api api, Map<String, BeanPropertiesFilter> filters,
|
||||
Map<String, ResourceWithMetadata> relatedResources,
|
||||
String uniqueEntityId)
|
||||
private Map<String,Object> executeRelatedResources(final Api api, Params params,
|
||||
Map<String, ResourceWithMetadata> relatedResources,
|
||||
String uniqueEntityId)
|
||||
{
|
||||
final Map<String,Object> results = new HashMap<String,Object>(relatedResources.size());
|
||||
for (final Entry<String, ResourceWithMetadata> relation : relatedResources.entrySet())
|
||||
{
|
||||
Object execResult = executeRelatedResource(api, filters, uniqueEntityId, relation.getKey(), relation.getValue());
|
||||
Object execResult = executeRelatedResource(api, params, uniqueEntityId, relation.getKey(), relation.getValue());
|
||||
if (execResult != null)
|
||||
{
|
||||
results.put(relation.getKey(), execResult);
|
||||
@@ -611,19 +611,19 @@ public class ResourceWebScriptHelper
|
||||
* @param resource ResourceWithMetadata
|
||||
* @return Object
|
||||
*/
|
||||
private Object executeRelatedResource(final Api api, final Map<String, BeanPropertiesFilter> filters,
|
||||
private Object executeRelatedResource(final Api api, Params params,
|
||||
final String uniqueEntityId, final String resourceKey, final ResourceWithMetadata resource)
|
||||
{
|
||||
try
|
||||
{
|
||||
BeanPropertiesFilter paramFilter = null;
|
||||
final Object[] resultOfExecution = new Object[1];
|
||||
|
||||
Map<String, BeanPropertiesFilter> filters = params.getRelationsFilter();
|
||||
if (filters!=null)
|
||||
{
|
||||
paramFilter = filters.get(resourceKey);
|
||||
}
|
||||
final Params executionParams = Params.valueOf(paramFilter, uniqueEntityId);
|
||||
final Params executionParams = Params.valueOf(paramFilter, uniqueEntityId, params.getRequest());
|
||||
executor.execute(resource, executionParams, new ExecutionCallback()
|
||||
{
|
||||
@Override
|
||||
|
@@ -83,7 +83,7 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements
|
||||
else
|
||||
{
|
||||
Object postedObj = processRequest(resourceMeta, operation, req);
|
||||
return Params.valueOf(null, params, postedObj);
|
||||
return Params.valueOf(null, params, postedObj, req);
|
||||
}
|
||||
case RELATIONSHIP:
|
||||
if (StringUtils.isNotBlank(relationshipId))
|
||||
@@ -93,7 +93,7 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements
|
||||
else
|
||||
{
|
||||
Object postedRel = processRequest(resourceMeta, operation, req);
|
||||
return Params.valueOf(entityId, params, postedRel);
|
||||
return Params.valueOf(entityId, params, postedRel, req);
|
||||
}
|
||||
case OPERATION:
|
||||
final String operationName = req.getServiceMatch().getTemplateVars().get(ResourceLocator.RELATIONSHIP_RESOURCE);
|
||||
@@ -111,11 +111,11 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements
|
||||
|
||||
if (StringUtils.isNotBlank(propertyName))
|
||||
{
|
||||
return Params.valueOf(entityId, relationshipId, params, postedObj);
|
||||
return Params.valueOf(entityId, relationshipId, params, postedObj, req);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Params.valueOf(entityId, params, postedObj);
|
||||
return Params.valueOf(entityId, params, postedObj, req);
|
||||
}
|
||||
}
|
||||
//Fall through to unsupported.
|
||||
|
@@ -86,7 +86,7 @@ public class ResourceWebScriptPut extends AbstractResourceWebScript implements P
|
||||
{
|
||||
|
||||
Object putEnt = ResourceWebScriptHelper.extractJsonContent(req, jsonHelper, resourceMeta.getObjectType(operation));
|
||||
return Params.valueOf(entityId,params,putEnt);
|
||||
return Params.valueOf(entityId,params,putEnt, req);
|
||||
}
|
||||
case RELATIONSHIP:
|
||||
if (StringUtils.isBlank(relationshipId))
|
||||
@@ -96,7 +96,7 @@ public class ResourceWebScriptPut extends AbstractResourceWebScript implements P
|
||||
{
|
||||
Object putRel = ResourceWebScriptHelper.extractJsonContent(req, jsonHelper, resourceMeta.getObjectType(operation));
|
||||
ResourceWebScriptHelper.setUniqueId(putRel,relationshipId);
|
||||
return Params.valueOf(entityId, params, putRel);
|
||||
return Params.valueOf(entityId, params, putRel, req);
|
||||
}
|
||||
case PROPERTY:
|
||||
final String resourceName = req.getServiceMatch().getTemplateVars().get(ResourceLocator.RELATIONSHIP_RESOURCE);
|
||||
@@ -106,11 +106,11 @@ public class ResourceWebScriptPut extends AbstractResourceWebScript implements P
|
||||
{
|
||||
if (StringUtils.isNotBlank(propertyName))
|
||||
{
|
||||
return Params.valueOf(entityId, relationshipId, null, getStream(req), propertyName, params, getContentInfo(req));
|
||||
return Params.valueOf(entityId, relationshipId, null, getStream(req), propertyName, params, getContentInfo(req), req);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Params.valueOf(entityId, null, null, getStream(req), resourceName, params, getContentInfo(req));
|
||||
return Params.valueOf(entityId, null, null, getStream(req), resourceName, params, getContentInfo(req), req);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user