From 3b1eac7c027b910c659125446700eaba0d1ea31d Mon Sep 17 00:00:00 2001 From: remillet Date: Thu, 26 May 2016 10:37:16 -0700 Subject: [PATCH] CSPACE-6953: Added more SAS tests for hierarchical relationships syncing and also added a description subresource for all services to get info like doctype and version number. --- .../services/client/AccountClient.java | 21 ++++ .../services/client/AccountRoleClient.java | 18 +++ .../services/client/TenantClient.java | 18 +++ .../common/vocabulary/AuthorityResource.java | 13 +- .../services/client/PermissionClient.java | 18 +++ .../services/client/PermissionRoleClient.java | 15 +++ .../services/client/RoleClient.java | 16 +++ .../services/client/RolePermissionClient.java | 14 +++ services/authorization-mgt/import/build.xml | 2 +- .../client/AbstractPoxServiceClientImpl.java | 15 ++- .../client/CollectionSpaceClient.java | 8 +- .../client/CollectionSpacePoxClient.java | 2 +- .../services/client/CollectionSpaceProxy.java | 14 ++- .../services/client/RelationClient.java | 0 .../services/client/RelationProxy.java | 0 .../services/client/TestServiceClient.java | 16 ++- .../test/AbstractAuthorityServiceTest.java | 116 +++++++++++++++--- .../AbstractCollectionSpaceResourceImpl.java | 43 ++++++- ...tMultiPartCollectionSpaceResourceImpl.java | 15 ++- .../services/common/NuxeoBasedResource.java | 15 ++- .../common/security/SecurityUtils.java | 4 +- .../services/client/IdClient.java | 21 +++- .../main/resources/service_description.xsd | 33 +++++ 23 files changed, 387 insertions(+), 50 deletions(-) rename services/{relation => }/client/src/main/java/org/collectionspace/services/client/RelationClient.java (100%) rename services/{relation => }/client/src/main/java/org/collectionspace/services/client/RelationProxy.java (100%) create mode 100644 services/jaxb/src/main/resources/service_description.xsd diff --git a/services/account/client/src/main/java/org/collectionspace/services/client/AccountClient.java b/services/account/client/src/main/java/org/collectionspace/services/client/AccountClient.java index 738ff3aa0..b94982bb7 100644 --- a/services/account/client/src/main/java/org/collectionspace/services/client/AccountClient.java +++ b/services/account/client/src/main/java/org/collectionspace/services/client/AccountClient.java @@ -27,9 +27,11 @@ package org.collectionspace.services.client; import javax.ws.rs.core.Response; +import org.apache.http.HttpStatus; import org.collectionspace.services.account.AccountsCommon; import org.collectionspace.services.account.AccountsCommonList; +import org.collectionspace.services.description.ServiceDescription; /** * A AccountClient. @@ -81,6 +83,7 @@ public class AccountClient extends AbstractServiceClientImpl uriRegistryEntriesMap.putAll(getUriRegistryEntries(tenantId, getItemDocType(tenantId), UriTemplateFactory.ITEM)); } return uriRegistryEntriesMap; - } + } + + /** + * + */ + public ServiceDescription getDescription(ServiceContext ctx) { + ServiceDescription result = super.getDescription(ctx); + result.setSubresourceDocumentType(this.getItemDocType(ctx.getTenantId())); + return result; + } + } diff --git a/services/authorization-mgt/client/src/main/java/org/collectionspace/services/client/PermissionClient.java b/services/authorization-mgt/client/src/main/java/org/collectionspace/services/client/PermissionClient.java index 97ee6de56..61e89d44d 100644 --- a/services/authorization-mgt/client/src/main/java/org/collectionspace/services/client/PermissionClient.java +++ b/services/authorization-mgt/client/src/main/java/org/collectionspace/services/client/PermissionClient.java @@ -28,8 +28,10 @@ package org.collectionspace.services.client; import javax.ws.rs.core.Response; +import org.apache.http.HttpStatus; import org.collectionspace.services.authorization.perms.Permission; import org.collectionspace.services.authorization.perms.PermissionsList; +import org.collectionspace.services.description.ServiceDescription; /** * A PermissionClient. @@ -76,6 +78,7 @@ public class PermissionClient extends AbstractServiceClientImpl getProxyClass() { return RoleProxy.class; } + + @Override + public ServiceDescription getServiceDescription() { + ServiceDescription result = null; + + Response res = getProxy().getServiceDescription(); + if (res.getStatus() == HttpStatus.SC_OK) { + result = (ServiceDescription) res.readEntity(ServiceDescription.class); + } + + return result; + } } diff --git a/services/authorization-mgt/client/src/main/java/org/collectionspace/services/client/RolePermissionClient.java b/services/authorization-mgt/client/src/main/java/org/collectionspace/services/client/RolePermissionClient.java index 958aa8e54..675975556 100644 --- a/services/authorization-mgt/client/src/main/java/org/collectionspace/services/client/RolePermissionClient.java +++ b/services/authorization-mgt/client/src/main/java/org/collectionspace/services/client/RolePermissionClient.java @@ -28,7 +28,9 @@ package org.collectionspace.services.client; import javax.ws.rs.core.Response; +import org.apache.http.HttpStatus; import org.collectionspace.services.authorization.PermissionRole; +import org.collectionspace.services.description.ServiceDescription; // TODO: Auto-generated Javadoc /** @@ -128,4 +130,16 @@ public class RolePermissionClient extends AbstractServiceClientImpl - + diff --git a/services/client/src/main/java/org/collectionspace/services/client/AbstractPoxServiceClientImpl.java b/services/client/src/main/java/org/collectionspace/services/client/AbstractPoxServiceClientImpl.java index 3d3151f6c..99fb6101a 100644 --- a/services/client/src/main/java/org/collectionspace/services/client/AbstractPoxServiceClientImpl.java +++ b/services/client/src/main/java/org/collectionspace/services/client/AbstractPoxServiceClientImpl.java @@ -2,8 +2,9 @@ package org.collectionspace.services.client; import javax.ws.rs.core.Response; -import org.jboss.resteasy.client.ClientResponse; import org.testng.Assert; +import org.apache.http.HttpStatus; +import org.collectionspace.services.description.ServiceDescription; import org.collectionspace.services.jaxb.AbstractCommonList; /* @@ -22,6 +23,18 @@ public abstract class AbstractPoxServiceClientImpl { @Consumes({"application/xml"}) @Path("{csid}" + WorkflowClient.SERVICE_PATH + "/" + "{transition}") Response updateWorkflowWithTransition(@PathParam("csid") String csid, @PathParam("transition") String transition); - + + /** + * Return a payload of meta info about the service + * @return + */ + @GET + @Produces({"application/xml"}) + @Path("/" + CollectionSpaceClient.SERVICE_DESCRIPTION_PATH) + public Response getServiceDescription(); + /* * (R)read List operations */ diff --git a/services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java b/services/client/src/main/java/org/collectionspace/services/client/RelationClient.java similarity index 100% rename from services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java rename to services/client/src/main/java/org/collectionspace/services/client/RelationClient.java diff --git a/services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java b/services/client/src/main/java/org/collectionspace/services/client/RelationProxy.java similarity index 100% rename from services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java rename to services/client/src/main/java/org/collectionspace/services/client/RelationProxy.java diff --git a/services/client/src/main/java/org/collectionspace/services/client/TestServiceClient.java b/services/client/src/main/java/org/collectionspace/services/client/TestServiceClient.java index 58060dc2a..a575c3938 100644 --- a/services/client/src/main/java/org/collectionspace/services/client/TestServiceClient.java +++ b/services/client/src/main/java/org/collectionspace/services/client/TestServiceClient.java @@ -24,6 +24,8 @@ package org.collectionspace.services.client; import javax.ws.rs.core.Response; +import org.apache.http.HttpStatus; +import org.collectionspace.services.description.ServiceDescription; import org.collectionspace.services.jaxb.AbstractCommonList; /** @@ -74,5 +76,17 @@ public final class TestServiceClient extends AbstractServiceClientImpl knownSASItemIdentifiersList = new ArrayList(); protected String knownSASItemResourceId = null; protected HashMap allSASResourceItemIdsCreated = new HashMap(); /* itemURN, parentURN */; @@ -61,6 +66,9 @@ public abstract class AbstractAuthorityServiceTest + + + + + + + + + + + + + + + + + -- 2.47.3