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)
122418 gjames: RA-827 Supporting custom status codes git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@126473 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -2,6 +2,9 @@ package org.alfresco.rest.framework;
|
|||||||
|
|
||||||
import static java.lang.annotation.ElementType.METHOD;
|
import static java.lang.annotation.ElementType.METHOD;
|
||||||
|
|
||||||
|
import org.alfresco.rest.framework.core.ResourceOperation;
|
||||||
|
import org.springframework.extensions.webscripts.Status;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
@@ -16,5 +19,6 @@ import java.lang.annotation.Target;
|
|||||||
public @interface WebApiDescription {
|
public @interface WebApiDescription {
|
||||||
String title();
|
String title();
|
||||||
String description() default "";
|
String description() default "";
|
||||||
|
int successStatus() default ResourceOperation.UNSET_STATUS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -56,6 +56,7 @@ import org.alfresco.util.Pair;
|
|||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.springframework.core.annotation.AnnotationUtils;
|
import org.springframework.core.annotation.AnnotationUtils;
|
||||||
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.http.HttpMethod;
|
import org.springframework.http.HttpMethod;
|
||||||
import org.springframework.util.ReflectionUtils;
|
import org.springframework.util.ReflectionUtils;
|
||||||
|
|
||||||
@@ -286,14 +287,40 @@ public class ResourceInspector
|
|||||||
Map<String, Object> annotAttribs = AnnotationUtils.getAnnotationAttributes(annot);
|
Map<String, Object> annotAttribs = AnnotationUtils.getAnnotationAttributes(annot);
|
||||||
String title = String.valueOf(annotAttribs.get("title"));
|
String title = String.valueOf(annotAttribs.get("title"));
|
||||||
String desc = String.valueOf(annotAttribs.get("description"));
|
String desc = String.valueOf(annotAttribs.get("description"));
|
||||||
return new ResourceOperation(httpMethod, title, desc, parameters);
|
Integer success = (Integer) annotAttribs.get("successStatus");
|
||||||
|
return new ResourceOperation(httpMethod, title, desc, parameters, validSuccessCode(httpMethod,success));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return new ResourceOperation(httpMethod,
|
return new ResourceOperation(httpMethod,
|
||||||
"Missing @WebApiDescription annotation", "This method should be annotated with @WebApiDescription", parameters);
|
"Missing @WebApiDescription annotation",
|
||||||
|
"This method should be annotated with @WebApiDescription", parameters, validSuccessCode(httpMethod, ResourceOperation.UNSET_STATUS));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int validSuccessCode(HttpMethod httpMethod, int success)
|
||||||
|
{
|
||||||
|
if (!(ResourceOperation.UNSET_STATUS == success))
|
||||||
|
{
|
||||||
|
//The status has been set by the api implementor so use it.
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (httpMethod)
|
||||||
|
{
|
||||||
|
case GET:
|
||||||
|
return Status.STATUS_OK;
|
||||||
|
case POST:
|
||||||
|
return Status.STATUS_CREATED;
|
||||||
|
case PUT:
|
||||||
|
return Status.STATUS_OK;
|
||||||
|
case DELETE:
|
||||||
|
return Status.STATUS_NO_CONTENT;
|
||||||
|
default:
|
||||||
|
return Status.STATUS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Inspects the Method to find any @WebApiParameters and @WebApiParam
|
* Inspects the Method to find any @WebApiParameters and @WebApiParam
|
||||||
* @param resource the class
|
* @param resource the class
|
||||||
|
@@ -47,7 +47,8 @@ public class ResourceLookupDictionary implements ResourceLocator
|
|||||||
ResourceWithMetadata resource = apiResources.get(propertyResourceKey);
|
ResourceWithMetadata resource = apiResources.get(propertyResourceKey);
|
||||||
if (resource != null)
|
if (resource != null)
|
||||||
{
|
{
|
||||||
if (!resource.getMetaData().supports(httpMethod)) { throw new UnsupportedResourceOperationException(); }
|
ResourceOperation op = resource.getMetaData().getOperation(httpMethod);
|
||||||
|
if (op == null) { throw new UnsupportedResourceOperationException(); }
|
||||||
return resource;
|
return resource;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,7 +80,8 @@ public class ResourceLookupDictionary implements ResourceLocator
|
|||||||
resource = apiResources.get(resourceKey);
|
resource = apiResources.get(resourceKey);
|
||||||
if (resource != null)
|
if (resource != null)
|
||||||
{
|
{
|
||||||
if (!resource.getMetaData().supports(httpMethod)) { throw new UnsupportedResourceOperationException(); }
|
ResourceOperation op = resource.getMetaData().getOperation(httpMethod);
|
||||||
|
if (op == null) { throw new UnsupportedResourceOperationException(); }
|
||||||
return resource;
|
return resource;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -88,7 +90,8 @@ public class ResourceLookupDictionary implements ResourceLocator
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!resource.getMetaData().supports(httpMethod)) { throw new UnsupportedResourceOperationException(); }
|
ResourceOperation op = resource.getMetaData().getOperation(httpMethod);
|
||||||
|
if (op == null) { throw new UnsupportedResourceOperationException(); }
|
||||||
return resource;
|
return resource;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -65,17 +65,17 @@ public class ResourceMetadata
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates if this resource can support the specified HTTPMethod
|
* Gets the operation for the specified HTTPMethod
|
||||||
* @param supportedMethod HttpMethod
|
* @param supportedMethod HttpMethod
|
||||||
* @return true if can support it
|
* @return null if the operation is not supported
|
||||||
*/
|
*/
|
||||||
public boolean supports(HttpMethod supportedMethod)
|
public ResourceOperation getOperation(HttpMethod supportedMethod)
|
||||||
{
|
{
|
||||||
for (ResourceOperation ops : operations)
|
for (ResourceOperation ops : operations)
|
||||||
{
|
{
|
||||||
if (ops.getHttpMethod().equals(supportedMethod)) return true;
|
if (ops.getHttpMethod().equals(supportedMethod)) return ops;
|
||||||
}
|
}
|
||||||
return false;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -84,20 +84,14 @@ public class ResourceMetadata
|
|||||||
* @return true if can support it
|
* @return true if can support it
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
public Class getObjectType(HttpMethod supportedMethod)
|
public Class getObjectType(ResourceOperation operation)
|
||||||
{
|
{
|
||||||
for (ResourceOperation ops : operations)
|
for (ResourceParameter param : operation.getParameters())
|
||||||
{
|
|
||||||
if (ops.getHttpMethod().equals(supportedMethod))
|
|
||||||
{
|
|
||||||
for (ResourceParameter param : ops.getParameters())
|
|
||||||
{
|
{
|
||||||
if (ResourceParameter.KIND.HTTP_BODY_OBJECT.equals(param.getParamType())) {
|
if (ResourceParameter.KIND.HTTP_BODY_OBJECT.equals(param.getParamType())) {
|
||||||
return param.getDataType();
|
return param.getDataType();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -204,19 +198,5 @@ public class ResourceMetadata
|
|||||||
// return Collections.emptyList();
|
// return Collections.emptyList();
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
/**
|
|
||||||
* Gets the parameters for the specified http method.
|
|
||||||
* Matches the first operation.
|
|
||||||
* @param httpMethod HttpMethod
|
|
||||||
* @return If not found returns an empty list
|
|
||||||
*/
|
|
||||||
public List<ResourceParameter> getParameters(HttpMethod httpMethod)
|
|
||||||
{
|
|
||||||
for (ResourceOperation ops : operations)
|
|
||||||
{
|
|
||||||
if (ops.getHttpMethod().equals(httpMethod))return ops.getParameters();
|
|
||||||
}
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -11,24 +11,28 @@ import org.springframework.http.HttpMethod;
|
|||||||
*/
|
*/
|
||||||
public class ResourceOperation
|
public class ResourceOperation
|
||||||
{
|
{
|
||||||
|
public static final int UNSET_STATUS = -1;
|
||||||
private final HttpMethod httpMethod;
|
private final HttpMethod httpMethod;
|
||||||
private final String title;
|
private final String title;
|
||||||
private final String description;
|
private final String description;
|
||||||
private final List<ResourceParameter> parameters;
|
private final List<ResourceParameter> parameters;
|
||||||
|
private final int successStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param httpMethod HttpMethod
|
* @param httpMethod HttpMethod
|
||||||
* @param title String
|
* @param title String
|
||||||
* @param description String
|
* @param description String
|
||||||
* @param parameters List<ResourceParameter>
|
* @param parameters List<ResourceParameter>
|
||||||
|
* @param successStatus HTTP status
|
||||||
*/
|
*/
|
||||||
public ResourceOperation(HttpMethod httpMethod, String title, String description, List<ResourceParameter> parameters)
|
public ResourceOperation(HttpMethod httpMethod, String title, String description, List<ResourceParameter> parameters, int successStatus)
|
||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
this.httpMethod = httpMethod;
|
this.httpMethod = httpMethod;
|
||||||
this.title = title;
|
this.title = title;
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.parameters = parameters;
|
this.parameters = parameters;
|
||||||
|
this.successStatus = successStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HttpMethod getHttpMethod()
|
public HttpMethod getHttpMethod()
|
||||||
@@ -51,6 +55,11 @@ public class ResourceOperation
|
|||||||
return this.parameters;
|
return this.parameters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getSuccessStatus()
|
||||||
|
{
|
||||||
|
return successStatus;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
@@ -59,6 +68,8 @@ public class ResourceOperation
|
|||||||
builder.append(this.httpMethod);
|
builder.append(this.httpMethod);
|
||||||
builder.append(", title=");
|
builder.append(", title=");
|
||||||
builder.append(this.title);
|
builder.append(this.title);
|
||||||
|
builder.append(", status=");
|
||||||
|
builder.append(this.successStatus);
|
||||||
builder.append(", description=");
|
builder.append(", description=");
|
||||||
builder.append(this.description);
|
builder.append(this.description);
|
||||||
builder.append(", parameters=");
|
builder.append(", parameters=");
|
||||||
|
@@ -4,6 +4,7 @@ import org.alfresco.rest.framework.core.HttpMethodSupport;
|
|||||||
import org.alfresco.rest.framework.core.ResourceWithMetadata;
|
import org.alfresco.rest.framework.core.ResourceWithMetadata;
|
||||||
import org.alfresco.rest.framework.resource.content.ContentInfo;
|
import org.alfresco.rest.framework.resource.content.ContentInfo;
|
||||||
import org.alfresco.rest.framework.resource.parameters.Params;
|
import org.alfresco.rest.framework.resource.parameters.Params;
|
||||||
|
import org.springframework.extensions.webscripts.Status;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executes an action in the system
|
* Executes an action in the system
|
||||||
@@ -29,7 +30,7 @@ public interface ActionExecutor extends HttpMethodSupport
|
|||||||
*/
|
*/
|
||||||
public interface ExecutionCallback<R>
|
public interface ExecutionCallback<R>
|
||||||
{
|
{
|
||||||
public void onSuccess(R result, ContentInfo contentInfo);
|
public void onSuccess(R result, ContentInfo contentInfo, int statusCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -92,11 +92,4 @@ public interface Parameters
|
|||||||
* @return BasicContentInfo the content info
|
* @return BasicContentInfo the content info
|
||||||
*/
|
*/
|
||||||
BasicContentInfo getContentInfo();
|
BasicContentInfo getContentInfo();
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets Web Script status
|
|
||||||
*
|
|
||||||
* @return {@link Status}
|
|
||||||
*/
|
|
||||||
public Status getStatus();
|
|
||||||
}
|
}
|
||||||
|
@@ -30,7 +30,6 @@ public class Params implements Parameters
|
|||||||
private final RecognizedParams recognizedParams;
|
private final RecognizedParams recognizedParams;
|
||||||
private final String addressedProperty;
|
private final String addressedProperty;
|
||||||
private final BasicContentInfo contentInfo;
|
private final BasicContentInfo contentInfo;
|
||||||
private final Status status;
|
|
||||||
|
|
||||||
//Constants
|
//Constants
|
||||||
private static final RecognizedParams NULL_PARAMS = new RecognizedParams(null, null, null, null, null, null, null, false);
|
private static final RecognizedParams NULL_PARAMS = new RecognizedParams(null, null, null, null, null, null, null, false);
|
||||||
@@ -46,7 +45,6 @@ public class Params implements Parameters
|
|||||||
this.recognizedParams = recognizedParams;
|
this.recognizedParams = recognizedParams;
|
||||||
this.addressedProperty = addressedProperty;
|
this.addressedProperty = addressedProperty;
|
||||||
this.contentInfo = contentInfo==null?DEFAULT_CONTENT_INFO:contentInfo;
|
this.contentInfo = contentInfo==null?DEFAULT_CONTENT_INFO:contentInfo;
|
||||||
this.status = new Status();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Params valueOf(BeanPropertiesFilter paramFilter, String entityId)
|
public static Params valueOf(BeanPropertiesFilter paramFilter, String entityId)
|
||||||
@@ -216,12 +214,6 @@ public class Params implements Parameters
|
|||||||
return contentInfo;
|
return contentInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Status getStatus()
|
|
||||||
{
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A formal set of params that any rest service could potentially have passed in as request params
|
* A formal set of params that any rest service could potentially have passed in as request params
|
||||||
*/
|
*/
|
||||||
|
@@ -93,7 +93,7 @@ public abstract class AbstractResourceWebScript extends ApiWebScript implements
|
|||||||
executor.execute(resource, params, new ExecutionCallback()
|
executor.execute(resource, params, new ExecutionCallback()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Object result, ContentInfo contentInfo)
|
public void onSuccess(Object result, ContentInfo contentInfo, int statusCode)
|
||||||
{
|
{
|
||||||
respons.put("toSerialize", result);
|
respons.put("toSerialize", result);
|
||||||
respons.put("contentInfo", contentInfo);
|
respons.put("contentInfo", contentInfo);
|
||||||
@@ -108,14 +108,9 @@ public abstract class AbstractResourceWebScript extends ApiWebScript implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.getStatus().getRedirect())
|
// The response status must be set before the response is written by Jackson (which will by default close and commit the response).
|
||||||
{
|
// In a r/w txn, web script buffered responses ensure that it doesn't really matter but for r/o txns this is important.
|
||||||
res.setStatus(params.getStatus().getCode());
|
res.setStatus(statusCode);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
setSuccessResponseStatus(res);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -210,17 +205,6 @@ public abstract class AbstractResourceWebScript extends ApiWebScript implements
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* The response status must be set before the response is written by Jackson (which will by default close and commit the response).
|
|
||||||
* In a r/w txn, web script buffered responses ensure that it doesn't really matter but for r/o txns this is important.
|
|
||||||
* @param res WebScriptResponse
|
|
||||||
*/
|
|
||||||
protected void setSuccessResponseStatus(final WebScriptResponse res)
|
|
||||||
{
|
|
||||||
// default for GET, HEAD, OPTIONS, PUT, TRACE
|
|
||||||
res.setStatus(Status.STATUS_OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Finds the action executor to execute actions on.
|
* Finds the action executor to execute actions on.
|
||||||
* @param httpMethod - the http method
|
* @param httpMethod - the http method
|
||||||
|
@@ -3,6 +3,7 @@ package org.alfresco.rest.framework.webscripts;
|
|||||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||||
import org.alfresco.rest.framework.core.ResourceLocator;
|
import org.alfresco.rest.framework.core.ResourceLocator;
|
||||||
import org.alfresco.rest.framework.core.ResourceMetadata;
|
import org.alfresco.rest.framework.core.ResourceMetadata;
|
||||||
|
import org.alfresco.rest.framework.core.ResourceOperation;
|
||||||
import org.alfresco.rest.framework.core.ResourceWithMetadata;
|
import org.alfresco.rest.framework.core.ResourceWithMetadata;
|
||||||
import org.alfresco.rest.framework.core.exceptions.DeletedResourceException;
|
import org.alfresco.rest.framework.core.exceptions.DeletedResourceException;
|
||||||
import org.alfresco.rest.framework.core.exceptions.UnsupportedResourceOperationException;
|
import org.alfresco.rest.framework.core.exceptions.UnsupportedResourceOperationException;
|
||||||
@@ -87,7 +88,7 @@ public class ResourceWebScriptDelete extends AbstractResourceWebScript implement
|
|||||||
* @param params parameters to use
|
* @param params parameters to use
|
||||||
* @return anObject the result of the execute
|
* @return anObject the result of the execute
|
||||||
*/
|
*/
|
||||||
private Object executeInternal(ResourceWithMetadata resource, Params params)
|
private void executeInternal(ResourceWithMetadata resource, Params params)
|
||||||
{
|
{
|
||||||
switch (resource.getMetaData().getType())
|
switch (resource.getMetaData().getType())
|
||||||
{
|
{
|
||||||
@@ -99,7 +100,7 @@ public class ResourceWebScriptDelete extends AbstractResourceWebScript implement
|
|||||||
EntityResourceAction.Delete entityDeleter = (EntityResourceAction.Delete) resource.getResource();
|
EntityResourceAction.Delete entityDeleter = (EntityResourceAction.Delete) resource.getResource();
|
||||||
entityDeleter.delete(params.getEntityId(), params);
|
entityDeleter.delete(params.getEntityId(), params);
|
||||||
//Don't pass anything to the callback - its just successful
|
//Don't pass anything to the callback - its just successful
|
||||||
return null;
|
return;
|
||||||
case RELATIONSHIP:
|
case RELATIONSHIP:
|
||||||
if (resource.getMetaData().isDeleted(RelationshipResourceAction.Delete.class))
|
if (resource.getMetaData().isDeleted(RelationshipResourceAction.Delete.class))
|
||||||
{
|
{
|
||||||
@@ -108,7 +109,7 @@ public class ResourceWebScriptDelete extends AbstractResourceWebScript implement
|
|||||||
RelationshipResourceAction.Delete relationDeleter = (RelationshipResourceAction.Delete) resource.getResource();
|
RelationshipResourceAction.Delete relationDeleter = (RelationshipResourceAction.Delete) resource.getResource();
|
||||||
relationDeleter.delete(params.getEntityId(), params.getRelationshipId(), params);
|
relationDeleter.delete(params.getEntityId(), params.getRelationshipId(), params);
|
||||||
//Don't pass anything to the callback - its just successful
|
//Don't pass anything to the callback - its just successful
|
||||||
return null;
|
return;
|
||||||
case PROPERTY:
|
case PROPERTY:
|
||||||
if (BinaryResourceAction.Delete.class.isAssignableFrom(resource.getResource().getClass()))
|
if (BinaryResourceAction.Delete.class.isAssignableFrom(resource.getResource().getClass()))
|
||||||
{
|
{
|
||||||
@@ -119,7 +120,7 @@ public class ResourceWebScriptDelete extends AbstractResourceWebScript implement
|
|||||||
BinaryResourceAction.Delete binDeleter = (BinaryResourceAction.Delete) resource.getResource();
|
BinaryResourceAction.Delete binDeleter = (BinaryResourceAction.Delete) resource.getResource();
|
||||||
binDeleter.deleteProperty(params.getEntityId(), params);
|
binDeleter.deleteProperty(params.getEntityId(), params);
|
||||||
//Don't pass anything to the callback - its just successful
|
//Don't pass anything to the callback - its just successful
|
||||||
return null;
|
return;
|
||||||
}
|
}
|
||||||
if (RelationshipResourceBinaryAction.Delete.class.isAssignableFrom(resource.getResource().getClass()))
|
if (RelationshipResourceBinaryAction.Delete.class.isAssignableFrom(resource.getResource().getClass()))
|
||||||
{
|
{
|
||||||
@@ -130,7 +131,7 @@ public class ResourceWebScriptDelete extends AbstractResourceWebScript implement
|
|||||||
RelationshipResourceBinaryAction.Delete binDeleter = (RelationshipResourceBinaryAction.Delete) resource.getResource();
|
RelationshipResourceBinaryAction.Delete binDeleter = (RelationshipResourceBinaryAction.Delete) resource.getResource();
|
||||||
binDeleter.deleteProperty(params.getEntityId(), params.getRelationshipId(), params);
|
binDeleter.deleteProperty(params.getEntityId(), params.getRelationshipId(), params);
|
||||||
//Don't pass anything to the callback - its just successful
|
//Don't pass anything to the callback - its just successful
|
||||||
return null;
|
return;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
throw new UnsupportedResourceOperationException("DELETE not supported for Actions");
|
throw new UnsupportedResourceOperationException("DELETE not supported for Actions");
|
||||||
@@ -146,17 +147,12 @@ public class ResourceWebScriptDelete extends AbstractResourceWebScript implement
|
|||||||
@Override
|
@Override
|
||||||
public Void execute() throws Throwable
|
public Void execute() throws Throwable
|
||||||
{
|
{
|
||||||
|
final ResourceOperation operation = resource.getMetaData().getOperation(HttpMethod.DELETE);
|
||||||
executeInternal(resource, params); //ignore return result
|
executeInternal(resource, params); //ignore return result
|
||||||
executionCallback.onSuccess(null, DEFAULT_JSON_CONTENT);
|
executionCallback.onSuccess(null, DEFAULT_JSON_CONTENT, operation.getSuccessStatus());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}, false, true);
|
}, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void setSuccessResponseStatus(WebScriptResponse res)
|
|
||||||
{
|
|
||||||
res.setStatus(Status.STATUS_NO_CONTENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -22,6 +22,7 @@ import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransacti
|
|||||||
import org.alfresco.rest.framework.core.ResourceInspector;
|
import org.alfresco.rest.framework.core.ResourceInspector;
|
||||||
import org.alfresco.rest.framework.core.ResourceLocator;
|
import org.alfresco.rest.framework.core.ResourceLocator;
|
||||||
import org.alfresco.rest.framework.core.ResourceMetadata;
|
import org.alfresco.rest.framework.core.ResourceMetadata;
|
||||||
|
import org.alfresco.rest.framework.core.ResourceOperation;
|
||||||
import org.alfresco.rest.framework.core.ResourceWithMetadata;
|
import org.alfresco.rest.framework.core.ResourceWithMetadata;
|
||||||
import org.alfresco.rest.framework.core.exceptions.DeletedResourceException;
|
import org.alfresco.rest.framework.core.exceptions.DeletedResourceException;
|
||||||
import org.alfresco.rest.framework.core.exceptions.UnsupportedResourceOperationException;
|
import org.alfresco.rest.framework.core.exceptions.UnsupportedResourceOperationException;
|
||||||
@@ -40,6 +41,7 @@ import org.alfresco.rest.framework.resource.parameters.Params.RecognizedParams;
|
|||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||||
import org.springframework.http.HttpMethod;
|
import org.springframework.http.HttpMethod;
|
||||||
|
|
||||||
@@ -227,6 +229,7 @@ public class ResourceWebScriptGet extends AbstractResourceWebScript implements P
|
|||||||
@Override
|
@Override
|
||||||
public Void execute() throws Throwable
|
public Void execute() throws Throwable
|
||||||
{
|
{
|
||||||
|
final ResourceOperation operation = resource.getMetaData().getOperation(HttpMethod.GET);
|
||||||
Object result = executeInternal(resource, params);
|
Object result = executeInternal(resource, params);
|
||||||
if (result instanceof BinaryResource)
|
if (result instanceof BinaryResource)
|
||||||
{
|
{
|
||||||
@@ -235,11 +238,11 @@ public class ResourceWebScriptGet extends AbstractResourceWebScript implements P
|
|||||||
{
|
{
|
||||||
ci = ((NodeBinaryResource)result).getContentInfo();
|
ci = ((NodeBinaryResource)result).getContentInfo();
|
||||||
}
|
}
|
||||||
executionCallback.onSuccess(result, ci);
|
executionCallback.onSuccess(result, ci, operation.getSuccessStatus());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
executionCallback.onSuccess(helper.processAdditionsToTheResponse(resource.getMetaData().getApi(), entityCollectionName, params, result), DEFAULT_JSON_CONTENT);
|
executionCallback.onSuccess(helper.processAdditionsToTheResponse(resource.getMetaData().getApi(), entityCollectionName, params, result), DEFAULT_JSON_CONTENT, operation.getSuccessStatus());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@@ -627,7 +627,7 @@ public class ResourceWebScriptHelper
|
|||||||
executor.execute(resource, executionParams, new ExecutionCallback()
|
executor.execute(resource, executionParams, new ExecutionCallback()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Object result, ContentInfo contentInfo)
|
public void onSuccess(Object result, ContentInfo contentInfo, int statusCode)
|
||||||
{
|
{
|
||||||
resultOfExecution[0] = result;
|
resultOfExecution[0] = result;
|
||||||
}
|
}
|
||||||
|
@@ -28,6 +28,7 @@ import org.alfresco.rest.framework.core.ResourceInspector;
|
|||||||
import org.alfresco.rest.framework.core.ResourceInspectorUtil;
|
import org.alfresco.rest.framework.core.ResourceInspectorUtil;
|
||||||
import org.alfresco.rest.framework.core.ResourceLocator;
|
import org.alfresco.rest.framework.core.ResourceLocator;
|
||||||
import org.alfresco.rest.framework.core.ResourceMetadata;
|
import org.alfresco.rest.framework.core.ResourceMetadata;
|
||||||
|
import org.alfresco.rest.framework.core.ResourceOperation;
|
||||||
import org.alfresco.rest.framework.core.ResourceParameter;
|
import org.alfresco.rest.framework.core.ResourceParameter;
|
||||||
import org.alfresco.rest.framework.core.ResourceWithMetadata;
|
import org.alfresco.rest.framework.core.ResourceWithMetadata;
|
||||||
import org.alfresco.rest.framework.core.exceptions.DeletedResourceException;
|
import org.alfresco.rest.framework.core.exceptions.DeletedResourceException;
|
||||||
@@ -69,6 +70,7 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements
|
|||||||
final RecognizedParams params = ResourceWebScriptHelper.getRecognizedParams(req);
|
final RecognizedParams params = ResourceWebScriptHelper.getRecognizedParams(req);
|
||||||
final String entityId = req.getServiceMatch().getTemplateVars().get(ResourceLocator.ENTITY_ID);
|
final String entityId = req.getServiceMatch().getTemplateVars().get(ResourceLocator.ENTITY_ID);
|
||||||
final String relationshipId = req.getServiceMatch().getTemplateVars().get(ResourceLocator.RELATIONSHIP_ID);
|
final String relationshipId = req.getServiceMatch().getTemplateVars().get(ResourceLocator.RELATIONSHIP_ID);
|
||||||
|
final ResourceOperation operation = resourceMeta.getOperation(HttpMethod.POST);
|
||||||
|
|
||||||
switch (resourceMeta.getType())
|
switch (resourceMeta.getType())
|
||||||
{
|
{
|
||||||
@@ -80,7 +82,7 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Object postedObj = processRequest(resourceMeta, req);
|
Object postedObj = processRequest(resourceMeta, operation, req);
|
||||||
return Params.valueOf(null, params, postedObj);
|
return Params.valueOf(null, params, postedObj);
|
||||||
}
|
}
|
||||||
case RELATIONSHIP:
|
case RELATIONSHIP:
|
||||||
@@ -90,7 +92,7 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Object postedRel = processRequest(resourceMeta, req);
|
Object postedRel = processRequest(resourceMeta, operation, req);
|
||||||
return Params.valueOf(entityId, params, postedRel);
|
return Params.valueOf(entityId, params, postedRel);
|
||||||
}
|
}
|
||||||
case OPERATION:
|
case OPERATION:
|
||||||
@@ -99,7 +101,7 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements
|
|||||||
|
|
||||||
if (StringUtils.isNotBlank(entityId) && StringUtils.isNotBlank(operationName))
|
if (StringUtils.isNotBlank(entityId) && StringUtils.isNotBlank(operationName))
|
||||||
{
|
{
|
||||||
Class objectType = resourceMeta.getObjectType(HttpMethod.POST);
|
Class objectType = resourceMeta.getObjectType(operation);
|
||||||
Object postedObj = null;
|
Object postedObj = null;
|
||||||
if (objectType!= null)
|
if (objectType!= null)
|
||||||
{
|
{
|
||||||
@@ -127,14 +129,14 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements
|
|||||||
* returns the {@link FormData}, otherwise it tries to extract the required
|
* returns the {@link FormData}, otherwise it tries to extract the required
|
||||||
* object from the JSON payload.
|
* object from the JSON payload.
|
||||||
*/
|
*/
|
||||||
private Object processRequest(ResourceMetadata resourceMeta, WebScriptRequest req)
|
private Object processRequest(ResourceMetadata resourceMeta, ResourceOperation operation, WebScriptRequest req)
|
||||||
{
|
{
|
||||||
if (WebScriptRequestImpl.MULTIPART_FORM_DATA.equals(req.getContentType()))
|
if (WebScriptRequestImpl.MULTIPART_FORM_DATA.equals(req.getContentType()))
|
||||||
{
|
{
|
||||||
return (FormData) req.parseContent();
|
return (FormData) req.parseContent();
|
||||||
}
|
}
|
||||||
|
|
||||||
return extractObjFromJson(resourceMeta, req);
|
return extractObjFromJson(resourceMeta, operation, req);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -144,10 +146,10 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements
|
|||||||
* @param req WebScriptRequest
|
* @param req WebScriptRequest
|
||||||
* @return Either an object
|
* @return Either an object
|
||||||
*/
|
*/
|
||||||
private Object extractObjFromJson(ResourceMetadata resourceMeta, WebScriptRequest req)
|
private Object extractObjFromJson(ResourceMetadata resourceMeta, ResourceOperation operation, WebScriptRequest req)
|
||||||
{
|
{
|
||||||
List<ResourceParameter> params = resourceMeta.getParameters(HttpMethod.POST);
|
List<ResourceParameter> params = operation.getParameters();
|
||||||
Class<?> objType = resourceMeta.getObjectType(HttpMethod.POST);
|
Class<?> objType = resourceMeta.getObjectType(operation);
|
||||||
|
|
||||||
if (!params.isEmpty())
|
if (!params.isEmpty())
|
||||||
{
|
{
|
||||||
@@ -212,6 +214,7 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements
|
|||||||
private Object executeInternal(ResourceWithMetadata resource, Params params) throws Throwable
|
private Object executeInternal(ResourceWithMetadata resource, Params params) throws Throwable
|
||||||
{
|
{
|
||||||
final Object resObj = resource.getResource();
|
final Object resObj = resource.getResource();
|
||||||
|
|
||||||
switch (resource.getMetaData().getType())
|
switch (resource.getMetaData().getType())
|
||||||
{
|
{
|
||||||
case ENTITY:
|
case ENTITY:
|
||||||
@@ -296,17 +299,13 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements
|
|||||||
@Override
|
@Override
|
||||||
public Void execute() throws Throwable
|
public Void execute() throws Throwable
|
||||||
{
|
{
|
||||||
|
final ResourceOperation operation = resource.getMetaData().getOperation(HttpMethod.POST);
|
||||||
Object result = executeInternal(resource, params);
|
Object result = executeInternal(resource, params);
|
||||||
executionCallback.onSuccess(helper.processAdditionsToTheResponse(resource.getMetaData().getApi(), entityCollectionName, params, result), DEFAULT_JSON_CONTENT);
|
executionCallback.onSuccess(helper.processAdditionsToTheResponse(resource.getMetaData().getApi(), entityCollectionName, params, result),
|
||||||
|
DEFAULT_JSON_CONTENT, operation.getSuccessStatus());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}, false, true);
|
}, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void setSuccessResponseStatus(WebScriptResponse res)
|
|
||||||
{
|
|
||||||
res.setStatus(Status.STATUS_CREATED);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -28,6 +28,7 @@ import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransacti
|
|||||||
import org.alfresco.rest.framework.core.ResourceInspector;
|
import org.alfresco.rest.framework.core.ResourceInspector;
|
||||||
import org.alfresco.rest.framework.core.ResourceLocator;
|
import org.alfresco.rest.framework.core.ResourceLocator;
|
||||||
import org.alfresco.rest.framework.core.ResourceMetadata;
|
import org.alfresco.rest.framework.core.ResourceMetadata;
|
||||||
|
import org.alfresco.rest.framework.core.ResourceOperation;
|
||||||
import org.alfresco.rest.framework.core.ResourceWithMetadata;
|
import org.alfresco.rest.framework.core.ResourceWithMetadata;
|
||||||
import org.alfresco.rest.framework.core.exceptions.DeletedResourceException;
|
import org.alfresco.rest.framework.core.exceptions.DeletedResourceException;
|
||||||
import org.alfresco.rest.framework.core.exceptions.UnsupportedResourceOperationException;
|
import org.alfresco.rest.framework.core.exceptions.UnsupportedResourceOperationException;
|
||||||
@@ -43,6 +44,7 @@ import org.alfresco.rest.framework.resource.parameters.Params.RecognizedParams;
|
|||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||||
import org.springframework.extensions.webscripts.WrappingWebScriptRequest;
|
import org.springframework.extensions.webscripts.WrappingWebScriptRequest;
|
||||||
import org.springframework.extensions.webscripts.servlet.WebScriptServletRequest;
|
import org.springframework.extensions.webscripts.servlet.WebScriptServletRequest;
|
||||||
@@ -72,6 +74,7 @@ public class ResourceWebScriptPut extends AbstractResourceWebScript implements P
|
|||||||
final String relationshipId = req.getServiceMatch().getTemplateVars().get(ResourceLocator.RELATIONSHIP_ID);
|
final String relationshipId = req.getServiceMatch().getTemplateVars().get(ResourceLocator.RELATIONSHIP_ID);
|
||||||
final String entityId = req.getServiceMatch().getTemplateVars().get(ResourceLocator.ENTITY_ID);
|
final String entityId = req.getServiceMatch().getTemplateVars().get(ResourceLocator.ENTITY_ID);
|
||||||
final RecognizedParams params = ResourceWebScriptHelper.getRecognizedParams(req);
|
final RecognizedParams params = ResourceWebScriptHelper.getRecognizedParams(req);
|
||||||
|
final ResourceOperation operation = resourceMeta.getOperation(HttpMethod.PUT);
|
||||||
|
|
||||||
switch (resourceMeta.getType())
|
switch (resourceMeta.getType())
|
||||||
{
|
{
|
||||||
@@ -82,7 +85,7 @@ public class ResourceWebScriptPut extends AbstractResourceWebScript implements P
|
|||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
|
|
||||||
Object putEnt = ResourceWebScriptHelper.extractJsonContent(req, jsonHelper, resourceMeta.getObjectType(HttpMethod.PUT));
|
Object putEnt = ResourceWebScriptHelper.extractJsonContent(req, jsonHelper, resourceMeta.getObjectType(operation));
|
||||||
return Params.valueOf(entityId,params,putEnt);
|
return Params.valueOf(entityId,params,putEnt);
|
||||||
}
|
}
|
||||||
case RELATIONSHIP:
|
case RELATIONSHIP:
|
||||||
@@ -91,7 +94,7 @@ public class ResourceWebScriptPut extends AbstractResourceWebScript implements P
|
|||||||
throw new UnsupportedResourceOperationException("PUT is executed against the instance URL");
|
throw new UnsupportedResourceOperationException("PUT is executed against the instance URL");
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
Object putRel = ResourceWebScriptHelper.extractJsonContent(req, jsonHelper, resourceMeta.getObjectType(HttpMethod.PUT));
|
Object putRel = ResourceWebScriptHelper.extractJsonContent(req, jsonHelper, resourceMeta.getObjectType(operation));
|
||||||
ResourceWebScriptHelper.setUniqueId(putRel,relationshipId);
|
ResourceWebScriptHelper.setUniqueId(putRel,relationshipId);
|
||||||
return Params.valueOf(entityId, params, putRel);
|
return Params.valueOf(entityId, params, putRel);
|
||||||
}
|
}
|
||||||
@@ -231,8 +234,10 @@ public class ResourceWebScriptPut extends AbstractResourceWebScript implements P
|
|||||||
@Override
|
@Override
|
||||||
public Void execute() throws Throwable
|
public Void execute() throws Throwable
|
||||||
{
|
{
|
||||||
|
final ResourceOperation operation = resource.getMetaData().getOperation(HttpMethod.PUT);
|
||||||
Object result = executeInternal(resource, params);
|
Object result = executeInternal(resource, params);
|
||||||
executionCallback.onSuccess(helper.processAdditionsToTheResponse(resource.getMetaData().getApi(), entityCollectionName, params, result), DEFAULT_JSON_CONTENT);
|
executionCallback.onSuccess(helper.processAdditionsToTheResponse(resource.getMetaData().getApi(), entityCollectionName, params, result),
|
||||||
|
DEFAULT_JSON_CONTENT, operation.getSuccessStatus());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}, false, true);
|
}, false, true);
|
||||||
|
@@ -41,7 +41,7 @@ public class ExecutionTests extends AbstractContextTest
|
|||||||
AbstractResourceWebScript executor = (AbstractResourceWebScript) applicationContext.getBean("executorOfGets");
|
AbstractResourceWebScript executor = (AbstractResourceWebScript) applicationContext.getBean("executorOfGets");
|
||||||
executor.execute(entityResource, Params.valueOf((String)null, null), new ActionExecutor.ExecutionCallback<CollectionWithPagingInfo>(){
|
executor.execute(entityResource, Params.valueOf((String)null, null), new ActionExecutor.ExecutionCallback<CollectionWithPagingInfo>(){
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(CollectionWithPagingInfo result, ContentInfo contentInfo)
|
public void onSuccess(CollectionWithPagingInfo result, ContentInfo contentInfo, int statusCode)
|
||||||
{
|
{
|
||||||
assertNotNull(result);
|
assertNotNull(result);
|
||||||
}});
|
}});
|
||||||
@@ -50,14 +50,14 @@ public class ExecutionTests extends AbstractContextTest
|
|||||||
executor = (AbstractResourceWebScript) applicationContext.getBean("executorOfGets");
|
executor = (AbstractResourceWebScript) applicationContext.getBean("executorOfGets");
|
||||||
executor.execute(baa, Params.valueOf("4", null), new ActionExecutor.ExecutionCallback<CollectionWithPagingInfo>(){
|
executor.execute(baa, Params.valueOf("4", null), new ActionExecutor.ExecutionCallback<CollectionWithPagingInfo>(){
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(CollectionWithPagingInfo result, ContentInfo contentInfo)
|
public void onSuccess(CollectionWithPagingInfo result, ContentInfo contentInfo, int statusCode )
|
||||||
{
|
{
|
||||||
assertNotNull(result);
|
assertNotNull(result);
|
||||||
}});
|
}});
|
||||||
|
|
||||||
executor.execute(baa, Params.valueOf("4", "45"), new ActionExecutor.ExecutionCallback<ExecutionResult>(){
|
executor.execute(baa, Params.valueOf("4", "45"), new ActionExecutor.ExecutionCallback<ExecutionResult>(){
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ExecutionResult result, ContentInfo contentInfo)
|
public void onSuccess(ExecutionResult result, ContentInfo contentInfo, int statusCode )
|
||||||
{
|
{
|
||||||
assertNotNull(result);
|
assertNotNull(result);
|
||||||
}});
|
}});
|
||||||
@@ -65,7 +65,7 @@ public class ExecutionTests extends AbstractContextTest
|
|||||||
ResourceWithMetadata baaPhoto = locator.locateRelationResource(api,"sheep/{entityId}/baaahh", "photo", HttpMethod.GET);
|
ResourceWithMetadata baaPhoto = locator.locateRelationResource(api,"sheep/{entityId}/baaahh", "photo", HttpMethod.GET);
|
||||||
executor.execute(baaPhoto, Params.valueOf("4", "45"), new ActionExecutor.ExecutionCallback<CollectionWithPagingInfo>(){
|
executor.execute(baaPhoto, Params.valueOf("4", "45"), new ActionExecutor.ExecutionCallback<CollectionWithPagingInfo>(){
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(CollectionWithPagingInfo result, ContentInfo contentInfo)
|
public void onSuccess(CollectionWithPagingInfo result, ContentInfo contentInfo, int statusCode )
|
||||||
{
|
{
|
||||||
assertNull(result);
|
assertNull(result);
|
||||||
}});
|
}});
|
||||||
@@ -81,7 +81,7 @@ public class ExecutionTests extends AbstractContextTest
|
|||||||
final Sheep aSheep = new Sheep("xyz");
|
final Sheep aSheep = new Sheep("xyz");
|
||||||
executor.execute(resource, Params.valueOf("654", null, NULL_PARAMS, Arrays.asList(aSheep)), new ActionExecutor.ExecutionCallback<ExecutionResult>(){
|
executor.execute(resource, Params.valueOf("654", null, NULL_PARAMS, Arrays.asList(aSheep)), new ActionExecutor.ExecutionCallback<ExecutionResult>(){
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ExecutionResult result, ContentInfo contentInfo)
|
public void onSuccess(ExecutionResult result, ContentInfo contentInfo, int statusCode )
|
||||||
{
|
{
|
||||||
assertNotNull(result);
|
assertNotNull(result);
|
||||||
assertEquals(aSheep,result.getRoot());
|
assertEquals(aSheep,result.getRoot());
|
||||||
@@ -91,7 +91,7 @@ public class ExecutionTests extends AbstractContextTest
|
|||||||
final Grass grr = new Grass("grr");
|
final Grass grr = new Grass("grr");
|
||||||
executor.execute(grassResource, Params.valueOf("654", null, NULL_PARAMS, Arrays.asList(grr)), new ActionExecutor.ExecutionCallback<ExecutionResult>(){
|
executor.execute(grassResource, Params.valueOf("654", null, NULL_PARAMS, Arrays.asList(grr)), new ActionExecutor.ExecutionCallback<ExecutionResult>(){
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ExecutionResult result, ContentInfo contentInfo)
|
public void onSuccess(ExecutionResult result, ContentInfo contentInfo, int statusCode )
|
||||||
{
|
{
|
||||||
assertEquals(grr,result.getRoot());
|
assertEquals(grr,result.getRoot());
|
||||||
}});
|
}});
|
||||||
@@ -99,7 +99,7 @@ public class ExecutionTests extends AbstractContextTest
|
|||||||
ResourceWithMetadata entityResource = locator.locateRelationResource(api,"grass", "grow", HttpMethod.POST);
|
ResourceWithMetadata entityResource = locator.locateRelationResource(api,"grass", "grow", HttpMethod.POST);
|
||||||
executor.execute(entityResource, Params.valueOf("654", null, NULL_PARAMS, grr), new ActionExecutor.ExecutionCallback<String>(){
|
executor.execute(entityResource, Params.valueOf("654", null, NULL_PARAMS, grr), new ActionExecutor.ExecutionCallback<String>(){
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String result, ContentInfo contentInfo)
|
public void onSuccess(String result, ContentInfo contentInfo, int statusCode )
|
||||||
{
|
{
|
||||||
assertEquals("Growing well",result);
|
assertEquals("Growing well",result);
|
||||||
}});
|
}});
|
||||||
@@ -113,14 +113,14 @@ public class ExecutionTests extends AbstractContextTest
|
|||||||
AbstractResourceWebScript executor = (AbstractResourceWebScript) applicationContext.getBean("executorOfDelete");
|
AbstractResourceWebScript executor = (AbstractResourceWebScript) applicationContext.getBean("executorOfDelete");
|
||||||
executor.execute(grassResource, Params.valueOf("4", null), new ActionExecutor.ExecutionCallback<Object>(){
|
executor.execute(grassResource, Params.valueOf("4", null), new ActionExecutor.ExecutionCallback<Object>(){
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Object result, ContentInfo contentInfo)
|
public void onSuccess(Object result, ContentInfo contentInfo, int statusCode )
|
||||||
{
|
{
|
||||||
assertNull(result);
|
assertNull(result);
|
||||||
}});
|
}});
|
||||||
ResourceWithMetadata resource = locator.locateRelationResource(api, "sheep", "blacksheep", HttpMethod.DELETE);
|
ResourceWithMetadata resource = locator.locateRelationResource(api, "sheep", "blacksheep", HttpMethod.DELETE);
|
||||||
executor.execute(resource, Params.valueOf("4", null), new ActionExecutor.ExecutionCallback<Object>(){
|
executor.execute(resource, Params.valueOf("4", null), new ActionExecutor.ExecutionCallback<Object>(){
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Object result, ContentInfo contentInfo)
|
public void onSuccess(Object result, ContentInfo contentInfo, int statusCode )
|
||||||
{
|
{
|
||||||
assertNull(result);
|
assertNull(result);
|
||||||
}});
|
}});
|
||||||
@@ -128,7 +128,7 @@ public class ExecutionTests extends AbstractContextTest
|
|||||||
ResourceWithMetadata goatDelete = locator.locateRelationResource(api3,"goat/{entityId}/herd", "content", HttpMethod.DELETE);
|
ResourceWithMetadata goatDelete = locator.locateRelationResource(api3,"goat/{entityId}/herd", "content", HttpMethod.DELETE);
|
||||||
executor.execute(goatDelete, Params.valueOf("4", "56"), new ActionExecutor.ExecutionCallback<Object>(){
|
executor.execute(goatDelete, Params.valueOf("4", "56"), new ActionExecutor.ExecutionCallback<Object>(){
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Object result, ContentInfo contentInfo)
|
public void onSuccess(Object result, ContentInfo contentInfo, int statusCode )
|
||||||
{
|
{
|
||||||
assertNull(result);
|
assertNull(result);
|
||||||
}});
|
}});
|
||||||
@@ -143,7 +143,7 @@ public class ExecutionTests extends AbstractContextTest
|
|||||||
final Sheep aSheep = new Sheep("xyz");
|
final Sheep aSheep = new Sheep("xyz");
|
||||||
executor.execute(entityResource, Params.valueOf("654", null, NULL_PARAMS, aSheep), new ActionExecutor.ExecutionCallback<ExecutionResult>(){
|
executor.execute(entityResource, Params.valueOf("654", null, NULL_PARAMS, aSheep), new ActionExecutor.ExecutionCallback<ExecutionResult>(){
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ExecutionResult result, ContentInfo contentInfo)
|
public void onSuccess(ExecutionResult result, ContentInfo contentInfo, int statusCode )
|
||||||
{
|
{
|
||||||
assertNotNull(result);
|
assertNotNull(result);
|
||||||
assertEquals(aSheep,result.getRoot());
|
assertEquals(aSheep,result.getRoot());
|
||||||
@@ -152,7 +152,7 @@ public class ExecutionTests extends AbstractContextTest
|
|||||||
ResourceWithMetadata resource = locator.locateRelationResource(api, "sheep", "blacksheep", HttpMethod.PUT);
|
ResourceWithMetadata resource = locator.locateRelationResource(api, "sheep", "blacksheep", HttpMethod.PUT);
|
||||||
executor.execute(resource, Params.valueOf("654", null, NULL_PARAMS, aSheep), new ActionExecutor.ExecutionCallback<ExecutionResult>(){
|
executor.execute(resource, Params.valueOf("654", null, NULL_PARAMS, aSheep), new ActionExecutor.ExecutionCallback<ExecutionResult>(){
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ExecutionResult result, ContentInfo contentInfo)
|
public void onSuccess(ExecutionResult result, ContentInfo contentInfo, int statusCode )
|
||||||
{
|
{
|
||||||
assertNotNull(result);
|
assertNotNull(result);
|
||||||
assertEquals(aSheep,result.getRoot());
|
assertEquals(aSheep,result.getRoot());
|
||||||
@@ -160,7 +160,7 @@ public class ExecutionTests extends AbstractContextTest
|
|||||||
ResourceWithMetadata baaPhoto = locator.locateRelationResource(api,"sheep/{entityId}/baaahh", "photo", HttpMethod.PUT);
|
ResourceWithMetadata baaPhoto = locator.locateRelationResource(api,"sheep/{entityId}/baaahh", "photo", HttpMethod.PUT);
|
||||||
executor.execute(baaPhoto, Params.valueOf("4", "56"), new ActionExecutor.ExecutionCallback<Object>(){
|
executor.execute(baaPhoto, Params.valueOf("4", "56"), new ActionExecutor.ExecutionCallback<Object>(){
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Object result, ContentInfo contentInfo)
|
public void onSuccess(Object result, ContentInfo contentInfo, int statusCode )
|
||||||
{
|
{
|
||||||
assertNull(result);
|
assertNull(result);
|
||||||
}});
|
}});
|
||||||
|
@@ -52,6 +52,7 @@ import org.alfresco.rest.framework.tests.api.mocks3.SheepEntityResourceWithDelet
|
|||||||
import org.alfresco.rest.framework.tests.api.mocks3.SlimGoat;
|
import org.alfresco.rest.framework.tests.api.mocks3.SlimGoat;
|
||||||
import org.alfresco.util.Pair;
|
import org.alfresco.util.Pair;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.http.HttpMethod;
|
import org.springframework.http.HttpMethod;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -69,11 +70,12 @@ public class InspectorTests
|
|||||||
assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
|
assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
|
||||||
ResourceMetadata metaData = metainfo.get(0);
|
ResourceMetadata metaData = metainfo.get(0);
|
||||||
assertNotNull(metaData);
|
assertNotNull(metaData);
|
||||||
assertTrue("SheepEntityResource supports GET", metaData.supports(HttpMethod.GET));
|
assertNotNull("SheepEntityResource supports GET", metaData.getOperation(HttpMethod.GET));
|
||||||
assertTrue("SheepEntityResource supports PUT", metaData.supports(HttpMethod.PUT));
|
assertNotNull("SheepEntityResource supports PUT", metaData.getOperation(HttpMethod.PUT));
|
||||||
assertTrue("SheepEntityResource supports DELETE", metaData.supports(HttpMethod.DELETE));
|
assertNotNull("SheepEntityResource supports DELETE", metaData.getOperation(HttpMethod.DELETE));
|
||||||
assertTrue("SheepEntityResource does not support POST", !metaData.supports(HttpMethod.POST));
|
assertNull("SheepEntityResource does not support POST", metaData.getOperation(HttpMethod.POST));
|
||||||
assertTrue("SheepEntityResource must support Sheep", Sheep.class.equals(metaData.getObjectType(HttpMethod.PUT)));
|
ResourceOperation op = metaData.getOperation(HttpMethod.PUT);
|
||||||
|
assertTrue("SheepEntityResource must support Sheep", Sheep.class.equals(metaData.getObjectType(op)));
|
||||||
|
|
||||||
metainfo = ResourceInspector.inspect(SheepNoActionEntityResource.class);
|
metainfo = ResourceInspector.inspect(SheepNoActionEntityResource.class);
|
||||||
assertTrue("SheepNoActionEntityResource has no actions.",metainfo.isEmpty());
|
assertTrue("SheepNoActionEntityResource has no actions.",metainfo.isEmpty());
|
||||||
@@ -82,28 +84,30 @@ public class InspectorTests
|
|||||||
assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
|
assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
|
||||||
metaData = metainfo.get(0);
|
metaData = metainfo.get(0);
|
||||||
assertNotNull(metaData);
|
assertNotNull(metaData);
|
||||||
assertTrue("GoatEntityResource supports GET", metaData.supports(HttpMethod.GET));
|
assertNotNull("GoatEntityResource supports GET", metaData.getOperation(HttpMethod.GET));
|
||||||
List<ResourceParameter> params = metaData.getParameters(HttpMethod.GET);
|
op = metaData.getOperation(HttpMethod.GET);
|
||||||
|
List<ResourceParameter> params = op.getParameters();
|
||||||
assertTrue("readById method should have 1 url param", params.size() == 1);
|
assertTrue("readById method should have 1 url param", params.size() == 1);
|
||||||
|
|
||||||
metainfo = ResourceInspector.inspect(FlockEntityResource.class);
|
metainfo = ResourceInspector.inspect(FlockEntityResource.class);
|
||||||
assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
|
assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
|
||||||
metaData = metainfo.get(0);
|
metaData = metainfo.get(0);
|
||||||
assertNotNull(metaData);
|
assertNotNull(metaData);
|
||||||
assertTrue("FlockEntityResource supports GET", metaData.supports(HttpMethod.GET));
|
assertNotNull("FlockEntityResource supports GET", metaData.getOperation(HttpMethod.GET));
|
||||||
assertTrue("FlockEntityResource supports PUT", metaData.supports(HttpMethod.PUT));
|
assertNotNull("FlockEntityResource supports PUT", metaData.getOperation(HttpMethod.PUT));
|
||||||
assertTrue("FlockEntityResource supports DELETE", metaData.supports(HttpMethod.DELETE));
|
assertNotNull("FlockEntityResource supports DELETE", metaData.getOperation(HttpMethod.DELETE));
|
||||||
assertTrue("FlockEntityResource does not support POST", !metaData.supports(HttpMethod.POST));
|
assertNull("FlockEntityResource does not support POST", metaData.getOperation(HttpMethod.POST));
|
||||||
|
|
||||||
metainfo = ResourceInspector.inspect(MultiPartTestEntityResource.class);
|
metainfo = ResourceInspector.inspect(MultiPartTestEntityResource.class);
|
||||||
assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
|
assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
|
||||||
metaData = metainfo.get(0);
|
metaData = metainfo.get(0);
|
||||||
assertNotNull(metaData);
|
assertNotNull(metaData);
|
||||||
assertTrue("MultiPartTestEntityResource support POST", metaData.supports(HttpMethod.POST));
|
assertNotNull("MultiPartTestEntityResource support POST", metaData.getOperation(HttpMethod.POST));
|
||||||
assertFalse("MultiPartTestEntityResource does not supports GET", metaData.supports(HttpMethod.GET));
|
assertNull("MultiPartTestEntityResource does not supports GET", metaData.getOperation(HttpMethod.GET));
|
||||||
assertFalse("MultiPartTestEntityResource does not supports PUT", metaData.supports(HttpMethod.PUT));
|
assertNull("MultiPartTestEntityResource does not supports PUT", metaData.getOperation(HttpMethod.PUT));
|
||||||
assertFalse("MultiPartTestEntityResource does not supports DELETE", metaData.supports(HttpMethod.DELETE));
|
assertNull("MultiPartTestEntityResource does not supports DELETE", metaData.getOperation(HttpMethod.DELETE));
|
||||||
assertTrue("MultiPartTestEntityResource must support MultiPartTestResponse", MultiPartTestResponse.class.equals(metaData.getObjectType(HttpMethod.POST)));
|
op = metaData.getOperation(HttpMethod.POST);
|
||||||
|
assertTrue("MultiPartTestEntityResource must support MultiPartTestResponse", MultiPartTestResponse.class.equals(metaData.getObjectType(op)));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,15 +118,18 @@ public class InspectorTests
|
|||||||
assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
|
assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
|
||||||
ResourceMetadata metaData = metainfo.get(0);
|
ResourceMetadata metaData = metainfo.get(0);
|
||||||
assertNotNull(metaData);
|
assertNotNull(metaData);
|
||||||
assertTrue("SheepBlackSheepResource supports GET", metaData.supports(HttpMethod.GET));
|
assertNotNull("SheepBlackSheepResource supports GET", metaData.getOperation(HttpMethod.GET));
|
||||||
List<ResourceParameter> params = metaData.getParameters(HttpMethod.GET);
|
ResourceOperation op = metaData.getOperation(HttpMethod.GET);
|
||||||
|
List<ResourceParameter> params = op.getParameters();
|
||||||
assertTrue("readAll method should have 1 url param and 3 query params", params.size() == 4);
|
assertTrue("readAll method should have 1 url param and 3 query params", params.size() == 4);
|
||||||
assertTrue("SheepBlackSheepResource supports PUT", metaData.supports(HttpMethod.PUT));
|
assertNotNull("SheepBlackSheepResource supports PUT", metaData.getOperation(HttpMethod.PUT));
|
||||||
params = metaData.getParameters(HttpMethod.PUT);
|
op = metaData.getOperation(HttpMethod.PUT);
|
||||||
|
params = op.getParameters();
|
||||||
assertTrue("update method should have 2 url params and 1 HTTP_OBJECT param ", params.size() == 3);
|
assertTrue("update method should have 2 url params and 1 HTTP_OBJECT param ", params.size() == 3);
|
||||||
assertTrue("SheepBlackSheepResource supports POST", metaData.supports(HttpMethod.POST));
|
assertNotNull("SheepBlackSheepResource supports POST", metaData.getOperation(HttpMethod.POST));
|
||||||
assertTrue("SheepBlackSheepResource must support Sheep", Sheep.class.equals(metaData.getObjectType(HttpMethod.POST)));
|
op = metaData.getOperation(HttpMethod.POST);
|
||||||
params = metaData.getParameters(HttpMethod.POST);
|
params = op.getParameters();
|
||||||
|
assertTrue("SheepBlackSheepResource must support Sheep", Sheep.class.equals(metaData.getObjectType(op)));
|
||||||
assertTrue("create method should have 1 url param and 1 HTTP_OBJECT param ", params.size() == 2);
|
assertTrue("create method should have 1 url param and 1 HTTP_OBJECT param ", params.size() == 2);
|
||||||
assertNotNull(params);
|
assertNotNull(params);
|
||||||
for (ResourceParameter resourceParameter : params)
|
for (ResourceParameter resourceParameter : params)
|
||||||
@@ -132,19 +139,21 @@ public class InspectorTests
|
|||||||
assertFalse(resourceParameter.isAllowMultiple()); //set to not allow multiple
|
assertFalse(resourceParameter.isAllowMultiple()); //set to not allow multiple
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
assertTrue("SheepBlackSheepResource supports DELETE", metaData.supports(HttpMethod.DELETE));
|
assertNotNull("SheepBlackSheepResource supports DELETE", metaData.getOperation(HttpMethod.DELETE));
|
||||||
params = metaData.getParameters(HttpMethod.DELETE);
|
op = metaData.getOperation(HttpMethod.DELETE);
|
||||||
|
params = op.getParameters();
|
||||||
assertTrue("DELETE method on a relations should have 2 url params.", params.size() == 2);
|
assertTrue("DELETE method on a relations should have 2 url params.", params.size() == 2);
|
||||||
|
|
||||||
metainfo = ResourceInspector.inspect(MultiPartTestRelationshipResource.class);
|
metainfo = ResourceInspector.inspect(MultiPartTestRelationshipResource.class);
|
||||||
assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
|
assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
|
||||||
metaData = metainfo.get(0);
|
metaData = metainfo.get(0);
|
||||||
assertNotNull(metaData);
|
assertNotNull(metaData);
|
||||||
assertTrue("MultiPartTestRelationshipResource support POST", metaData.supports(HttpMethod.POST));
|
assertNotNull("MultiPartTestRelationshipResource support POST", metaData.getOperation(HttpMethod.POST));
|
||||||
assertFalse("MultiPartTestRelationshipResource does not supports GET", metaData.supports(HttpMethod.GET));
|
assertNull("MultiPartTestRelationshipResource does not supports GET", metaData.getOperation(HttpMethod.GET));
|
||||||
assertFalse("MultiPartTestRelationshipResource does not supports PUT", metaData.supports(HttpMethod.PUT));
|
assertNull("MultiPartTestRelationshipResource does not supports PUT", metaData.getOperation(HttpMethod.PUT));
|
||||||
assertFalse("MultiPartTestRelationshipResource does not supports DELETE", metaData.supports(HttpMethod.DELETE));
|
assertNull("MultiPartTestRelationshipResource does not supports DELETE", metaData.getOperation(HttpMethod.DELETE));
|
||||||
assertTrue("MultiPartTestRelationshipResource must support MultiPartTestResponse", MultiPartTestResponse.class.equals(metaData.getObjectType(HttpMethod.POST)));
|
op = metaData.getOperation(HttpMethod.POST);
|
||||||
|
assertTrue("MultiPartTestRelationshipResource must support MultiPartTestResponse", MultiPartTestResponse.class.equals(metaData.getObjectType(op)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -171,7 +180,8 @@ public class InspectorTests
|
|||||||
assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
|
assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
|
||||||
ResourceMetadata metaData = metainfo.get(0);
|
ResourceMetadata metaData = metainfo.get(0);
|
||||||
assertNotNull(metaData);
|
assertNotNull(metaData);
|
||||||
assertTrue("NodeCommentsRelation must support Comment", Comment.class.equals(metaData.getObjectType(HttpMethod.POST)));
|
ResourceOperation op = metaData.getOperation(HttpMethod.POST);
|
||||||
|
assertTrue("NodeCommentsRelation must support Comment", Comment.class.equals(metaData.getObjectType(op)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -425,17 +435,19 @@ public class InspectorTests
|
|||||||
switch (resourceMetadata.getUniqueId())
|
switch (resourceMetadata.getUniqueId())
|
||||||
{
|
{
|
||||||
case "/-root-/{id}/grow":
|
case "/-root-/{id}/grow":
|
||||||
assertTrue("GrassEntityResource supports POST", resourceMetadata.supports(HttpMethod.POST));
|
assertNotNull("GrassEntityResource supports POST", resourceMetadata.getOperation(HttpMethod.POST));
|
||||||
assertFalse("GrassEntityResource does not support DELETE", resourceMetadata.supports(HttpMethod.DELETE));
|
assertNull("GrassEntityResource does not support DELETE", resourceMetadata.getOperation(HttpMethod.DELETE));
|
||||||
Class paramType = resourceMetadata.getObjectType(HttpMethod.POST);
|
ResourceOperation op = resourceMetadata.getOperation(HttpMethod.POST);
|
||||||
|
Class paramType = resourceMetadata.getObjectType(op);
|
||||||
Object paramObj = paramType.newInstance();
|
Object paramObj = paramType.newInstance();
|
||||||
result = (String) ResourceInspectorUtil.invokeMethod(actionMethod,grassEntityResource, "xyz", paramObj, Params.valueOf("notUsed", null));
|
result = (String) ResourceInspectorUtil.invokeMethod(actionMethod,grassEntityResource, "xyz", paramObj, Params.valueOf("notUsed", null));
|
||||||
assertEquals("Growing well",result);
|
assertEquals("Growing well",result);
|
||||||
break;
|
break;
|
||||||
case "/-root-/{id}/cut":
|
case "/-root-/{id}/cut":
|
||||||
assertTrue("GrassEntityResource supports POST", resourceMetadata.supports(HttpMethod.POST));
|
assertNotNull("GrassEntityResource supports POST", resourceMetadata.getOperation(HttpMethod.POST));
|
||||||
assertFalse("GrassEntityResource does not support GET", resourceMetadata.supports(HttpMethod.GET));
|
assertNull("GrassEntityResource does not support GET", resourceMetadata.getOperation(HttpMethod.GET));
|
||||||
assertNull(resourceMetadata.getObjectType(HttpMethod.POST));
|
op = resourceMetadata.getOperation(HttpMethod.POST);
|
||||||
|
assertNull(resourceMetadata.getObjectType(op));
|
||||||
result = (String) ResourceInspectorUtil.invokeMethod(actionMethod,grassEntityResource, "xyz", null, Params.valueOf("notUsed", null));
|
result = (String) ResourceInspectorUtil.invokeMethod(actionMethod,grassEntityResource, "xyz", null, Params.valueOf("notUsed", null));
|
||||||
assertEquals("All done",result);
|
assertEquals("All done",result);
|
||||||
break;
|
break;
|
||||||
@@ -458,10 +470,10 @@ public class InspectorTests
|
|||||||
switch (resourceMetadata.getUniqueId())
|
switch (resourceMetadata.getUniqueId())
|
||||||
{
|
{
|
||||||
case "/goat/{entityId}/herd":
|
case "/goat/{entityId}/herd":
|
||||||
assertTrue("GoatRelationshipResource supports GET", resourceMetadata.supports(HttpMethod.GET));
|
assertNotNull("GoatRelationshipResource supports GET", resourceMetadata.getOperation(HttpMethod.GET));
|
||||||
break;
|
break;
|
||||||
case "/goat/{entityId}/herd/{id}/content":
|
case "/goat/{entityId}/herd/{id}/content":
|
||||||
assertTrue("GoatRelationshipResource supports GET", resourceMetadata.supports(HttpMethod.GET));
|
assertNotNull("GoatRelationshipResource supports GET", resourceMetadata.getOperation(HttpMethod.GET));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
fail("Invalid information.");
|
fail("Invalid information.");
|
||||||
@@ -480,9 +492,9 @@ public class InspectorTests
|
|||||||
ResourceMetadata metaData = metainfo.get(0);
|
ResourceMetadata metaData = metainfo.get(0);
|
||||||
assertEquals("/myroot/{id}/photo",metaData.getUniqueId());
|
assertEquals("/myroot/{id}/photo",metaData.getUniqueId());
|
||||||
assertTrue(metaData.getOperations().size()==3);
|
assertTrue(metaData.getOperations().size()==3);
|
||||||
assertTrue("FlockEntityResource supports GET", metaData.supports(HttpMethod.GET));
|
assertNotNull("FlockEntityResource supports GET", metaData.getOperation(HttpMethod.GET));
|
||||||
assertTrue("FlockEntityResource supports PUT", metaData.supports(HttpMethod.PUT));
|
assertNotNull("FlockEntityResource supports PUT", metaData.getOperation(HttpMethod.PUT));
|
||||||
assertTrue("FlockEntityResource supports DELETE", metaData.supports(HttpMethod.DELETE));
|
assertNotNull("FlockEntityResource supports DELETE", metaData.getOperation(HttpMethod.DELETE));
|
||||||
|
|
||||||
metainfo.clear();
|
metainfo.clear();
|
||||||
ResourceInspector.inspectAddressedProperties(api, FlocketEntityResource.class, "myroot", metainfo);
|
ResourceInspector.inspectAddressedProperties(api, FlocketEntityResource.class, "myroot", metainfo);
|
||||||
@@ -493,19 +505,19 @@ public class InspectorTests
|
|||||||
// switch (resourceMetadata.getUniqueId())
|
// switch (resourceMetadata.getUniqueId())
|
||||||
// {
|
// {
|
||||||
// case "/myroot/photo":
|
// case "/myroot/photo":
|
||||||
// assertTrue("FlocketEntityResource supports GET", resourceMetadata.supports(HttpMethod.GET));
|
// assertTrue("FlocketEntityResource supports GET", resourcemetaData.getOperation(HttpMethod.GET));
|
||||||
// assertTrue("FlocketEntityResource supports PUT", resourceMetadata.supports(HttpMethod.PUT));
|
// assertTrue("FlocketEntityResource supports PUT", resourcemetaData.getOperation(HttpMethod.PUT));
|
||||||
// assertTrue("FlocketEntityResource supports DELETE", resourceMetadata.supports(HttpMethod.DELETE));
|
// assertTrue("FlocketEntityResource supports DELETE", resourcemetaData.getOperation(HttpMethod.DELETE));
|
||||||
// break;
|
// break;
|
||||||
// case "/myroot/album":
|
// case "/myroot/album":
|
||||||
// assertTrue("FlocketEntityResource supports GET", resourceMetadata.supports(HttpMethod.GET));
|
// assertTrue("FlocketEntityResource supports GET", resourcemetaData.getOperation(HttpMethod.GET));
|
||||||
// assertTrue("FlocketEntityResource supports PUT", resourceMetadata.supports(HttpMethod.PUT));
|
// assertTrue("FlocketEntityResource supports PUT", resourcemetaData.getOperation(HttpMethod.PUT));
|
||||||
// assertTrue("FlocketEntityResource does not support DELETE", !resourceMetadata.supports(HttpMethod.DELETE));
|
// assertTrue("FlocketEntityResource does not support DELETE", !resourcemetaData.getOperation(HttpMethod.DELETE));
|
||||||
// break;
|
// break;
|
||||||
// case "/myroot/madeUpProp":
|
// case "/myroot/madeUpProp":
|
||||||
// assertTrue("FlocketEntityResource supports GET", resourceMetadata.supports(HttpMethod.GET));
|
// assertTrue("FlocketEntityResource supports GET", resourcemetaData.getOperation(HttpMethod.GET));
|
||||||
// assertTrue("FlocketEntityResource does not supports PUT", !resourceMetadata.supports(HttpMethod.PUT));
|
// assertTrue("FlocketEntityResource does not supports PUT", !resourcemetaData.getOperation(HttpMethod.PUT));
|
||||||
// assertTrue("FlocketEntityResource does not support DELETE", !resourceMetadata.supports(HttpMethod.DELETE));
|
// assertTrue("FlocketEntityResource does not support DELETE", !resourcemetaData.getOperation(HttpMethod.DELETE));
|
||||||
// break;
|
// break;
|
||||||
// default:
|
// default:
|
||||||
// fail("Invalid address property information.");
|
// fail("Invalid address property information.");
|
||||||
@@ -513,25 +525,25 @@ public class InspectorTests
|
|||||||
|
|
||||||
if ("/myroot/{id}/photo".equals(resourceMetadata.getUniqueId()))
|
if ("/myroot/{id}/photo".equals(resourceMetadata.getUniqueId()))
|
||||||
{
|
{
|
||||||
assertTrue("FlocketEntityResource supports GET", resourceMetadata.supports(HttpMethod.GET));
|
assertNotNull("FlocketEntityResource supports GET", resourceMetadata.getOperation(HttpMethod.GET));
|
||||||
assertTrue("FlocketEntityResource supports PUT", resourceMetadata.supports(HttpMethod.PUT));
|
assertNotNull("FlocketEntityResource supports PUT", resourceMetadata.getOperation(HttpMethod.PUT));
|
||||||
assertTrue("FlocketEntityResource supports DELETE", resourceMetadata.supports(HttpMethod.DELETE));
|
assertNotNull("FlocketEntityResource supports DELETE", resourceMetadata.getOperation(HttpMethod.DELETE));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ("/myroot/{id}/album".equals(resourceMetadata.getUniqueId()))
|
if ("/myroot/{id}/album".equals(resourceMetadata.getUniqueId()))
|
||||||
{
|
{
|
||||||
assertTrue("FlocketEntityResource supports GET", resourceMetadata.supports(HttpMethod.GET));
|
assertNotNull("FlocketEntityResource supports GET", resourceMetadata.getOperation(HttpMethod.GET));
|
||||||
assertTrue("FlocketEntityResource supports PUT", resourceMetadata.supports(HttpMethod.PUT));
|
assertNotNull("FlocketEntityResource supports PUT", resourceMetadata.getOperation(HttpMethod.PUT));
|
||||||
assertTrue("FlocketEntityResource does not support DELETE", !resourceMetadata.supports(HttpMethod.DELETE));
|
assertNull("FlocketEntityResource does not support DELETE", resourceMetadata.getOperation(HttpMethod.DELETE));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ("/myroot/{id}/madeUpProp".equals(resourceMetadata.getUniqueId()))
|
if ("/myroot/{id}/madeUpProp".equals(resourceMetadata.getUniqueId()))
|
||||||
{
|
{
|
||||||
assertTrue("FlocketEntityResource supports GET", resourceMetadata.supports(HttpMethod.GET));
|
assertNotNull("FlocketEntityResource supports GET", resourceMetadata.getOperation(HttpMethod.GET));
|
||||||
assertTrue("FlocketEntityResource does not supports PUT", !resourceMetadata.supports(HttpMethod.PUT));
|
assertNull("FlocketEntityResource does not supports PUT", resourceMetadata.getOperation(HttpMethod.PUT));
|
||||||
assertTrue("FlocketEntityResource does not support DELETE", !resourceMetadata.supports(HttpMethod.DELETE));
|
assertNull("FlocketEntityResource does not support DELETE", resourceMetadata.getOperation(HttpMethod.DELETE));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -550,20 +562,35 @@ public class InspectorTests
|
|||||||
assertTrue("Must be at least one ResourceMetadata",metainfo.size()>0);
|
assertTrue("Must be at least one ResourceMetadata",metainfo.size()>0);
|
||||||
ResourceMetadata metaData = metainfo.get(0);
|
ResourceMetadata metaData = metainfo.get(0);
|
||||||
assertNotNull(metaData);
|
assertNotNull(metaData);
|
||||||
assertTrue("GrassEntityResourceNowDeleted all methods deleted", !metaData.supports(HttpMethod.GET));
|
assertNull("GrassEntityResourceNowDeleted all methods deleted", metaData.getOperation(HttpMethod.GET));
|
||||||
assertTrue("GrassEntityResourceNowDeleted all methods deleted", !metaData.supports(HttpMethod.PUT));
|
assertNull("GrassEntityResourceNowDeleted all methods deleted", metaData.getOperation(HttpMethod.PUT));
|
||||||
assertTrue("GrassEntityResourceNowDeleted all methods deleted", !metaData.supports(HttpMethod.DELETE));
|
assertNull("GrassEntityResourceNowDeleted all methods deleted", metaData.getOperation(HttpMethod.DELETE));
|
||||||
assertTrue("GrassEntityResourceNowDeleted all methods deleted", !metaData.supports(HttpMethod.POST));
|
assertNull("GrassEntityResourceNowDeleted all methods deleted", metaData.getOperation(HttpMethod.POST));
|
||||||
assertNull("GrassEntityResourceNowDeleted all methods deleted", metaData.getObjectType(HttpMethod.POST));
|
|
||||||
|
|
||||||
metainfo = ResourceInspector.inspect(SheepBlackSheepResourceIsNoMore.class);
|
metainfo = ResourceInspector.inspect(SheepBlackSheepResourceIsNoMore.class);
|
||||||
assertTrue("Must be at least one ResourceMetadata",metainfo.size()>0);
|
assertTrue("Must be at least one ResourceMetadata",metainfo.size()>0);
|
||||||
metaData = metainfo.get(0);
|
metaData = metainfo.get(0);
|
||||||
assertNotNull(metaData);
|
assertNotNull(metaData);
|
||||||
assertTrue("SheepBlackSheepResourceIsNoMore all methods deleted", !metaData.supports(HttpMethod.GET));
|
assertNull("SheepBlackSheepResourceIsNoMore all methods deleted", metaData.getOperation(HttpMethod.GET));
|
||||||
assertTrue("SheepBlackSheepResourceIsNoMore all methods deleted", !metaData.supports(HttpMethod.PUT));
|
assertNull("SheepBlackSheepResourceIsNoMore all methods deleted", metaData.getOperation(HttpMethod.PUT));
|
||||||
assertTrue("SheepBlackSheepResourceIsNoMore all methods deleted", !metaData.supports(HttpMethod.DELETE));
|
assertNull("SheepBlackSheepResourceIsNoMore all methods deleted", metaData.getOperation(HttpMethod.DELETE));
|
||||||
assertTrue("SheepBlackSheepResourceIsNoMore all methods deleted", !metaData.supports(HttpMethod.POST));
|
assertNull("SheepBlackSheepResourceIsNoMore all methods deleted", metaData.getOperation(HttpMethod.POST));
|
||||||
assertNull("SheepBlackSheepResourceIsNoMore all methods deleted", metaData.getObjectType(HttpMethod.POST));
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testValidSuccessCode()
|
||||||
|
{
|
||||||
|
//Test defaults
|
||||||
|
assertEquals(Status.STATUS_OK,ResourceInspector.validSuccessCode(HttpMethod.GET, ResourceOperation.UNSET_STATUS));
|
||||||
|
assertEquals(Status.STATUS_CREATED,ResourceInspector.validSuccessCode(HttpMethod.POST, ResourceOperation.UNSET_STATUS));
|
||||||
|
assertEquals(Status.STATUS_OK,ResourceInspector.validSuccessCode(HttpMethod.PUT, ResourceOperation.UNSET_STATUS));
|
||||||
|
assertEquals(Status.STATUS_NO_CONTENT,ResourceInspector.validSuccessCode(HttpMethod.DELETE, ResourceOperation.UNSET_STATUS));
|
||||||
|
|
||||||
|
//Test custom values
|
||||||
|
assertEquals(Status.STATUS_ACCEPTED,ResourceInspector.validSuccessCode(HttpMethod.GET, Status.STATUS_ACCEPTED));
|
||||||
|
assertEquals(Status.STATUS_FOUND,ResourceInspector.validSuccessCode(HttpMethod.POST, Status.STATUS_FOUND));
|
||||||
|
assertEquals(Status.STATUS_ACCEPTED,ResourceInspector.validSuccessCode(HttpMethod.PUT, Status.STATUS_ACCEPTED));
|
||||||
|
assertEquals(Status.STATUS_NOT_MODIFIED,ResourceInspector.validSuccessCode(HttpMethod.DELETE, Status.STATUS_NOT_MODIFIED));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,11 +1,13 @@
|
|||||||
package org.alfresco.rest.framework.tests.core;
|
package org.alfresco.rest.framework.tests.core;
|
||||||
|
|
||||||
|
import static org.hamcrest.CoreMatchers.any;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
|
import static org.mockito.Matchers.notNull;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
@@ -23,6 +25,7 @@ import org.alfresco.rest.api.tests.util.MultiPartBuilder.FileData;
|
|||||||
import org.alfresco.rest.api.tests.util.MultiPartBuilder.MultiPartRequest;
|
import org.alfresco.rest.api.tests.util.MultiPartBuilder.MultiPartRequest;
|
||||||
import org.alfresco.rest.framework.core.ResourceLocator;
|
import org.alfresco.rest.framework.core.ResourceLocator;
|
||||||
import org.alfresco.rest.framework.core.ResourceMetadata;
|
import org.alfresco.rest.framework.core.ResourceMetadata;
|
||||||
|
import org.alfresco.rest.framework.core.ResourceOperation;
|
||||||
import org.alfresco.rest.framework.core.exceptions.UnsupportedResourceOperationException;
|
import org.alfresco.rest.framework.core.exceptions.UnsupportedResourceOperationException;
|
||||||
import org.alfresco.rest.framework.jacksonextensions.BeanPropertiesFilter;
|
import org.alfresco.rest.framework.jacksonextensions.BeanPropertiesFilter;
|
||||||
import org.alfresco.rest.framework.jacksonextensions.JacksonHelper;
|
import org.alfresco.rest.framework.jacksonextensions.JacksonHelper;
|
||||||
@@ -255,9 +258,6 @@ public class ParamsExtractorTests
|
|||||||
FormData formData = (FormData) passed;
|
FormData formData = (FormData) passed;
|
||||||
assertTrue(formData.getIsMultiPart());
|
assertTrue(formData.getIsMultiPart());
|
||||||
|
|
||||||
assertNotNull(params.getStatus());
|
|
||||||
assertFalse(params.getStatus().getRedirect());
|
|
||||||
|
|
||||||
// No entity id for POST
|
// No entity id for POST
|
||||||
templateVars.put(ResourceLocator.ENTITY_ID, "1234");
|
templateVars.put(ResourceLocator.ENTITY_ID, "1234");
|
||||||
try
|
try
|
||||||
@@ -446,9 +446,10 @@ public class ParamsExtractorTests
|
|||||||
private static ResourceMetadata mockEntity()
|
private static ResourceMetadata mockEntity()
|
||||||
{
|
{
|
||||||
ResourceMetadata resourceMock = mock(ResourceMetadata.class);
|
ResourceMetadata resourceMock = mock(ResourceMetadata.class);
|
||||||
|
ResourceOperation resourceOperation = mock(ResourceOperation.class);
|
||||||
when(resourceMock.getType()).thenReturn(ResourceMetadata.RESOURCE_TYPE.ENTITY);
|
when(resourceMock.getType()).thenReturn(ResourceMetadata.RESOURCE_TYPE.ENTITY);
|
||||||
when(resourceMock.getObjectType(HttpMethod.PUT)).thenReturn(Farmer.class);
|
when(resourceMock.getOperation(notNull(HttpMethod.class))).thenReturn(resourceOperation);
|
||||||
when(resourceMock.getObjectType(HttpMethod.POST)).thenReturn(Farmer.class);
|
when(resourceMock.getObjectType(notNull(ResourceOperation.class))).thenReturn(Farmer.class);
|
||||||
return resourceMock;
|
return resourceMock;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -483,9 +484,10 @@ public class ParamsExtractorTests
|
|||||||
private static ResourceMetadata mockRelationship()
|
private static ResourceMetadata mockRelationship()
|
||||||
{
|
{
|
||||||
ResourceMetadata resourceMock = mock(ResourceMetadata.class);
|
ResourceMetadata resourceMock = mock(ResourceMetadata.class);
|
||||||
|
ResourceOperation resourceOperation = mock(ResourceOperation.class);
|
||||||
|
when(resourceMock.getOperation(notNull(HttpMethod.class))).thenReturn(resourceOperation);
|
||||||
when(resourceMock.getType()).thenReturn(ResourceMetadata.RESOURCE_TYPE.RELATIONSHIP);
|
when(resourceMock.getType()).thenReturn(ResourceMetadata.RESOURCE_TYPE.RELATIONSHIP);
|
||||||
when(resourceMock.getObjectType(HttpMethod.PUT)).thenReturn(Farmer.class);
|
when(resourceMock.getObjectType(notNull(ResourceOperation.class))).thenReturn(Farmer.class);
|
||||||
when(resourceMock.getObjectType(HttpMethod.POST)).thenReturn(Farmer.class);
|
|
||||||
return resourceMock;
|
return resourceMock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -19,6 +19,7 @@ import org.alfresco.rest.framework.core.ResourceInspector;
|
|||||||
import org.alfresco.rest.framework.core.ResourceLocator;
|
import org.alfresco.rest.framework.core.ResourceLocator;
|
||||||
import org.alfresco.rest.framework.core.ResourceLookupDictionary;
|
import org.alfresco.rest.framework.core.ResourceLookupDictionary;
|
||||||
import org.alfresco.rest.framework.core.ResourceMetadata;
|
import org.alfresco.rest.framework.core.ResourceMetadata;
|
||||||
|
import org.alfresco.rest.framework.core.ResourceOperation;
|
||||||
import org.alfresco.rest.framework.core.ResourceWithMetadata;
|
import org.alfresco.rest.framework.core.ResourceWithMetadata;
|
||||||
import org.alfresco.rest.framework.core.exceptions.InvalidArgumentException;
|
import org.alfresco.rest.framework.core.exceptions.InvalidArgumentException;
|
||||||
import org.alfresco.rest.framework.core.exceptions.UnsupportedResourceOperationException;
|
import org.alfresco.rest.framework.core.exceptions.UnsupportedResourceOperationException;
|
||||||
@@ -104,20 +105,20 @@ public class ResourceLocatorTests
|
|||||||
templateVars.put(ResourceLocator.COLLECTION_RESOURCE, "sheep");
|
templateVars.put(ResourceLocator.COLLECTION_RESOURCE, "sheep");
|
||||||
ResourceWithMetadata collResource = locator.locateResource(api, templateVars, HttpMethod.GET);
|
ResourceWithMetadata collResource = locator.locateResource(api, templateVars, HttpMethod.GET);
|
||||||
assertNotNull(collResource);
|
assertNotNull(collResource);
|
||||||
assertTrue(collResource.getMetaData().supports(HttpMethod.GET));
|
assertNotNull(collResource.getMetaData().getOperation(HttpMethod.GET));
|
||||||
|
|
||||||
collResource = locator.locateResource(api, templateVars, HttpMethod.POST);
|
collResource = locator.locateResource(api, templateVars, HttpMethod.POST);
|
||||||
assertNotNull(collResource);
|
assertNotNull(collResource);
|
||||||
assertTrue(collResource.getMetaData().supports(HttpMethod.POST));
|
assertNotNull(collResource.getMetaData().getOperation(HttpMethod.POST));
|
||||||
|
|
||||||
templateVars.put(ResourceLocator.ENTITY_ID, "farmersUniqueId");
|
templateVars.put(ResourceLocator.ENTITY_ID, "farmersUniqueId");
|
||||||
ResourceWithMetadata entityResource = locator.locateResource(api,templateVars, HttpMethod.GET);
|
ResourceWithMetadata entityResource = locator.locateResource(api,templateVars, HttpMethod.GET);
|
||||||
assertNotNull(entityResource);
|
assertNotNull(entityResource);
|
||||||
assertTrue(entityResource.getMetaData().supports(HttpMethod.GET));
|
assertNotNull(entityResource.getMetaData().getOperation(HttpMethod.GET));
|
||||||
|
|
||||||
entityResource = locator.locateResource(api, templateVars, HttpMethod.PUT);
|
entityResource = locator.locateResource(api, templateVars, HttpMethod.PUT);
|
||||||
assertNotNull(entityResource);
|
assertNotNull(entityResource);
|
||||||
assertTrue(entityResource.getMetaData().supports(HttpMethod.PUT));
|
assertNotNull(entityResource.getMetaData().getOperation(HttpMethod.PUT));
|
||||||
|
|
||||||
templateVars.clear();
|
templateVars.clear();
|
||||||
templateVars.put(ResourceLocator.COLLECTION_RESOURCE, "sheepnoaction");
|
templateVars.put(ResourceLocator.COLLECTION_RESOURCE, "sheepnoaction");
|
||||||
@@ -167,7 +168,7 @@ public class ResourceLocatorTests
|
|||||||
templateVars.put(ResourceLocator.RELATIONSHIP_RESOURCE, "photo");
|
templateVars.put(ResourceLocator.RELATIONSHIP_RESOURCE, "photo");
|
||||||
ResourceWithMetadata collResource = locator.locateResource(api3, templateVars, HttpMethod.GET);
|
ResourceWithMetadata collResource = locator.locateResource(api3, templateVars, HttpMethod.GET);
|
||||||
assertNotNull(collResource);
|
assertNotNull(collResource);
|
||||||
assertTrue(collResource.getMetaData().supports(HttpMethod.GET));
|
assertNotNull(collResource.getMetaData().getOperation(HttpMethod.GET));
|
||||||
assertEquals(FlockEntityResource.class, collResource.getResource().getClass());
|
assertEquals(FlockEntityResource.class, collResource.getResource().getClass());
|
||||||
|
|
||||||
templateVars.put(ResourceLocator.COLLECTION_RESOURCE, "flocket");
|
templateVars.put(ResourceLocator.COLLECTION_RESOURCE, "flocket");
|
||||||
@@ -192,7 +193,7 @@ public class ResourceLocatorTests
|
|||||||
}
|
}
|
||||||
collResource = locator.locateResource(api3, templateVars, HttpMethod.GET);
|
collResource = locator.locateResource(api3, templateVars, HttpMethod.GET);
|
||||||
assertNotNull(collResource);
|
assertNotNull(collResource);
|
||||||
assertTrue(collResource.getMetaData().supports(HttpMethod.GET));
|
assertNotNull(collResource.getMetaData().getOperation(HttpMethod.GET));
|
||||||
assertEquals(FlocketEntityResource.class, collResource.getResource().getClass());
|
assertEquals(FlocketEntityResource.class, collResource.getResource().getClass());
|
||||||
|
|
||||||
templateVars.put(ResourceLocator.RELATIONSHIP_RESOURCE, "album");
|
templateVars.put(ResourceLocator.RELATIONSHIP_RESOURCE, "album");
|
||||||
@@ -207,11 +208,11 @@ public class ResourceLocatorTests
|
|||||||
}
|
}
|
||||||
collResource = locator.locateResource(api3, templateVars, HttpMethod.GET);
|
collResource = locator.locateResource(api3, templateVars, HttpMethod.GET);
|
||||||
assertNotNull(collResource);
|
assertNotNull(collResource);
|
||||||
assertTrue(collResource.getMetaData().supports(HttpMethod.GET));
|
assertNotNull(collResource.getMetaData().getOperation(HttpMethod.GET));
|
||||||
assertEquals(FlocketEntityResource.class, collResource.getResource().getClass());
|
assertEquals(FlocketEntityResource.class, collResource.getResource().getClass());
|
||||||
collResource = locator.locateResource(api3, templateVars, HttpMethod.PUT);
|
collResource = locator.locateResource(api3, templateVars, HttpMethod.PUT);
|
||||||
assertNotNull(collResource);
|
assertNotNull(collResource);
|
||||||
assertTrue(collResource.getMetaData().supports(HttpMethod.PUT));
|
assertNotNull(collResource.getMetaData().getOperation(HttpMethod.PUT));
|
||||||
assertEquals(FlocketEntityResource.class, collResource.getResource().getClass());
|
assertEquals(FlocketEntityResource.class, collResource.getResource().getClass());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -238,7 +239,7 @@ public class ResourceLocatorTests
|
|||||||
templateVars.put(ResourceLocator.PROPERTY, "content");
|
templateVars.put(ResourceLocator.PROPERTY, "content");
|
||||||
collResource = locator.locateResource(api3, templateVars, HttpMethod.GET);
|
collResource = locator.locateResource(api3, templateVars, HttpMethod.GET);
|
||||||
assertNotNull(collResource);
|
assertNotNull(collResource);
|
||||||
assertTrue(collResource.getMetaData().supports(HttpMethod.GET));
|
assertNotNull(collResource.getMetaData().getOperation(HttpMethod.GET));
|
||||||
|
|
||||||
templateVars = new HashMap<String, String>();
|
templateVars = new HashMap<String, String>();
|
||||||
templateVars.put(ResourceLocator.COLLECTION_RESOURCE, "sheep");
|
templateVars.put(ResourceLocator.COLLECTION_RESOURCE, "sheep");
|
||||||
@@ -260,9 +261,9 @@ public class ResourceLocatorTests
|
|||||||
templateVars.put(ResourceLocator.PROPERTY, "photo");
|
templateVars.put(ResourceLocator.PROPERTY, "photo");
|
||||||
collResource = locator.locateResource(api, templateVars, HttpMethod.GET);
|
collResource = locator.locateResource(api, templateVars, HttpMethod.GET);
|
||||||
assertNotNull(collResource);
|
assertNotNull(collResource);
|
||||||
assertTrue(collResource.getMetaData().supports(HttpMethod.GET));
|
assertNotNull(collResource.getMetaData().getOperation(HttpMethod.GET));
|
||||||
assertTrue(collResource.getMetaData().supports(HttpMethod.PUT));
|
assertNotNull(collResource.getMetaData().getOperation(HttpMethod.PUT));
|
||||||
assertTrue(collResource.getMetaData().supports(HttpMethod.DELETE));
|
assertNotNull(collResource.getMetaData().getOperation(HttpMethod.DELETE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@@ -403,7 +403,7 @@ public class SerializeTests extends AbstractContextTest
|
|||||||
AbstractResourceWebScript executor = (AbstractResourceWebScript) applicationContext.getBean("executorOfGets");
|
AbstractResourceWebScript executor = (AbstractResourceWebScript) applicationContext.getBean("executorOfGets");
|
||||||
executor.execute(propResource, Params.valueOf("234", null), new ExecutionCallback<BinaryResource>(){
|
executor.execute(propResource, Params.valueOf("234", null), new ExecutionCallback<BinaryResource>(){
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(BinaryResource result, ContentInfo contentInfo)
|
public void onSuccess(BinaryResource result, ContentInfo contentInfo, int statusCode)
|
||||||
{
|
{
|
||||||
assertNotNull(result);
|
assertNotNull(result);
|
||||||
}});
|
}});
|
||||||
|
Reference in New Issue
Block a user