From 314a5d81b0973d88f69645fd9a7b2f1dbabff755 Mon Sep 17 00:00:00 2001 From: Richard Millet Date: Mon, 28 Mar 2011 23:11:23 +0000 Subject: [PATCH] CSPACE-3711, CSPACE-3706, CSPACE-3708, CSPACE-3496, CSPACE-3483: Workflow (soft-delete) support and consolidation of RESTEasy client and proxy classes. --- .../src/main/resources/META-INF/MANIFEST.MF | 1 + .../resources/OSGI-INF/core-types-contrib.xml | 4 + .../OSGI-INF/default-life-cycle-contrib.xml | 11 + .../resources/OSGI-INF/querymodel-contrib.xml | 2 +- services/JaxRsServiceProvider/.classpath | 1 + services/JaxRsServiceProvider/.project | 1 + services/JaxRsServiceProvider/pom.xml | 5 + .../CollectionSpaceJaxRsApplication.java | 10 +- .../services/client/AccountClient.java | 80 +-- .../services/client/AccountProxy.java | 7 +- .../services/client/AccountRoleClient.java | 63 +- .../services/client/AccountRoleProxy.java | 5 +- .../services/client/AcquisitionClient.java | 106 +--- .../services/client/AcquisitionProxy.java | 33 +- .../acquisition/AcquisitionResource.java | 4 +- .../services/client/PermissionClient.java | 82 +-- .../services/client/PermissionProxy.java | 8 - .../services/client/PermissionRoleClient.java | 80 +-- .../services/client/PermissionRoleProxy.java | 14 +- .../services/client/RoleClient.java | 71 +-- .../services/client/RolePermissionClient.java | 70 +-- .../services/client/RolePermissionProxy.java | 13 +- .../services/client/RoleProxy.java | 7 - .../services/authorization/RoleResource.java | 1 - .../services/client/BlobClient.java | 119 +--- .../services/client/BlobProxy.java | 33 +- services/client/.classpath | 226 ++++++- .../client/AbstractPoxServiceClientImpl.java | 28 + .../client/AbstractServiceClientImpl.java | 134 +++-- .../services/client/AuthorityClient.java | 108 ++++ .../services/client/AuthorityClientImpl.java | 145 +++++ .../services/client/AuthorityProxy.java | 118 ++++ .../client/CollectionSpaceClient.java | 29 +- .../client/CollectionSpacePoxClient.java | 15 + .../client/CollectionSpacePoxProxy.java | 26 + .../services/client/CollectionSpaceProxy.java | 25 + .../services/client}/IQueryManager.java | 2 +- .../services/client/TestServiceClient.java | 25 +- .../services/client/TestServiceProxy.java | 5 + .../client/test/ServiceTestUtils.java | 6 + .../src/main/resources/META-INF/MANIFEST.MF | 2 +- .../resources/OSGI-INF/core-types-contrib.xml | 2 +- .../resources/OSGI-INF/life-cycle-contrib.xml | 11 + .../client/CollectionObjectClient.java | 140 +---- .../client/CollectionObjectProxy.java | 106 +--- .../CollectionObjectResource.java | 3 +- services/common-api/.project | 14 +- .../collectionspace/tenant-bindings.xml | 37 ++ ...tMultiPartCollectionSpaceResourceImpl.java | 94 ++- .../services/common/ResourceBase.java | 35 +- .../services/common/ServiceMessages.java | 7 + .../context/AbstractServiceContextImpl.java | 2 +- .../context/MultipartServiceContext.java | 2 + .../context/MultipartServiceContextImpl.java | 19 + .../services/common/query/QueryManager.java | 1 + .../query/nuxeo/QueryManagerNuxeoImpl.java | 9 +- .../common/relation/nuxeo/RelationsUtils.java | 2 +- .../common/vocabulary/AuthorityResource.java | 2 +- .../common/vocabulary/VocabManagerImpl.java | 2 +- .../workflow/client/WorkflowClient.java | 50 ++ .../common/workflow/client/WorkflowProxy.java | 16 + .../java/RemoteDocumentModelHandlerImpl.java | 2 +- .../client/java/RepositoryJavaClientImpl.java | 5 +- .../client/AuthorityWithContactsClient.java | 261 ++++++++ .../AuthorityWithContactsClientImpl.java | 321 ++++++++++ .../client/AuthorityWithContactsProxy.java | 153 +++++ .../services/client/ContactClient.java | 107 +--- .../services/client/ContactProxy.java | 29 +- .../AuthorityResourceWithContacts.java | 3 +- .../src/main/resources/META-INF/MANIFEST.MF | 1 + .../resources/OSGI-INF/life-cycle-contrib.xml | 11 + .../services/client/DimensionClient.java | 119 +--- .../services/client/DimensionProxy.java | 27 +- .../client/test/DimensionServiceTest.java | 3 +- .../services/client/IdClient.java | 70 +-- .../services/client/IdProxy.java | 3 - .../src/main/resources/META-INF/MANIFEST.MF | 1 + .../resources/OSGI-INF/core-types-contrib.xml | 2 +- .../resources/OSGI-INF/life-cycle-contrib.xml | 11 + .../services/client/IntakeClient.java | 123 +--- .../services/client/IntakeProxy.java | 70 +-- .../services/intake/IntakeResource.java | 11 +- .../src/main/resources/authorityrefdocs.xsd | 2 + .../src/main/resources/workflows_common.xsd | 53 ++ .../services/client/LoaninClient.java | 108 +--- .../services/client/LoaninProxy.java | 36 +- .../services/loanin/LoaninResource.java | 3 +- .../services/client/LoanoutClient.java | 106 +--- .../services/client/LoanoutProxy.java | 37 +- .../services/loanout/LoanoutResource.java | 3 +- .../client/LocationAuthorityClient.java | 261 +------- .../client/LocationAuthorityProxy.java | 129 +--- .../location/LocationAuthorityResource.java | 1 - .../services/client/MediaClient.java | 116 +--- .../services/client/MediaProxy.java | 38 +- .../services/client/MovementClient.java | 110 +--- .../services/client/MovementProxy.java | 38 +- .../services/movement/MovementResource.java | 3 +- .../services/client/NoteClient.java | 60 +- .../services/client/ObjectExitClient.java | 115 +--- .../services/client/ObjectExitProxy.java | 36 +- .../services/client/OrgAuthorityClient.java | 564 +----------------- .../services/client/OrgAuthorityProxy.java | 250 +------- .../client/PersonAuthorityClient.java | 551 +---------------- .../services/client/PersonAuthorityProxy.java | 244 +------- services/pom.xml | 1 + .../services/client/RelationClient.java | 94 +-- .../services/client/RelationProxy.java | 28 +- .../services/relation/RelationResource.java | 3 +- .../services/client/ReportClient.java | 106 +--- .../services/client/ReportProxy.java | 67 +-- .../services/report/ReportResource.java | 2 +- .../services/client/VocabularyClient.java | 199 +----- .../services/client/VocabularyProxy.java | 75 +-- .../client/test/VocabularyServiceTest.java | 2 +- services/workflow/3rdparty/build.xml | 127 ++++ .../nuxeo-platform-cs-workflow/build.xml | 143 +++++ .../nuxeo-platform-cs-workflow/pom.xml | 37 ++ .../src/main/resources/META-INF/MANIFEST.MF | 22 + .../resources/OSGI-INF/core-types-contrib.xml | 6 + .../OSGI-INF/deployment-fragment.xml | 10 + .../resources/schemas/workflows_common.xsd | 30 + services/workflow/3rdparty/pom.xml | 24 + services/workflow/build.xml | 121 ++++ services/workflow/client/pom.xml | 85 +++ .../client/test/WorkflowServiceTest.java | 306 ++++++++++ .../src/test/resources/log4j.properties | 23 + services/workflow/jaxb/pom.xml | 47 ++ services/workflow/pom.xml | 23 + services/workflow/service/.project | 23 + services/workflow/service/pom.xml | 96 +++ .../services/workflow/WorkflowResource.java | 112 ++++ .../nuxeo/WorkflowValidatorHandler.java | 63 ++ .../services/test/WorkflowServiceTest.java | 13 + .../service/src/test/resources/log4j.xml | 45 ++ 135 files changed, 3760 insertions(+), 4649 deletions(-) create mode 100644 3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/OSGI-INF/default-life-cycle-contrib.xml create mode 100644 services/client/src/main/java/org/collectionspace/services/client/AbstractPoxServiceClientImpl.java create mode 100644 services/client/src/main/java/org/collectionspace/services/client/AuthorityClient.java create mode 100644 services/client/src/main/java/org/collectionspace/services/client/AuthorityClientImpl.java create mode 100644 services/client/src/main/java/org/collectionspace/services/client/AuthorityProxy.java create mode 100644 services/client/src/main/java/org/collectionspace/services/client/CollectionSpacePoxClient.java create mode 100644 services/client/src/main/java/org/collectionspace/services/client/CollectionSpacePoxProxy.java rename services/{common/src/main/java/org/collectionspace/services/common/query => client/src/main/java/org/collectionspace/services/client}/IQueryManager.java (94%) create mode 100644 services/client/src/main/java/org/collectionspace/services/client/TestServiceProxy.java create mode 100644 services/client/src/main/java/org/collectionspace/services/client/test/ServiceTestUtils.java create mode 100644 services/collectionobject/3rdparty/nuxeo-platform-cs-collectionobject/src/main/resources/OSGI-INF/life-cycle-contrib.xml create mode 100644 services/common/src/main/java/org/collectionspace/services/common/workflow/client/WorkflowClient.java create mode 100644 services/common/src/main/java/org/collectionspace/services/common/workflow/client/WorkflowProxy.java create mode 100644 services/contact/client/src/main/java/org/collectionspace/services/client/AuthorityWithContactsClient.java create mode 100644 services/contact/client/src/main/java/org/collectionspace/services/client/AuthorityWithContactsClientImpl.java create mode 100644 services/contact/client/src/main/java/org/collectionspace/services/client/AuthorityWithContactsProxy.java create mode 100644 services/dimension/3rdparty/nuxeo-platform-cs-dimension/src/main/resources/OSGI-INF/life-cycle-contrib.xml create mode 100644 services/intake/3rdparty/nuxeo-platform-cs-intake/src/main/resources/OSGI-INF/life-cycle-contrib.xml rename services/{common => jaxb}/src/main/resources/authorityrefdocs.xsd (99%) create mode 100644 services/jaxb/src/main/resources/workflows_common.xsd create mode 100644 services/workflow/3rdparty/build.xml create mode 100644 services/workflow/3rdparty/nuxeo-platform-cs-workflow/build.xml create mode 100644 services/workflow/3rdparty/nuxeo-platform-cs-workflow/pom.xml create mode 100644 services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/META-INF/MANIFEST.MF create mode 100644 services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/OSGI-INF/core-types-contrib.xml create mode 100644 services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/OSGI-INF/deployment-fragment.xml create mode 100644 services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/schemas/workflows_common.xsd create mode 100644 services/workflow/3rdparty/pom.xml create mode 100644 services/workflow/build.xml create mode 100644 services/workflow/client/pom.xml create mode 100644 services/workflow/client/src/test/java/org/collectionspace/services/client/test/WorkflowServiceTest.java create mode 100644 services/workflow/client/src/test/resources/log4j.properties create mode 100644 services/workflow/jaxb/pom.xml create mode 100644 services/workflow/pom.xml create mode 100644 services/workflow/service/.project create mode 100644 services/workflow/service/pom.xml create mode 100644 services/workflow/service/src/main/java/org/collectionspace/services/workflow/WorkflowResource.java create mode 100644 services/workflow/service/src/main/java/org/collectionspace/services/workflow/nuxeo/WorkflowValidatorHandler.java create mode 100644 services/workflow/service/src/test/java/org/collectionspace/services/test/WorkflowServiceTest.java create mode 100644 services/workflow/service/src/test/resources/log4j.xml diff --git a/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/META-INF/MANIFEST.MF b/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/META-INF/MANIFEST.MF index 68d7e9bbf..22c7df63d 100644 --- a/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/META-INF/MANIFEST.MF +++ b/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/META-INF/MANIFEST.MF @@ -11,6 +11,7 @@ Require-Bundle: org.nuxeo.runtime, org.nuxeo.ecm.webapp.core Provide-Package: org.collectionspace.collectionspace_core Nuxeo-Component: OSGI-INF/core-types-contrib.xml, + OSGI-INF/default-life-cycle-contrib.xml, OSGI-INF/ecm-types-contrib.xml, OSGI-INF/layouts-contrib.xml diff --git a/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/OSGI-INF/core-types-contrib.xml b/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/OSGI-INF/core-types-contrib.xml index df22ac00c..a6f879e49 100644 --- a/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/OSGI-INF/core-types-contrib.xml +++ b/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/OSGI-INF/core-types-contrib.xml @@ -4,6 +4,10 @@ + + + + diff --git a/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/OSGI-INF/default-life-cycle-contrib.xml b/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/OSGI-INF/default-life-cycle-contrib.xml new file mode 100644 index 000000000..d68c55c1f --- /dev/null +++ b/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/OSGI-INF/default-life-cycle-contrib.xml @@ -0,0 +1,11 @@ + + + + + + default + + + + diff --git a/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/OSGI-INF/querymodel-contrib.xml b/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/OSGI-INF/querymodel-contrib.xml index ecbed6c09..c8fa3f728 100644 --- a/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/OSGI-INF/querymodel-contrib.xml +++ b/3rdparty/nuxeo/nuxeo-platform-collectionspace/src/main/resources/OSGI-INF/querymodel-contrib.xml @@ -1,6 +1,6 @@ - + org.nuxeo.ecm.webapp.querymodel.DefaultQueryModels + diff --git a/services/JaxRsServiceProvider/.project b/services/JaxRsServiceProvider/.project index 0f523f3ba..277d1eba9 100644 --- a/services/JaxRsServiceProvider/.project +++ b/services/JaxRsServiceProvider/.project @@ -59,6 +59,7 @@ org.collectionspace.services.vocabulary.client org.collectionspace.services.vocabulary.jaxb org.collectionspace.services.vocabulary.service + org.collectionspace.services.workflow.service diff --git a/services/JaxRsServiceProvider/pom.xml b/services/JaxRsServiceProvider/pom.xml index 5727103a8..c3a862683 100644 --- a/services/JaxRsServiceProvider/pom.xml +++ b/services/JaxRsServiceProvider/pom.xml @@ -171,6 +171,11 @@ org.collectionspace.services.relation.service ${project.version} + + org.collectionspace.services + org.collectionspace.services.workflow.service + ${project.version} + + + + + default-domain + + + org.collectionspace.services.common.workflow.service.nuxeo.WorkflowDocumentModelHandler + + + org.collectionspace.services.workflow.nuxeo.WorkflowValidatorHandler + + + + + + + + + + + + + + + + + + diff --git a/services/common/src/main/java/org/collectionspace/services/common/AbstractMultiPartCollectionSpaceResourceImpl.java b/services/common/src/main/java/org/collectionspace/services/common/AbstractMultiPartCollectionSpaceResourceImpl.java index a557ba757..1371cb62b 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/AbstractMultiPartCollectionSpaceResourceImpl.java +++ b/services/common/src/main/java/org/collectionspace/services/common/AbstractMultiPartCollectionSpaceResourceImpl.java @@ -26,6 +26,12 @@ */ package org.collectionspace.services.common; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.Response; + import org.collectionspace.services.client.PayloadInputPart; import org.collectionspace.services.client.PoxPayloadIn; import org.collectionspace.services.client.PoxPayloadOut; @@ -34,9 +40,12 @@ import org.collectionspace.services.common.context.MultipartServiceContextFactor import org.collectionspace.services.common.context.ServiceContext; import org.collectionspace.services.common.context.ServiceContextFactory; import org.collectionspace.services.common.document.DocumentHandler; +import org.collectionspace.services.common.document.DocumentNotFoundException; +import org.collectionspace.services.common.security.UnauthorizedException; +import org.collectionspace.services.common.workflow.client.WorkflowClient; +import org.collectionspace.services.common.workflow.service.nuxeo.WorkflowDocumentModelHandler; +import org.collectionspace.services.workflow.WorkflowsCommon; -import org.jboss.resteasy.plugins.providers.multipart.MultipartInput; -import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,6 +62,40 @@ public abstract class AbstractMultiPartCollectionSpaceResourceImpl extends return MultipartServiceContextFactory.get(); } + protected WebApplicationException bigReThrow(Exception e, String serviceMsg) + throws WebApplicationException { + return bigReThrow(e, serviceMsg, ""); + } + + protected WebApplicationException bigReThrow(Exception e, + String serviceMsg, String csid) throws WebApplicationException { + Response response; + if (logger.isDebugEnabled()) { + logger.debug(getClass().getName(), e); + } + if (e instanceof UnauthorizedException) { + response = Response.status(Response.Status.UNAUTHORIZED) + .entity(serviceMsg + e.getMessage()).type("text/plain") + .build(); + return new WebApplicationException(response); + } else if (e instanceof DocumentNotFoundException) { + response = Response + .status(Response.Status.NOT_FOUND) + .entity(serviceMsg + " on " + getClass().getName() + + " csid=" + csid).type("text/plain").build(); + return new WebApplicationException(response); + } else if (e instanceof WebApplicationException) { + // + // subresource may have already thrown this exception + // so just pass it on + return (WebApplicationException)e; + } else { // e is now instanceof Exception + response = Response.status(Response.Status.INTERNAL_SERVER_ERROR) + .entity(serviceMsg).type("text/plain").build(); + return new WebApplicationException(response); + } + } + @Override public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception { return createDocumentHandler(ctx, ctx.getCommonPartLabel(), getCommonPartClass()); @@ -100,4 +143,51 @@ public abstract class AbstractMultiPartCollectionSpaceResourceImpl extends return createDocumentHandler(ctx, ctx.getCommonPartLabel(), commonClass); } + /** + * Creates the contact document handler. + * + * @param ctx the ctx + * @param inAuthority the in authority + * @param inItem the in item + * + * @return the document handler + * + * @throws Exception the exception + */ + private WorkflowDocumentModelHandler createWorkflowDocumentHandler( + ServiceContext ctx) throws Exception { + + WorkflowDocumentModelHandler docHandler = (WorkflowDocumentModelHandler)createDocumentHandler(ctx, + WorkflowClient.SERVICE_COMMONPART_NAME, + WorkflowsCommon.class); + + return docHandler; + } + + /* + * JAX-RS Annotated methods + */ + + @GET + @Path("{csid}/workflow") + public byte[] getWorkflow( + @PathParam("csid") String csid) { + PoxPayloadOut result = null; + + try { + ServiceContext parentCtx = createServiceContext(); + String parentWorkspaceName = parentCtx.getRepositoryWorkspaceName(); + + MultipartServiceContext ctx = (MultipartServiceContext) createServiceContext(WorkflowClient.SERVICE_NAME); + WorkflowDocumentModelHandler handler = createWorkflowDocumentHandler(ctx); + ctx.setRespositoryWorkspaceName(parentWorkspaceName); //find the document in the parent's workspace + getRepositoryClient(ctx).get(ctx, csid, handler); + result = ctx.getOutput(); + } catch (Exception e) { + throw bigReThrow(e, ServiceMessages.READ_FAILED + WorkflowClient.SERVICE_PAYLOAD_NAME, csid); + } + + return result.getBytes(); + } + } diff --git a/services/common/src/main/java/org/collectionspace/services/common/ResourceBase.java b/services/common/src/main/java/org/collectionspace/services/common/ResourceBase.java index ee5a4ecf7..eaafe2b98 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/ResourceBase.java +++ b/services/common/src/main/java/org/collectionspace/services/common/ResourceBase.java @@ -24,6 +24,7 @@ package org.collectionspace.services.common; +import org.collectionspace.services.client.IQueryManager; import org.collectionspace.services.client.PoxPayloadIn; import org.collectionspace.services.client.PoxPayloadOut; import org.collectionspace.services.common.authorityref.AuthorityRefList; @@ -34,7 +35,6 @@ import org.collectionspace.services.common.document.DocumentFilter; import org.collectionspace.services.common.document.DocumentHandler; import org.collectionspace.services.common.document.DocumentNotFoundException; import org.collectionspace.services.common.document.DocumentWrapper; -import org.collectionspace.services.common.query.IQueryManager; import org.collectionspace.services.common.query.QueryManager; import org.collectionspace.services.common.security.UnauthorizedException; import org.collectionspace.services.jaxb.AbstractCommonList; @@ -91,39 +91,6 @@ extends AbstractMultiPartCollectionSpaceResourceImpl { } } - protected WebApplicationException bigReThrow(Exception e, String serviceMsg) - throws WebApplicationException { - return bigReThrow(e, serviceMsg, ""); - } - - protected WebApplicationException bigReThrow(Exception e, - String serviceMsg, String csid) throws WebApplicationException { - Response response; - //if (logger.isDebugEnabled()) { - logger.error(getClass().getName(), e); - //} - if (e instanceof UnauthorizedException) { - response = Response.status(Response.Status.UNAUTHORIZED) - .entity(serviceMsg + e.getMessage()).type("text/plain") - .build(); - return new WebApplicationException(response); - } else if (e instanceof DocumentNotFoundException) { - response = Response - .status(Response.Status.NOT_FOUND) - .entity(serviceMsg + " on " + getClass().getName() - + " csid=" + csid).type("text/plain").build(); - return new WebApplicationException(response); - } else if (e instanceof WebApplicationException) { - // - // subresource may have already thrown this exception - // so just pass it on - return (WebApplicationException)e; - } else { // e is now instanceof Exception - response = Response.status(Response.Status.INTERNAL_SERVER_ERROR) - .entity(serviceMsg).type("text/plain").build(); - return new WebApplicationException(response); - } - } //======================= CREATE ==================================================== diff --git a/services/common/src/main/java/org/collectionspace/services/common/ServiceMessages.java b/services/common/src/main/java/org/collectionspace/services/common/ServiceMessages.java index b065f93c5..2fe4e522e 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/ServiceMessages.java +++ b/services/common/src/main/java/org/collectionspace/services/common/ServiceMessages.java @@ -34,6 +34,7 @@ package org.collectionspace.services.common; public class ServiceMessages { private static final String FAILED = "failed: "; + private static final String UNSUPPORTED = "unsupported: "; public static final String POST_FAILED = "POST " + FAILED; public static final String GET_FAILED = "GET " + FAILED; @@ -42,6 +43,12 @@ public class ServiceMessages { public static final String CREATE_FAILED = "Create request " + FAILED; public static final String READ_FAILED = "Read request " + FAILED; public static final String UPDATE_FAILED = "Update request " + FAILED; + + public static final String POST_UNSUPPORTED = "POST " + UNSUPPORTED; + public static final String GET_UNSUPPORTED = "GET " + UNSUPPORTED; + public static final String GET_LIST_UNSUPPORTED = "GET/LIST " + UNSUPPORTED; + public static final String PUT_UNSUPPORTED = "PUT " + UNSUPPORTED; + public static final String DELETE_UNSUPPORTED = "DELETE " + UNSUPPORTED; public static final String DELETE_FAILED = "Delete request " + FAILED; public static final String LIST_FAILED = "List request " + FAILED; diff --git a/services/common/src/main/java/org/collectionspace/services/common/context/AbstractServiceContextImpl.java b/services/common/src/main/java/org/collectionspace/services/common/context/AbstractServiceContextImpl.java index e12b4daaf..2f058db70 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/context/AbstractServiceContextImpl.java +++ b/services/common/src/main/java/org/collectionspace/services/common/context/AbstractServiceContextImpl.java @@ -76,7 +76,7 @@ public abstract class AbstractServiceContextImpl /** The object part map. */ Map objectPartMap = new HashMap(); /** The service binding. */ - private ServiceBindingType serviceBinding; + protected ServiceBindingType serviceBinding; /** The tenant binding. */ private TenantBindingType tenantBinding; /** repository domain used by the service */ diff --git a/services/common/src/main/java/org/collectionspace/services/common/context/MultipartServiceContext.java b/services/common/src/main/java/org/collectionspace/services/common/context/MultipartServiceContext.java index 3c6fe48b3..cf7c4ce99 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/context/MultipartServiceContext.java +++ b/services/common/src/main/java/org/collectionspace/services/common/context/MultipartServiceContext.java @@ -109,4 +109,6 @@ public interface MultipartServiceContext * @param contentType media type */ public void addOutputPart(String label, Element doc, String contentType) throws Exception; + + public void setRespositoryWorkspaceName(String workspaceName); } diff --git a/services/common/src/main/java/org/collectionspace/services/common/context/MultipartServiceContextImpl.java b/services/common/src/main/java/org/collectionspace/services/common/context/MultipartServiceContextImpl.java index cc068a283..67dc80d73 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/context/MultipartServiceContextImpl.java +++ b/services/common/src/main/java/org/collectionspace/services/common/context/MultipartServiceContextImpl.java @@ -55,6 +55,7 @@ public class MultipartServiceContextImpl /** The logger. */ final Logger logger = LoggerFactory.getLogger(MultipartServiceContextImpl.class); + private String repositoryWorkspaceName; /** * Instantiates a new multipart service context impl. @@ -177,4 +178,22 @@ public class MultipartServiceContextImpl ServiceContext ctx = (ServiceContext) ctor.newInstance(getServiceName()); return ctx; } + + /* (non-Javadoc) + * @see org.collectionspace.services.common.context.ServiceContext#getRepositoryWorkspaceName() + */ + @Override + public String getRepositoryWorkspaceName() { + String result = repositoryWorkspaceName; + //service name is workspace name by convention + if (result == null) { + result = serviceBinding.getName(); + } + return result; + } + + @Override + public void setRespositoryWorkspaceName(String workspaceName) { + repositoryWorkspaceName = workspaceName; + } } diff --git a/services/common/src/main/java/org/collectionspace/services/common/query/QueryManager.java b/services/common/src/main/java/org/collectionspace/services/common/query/QueryManager.java index 040d04f68..ee76beb48 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/query/QueryManager.java +++ b/services/common/src/main/java/org/collectionspace/services/common/query/QueryManager.java @@ -26,6 +26,7 @@ */ package org.collectionspace.services.common.query; +import org.collectionspace.services.client.IQueryManager; import org.collectionspace.services.common.query.nuxeo.QueryManagerNuxeoImpl; public class QueryManager { diff --git a/services/common/src/main/java/org/collectionspace/services/common/query/nuxeo/QueryManagerNuxeoImpl.java b/services/common/src/main/java/org/collectionspace/services/common/query/nuxeo/QueryManagerNuxeoImpl.java index aba6d1d6d..a055e9e85 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/query/nuxeo/QueryManagerNuxeoImpl.java +++ b/services/common/src/main/java/org/collectionspace/services/common/query/nuxeo/QueryManagerNuxeoImpl.java @@ -26,14 +26,9 @@ */ package org.collectionspace.services.common.query.nuxeo; -import java.util.StringTokenizer; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Map; -import java.util.HashMap; -import java.util.StringTokenizer; import java.util.regex.Pattern; import org.nuxeo.ecm.core.api.DocumentModel; @@ -43,9 +38,7 @@ import org.nuxeo.ecm.core.client.NuxeoClient; import org.collectionspace.services.nuxeo.client.java.NuxeoConnector; import org.collectionspace.services.nuxeo.client.java.RepositoryJavaClientImpl; -import org.collectionspace.services.common.document.DocumentFilter; -import org.collectionspace.services.common.query.IQueryManager; -import org.collectionspace.services.common.vocabulary.AuthorityItemJAXBSchema; +import org.collectionspace.services.client.IQueryManager; public class QueryManagerNuxeoImpl implements IQueryManager { diff --git a/services/common/src/main/java/org/collectionspace/services/common/relation/nuxeo/RelationsUtils.java b/services/common/src/main/java/org/collectionspace/services/common/relation/nuxeo/RelationsUtils.java index f4c026ad5..2d4240b0d 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/relation/nuxeo/RelationsUtils.java +++ b/services/common/src/main/java/org/collectionspace/services/common/relation/nuxeo/RelationsUtils.java @@ -25,7 +25,7 @@ package org.collectionspace.services.common.relation.nuxeo; import java.lang.StringBuilder; -import org.collectionspace.services.common.query.IQueryManager; +import org.collectionspace.services.client.IQueryManager; import org.collectionspace.services.common.relation.RelationJAXBSchema; import org.slf4j.Logger; diff --git a/services/common/src/main/java/org/collectionspace/services/common/vocabulary/AuthorityResource.java b/services/common/src/main/java/org/collectionspace/services/common/vocabulary/AuthorityResource.java index 9fdc54960..6698a6634 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/vocabulary/AuthorityResource.java +++ b/services/common/src/main/java/org/collectionspace/services/common/vocabulary/AuthorityResource.java @@ -42,6 +42,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriBuilder; import javax.ws.rs.core.UriInfo; +import org.collectionspace.services.client.IQueryManager; import org.collectionspace.services.client.PoxPayloadIn; import org.collectionspace.services.client.PoxPayloadOut; import org.collectionspace.services.common.vocabulary.AuthorityJAXBSchema; @@ -62,7 +63,6 @@ import org.collectionspace.services.common.document.DocumentNotFoundException; import org.collectionspace.services.common.document.DocumentWrapper; import org.collectionspace.services.common.repository.RepositoryClient; import org.collectionspace.services.common.security.UnauthorizedException; -import org.collectionspace.services.common.query.IQueryManager; import org.collectionspace.services.common.query.QueryManager; import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl; import org.jboss.resteasy.util.HttpResponseCodes; diff --git a/services/common/src/main/java/org/collectionspace/services/common/vocabulary/VocabManagerImpl.java b/services/common/src/main/java/org/collectionspace/services/common/vocabulary/VocabManagerImpl.java index 600c043ef..d70370f16 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/vocabulary/VocabManagerImpl.java +++ b/services/common/src/main/java/org/collectionspace/services/common/vocabulary/VocabManagerImpl.java @@ -10,7 +10,7 @@ import org.nuxeo.ecm.core.client.NuxeoClient; import org.collectionspace.services.nuxeo.client.java.NuxeoConnector; import org.collectionspace.services.nuxeo.client.java.RepositoryJavaClientImpl; -import org.collectionspace.services.common.query.IQueryManager; +//import org.collectionspace.services.common.query.IQueryManager; public class VocabManagerImpl implements IVocabManager { diff --git a/services/common/src/main/java/org/collectionspace/services/common/workflow/client/WorkflowClient.java b/services/common/src/main/java/org/collectionspace/services/common/workflow/client/WorkflowClient.java new file mode 100644 index 000000000..2f470777c --- /dev/null +++ b/services/common/src/main/java/org/collectionspace/services/common/workflow/client/WorkflowClient.java @@ -0,0 +1,50 @@ +/** + * This document is a part of the source code and related artifacts + * for CollectionSpace, an open source collections management system + * for museums and related institutions: + * + * http://www.collectionspace.org + * http://wiki.collectionspace.org + * + * Copyright (c) 2009 Regents of the University of California + * + * Licensed under the Educational Community License (ECL), Version 2.0. + * You may not use this file except in compliance with this License. + * + * You may obtain a copy of the ECL 2.0 License at + * https://source.collectionspace.org/collection-space/LICENSE.txt + */ +package org.collectionspace.services.common.workflow.client; + +import org.collectionspace.services.client.AbstractPoxServiceClientImpl; + +/** + * WorkflowClient.java + * + * $LastChangedRevision: 2108 $ + * $LastChangedDate: 2010-05-17 18:25:37 -0700 (Mon, 17 May 2010) $ + * + */ +public class WorkflowClient extends AbstractPoxServiceClientImpl { + public static final String SERVICE_NAME = "workflows"; + public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME; + public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT; + public static final String SERVICE_PAYLOAD_NAME = SERVICE_NAME; + public static final String SERVICE_COMMONPART_NAME = SERVICE_NAME + PART_LABEL_SEPARATOR + PART_COMMON_LABEL; + + @Override + public String getServiceName() { + return SERVICE_NAME; + } + + @Override + public String getServicePathComponent() { + return SERVICE_PATH_COMPONENT; + } + + @Override + public Class getProxyClass() { + // TODO Auto-generated method stub + return WorkflowProxy.class; + } +} diff --git a/services/common/src/main/java/org/collectionspace/services/common/workflow/client/WorkflowProxy.java b/services/common/src/main/java/org/collectionspace/services/common/workflow/client/WorkflowProxy.java new file mode 100644 index 000000000..04ff61aa1 --- /dev/null +++ b/services/common/src/main/java/org/collectionspace/services/common/workflow/client/WorkflowProxy.java @@ -0,0 +1,16 @@ +package org.collectionspace.services.common.workflow.client; + +import javax.ws.rs.Consumes; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; + +import org.collectionspace.services.client.CollectionSpacePoxProxy; + +/** + * @version $Revision: 2108 $ + */ +@Path(WorkflowClient.SERVICE_PATH + "/") +@Produces({"application/xml"}) +@Consumes({"application/xml"}) +public interface WorkflowProxy extends CollectionSpacePoxProxy { +} diff --git a/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/RemoteDocumentModelHandlerImpl.java b/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/RemoteDocumentModelHandlerImpl.java index d13c122a2..50db6a4d7 100644 --- a/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/RemoteDocumentModelHandlerImpl.java +++ b/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/RemoteDocumentModelHandlerImpl.java @@ -127,7 +127,7 @@ public abstract class RemoteDocumentModelHandlerImpl * @param partMeta the part meta * @throws Exception the exception */ - private void addOutputPart(Map unQObjectProperties, String schema, ObjectPartType partMeta) + protected void addOutputPart(Map unQObjectProperties, String schema, ObjectPartType partMeta) throws Exception { Element doc = DocumentUtils.buildDocument(partMeta, schema, unQObjectProperties); diff --git a/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/RepositoryJavaClientImpl.java b/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/RepositoryJavaClientImpl.java index a83eac3b6..3c9e94c17 100644 --- a/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/RepositoryJavaClientImpl.java +++ b/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/RepositoryJavaClientImpl.java @@ -24,11 +24,11 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; +import org.collectionspace.services.client.IQueryManager; import org.collectionspace.services.client.PoxPayloadIn; import org.collectionspace.services.client.PoxPayloadOut; import org.collectionspace.services.common.context.ServiceContext; import org.collectionspace.services.common.datetime.GregorianCalendarDateTimeUtils; -import org.collectionspace.services.common.query.IQueryManager; import org.collectionspace.services.common.query.QueryContext; import org.collectionspace.services.common.repository.RepositoryClient; import org.collectionspace.services.common.profile.Profiler; @@ -43,9 +43,6 @@ import org.collectionspace.services.common.document.DocumentHandler.Action; import org.collectionspace.services.common.document.DocumentWrapper; import org.collectionspace.services.common.document.DocumentWrapperImpl; -import org.jboss.resteasy.plugins.providers.multipart.MultipartInput; -import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput; - import org.nuxeo.common.utils.IdUtils; import org.nuxeo.ecm.core.api.ClientException; import org.nuxeo.ecm.core.api.DocumentModel; diff --git a/services/contact/client/src/main/java/org/collectionspace/services/client/AuthorityWithContactsClient.java b/services/contact/client/src/main/java/org/collectionspace/services/client/AuthorityWithContactsClient.java new file mode 100644 index 000000000..f1ae2dc5b --- /dev/null +++ b/services/contact/client/src/main/java/org/collectionspace/services/client/AuthorityWithContactsClient.java @@ -0,0 +1,261 @@ +package org.collectionspace.services.client; + +import javax.ws.rs.core.Response; + +import org.collectionspace.services.contact.ContactsCommonList; +import org.collectionspace.services.jaxb.AbstractCommonList; +import org.jboss.resteasy.client.ClientResponse; + +public interface AuthorityWithContactsClient> extends AuthorityClient { + /** + * Creates the contact. + * + * @param parentcsid the parentcsid + * @param itemcsid the itemcsid + * @param multipart the multipart + * @return the client response + */ + public ClientResponse createContact(String parentcsid, + String itemcsid, PoxPayloadOut xmlPayload); + + /** + * Creates the contact. + * + * @param parentcsid + * @param itemspecifier (shortIdentifier) + * @param multipart + * @return the client response + */ + public ClientResponse createContactForNamedItem( + String parentcsid, + String itemspecifier, + PoxPayloadOut xmlPayload); + + /** + * Creates the contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemcsid + * @param multipart + * @return the client response + */ + public ClientResponse createContactForItemInNamedAuthority( + String parentspecifier, + String itemcsid, + PoxPayloadOut xmlPayload); + + /** + * Creates the contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemspecifier (shortIdentifier) + * @param multipart + * @return the client response + */ + public ClientResponse createContactForNamedItemInNamedAuthority( + String parentspecifier, + String itemspecifier, + PoxPayloadOut xmlPayload); + + /** + * Read contact. + * + * @param parentcsid the parentcsid + * @param itemcsid the itemcsid + * @param csid the csid + * @return the client response + */ + public ClientResponse readContact(String parentcsid, + String itemcsid, String csid); + + /** + * Read contact. + * + * @param parentcsid + * @param itemspecifier (shortIdentifier) + * @param csid + * @return the client response + */ + public ClientResponse readContactForNamedItem( + String parentcsid, + String itemspecifier, + String csid); + + /** + * Read contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemcsid + * @param csid + * @return the client response + */ + public ClientResponse readContactInNamedAuthority( + String parentspecifier, + String itemcsid, + String csid); + + /** + * Read contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemspecifier (shortIdentifier) + * @param csid + * @return the client response + */ + public ClientResponse readContactForNamedItemInNamedAuthority( + String parentspecifier, + String itemspecifier, + String csid); + + + /** + * Read contact list. + * + * @param parentcsid the parentcsid + * @param itemcsid the itemcsid + * @return the client response + */ + public ClientResponse readContactList(String parentcsid, + String itemcsid); + + /** + * Read contact list. + * + * @param parentcsid + * @param itemspecifier (shortIdentifier) + * @return the client response + */ + public ClientResponse readContactListForNamedItem( + String parentcsid, + String itemspecifier); + + /** + * Read contact list. + * + * @param parentspecifier (shortIdentifier) + * @param itemcsid + * @return the client response + */ + public ClientResponse readContactListForItemInNamedAuthority( + String parentspecifier, + String itemcsid); + + /** + * Read contact list. + * + * @param parentspecifier (shortIdentifier) + * @param itemspecifier (shortIdentifier) + * @return the client response + */ + public ClientResponse readContactListForNamedItemInNamedAuthority( + String parentspecifier, + String itemspecifier); + + /** + * Update contact. + * + * @param parentcsid the parentcsid + * @param itemcsid the itemcsid + * @param csid the csid + * @param multipart the multipart + * @return the client response + */ + public ClientResponse updateContact(String parentcsid, + String itemcsid, String csid, PoxPayloadOut xmlPayload); + + /** + * Update contact. + * + * @param parentcsid the parentcsid + * @param itemspecifier (shortIdentifier) + * @param csid the csid + * @param multipart the multipart + * @return the client response + */ + public ClientResponse updateContactForNamedItem( + String parentcsid, + String itemspecifier, + String csid, + PoxPayloadOut xmlPayload); + + /** + * Update contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemcsid the itemcsid + * @param csid the csid + * @param multipart the multipart + * @return the client response + */ + public ClientResponse updateContactInNamedAuthority( + String parentspecifier, + String itemcsid, + String csid, + PoxPayloadOut xmlPayload); + + /** + * Update contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemspecifier (shortIdentifier) + * @param csid the csid + * @param multipart the multipart + * @return the client response + */ + public ClientResponse updateContactForNamedItemInNamedAuthority( + String parentspecifier, + String itemspecifier, + String csid, + PoxPayloadOut xmlPayload); + + /** + * Delete contact. + * + * @param parentcsid the parentcsid + * @param itemcsid the itemcsid + * @param csid the csid + * @return the client response + */ + public ClientResponse deleteContact(String parentcsid, + String itemcsid, String csid); + + /** + * Delete contact. + * + * @param parentcsid the parentcsid + * @param itemspecifier (shortIdentifier) + * @param csid the csid + * @return the client response + */ + public ClientResponse deleteContactForNamedItem( + String parentcsid, + String itemspecifier, + String csid); + + /** + * Delete contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemcsid the itemcsid + * @param csid the csid + * @return the client response + */ + public ClientResponse deleteContactInNamedAuthority( + String parentspecifier, + String itemcsid, + String csid); + + /** + * Delete contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemspecifier (shortIdentifier) + * @param csid the csid + * @return the client response + */ + public ClientResponse deleteContactForNamedItemInNamedAuthority( + String parentspecifier, + String itemspecifier, + String csid); + +} diff --git a/services/contact/client/src/main/java/org/collectionspace/services/client/AuthorityWithContactsClientImpl.java b/services/contact/client/src/main/java/org/collectionspace/services/client/AuthorityWithContactsClientImpl.java new file mode 100644 index 000000000..7ef2bdee1 --- /dev/null +++ b/services/contact/client/src/main/java/org/collectionspace/services/client/AuthorityWithContactsClientImpl.java @@ -0,0 +1,321 @@ +package org.collectionspace.services.client; + +import javax.ws.rs.core.Response; +import org.jboss.resteasy.client.ClientResponse; + +import org.collectionspace.services.contact.ContactsCommonList; +import org.collectionspace.services.jaxb.AbstractCommonList; + +public abstract class AuthorityWithContactsClientImpl> + extends AuthorityClientImpl + implements AuthorityWithContactsClient { + + @Override + public ClientResponse createContact(String parentcsid, + String itemcsid, PoxPayloadOut xmlPayload) { + return getProxy().createContact(parentcsid, itemcsid, xmlPayload.getBytes()); + } + + /** + * Creates the contact. + * + * @param parentcsid + * @param itemspecifier (shortIdentifier) + * @param multipart + * @return the client response + */ + @Override + public ClientResponse createContactForNamedItem( + String parentcsid, + String itemspecifier, + PoxPayloadOut xmlPayload) { + return getProxy().createContactForNamedItem(parentcsid, itemspecifier, xmlPayload.getBytes()); + } + /** + * Creates the contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemcsid + * @param multipart + * @return the client response + */ + @Override + public ClientResponse createContactForItemInNamedAuthority( + String parentspecifier, + String itemcsid, + PoxPayloadOut xmlPayload) { + return getProxy().createContactForItemInNamedAuthority(parentspecifier, + itemcsid, xmlPayload.getBytes()); + } + /** + * Creates the contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemspecifier (shortIdentifier) + * @param multipart + * @return the client response + */ + @Override + public ClientResponse createContactForNamedItemInNamedAuthority( + String parentspecifier, + String itemspecifier, + PoxPayloadOut xmlPayload) { + return getProxy().createContactForNamedItemInNamedAuthority(parentspecifier, itemspecifier, + xmlPayload.getBytes()); + } + + /** + * Read contact. + * + * @param parentcsid the parentcsid + * @param itemcsid the itemcsid + * @param csid the csid + * @return the client response + */ + @Override + public ClientResponse readContact(String parentcsid, + String itemcsid, String csid) { + return getProxy().readContact(parentcsid, itemcsid, csid); + } + + /** + * Read contact. + * + * @param parentcsid + * @param itemspecifier (shortIdentifier) + * @param csid + * @return the client response + */ + @Override + public ClientResponse readContactForNamedItem( + String parentcsid, + String itemspecifier, + String csid){ + return getProxy().readContactForNamedItem(parentcsid, itemspecifier, csid); + } + + /** + * Read contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemcsid + * @param csid + * @return the client response + */ + @Override + public ClientResponse readContactInNamedAuthority( + String parentspecifier, + String itemcsid, + String csid){ + return getProxy().readContactInNamedAuthority(parentspecifier, itemcsid, csid); + } + + /** + * Read contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemspecifier (shortIdentifier) + * @param csid + * @return the client response + */ + @Override + public ClientResponse readContactForNamedItemInNamedAuthority( + String parentspecifier, + String itemspecifier, + String csid){ + return getProxy().readContactForNamedItemInNamedAuthority(parentspecifier, itemspecifier, csid); + } + + + /** + * Read contact list. + * + * @param parentcsid the parentcsid + * @param itemcsid the itemcsid + * @return the client response + */ + @Override + public ClientResponse readContactList(String parentcsid, + String itemcsid) { + return getProxy().readContactList(parentcsid, itemcsid); + } + + /** + * Read contact list. + * + * @param parentcsid + * @param itemspecifier (shortIdentifier) + * @return the client response + */ + @Override + public ClientResponse readContactListForNamedItem( + String parentcsid, + String itemspecifier){ + return getProxy().readContactList(parentcsid, itemspecifier); + } + + /** + * Read contact list. + * + * @param parentspecifier (shortIdentifier) + * @param itemcsid + * @return the client response + */ + @Override + public ClientResponse readContactListForItemInNamedAuthority( + String parentspecifier, + String itemcsid){ + return getProxy().readContactList(parentspecifier, itemcsid); + } + + /** + * Read contact list. + * + * @param parentspecifier (shortIdentifier) + * @param itemspecifier (shortIdentifier) + * @return the client response + */ + @Override + public ClientResponse readContactListForNamedItemInNamedAuthority( + String parentspecifier, + String itemspecifier){ + return getProxy().readContactList(parentspecifier, itemspecifier); + } + + /** + * Update contact. + * + * @param parentcsid the parentcsid + * @param itemcsid the itemcsid + * @param csid the csid + * @param multipart the multipart + * @return the client response + */ + @Override + public ClientResponse updateContact(String parentcsid, + String itemcsid, String csid, PoxPayloadOut xmlPayload) { + return getProxy().updateContact(parentcsid, itemcsid, csid, xmlPayload.getBytes()); + } + + /** + * Update contact. + * + * @param parentcsid the parentcsid + * @param itemspecifier (shortIdentifier) + * @param csid the csid + * @param multipart the multipart + * @return the client response + */ + @Override + public ClientResponse updateContactForNamedItem( + String parentcsid, + String itemspecifier, + String csid, + PoxPayloadOut xmlPayload) { + return getProxy().updateContactForNamedItem(parentcsid, itemspecifier, csid, xmlPayload.getBytes()); + } + + /** + * Update contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemcsid the itemcsid + * @param csid the csid + * @param multipart the multipart + * @return the client response + */ + @Override + public ClientResponse updateContactInNamedAuthority( + String parentspecifier, + String itemcsid, + String csid, + PoxPayloadOut xmlPayload) { + return getProxy().updateContactInNamedAuthority(parentspecifier, itemcsid, csid, xmlPayload.getBytes()); + } + + /** + * Update contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemspecifier (shortIdentifier) + * @param csid the csid + * @param multipart the multipart + * @return the client response + */ + @Override + public ClientResponse updateContactForNamedItemInNamedAuthority( + String parentspecifier, + String itemspecifier, + String csid, + PoxPayloadOut xmlPayload) { + return getProxy().updateContactForNamedItemInNamedAuthority(parentspecifier, itemspecifier, csid, + xmlPayload.getBytes()); + } + + /** + * Delete contact. + * + * @param parentcsid the parentcsid + * @param itemcsid the itemcsid + * @param csid the csid + * @return the client response + */ + @Override + public ClientResponse deleteContact(String parentcsid, + String itemcsid, String csid) { + return getProxy().deleteContact(parentcsid, + itemcsid, csid); + } + + /** + * Delete contact. + * + * @param parentcsid the parentcsid + * @param itemspecifier (shortIdentifier) + * @param csid the csid + * @return the client response + */ + @Override + public ClientResponse deleteContactForNamedItem( + String parentcsid, + String itemspecifier, + String csid) { + return getProxy().deleteContactForNamedItem(parentcsid, + itemspecifier, csid); + } + + /** + * Delete contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemcsid the itemcsid + * @param csid the csid + * @return the client response + */ + @Override + public ClientResponse deleteContactInNamedAuthority( + String parentspecifier, + String itemcsid, + String csid) { + return getProxy().deleteContactInNamedAuthority(parentspecifier, + itemcsid, csid); + } + + /** + * Delete contact. + * + * @param parentspecifier (shortIdentifier) + * @param itemspecifier (shortIdentifier) + * @param csid the csid + * @return the client response + */ + @Override + public ClientResponse deleteContactForNamedItemInNamedAuthority( + String parentspecifier, + String itemspecifier, + String csid) { + return getProxy().deleteContactForNamedItemInNamedAuthority(parentspecifier, + itemspecifier, csid); + } + +} diff --git a/services/contact/client/src/main/java/org/collectionspace/services/client/AuthorityWithContactsProxy.java b/services/contact/client/src/main/java/org/collectionspace/services/client/AuthorityWithContactsProxy.java new file mode 100644 index 000000000..2541e89cf --- /dev/null +++ b/services/contact/client/src/main/java/org/collectionspace/services/client/AuthorityWithContactsProxy.java @@ -0,0 +1,153 @@ +package org.collectionspace.services.client; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Response; + +import org.collectionspace.services.contact.ContactsCommonList; +import org.collectionspace.services.jaxb.AbstractCommonList; +import org.jboss.resteasy.client.ClientResponse; + +public interface AuthorityWithContactsProxy extends AuthorityProxy { + @GET + @Produces({"application/xml"}) + @Path("/{parentcsid}/items/{itemcsid}/contacts/") + public ClientResponse readContactList( + @PathParam("parentcsid") String parentcsid, + @PathParam("itemcsid") String itemcsid); + + @GET + @Produces({"application/xml"}) + @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/") + ClientResponse readContactListForNamedItem( + @PathParam("parentcsid") String parentcsid, + @PathParam("itemspecifier") String itemspecifier); + + @GET + @Produces({"application/xml"}) + @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/") + ClientResponse readContactListForItemInNamedAuthority( + @PathParam("parentspecifier") String parentspecifier, + @PathParam("itemcsid") String itemcsid); + @GET + @Produces({"application/xml"}) + @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/") + ClientResponse readContactListForNamedItemInNamedAuthority( + @PathParam("parentspecifier") String parentspecifier, + @PathParam("itemspecifier") String itemspecifier); + + //(C)reate Contact + @POST + @Path("/{parentcsid}/items/{itemcsid}/contacts/") + ClientResponse createContact( + @PathParam("parentcsid") String parentcsid, + @PathParam("itemcsid") String itemcsid, + byte[] xmlPayload); + @POST + @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/") + ClientResponse createContactForNamedItem( + @PathParam("parentcsid") String parentcsid, + @PathParam("itemspecifier") String itemspecifier, + byte[] xmlPayload); + @POST + @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/") + ClientResponse createContactForItemInNamedAuthority( + @PathParam("parentspecifier") String parentspecifier, + @PathParam("itemcsid") String itemcsid, + byte[] xmlPayload); + @POST + @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/") + ClientResponse createContactForNamedItemInNamedAuthority( + @PathParam("parentspecifier") String parentspecifier, + @PathParam("itemspecifier") String itemspecifier, + byte[] xmlPayload); + + //(R)ead Contact + @GET + @Path("/{parentcsid}/items/{itemcsid}/contacts/{csid}") + ClientResponse readContact( + @PathParam("parentcsid") String parentcsid, + @PathParam("itemcsid") String itemcsid, + @PathParam("csid") String csid); + @GET + @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/{csid}") + ClientResponse readContactForNamedItem( + @PathParam("parentcsid") String parentcsid, + @PathParam("itemspecifier") String itemspecifier, + @PathParam("csid") String csid); + @GET + @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/{csid}") + ClientResponse readContactInNamedAuthority( + @PathParam("parentspecifier") String parentspecifier, + @PathParam("itemcsid") String itemcsid, + @PathParam("csid") String csid); + @GET + @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/{csid}") + ClientResponse readContactForNamedItemInNamedAuthority( + @PathParam("parentspecifier") String parentspecifier, + @PathParam("itemspecifier") String itemspecifier, + @PathParam("csid") String csid); + + //(U)pdate Contact + @PUT + @Path("/{parentcsid}/items/{itemcsid}/contacts/{csid}") + ClientResponse updateContact( + @PathParam("parentcsid") String parentcsid, + @PathParam("itemcsid") String itemcsid, + @PathParam("csid") String csid, + byte[] xmlPayload); + @PUT + @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/{csid}") + ClientResponse updateContactForNamedItem( + @PathParam("parentcsid") String parentcsid, + @PathParam("itemspecifier") String itemspecifier, + @PathParam("csid") String csid, + byte[] xmlPayload); + @PUT + @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/{csid}") + ClientResponse updateContactInNamedAuthority( + @PathParam("parentspecifier") String parentspecifier, + @PathParam("itemcsid") String itemcsid, + @PathParam("csid") String csid, + byte[] xmlPayload); + @PUT + @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/{csid}") + ClientResponse updateContactForNamedItemInNamedAuthority( + @PathParam("parentspecifier") String parentspecifier, + @PathParam("itemspecifier") String itemspecifier, + @PathParam("csid") String csid, + byte[] xmlPayload); + + //(D)elete Contact + @DELETE + @Path("/{parentcsid}/items/{itemcsid}/contacts/{csid}") + ClientResponse deleteContact( + @PathParam("parentcsid") String parentcsid, + @PathParam("itemcsid") String itemcsid, + @PathParam("csid") String csid); + + @DELETE + @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/{csid}") + ClientResponse deleteContactForNamedItem( + @PathParam("parentcsid") String parentcsid, + @PathParam("itemspecifier") String itemspecifier, + @PathParam("csid") String csid); + @DELETE + @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/{csid}") + ClientResponse deleteContactInNamedAuthority( + @PathParam("parentspecifier") String parentspecifier, + @PathParam("itemcsid") String itemcsid, + @PathParam("csid") String csid); + + @DELETE + @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/{csid}") + ClientResponse deleteContactForNamedItemInNamedAuthority( + @PathParam("parentspecifier") String parentspecifier, + @PathParam("itemspecifier") String itemspecifier, + @PathParam("csid") String csid); +} diff --git a/services/contact/client/src/main/java/org/collectionspace/services/client/ContactClient.java b/services/contact/client/src/main/java/org/collectionspace/services/client/ContactClient.java index ff80b7b92..65e05f3f5 100644 --- a/services/contact/client/src/main/java/org/collectionspace/services/client/ContactClient.java +++ b/services/contact/client/src/main/java/org/collectionspace/services/client/ContactClient.java @@ -16,15 +16,8 @@ */ package org.collectionspace.services.client; -import javax.ws.rs.core.Response; - -import org.collectionspace.services.contact.ContactsCommonList; - -import org.jboss.resteasy.client.ProxyFactory; -import org.jboss.resteasy.plugins.providers.RegisterBuiltin; import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor; -import org.jboss.resteasy.spi.ResteasyProviderFactory; +import org.collectionspace.services.contact.ContactsCommonList; /** * ContactClient.java @@ -33,7 +26,7 @@ import org.jboss.resteasy.spi.ResteasyProviderFactory; * $LastChangedDate: $ */ -public class ContactClient extends AbstractServiceClientImpl { +public class ContactClient extends AbstractPoxServiceClientImpl { public static final String SERVICE_NAME = "contacts"; public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME; public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT; @@ -50,98 +43,20 @@ public class ContactClient extends AbstractServiceClientImpl { return SERVICE_PATH_COMPONENT; } - /** - * - */ -// private static final ContactClient instance = new ContactClient(); - - /** - * - */ - private ContactProxy contactProxy; - - /** - * - * Default constructor for ContactClient class. - * - */ - public ContactClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - - @Override - public CollectionSpaceProxy getProxy() { - return this.contactProxy; - } - - /** - * allow to reset proxy as per security needs - */ - public void setProxy() { - if (useAuth()) { - contactProxy = ProxyFactory.create(ContactProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - contactProxy = ProxyFactory.create(ContactProxy.class, - getBaseURL()); - } - } - - /** - * FIXME Comment this - * - * @return - */ -// public static ContactClient getInstance() { -// return instance; -// } + @Override + public Class getProxyClass() { + return ContactProxy.class; + } + /* + * Service calls + */ + /** * @return * @see org.collectionspace.services.client.Contact#getContact() */ public ClientResponse readList() { - return contactProxy.readList(); - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.Contact#getContact(java.lang.String) - */ - - public ClientResponse read(String csid) { - return contactProxy.read(csid); - } - - /** - * @param contact - * @return - * @see org.collectionspace.services.client.Contact#createContact(org.collectionspace.services.Contact) - */ - public ClientResponse create(PoxPayloadOut xmlPayload) { - return contactProxy.create(xmlPayload.getBytes()); - } - - /** - * @param csid - * @param contact - * @return - * @see org.collectionspace.services.client.Contact#updateContact(java.lang.Long, org.collectionspace.services.Contact) - */ - public ClientResponse update(String csid, PoxPayloadOut xmlPayload) { - return contactProxy.update(csid, xmlPayload.getBytes()); - - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.Contact#deleteContact(java.lang.Long) - */ - public ClientResponse delete(String csid) { - return contactProxy.delete(csid); + return getProxy().readList(); } } diff --git a/services/contact/client/src/main/java/org/collectionspace/services/client/ContactProxy.java b/services/contact/client/src/main/java/org/collectionspace/services/client/ContactProxy.java index d62a4ee7a..e22cc345a 100644 --- a/services/contact/client/src/main/java/org/collectionspace/services/client/ContactProxy.java +++ b/services/contact/client/src/main/java/org/collectionspace/services/client/ContactProxy.java @@ -1,17 +1,12 @@ package org.collectionspace.services.client; +import org.jboss.resteasy.client.ClientResponse; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; -import javax.ws.rs.PathParam; import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; import org.collectionspace.services.contact.ContactsCommonList; -import org.jboss.resteasy.client.ClientResponse; /** * @version $Revision:$ @@ -19,27 +14,7 @@ import org.jboss.resteasy.client.ClientResponse; @Path(ContactClient.SERVICE_PATH_PROXY) @Produces({"application/xml"}) @Consumes({"application/xml"}) -public interface ContactProxy extends CollectionSpaceProxy { - +public interface ContactProxy extends CollectionSpacePoxProxy { @GET ClientResponse readList(); - - //(C)reate - @POST - ClientResponse create(byte[] xmlPayload); - - //(R)ead - @GET - @Path("/{csid}") - ClientResponse read(@PathParam("csid") String csid); - - //(U)pdate - @PUT - @Path("/{csid}") - ClientResponse update(@PathParam("csid") String csid, byte[] xmlPayload); - - //(D)elete - @DELETE - @Path("/{csid}") - ClientResponse delete(@PathParam("csid") String csid); } diff --git a/services/contact/service/src/main/java/org/collectionspace/services/contact/AuthorityResourceWithContacts.java b/services/contact/service/src/main/java/org/collectionspace/services/contact/AuthorityResourceWithContacts.java index b2fe3d3d6..6d5ce8108 100644 --- a/services/contact/service/src/main/java/org/collectionspace/services/contact/AuthorityResourceWithContacts.java +++ b/services/contact/service/src/main/java/org/collectionspace/services/contact/AuthorityResourceWithContacts.java @@ -41,6 +41,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriBuilder; import javax.ws.rs.core.UriInfo; +import org.collectionspace.services.client.IQueryManager; import org.collectionspace.services.client.PoxPayloadIn; import org.collectionspace.services.client.PoxPayloadOut; import org.collectionspace.services.common.vocabulary.AuthorityResource; @@ -69,7 +70,7 @@ import org.collectionspace.services.contact.ContactJAXBSchema; import org.collectionspace.services.contact.nuxeo.ContactDocumentModelHandler; //import org.collectionspace.services.common.repository.RepositoryClient; import org.collectionspace.services.common.security.UnauthorizedException; -import org.collectionspace.services.common.query.IQueryManager; +//import org.collectionspace.services.common.query.IQueryManager; //import org.collectionspace.services.common.query.QueryManager; //import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl; //import org.jboss.remoting.samples.chat.exceptions.InvalidArgumentException; diff --git a/services/dimension/3rdparty/nuxeo-platform-cs-dimension/src/main/resources/META-INF/MANIFEST.MF b/services/dimension/3rdparty/nuxeo-platform-cs-dimension/src/main/resources/META-INF/MANIFEST.MF index 4f1e9dad3..6c2e01ae1 100644 --- a/services/dimension/3rdparty/nuxeo-platform-cs-dimension/src/main/resources/META-INF/MANIFEST.MF +++ b/services/dimension/3rdparty/nuxeo-platform-cs-dimension/src/main/resources/META-INF/MANIFEST.MF @@ -12,6 +12,7 @@ Require-Bundle: org.nuxeo.runtime, org.collectionspace.collectionspace_core Provide-Package: org.collectionspace.dimension Nuxeo-Component: OSGI-INF/core-types-contrib.xml, + OSGI-INF/life-cycle-contrib.xml, OSGI-INF/ecm-types-contrib.xml, OSGI-INF/layouts-contrib.xml diff --git a/services/dimension/3rdparty/nuxeo-platform-cs-dimension/src/main/resources/OSGI-INF/life-cycle-contrib.xml b/services/dimension/3rdparty/nuxeo-platform-cs-dimension/src/main/resources/OSGI-INF/life-cycle-contrib.xml new file mode 100644 index 000000000..21e5598d9 --- /dev/null +++ b/services/dimension/3rdparty/nuxeo-platform-cs-dimension/src/main/resources/OSGI-INF/life-cycle-contrib.xml @@ -0,0 +1,11 @@ + + + + + + default + + + + diff --git a/services/dimension/client/src/main/java/org/collectionspace/services/client/DimensionClient.java b/services/dimension/client/src/main/java/org/collectionspace/services/client/DimensionClient.java index 2cbe68085..139131494 100644 --- a/services/dimension/client/src/main/java/org/collectionspace/services/client/DimensionClient.java +++ b/services/dimension/client/src/main/java/org/collectionspace/services/client/DimensionClient.java @@ -26,25 +26,15 @@ */ package org.collectionspace.services.client; -import javax.ws.rs.core.Response; - -//import org.collectionspace.services.common.context.ServiceContext; import org.collectionspace.services.dimension.DimensionsCommonList; - -import org.jboss.resteasy.client.ProxyFactory; -import org.jboss.resteasy.plugins.providers.RegisterBuiltin; import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor; -//import org.jboss.resteasy.plugins.providers.multipart.MultipartInput; -//import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput; -import org.jboss.resteasy.spi.ResteasyProviderFactory; /** * A DimensionClient. * @version $Revision:$ */ -public class DimensionClient extends AbstractServiceClientImpl { +public class DimensionClient extends AbstractPoxServiceClientImpl { public static final String SERVICE_NAME = "dimensions"; public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME; public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT; @@ -61,101 +51,18 @@ public class DimensionClient extends AbstractServiceClientImpl { return SERVICE_NAME; } - /** - * - */ -// private static final DimensionClient instance = new DimensionClient(); - - /** - * - */ - private DimensionProxy dimensionProxy; - - /** - * - * Default constructor for DimensionClient class. - * - */ - public DimensionClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - - /* (non-Javadoc) - * @see org.collectionspace.services.client.CollectionSpaceClient#getProxy() - */ - @Override - public CollectionSpaceProxy getProxy() { - return this.dimensionProxy; - } - - /** - * allow to reset proxy as per security needs - */ - public void setProxy() { - if (useAuth()) { - dimensionProxy = ProxyFactory.create(DimensionProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - dimensionProxy = ProxyFactory.create(DimensionProxy.class, - getBaseURL()); - } - } - - /** - * FIXME Comment this - * - * @return - */ -// public static DimensionClient getInstance() { -// return instance; -// } - - /** - * @return - * @see org.collectionspace.services.client.DimensionProxy#getDimension() - */ + @Override + public Class getProxyClass() { + return DimensionProxy.class; + } + + /* + * Proxied service calls + */ + public ClientResponse readList() { - return dimensionProxy.readList(); - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.DimensionProxy#getDimension(java.lang.String) - */ - - public ClientResponse read(String csid) { - return dimensionProxy.read(csid); - } - - /** - * @param dimension - * @return - * @see org.collectionspace.services.client.DimensionProxy#createDimension(org.collectionspace.services.Dimension) - */ - public ClientResponse create(PoxPayloadOut xmlPayload) { - return dimensionProxy.create(xmlPayload.getBytes()); - } - - /** - * @param csid - * @param dimension - * @return - * @see org.collectionspace.services.client.DimensionProxy#updateDimension(java.lang.Long, org.collectionspace.services.Dimension) - */ - public ClientResponse update(String csid, PoxPayloadOut xmlPayload) { - return dimensionProxy.update(csid, xmlPayload.getBytes()); - } - - /** - * @param csid - * @return response - * @see org.collectionspace.services.client.DimensionProxy#deleteDimension(java.lang.Long) - */ - @Override - public ClientResponse delete(String csid) { - return dimensionProxy.delete(csid); + DimensionProxy proxy = (DimensionProxy)getProxy(); + return proxy.readList(); } + } diff --git a/services/dimension/client/src/main/java/org/collectionspace/services/client/DimensionProxy.java b/services/dimension/client/src/main/java/org/collectionspace/services/client/DimensionProxy.java index 711e57b17..bfbe7abc2 100644 --- a/services/dimension/client/src/main/java/org/collectionspace/services/client/DimensionProxy.java +++ b/services/dimension/client/src/main/java/org/collectionspace/services/client/DimensionProxy.java @@ -1,14 +1,9 @@ package org.collectionspace.services.client; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; -import javax.ws.rs.PathParam; import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; import org.collectionspace.services.dimension.DimensionsCommonList; import org.jboss.resteasy.client.ClientResponse; @@ -19,28 +14,8 @@ import org.jboss.resteasy.client.ClientResponse; @Path("/dimensions/") @Produces({"application/xml"}) @Consumes({"application/xml"}) -public interface DimensionProxy extends CollectionSpaceProxy { - +public interface DimensionProxy extends CollectionSpacePoxProxy { @GET @Produces({"application/xml"}) ClientResponse readList(); - - //(C)reate - @POST - ClientResponse create(byte[] payload); - - //(R)ead - @GET - @Path("/{csid}") - ClientResponse read(@PathParam("csid") String csid); - - //(U)pdate - @PUT - @Path("/{csid}") - ClientResponse update(@PathParam("csid") String csid, byte[] payload); - - //(D)elete - @DELETE - @Path("/{csid}") - ClientResponse delete(@PathParam("csid") String csid); } diff --git a/services/dimension/client/src/test/java/org/collectionspace/services/client/test/DimensionServiceTest.java b/services/dimension/client/src/test/java/org/collectionspace/services/client/test/DimensionServiceTest.java index 106320b3d..a33a5d7f3 100644 --- a/services/dimension/client/src/test/java/org/collectionspace/services/client/test/DimensionServiceTest.java +++ b/services/dimension/client/src/test/java/org/collectionspace/services/client/test/DimensionServiceTest.java @@ -62,7 +62,6 @@ public class DimensionServiceTest extends AbstractServiceTestImpl { // Instance variables specific to this test. /** The SERVIC e_ pat h_ component. */ - final String SERVICE_PATH_COMPONENT = "dimensions"; /** The known resource id. */ private String knownResourceId = null; @@ -716,7 +715,7 @@ public class DimensionServiceTest extends AbstractServiceTestImpl { */ @Override public String getServicePathComponent() { - return SERVICE_PATH_COMPONENT; + return DimensionClient.SERVICE_PATH_COMPONENT; } /** diff --git a/services/id/client/src/main/java/org/collectionspace/services/client/IdClient.java b/services/id/client/src/main/java/org/collectionspace/services/client/IdClient.java index 53e998afd..b4726693f 100644 --- a/services/id/client/src/main/java/org/collectionspace/services/client/IdClient.java +++ b/services/id/client/src/main/java/org/collectionspace/services/client/IdClient.java @@ -1,81 +1,45 @@ package org.collectionspace.services.client; -import javax.ws.rs.core.Response; - -import org.jboss.resteasy.client.ProxyFactory; -import org.jboss.resteasy.plugins.providers.RegisterBuiltin; import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor; -import org.jboss.resteasy.spi.ResteasyProviderFactory; /** * An AcquisitionClient. * @version $Revision:$ */ -public class IdClient extends AbstractServiceClientImpl { +public class IdClient extends AbstractServiceClientImpl { /* (non-Javadoc) * @see org.collectionspace.services.client.BaseServiceClient#getServicePathComponent() */ - public String getServicePathComponent() { + @Override + public String getServicePathComponent() { return "idgenerators"; } - // FIXME: Is the "instance" member still needed/used? - /** - * - */ -// private static final AcquisitionClient instance = new AcquisitionClient(); - /** - * - */ - private IdProxy idProxy; - /** - * - * Default constructor for IntakeClient class. - * - */ - public IdClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } + @Override + public String getServiceName() { + return null; //FIXME: REM - See http://issues.collectionspace.org/browse/CSPACE-3497 + } - @Override - public CollectionSpaceProxy getProxy() { - return this.idProxy; - } + @Override + public Class getProxyClass() { + return IdProxy.class; + } - /** - * allow to reset proxy as per security needs + /* + * Proxied service calls */ - public void setProxy() { - if (useAuth()) { - idProxy = ProxyFactory.create(IdProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - idProxy = ProxyFactory.create(IdProxy.class, - getBaseURL()); - } - } - + public ClientResponse readList() { - return idProxy.readList(); + return getProxy().readList(); } public ClientResponse read(String csid) { - return idProxy.read(csid); + return getProxy().read(csid); } public ClientResponse createId(String csid) { - return idProxy.createId(csid); + return getProxy().createId(csid); } - - @Override - public String getServiceName() { - // TODO Auto-generated method stub - return null; //FIXME: REM - See http://issues.collectionspace.org/browse/CSPACE-3497 - } - } diff --git a/services/id/client/src/main/java/org/collectionspace/services/client/IdProxy.java b/services/id/client/src/main/java/org/collectionspace/services/client/IdProxy.java index 99def0796..ca016c6d9 100644 --- a/services/id/client/src/main/java/org/collectionspace/services/client/IdProxy.java +++ b/services/id/client/src/main/java/org/collectionspace/services/client/IdProxy.java @@ -6,11 +6,8 @@ import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; - import org.jboss.resteasy.client.ClientResponse; - @Path("/idgenerators/") @Produces({"application/xml"}) @Consumes({"text/plain"}) diff --git a/services/intake/3rdparty/nuxeo-platform-cs-intake/src/main/resources/META-INF/MANIFEST.MF b/services/intake/3rdparty/nuxeo-platform-cs-intake/src/main/resources/META-INF/MANIFEST.MF index e6dca8069..7740dcb0d 100644 --- a/services/intake/3rdparty/nuxeo-platform-cs-intake/src/main/resources/META-INF/MANIFEST.MF +++ b/services/intake/3rdparty/nuxeo-platform-cs-intake/src/main/resources/META-INF/MANIFEST.MF @@ -17,6 +17,7 @@ Require-Bundle: org.nuxeo.runtime, org.collectionspace.collectionspace_core Provide-Package: org.collectionspace.intake Nuxeo-Component: OSGI-INF/core-types-contrib.xml, + OSGI-INF/life-cycle-contrib.xml, OSGI-INF/ecm-types-contrib.xml, OSGI-INF/layouts-contrib.xml diff --git a/services/intake/3rdparty/nuxeo-platform-cs-intake/src/main/resources/OSGI-INF/core-types-contrib.xml b/services/intake/3rdparty/nuxeo-platform-cs-intake/src/main/resources/OSGI-INF/core-types-contrib.xml index f314632a2..b72fd72de 100644 --- a/services/intake/3rdparty/nuxeo-platform-cs-intake/src/main/resources/OSGI-INF/core-types-contrib.xml +++ b/services/intake/3rdparty/nuxeo-platform-cs-intake/src/main/resources/OSGI-INF/core-types-contrib.xml @@ -4,7 +4,7 @@ - + diff --git a/services/intake/3rdparty/nuxeo-platform-cs-intake/src/main/resources/OSGI-INF/life-cycle-contrib.xml b/services/intake/3rdparty/nuxeo-platform-cs-intake/src/main/resources/OSGI-INF/life-cycle-contrib.xml new file mode 100644 index 000000000..7e5bd921b --- /dev/null +++ b/services/intake/3rdparty/nuxeo-platform-cs-intake/src/main/resources/OSGI-INF/life-cycle-contrib.xml @@ -0,0 +1,11 @@ + + + + + + default + + + + diff --git a/services/intake/client/src/main/java/org/collectionspace/services/client/IntakeClient.java b/services/intake/client/src/main/java/org/collectionspace/services/client/IntakeClient.java index 7c902a9d8..6e82d1a81 100644 --- a/services/intake/client/src/main/java/org/collectionspace/services/client/IntakeClient.java +++ b/services/intake/client/src/main/java/org/collectionspace/services/client/IntakeClient.java @@ -26,20 +26,8 @@ */ package org.collectionspace.services.client; -//import javax.ws.rs.PathParam; -import javax.ws.rs.core.Response; - -import org.collectionspace.services.common.authorityref.AuthorityRefList; -//import org.collectionspace.services.common.context.ServiceContext; -import org.collectionspace.services.intake.IntakesCommonList; - -import org.jboss.resteasy.client.ProxyFactory; -import org.jboss.resteasy.plugins.providers.RegisterBuiltin; import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor; -//import org.jboss.resteasy.plugins.providers.multipart.MultipartInput; -//import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput; -import org.jboss.resteasy.spi.ResteasyProviderFactory; +import org.collectionspace.services.intake.IntakesCommonList; /** * A IntakeClient. @@ -47,7 +35,7 @@ import org.jboss.resteasy.spi.ResteasyProviderFactory; * @version $Revision:$ * FIXME: http://issues.collectionspace.org/browse/CSPACE-1684 */ -public class IntakeClient extends AbstractServiceClientImpl { +public class IntakeClient extends AbstractPoxServiceClientImpl { public static final String SERVICE_NAME = "intakes"; public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME; public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT; @@ -64,102 +52,21 @@ public class IntakeClient extends AbstractServiceClientImpl { return SERVICE_PATH_COMPONENT; } - /** - * - */ - private IntakeProxy intakeProxy; - - /** - * - * Default constructor for IntakeClient class. - * - */ - public IntakeClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - - @Override - public CollectionSpaceProxy getProxy() { - return this.intakeProxy; - } - - /** - * allow to reset proxy as per security needs - */ - public void setProxy() { - if (useAuth()) { - intakeProxy = ProxyFactory.create(IntakeProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - intakeProxy = ProxyFactory.create(IntakeProxy.class, - getBaseURL()); - } - } - - /** - * FIXME Comment this - * - * @return - */ -// public static IntakeClient getInstance() { -// return instance; -// } - - /** + @Override + public Class getProxyClass() { + // TODO Auto-generated method stub + return IntakeProxy.class; + } + + /* + * Proxied service calls + */ + + /** * @return * @see org.collectionspace.services.client.IntakeProxy#getIntake() */ public ClientResponse readList() { - return intakeProxy.readList(); - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.IntakeProxy#getAuthorityRefs(java.lang.String) - */ - public ClientResponse getAuthorityRefs(String csid) { - return intakeProxy.getAuthorityRefs(csid); - } - - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.IntakeProxy#getIntake(java.lang.String) - */ - public ClientResponse read(String csid) { - return intakeProxy.read(csid); - } - - /** - * @param intake - * @return - * @see org.collectionspace.services.client.IntakeProxy#createIntake(org.collectionspace.hello.Intake) - */ - public ClientResponse create(PoxPayloadOut xmlPayload) { - return intakeProxy.create(xmlPayload.getBytes()); - } - - /** - * @param csid - * @param intake - * @return - * @see org.collectionspace.services.client.IntakeProxy#updateIntake(java.lang.Long, org.collectionspace.hello.Intake) - */ - public ClientResponse update(String csid, PoxPayloadOut xmlPayload) { - return intakeProxy.update(csid, xmlPayload.getBytes()); - - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.IntakeProxy#deleteIntake(java.lang.Long) - */ - public ClientResponse delete(String csid) { - return intakeProxy.delete(csid); - } + return getProxy().readList(); + } } diff --git a/services/intake/client/src/main/java/org/collectionspace/services/client/IntakeProxy.java b/services/intake/client/src/main/java/org/collectionspace/services/client/IntakeProxy.java index 4b68ebdd5..a791a49d1 100644 --- a/services/intake/client/src/main/java/org/collectionspace/services/client/IntakeProxy.java +++ b/services/intake/client/src/main/java/org/collectionspace/services/client/IntakeProxy.java @@ -26,22 +26,13 @@ */ package org.collectionspace.services.client; +import org.jboss.resteasy.client.ClientResponse; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; -import javax.ws.rs.PathParam; import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; -import org.collectionspace.services.common.authorityref.AuthorityRefList; import org.collectionspace.services.intake.IntakesCommonList; -//import org.collectionspace.services.person.PersonsCommonList; -import org.jboss.resteasy.client.ClientResponse; -//import org.jboss.resteasy.plugins.providers.multipart.MultipartInput; -//import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput; /** * @version $Revision:$ @@ -50,7 +41,7 @@ import org.jboss.resteasy.client.ClientResponse; @Path(IntakeClient.SERVICE_PATH_PROXY) @Produces({"application/xml"}) @Consumes({"application/xml"}) -public interface IntakeProxy extends CollectionSpaceProxy { +public interface IntakeProxy extends CollectionSpacePoxProxy { /** * Read list. * @@ -59,61 +50,4 @@ public interface IntakeProxy extends CollectionSpaceProxy { @GET @Produces({"application/xml"}) ClientResponse readList(); - - //(C)reate - /** - * Creates the. - * - * @param multipart the multipart - * @return the client response - */ - @POST - ClientResponse create(byte[] payload); - - //(R)ead - /** - * Read. - * - * @param csid the csid - * @return the client response - */ - @GET - @Path("/{csid}") - ClientResponse read(@PathParam("csid") String csid); - - //(U)pdate - /** - * Update. - * - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - @PUT - @Path("/{csid}") - ClientResponse update(@PathParam("csid") String csid, byte[] payload); - - //(D)elete - /** - * Delete. - * - * @param csid the csid - * @return the client response - */ - @DELETE - @Path("/{csid}") - ClientResponse delete(@PathParam("csid") String csid); - - // List Items - /** - * Gets the authority refs. - * - * @param csid the csid - * @return the authority refs - */ - @GET - @Produces({"application/xml"}) - @Path("/{csid}/authorityrefs/") - ClientResponse getAuthorityRefs(@PathParam("csid") String csid); - } diff --git a/services/intake/service/src/main/java/org/collectionspace/services/intake/IntakeResource.java b/services/intake/service/src/main/java/org/collectionspace/services/intake/IntakeResource.java index 33526c666..cd90ca77d 100644 --- a/services/intake/service/src/main/java/org/collectionspace/services/intake/IntakeResource.java +++ b/services/intake/service/src/main/java/org/collectionspace/services/intake/IntakeResource.java @@ -41,16 +41,15 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriBuilder; import javax.ws.rs.core.UriInfo; -//import org.collectionspace.services.collectionobject.CollectionobjectsCommonList; +import org.collectionspace.services.client.IQueryManager; import org.collectionspace.services.client.IntakeClient; import org.collectionspace.services.client.PoxPayloadIn; import org.collectionspace.services.client.PoxPayloadOut; import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl; import org.collectionspace.services.common.ClientType; import org.collectionspace.services.common.ServiceMain; + import org.collectionspace.services.common.authorityref.AuthorityRefList; -//import org.collectionspace.services.common.context.MultipartServiceContext; -//import org.collectionspace.services.common.context.MultipartServiceContextFactory; import org.collectionspace.services.common.context.MultipartServiceContextImpl; import org.collectionspace.services.common.context.ServiceBindingUtils; import org.collectionspace.services.common.context.ServiceContext; @@ -58,14 +57,9 @@ import org.collectionspace.services.common.document.DocumentFilter; import org.collectionspace.services.common.document.DocumentHandler; import org.collectionspace.services.common.document.DocumentNotFoundException; import org.collectionspace.services.common.document.DocumentWrapper; -import org.collectionspace.services.common.query.IQueryManager; import org.collectionspace.services.common.query.QueryManager; import org.collectionspace.services.common.security.UnauthorizedException; -//import org.collectionspace.services.common.vocabulary.RefNameServiceUtils; import org.collectionspace.services.nuxeo.client.java.DocumentModelHandler; -//import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl; -//import org.jboss.resteasy.plugins.providers.multipart.MultipartInput; -//import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput; import org.jboss.resteasy.util.HttpResponseCodes; import org.nuxeo.ecm.core.api.DocumentModel; import org.slf4j.Logger; @@ -167,6 +161,7 @@ public class IntakeResource extends } } + /** * Gets the intake. * diff --git a/services/common/src/main/resources/authorityrefdocs.xsd b/services/jaxb/src/main/resources/authorityrefdocs.xsd similarity index 99% rename from services/common/src/main/resources/authorityrefdocs.xsd rename to services/jaxb/src/main/resources/authorityrefdocs.xsd index 8bd7ad642..5cd4aa6cd 100644 --- a/services/common/src/main/resources/authorityrefdocs.xsd +++ b/services/jaxb/src/main/resources/authorityrefdocs.xsd @@ -25,6 +25,7 @@ > + diff --git a/services/jaxb/src/main/resources/workflows_common.xsd b/services/jaxb/src/main/resources/workflows_common.xsd new file mode 100644 index 000000000..35655b7a1 --- /dev/null +++ b/services/jaxb/src/main/resources/workflows_common.xsd @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/services/loanin/client/src/main/java/org/collectionspace/services/client/LoaninClient.java b/services/loanin/client/src/main/java/org/collectionspace/services/client/LoaninClient.java index ef2f339ce..595aba1c0 100644 --- a/services/loanin/client/src/main/java/org/collectionspace/services/client/LoaninClient.java +++ b/services/loanin/client/src/main/java/org/collectionspace/services/client/LoaninClient.java @@ -16,18 +16,8 @@ */ package org.collectionspace.services.client; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.Response; - -import org.collectionspace.services.common.authorityref.AuthorityRefList; -//import org.collectionspace.services.common.context.ServiceContext; -import org.collectionspace.services.jaxb.AbstractCommonList; - -import org.jboss.resteasy.client.ProxyFactory; -import org.jboss.resteasy.plugins.providers.RegisterBuiltin; import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor; -import org.jboss.resteasy.spi.ResteasyProviderFactory; +import org.collectionspace.services.jaxb.AbstractCommonList; /** * LoaninClient.java @@ -36,24 +26,10 @@ import org.jboss.resteasy.spi.ResteasyProviderFactory; * $LastChangedDate$ * */ -public class LoaninClient extends AbstractServiceClientImpl { - - private LoaninProxy loaninProxy; +public class LoaninClient extends AbstractPoxServiceClientImpl { public static final String SERVICE_NAME = "loansin"; public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME; - - /** - * - * Default constructor for LoaninClient class. - * - */ - public LoaninClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - /* (non-Javadoc) * @see org.collectionspace.services.client.AbstractServiceClientImpl#getServicePathComponent() */ @@ -62,89 +38,25 @@ public class LoaninClient extends AbstractServiceClientImpl { return SERVICE_PATH_COMPONENT; } + @Override public String getServiceName() { return SERVICE_NAME; } - @Override - public CollectionSpaceProxy getProxy() { - return this.loaninProxy; - } + @Override + public Class getProxyClass() { + return LoaninProxy.class; + } - /** - * allow to reset proxy as per security needs + /* + * Proxied service calls */ - public void setProxy() { - if (useAuth()) { - loaninProxy = ProxyFactory.create(LoaninProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - loaninProxy = ProxyFactory.create(LoaninProxy.class, - getBaseURL()); - } - } - - /** - * FIXME Comment this - * - * @return - */ -// public static LoaninClient getInstance() { -// return instance; -// } /** * @return * @see org.collectionspace.services.client.LoaninProxy#getLoanin() */ public ClientResponse readList() { - return loaninProxy.readList(); - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.LoaninProxy#getAuthorityRefs(java.lang.String) - */ - public ClientResponse getAuthorityRefs(String csid) { - return loaninProxy.getAuthorityRefs(csid); - } - - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.LoaninProxy#getLoanin(java.lang.String) - */ - public ClientResponse read(String csid) { - return loaninProxy.read(csid); - } - - /** - * @param loanin - * @return - * @see org.collectionspace.services.client.LoaninProxy#createLoanin(org.collectionspace.hello.Loanin) - */ - public ClientResponse create(PoxPayloadOut xmlPayload) { - return loaninProxy.create(xmlPayload.getBytes()); - } - - /** - * @param csid - * @param loanin - * @return - * @see org.collectionspace.services.client.LoaninProxy#updateLoanin(java.lang.Long, org.collectionspace.hello.Loanin) - */ - public ClientResponse update(String csid, PoxPayloadOut xmlPayload) { - return loaninProxy.update(csid, xmlPayload.getBytes()); - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.LoaninProxy#deleteLoanin(java.lang.Long) - */ - public ClientResponse delete(String csid) { - return loaninProxy.delete(csid); + return getProxy().readList(); } } diff --git a/services/loanin/client/src/main/java/org/collectionspace/services/client/LoaninProxy.java b/services/loanin/client/src/main/java/org/collectionspace/services/client/LoaninProxy.java index 1666703bc..e193ff5a1 100644 --- a/services/loanin/client/src/main/java/org/collectionspace/services/client/LoaninProxy.java +++ b/services/loanin/client/src/main/java/org/collectionspace/services/client/LoaninProxy.java @@ -1,18 +1,12 @@ package org.collectionspace.services.client; +import org.jboss.resteasy.client.ClientResponse; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; -import javax.ws.rs.PathParam; import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; -import org.collectionspace.services.common.authorityref.AuthorityRefList; import org.collectionspace.services.jaxb.AbstractCommonList; -import org.jboss.resteasy.client.ClientResponse; /** * @version $Revision$ @@ -20,34 +14,8 @@ import org.jboss.resteasy.client.ClientResponse; @Path("/loansin/") @Produces({"application/xml;charset=UTF-8"}) @Consumes({"application/xml"}) -public interface LoaninProxy extends CollectionSpaceProxy { - - //(C)reate - @POST - ClientResponse create(byte[] payload); - - //(R)ead - @GET - @Path("/{csid}") - ClientResponse read(@PathParam("csid") String csid); - - //(U)pdate - @PUT - @Path("/{csid}") - ClientResponse update(@PathParam("csid") String csid, byte[] payload); - - //(D)elete - @DELETE - @Path("/{csid}") - ClientResponse delete(@PathParam("csid") String csid); - +public interface LoaninProxy extends CollectionSpacePoxProxy { // List @GET ClientResponse readList(); - - // List Authority References - @GET - @Path("/{csid}/authorityrefs/") - ClientResponse getAuthorityRefs(@PathParam("csid") String csid); - } diff --git a/services/loanin/service/src/main/java/org/collectionspace/services/loanin/LoaninResource.java b/services/loanin/service/src/main/java/org/collectionspace/services/loanin/LoaninResource.java index 29468a7d2..54dcd6931 100644 --- a/services/loanin/service/src/main/java/org/collectionspace/services/loanin/LoaninResource.java +++ b/services/loanin/service/src/main/java/org/collectionspace/services/loanin/LoaninResource.java @@ -42,6 +42,7 @@ import javax.ws.rs.core.UriBuilder; import javax.ws.rs.core.UriInfo; import javax.xml.parsers.ParserConfigurationException; +import org.collectionspace.services.client.IQueryManager; import org.collectionspace.services.client.PoxPayloadIn; import org.collectionspace.services.client.PoxPayloadOut; import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl; @@ -57,7 +58,7 @@ import org.collectionspace.services.common.document.DocumentFilter; import org.collectionspace.services.common.document.DocumentHandler; import org.collectionspace.services.common.document.DocumentNotFoundException; import org.collectionspace.services.common.document.DocumentWrapper; -import org.collectionspace.services.common.query.IQueryManager; +//import org.collectionspace.services.common.query.IQueryManager; import org.collectionspace.services.common.query.QueryManager; import org.collectionspace.services.common.security.UnauthorizedException; import org.collectionspace.services.common.vocabulary.RefNameServiceUtils; diff --git a/services/loanout/client/src/main/java/org/collectionspace/services/client/LoanoutClient.java b/services/loanout/client/src/main/java/org/collectionspace/services/client/LoanoutClient.java index 071e4c874..8501a4baa 100644 --- a/services/loanout/client/src/main/java/org/collectionspace/services/client/LoanoutClient.java +++ b/services/loanout/client/src/main/java/org/collectionspace/services/client/LoanoutClient.java @@ -16,16 +16,8 @@ */ package org.collectionspace.services.client; -import javax.ws.rs.core.Response; - -import org.collectionspace.services.common.authorityref.AuthorityRefList; -import org.collectionspace.services.loanout.LoansoutCommonList; - -import org.jboss.resteasy.client.ProxyFactory; -import org.jboss.resteasy.plugins.providers.RegisterBuiltin; import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor; -import org.jboss.resteasy.spi.ResteasyProviderFactory; +import org.collectionspace.services.loanout.LoansoutCommonList; /** * LoanoutClient.java @@ -33,112 +25,38 @@ import org.jboss.resteasy.spi.ResteasyProviderFactory; * $LastChangedRevision$ * $LastChangedDate$ */ -public class LoanoutClient extends AbstractServiceClientImpl { +public class LoanoutClient extends AbstractPoxServiceClientImpl { public static final String SERVICE_NAME = "loansout"; public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME; public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT; public static final String SERVICE_PATH_PROXY = SERVICE_PATH + "/"; public static final String SERVICE_PAYLOAD_NAME = SERVICE_NAME; - private LoanoutProxy loanoutProxy; - @Override public String getServiceName() { return SERVICE_NAME; } - - /** - * - * Default constructor for LoanoutClient class. - * - */ - public LoanoutClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - - /* (non-Javadoc) - * @see org.collectionspace.services.client.AbstractServiceClientImpl#getServicePathComponent() - */ + @Override public String getServicePathComponent() { return SERVICE_PATH_COMPONENT; } - @Override - public CollectionSpaceProxy getProxy() { - return this.loanoutProxy; - } + @Override + public Class getProxyClass() { + // TODO Auto-generated method stub + return LoanoutProxy.class; + } - /** - * allow to reset proxy as per security needs + /* + * Proxied service calls */ - @Override - public void setProxy() { - if (useAuth()) { - loanoutProxy = ProxyFactory.create(LoanoutProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - loanoutProxy = ProxyFactory.create(LoanoutProxy.class, - getBaseURL()); - } - } /** * @return * @see org.collectionspace.services.client.LoanoutProxy#getLoanout() */ public ClientResponse readList() { - return loanoutProxy.readList(); - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.LoanoutProxy#getAuthorityRefs(java.lang.String) - */ - public ClientResponse getAuthorityRefs(String csid) { - return loanoutProxy.getAuthorityRefs(csid); - } - - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.LoanoutProxy#getLoanout(java.lang.String) - */ - public ClientResponse read(String csid) { - return loanoutProxy.read(csid); - } - - /** - * @param multipart - * @return - * @see org.collectionspace.services.client.LoanoutProxy#createLoanout(org.collectionspace.hello.Loanout) - */ - public ClientResponse create(PoxPayloadOut xmlPayload) { - return loanoutProxy.create(xmlPayload.getBytes()); - } - - /** - * @param csid - * @param multipart - * @return - * @see org.collectionspace.services.client.LoanoutProxy#updateLoanout(java.lang.Long, org.collectionspace.hello.Loanout) - */ - public ClientResponse update(String csid, PoxPayloadOut xmlPayload) { - return loanoutProxy.update(csid, xmlPayload.getBytes()); - - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.LoanoutProxy#deleteLoanout(java.lang.Long) - */ - @Override - public ClientResponse delete(String csid) { - return loanoutProxy.delete(csid); - } + return getProxy().readList(); + } } diff --git a/services/loanout/client/src/main/java/org/collectionspace/services/client/LoanoutProxy.java b/services/loanout/client/src/main/java/org/collectionspace/services/client/LoanoutProxy.java index b3e18945a..f97805cab 100644 --- a/services/loanout/client/src/main/java/org/collectionspace/services/client/LoanoutProxy.java +++ b/services/loanout/client/src/main/java/org/collectionspace/services/client/LoanoutProxy.java @@ -1,18 +1,12 @@ package org.collectionspace.services.client; +import org.jboss.resteasy.client.ClientResponse; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; -import javax.ws.rs.PathParam; import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; -import org.collectionspace.services.common.authorityref.AuthorityRefList; import org.collectionspace.services.loanout.LoansoutCommonList; -import org.jboss.resteasy.client.ClientResponse; /** * @version $Revision$ @@ -20,36 +14,9 @@ import org.jboss.resteasy.client.ClientResponse; @Path("/loansout/") @Produces({"application/xml"}) @Consumes({"application/xml"}) -public interface LoanoutProxy extends CollectionSpaceProxy { - - //(C)reate - @POST - ClientResponse create(byte[] payload); - - //(R)ead - @GET - @Path("/{csid}") - ClientResponse read(@PathParam("csid") String csid); - - //(U)pdate - @PUT - @Path("/{csid}") - ClientResponse update(@PathParam("csid") String csid, byte[] payload); - - //(D)elete - @DELETE - @Path("/{csid}") - ClientResponse delete(@PathParam("csid") String csid); - +public interface LoanoutProxy extends CollectionSpacePoxProxy { // List @GET @Produces({"application/xml"}) ClientResponse readList(); - - // List Authority References - @GET - @Produces({"application/xml"}) - @Path("/{csid}/authorityrefs/") - ClientResponse getAuthorityRefs(@PathParam("csid") String csid); - } diff --git a/services/loanout/service/src/main/java/org/collectionspace/services/loanout/LoanoutResource.java b/services/loanout/service/src/main/java/org/collectionspace/services/loanout/LoanoutResource.java index 5df1fad80..556ea41fb 100644 --- a/services/loanout/service/src/main/java/org/collectionspace/services/loanout/LoanoutResource.java +++ b/services/loanout/service/src/main/java/org/collectionspace/services/loanout/LoanoutResource.java @@ -41,6 +41,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriBuilder; import javax.ws.rs.core.UriInfo; +import org.collectionspace.services.client.IQueryManager; import org.collectionspace.services.client.PoxPayloadIn; import org.collectionspace.services.client.PoxPayloadOut; import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl; @@ -54,7 +55,7 @@ import org.collectionspace.services.common.document.DocumentFilter; import org.collectionspace.services.common.document.DocumentHandler; import org.collectionspace.services.common.document.DocumentNotFoundException; import org.collectionspace.services.common.document.DocumentWrapper; -import org.collectionspace.services.common.query.IQueryManager; +//import org.collectionspace.services.common.query.IQueryManager; import org.collectionspace.services.common.query.QueryManager; import org.collectionspace.services.common.security.UnauthorizedException; import org.collectionspace.services.nuxeo.client.java.DocumentModelHandler; diff --git a/services/location/client/src/main/java/org/collectionspace/services/client/LocationAuthorityClient.java b/services/location/client/src/main/java/org/collectionspace/services/client/LocationAuthorityClient.java index af2955e87..aa747e47f 100644 --- a/services/location/client/src/main/java/org/collectionspace/services/client/LocationAuthorityClient.java +++ b/services/location/client/src/main/java/org/collectionspace/services/client/LocationAuthorityClient.java @@ -45,7 +45,7 @@ import org.jboss.resteasy.spi.ResteasyProviderFactory; /** * The Class LocationAuthorityClient. */ -public class LocationAuthorityClient extends AbstractServiceClientImpl { //FIXME: REM - Client classes for Person, Org, Vocab, and Location should have a common base class +public class LocationAuthorityClient extends AuthorityClientImpl { public static final String SERVICE_NAME = "locationauthorities"; public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME; public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT; @@ -77,262 +77,21 @@ public class LocationAuthorityClient extends AbstractServiceClientImpl { //FIXM public String getItemCommonPartName() { return getCommonPartName(SERVICE_ITEM_NAME); } - - /** - * - */ - private LocationAuthorityProxy locationAuthorityProxy; - - /** - * Instantiates a new location authority client. - */ - public LocationAuthorityClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - - /* (non-Javadoc) - * @see org.collectionspace.services.client.CollectionSpaceClient#getProxy() - */ - @Override - public CollectionSpaceProxy getProxy() { - return this.locationAuthorityProxy; - } - /** - * Sets the proxy. - */ - public void setProxy() { - if (useAuth()) { - locationAuthorityProxy = ProxyFactory.create(LocationAuthorityProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - locationAuthorityProxy = ProxyFactory.create(LocationAuthorityProxy.class, - getBaseURL()); - } - } - - /** - * Read list. - * - * @return the client response + @Override + public Class getProxyClass() { + return LocationAuthorityProxy.class; + } + + /* + * Proxied service calls. */ - + /** * @return list * @see org.collectionspace.services.client.LocationAuthorityProxy#readList() */ public ClientResponse readList() { - return locationAuthorityProxy.readList(); - } - - /** - * Read. - * - * @param csid the csid - * @return the client response - */ - public ClientResponse read(String csid) { - return locationAuthorityProxy.read(csid); - } - - /** - * Read by name. - * - * @param name the name - * @return the client response - */ - public ClientResponse readByName(String name) { - return locationAuthorityProxy.readByName(name); - } - - /** - * Creates the. - * - * @param multipart the multipart - * @return the client response - */ - public ClientResponse create(PoxPayloadOut xmlPayload) { - return locationAuthorityProxy.create(xmlPayload.getBytes()); - } - - /** - * Update. - * - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse update(String csid, PoxPayloadOut xmlPayload) { - return locationAuthorityProxy.update(csid, xmlPayload.getBytes()); - - } - - /** - * Delete. - * - * @param csid the csid - * @return the client response - */ - public ClientResponse delete(String csid) { - return locationAuthorityProxy.delete(csid); - } - - /** - * Read item list, filtering by partial term match, or keywords. Only one of - * partialTerm or keywords should be specified. If both are specified, keywords - * will be ignored. - * - * @param inAuthority the parent authority - * @param partialTerm A partial term on which to match, - * which will filter list results to return only matched resources. - * @param keywords A set of keywords on which to match, - * which will filter list results to return only matched resources. - * @return the client response - */ - public ClientResponse - readItemList(String inAuthority, String partialTerm, String keywords) { - return locationAuthorityProxy.readItemList(inAuthority, partialTerm, keywords); - } - - /** - * Gets the referencing objects. - * - * @param parentcsid the parentcsid - * @param csid the csid - * @return the referencing objects - */ - public ClientResponse getReferencingObjects(String parentcsid, String csid) { - return locationAuthorityProxy.getReferencingObjects(parentcsid, csid); - } - - /** - * Read item list for named vocabulary, filtering by partial term match, or keywords. Only one of - * partialTerm or keywords should be specified. If both are specified, keywords - * will be ignored. - * - * @param specifier the specifier - * @param partialTerm A partial term on which to match, - * which will filter list results to return only matched resources. - * @param keywords A set of keywords on which to match, - * which will filter list results to return only matched resources. - * @return the client response - */ - public ClientResponse - readItemListForNamedAuthority(String specifier, String partialTerm, String keywords) { - return locationAuthorityProxy.readItemListForNamedAuthority(specifier, partialTerm, keywords); - } - - /** - * Read item. - * - * @param vcsid the vcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse readItem(String vcsid, String csid) { - return locationAuthorityProxy.readItem(vcsid, csid); - } - - /** - * Creates the item. - * - * @param vcsid the vcsid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse createItem(String vcsid, PoxPayloadOut xmlPayload) { - return locationAuthorityProxy.createItem(vcsid, xmlPayload.getBytes()); - } - - /** - * Update item. - * - * @param vcsid the vcsid - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse updateItem(String vcsid, String csid, PoxPayloadOut xmlPayload) { - return locationAuthorityProxy.updateItem(vcsid, csid, xmlPayload.getBytes()); - - } - - /** - * Delete item. - * - * @param vcsid the vcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse deleteItem(String vcsid, String csid) { - return locationAuthorityProxy.deleteItem(vcsid, csid); - } - - /** - * Creates the contact. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse createContact(String parentcsid, - String itemcsid, PoxPayloadOut xmlPayload) { - return locationAuthorityProxy.createContact(parentcsid, itemcsid, xmlPayload.getBytes()); - } - - /** - * Read contact. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse readContact(String parentcsid, - String itemcsid, String csid) { - return locationAuthorityProxy.readContact(parentcsid, itemcsid, csid); - } - - /** - * Read contact list. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @return the client response - */ - public ClientResponse readContactList(String parentcsid, - String itemcsid) { - return locationAuthorityProxy.readContactList(parentcsid, itemcsid); - } - - /** - * Update contact. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse updateContact(String parentcsid, - String itemcsid, String csid, PoxPayloadOut xmlPayload) { - return locationAuthorityProxy.updateContact(parentcsid, itemcsid, csid, xmlPayload.getBytes()); - } - - /** - * Delete contact. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse deleteContact(String parentcsid, - String itemcsid, String csid) { - return locationAuthorityProxy.deleteContact(parentcsid, - itemcsid, csid); + return getProxy().readList(); } } diff --git a/services/location/client/src/main/java/org/collectionspace/services/client/LocationAuthorityProxy.java b/services/location/client/src/main/java/org/collectionspace/services/client/LocationAuthorityProxy.java index 0c20500f5..95abda7d1 100644 --- a/services/location/client/src/main/java/org/collectionspace/services/client/LocationAuthorityProxy.java +++ b/services/location/client/src/main/java/org/collectionspace/services/client/LocationAuthorityProxy.java @@ -1,22 +1,15 @@ package org.collectionspace.services.client; +import org.jboss.resteasy.client.ClientResponse; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Response; -import org.collectionspace.services.common.query.IQueryManager; -import org.collectionspace.services.common.authorityref.AuthorityRefDocList; -import org.collectionspace.services.contact.ContactsCommonList; import org.collectionspace.services.location.LocationauthoritiesCommonList; import org.collectionspace.services.location.LocationsCommonList; -import org.jboss.resteasy.client.ClientResponse; /** * @version $Revision:$ @@ -24,126 +17,34 @@ import org.jboss.resteasy.client.ClientResponse; @Path(LocationAuthorityClient.SERVICE_PATH + "/") @Produces("application/xml") @Consumes("application/xml") -public interface LocationAuthorityProxy extends CollectionSpaceProxy { +public interface LocationAuthorityProxy extends AuthorityProxy { // List Locationauthorities @GET ClientResponse readList(); - - //(C)reate - @POST - ClientResponse create(byte[] xmlPayload); - - //(R)ead - @GET - @Path("/{csid}") - ClientResponse read(@PathParam("csid") String csid); - - //(R)ead by name - @GET - @Path("/urn:cspace:name({name})") - ClientResponse readByName(@PathParam("name") String name); - - //(U)pdate - @PUT - @Path("/{csid}") - ClientResponse update(@PathParam("csid") String csid, byte[] xmlPayload); - - //(D)elete - @DELETE - @Path("/{csid}") - ClientResponse delete(@PathParam("csid") String csid); - + + /* + * List results that must be overridden for the RESTEasy proxy generation to work correctly. + */ + // List Items matching a partial term or keywords. - @GET + @Override + @GET @Produces({"application/xml"}) - @Path("/{vcsid}/items/") + @Path("/{csid}/items/") ClientResponse readItemList( - @PathParam("vcsid") String vcsid, + @PathParam("csid") String vcsid, @QueryParam (IQueryManager.SEARCH_TYPE_PARTIALTERM) String partialTerm, @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords); - - /** - * @param parentcsid - * @param itemcsid - * @param csid - * @return - * @see org.collectionspace.services.client.IntakeProxy#getAuthorityRefs(java.lang.String) - */ - @GET - @Path("{csid}/items/{itemcsid}/refObjs") - @Produces("application/xml") - ClientResponse getReferencingObjects( - @PathParam("csid") String parentcsid, - @PathParam("itemcsid") String itemcsid); - + // List Items for a named authority matching a partial term or keywords. - @GET + @Override + @GET @Produces({"application/xml"}) @Path("/urn:cspace:name({specifier})/items/") ClientResponse readItemListForNamedAuthority( @PathParam("specifier") String specifier, @QueryParam (IQueryManager.SEARCH_TYPE_PARTIALTERM) String partialTerm, @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords); - - //(C)reate Item - @POST - @Path("/{vcsid}/items/") - ClientResponse createItem(@PathParam("vcsid") String vcsid, byte[] xmlPayload); - - //(R)ead Item - @GET - @Path("/{vcsid}/items/{csid}") - ClientResponse readItem(@PathParam("vcsid") String vcsid, @PathParam("csid") String csid); - - //(U)pdate Item - @PUT - @Path("/{vcsid}/items/{csid}") - ClientResponse updateItem(@PathParam("vcsid") String vcsid, @PathParam("csid") String csid, byte[] xmlPayload); - - //(D)elete Item - @DELETE - @Path("/{vcsid}/items/{csid}") - ClientResponse deleteItem(@PathParam("vcsid") String vcsid, @PathParam("csid") String csid); - - // List Contacts - @GET - @Path("/{parentcsid}/items/{itemcsid}/contacts/") - ClientResponse readContactList( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid); - - //(C)reate Contact - @POST - @Path("/{parentcsid}/items/{itemcsid}/contacts/") - ClientResponse createContact( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid, - byte[] xmlPayload); - - //(R)ead Contact - @GET - @Path("/{parentcsid}/items/{itemcsid}/contacts/{csid}") - ClientResponse readContact( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid); - - //(U)pdate Contact - @PUT - @Path("/{parentcsid}/items/{itemcsid}/contacts/{csid}") - ClientResponse updateContact( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid, - byte[] xmlPayload); - - //(D)elete Contact - @DELETE - @Path("/{parentcsid}/items/{itemcsid}/contacts/{csid}") - ClientResponse deleteContact( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid); - + } diff --git a/services/location/service/src/main/java/org/collectionspace/services/location/LocationAuthorityResource.java b/services/location/service/src/main/java/org/collectionspace/services/location/LocationAuthorityResource.java index 84b1f6fb3..6f780fc3d 100644 --- a/services/location/service/src/main/java/org/collectionspace/services/location/LocationAuthorityResource.java +++ b/services/location/service/src/main/java/org/collectionspace/services/location/LocationAuthorityResource.java @@ -65,7 +65,6 @@ import org.collectionspace.services.common.security.UnauthorizedException; import org.collectionspace.services.common.vocabulary.AuthorityResource; import org.collectionspace.services.common.vocabulary.RefNameServiceUtils; import org.collectionspace.services.common.vocabulary.RefNameUtils; -import org.collectionspace.services.common.query.IQueryManager; import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl; import org.collectionspace.services.location.nuxeo.LocationDocumentModelHandler; import org.jboss.resteasy.util.HttpResponseCodes; diff --git a/services/media/client/src/main/java/org/collectionspace/services/client/MediaClient.java b/services/media/client/src/main/java/org/collectionspace/services/client/MediaClient.java index 6516d2f06..4f18c5603 100644 --- a/services/media/client/src/main/java/org/collectionspace/services/client/MediaClient.java +++ b/services/media/client/src/main/java/org/collectionspace/services/client/MediaClient.java @@ -16,20 +16,11 @@ */ package org.collectionspace.services.client; -import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; - -import org.collectionspace.services.common.authorityref.AuthorityRefList; -import org.collectionspace.services.jaxb.AbstractCommonList; - -import org.jboss.resteasy.client.ProxyFactory; -import org.jboss.resteasy.plugins.providers.RegisterBuiltin; import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput; import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor; -//import org.jboss.resteasy.plugins.providers.multipart.MultipartInput; -//import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput; -import org.jboss.resteasy.spi.ResteasyProviderFactory; + +import org.collectionspace.services.jaxb.AbstractCommonList; /** * MediaClient.java @@ -38,7 +29,7 @@ import org.jboss.resteasy.spi.ResteasyProviderFactory; * $LastChangedDate: 2010-05-17 18:25:37 -0700 (Mon, 17 May 2010) $ * */ -public class MediaClient extends AbstractServiceClientImpl { +public class MediaClient extends AbstractPoxServiceClientImpl { public static final String SERVICE_NAME = "media"; public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME; public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT; @@ -53,77 +44,24 @@ public class MediaClient extends AbstractServiceClientImpl { public String getServicePathComponent() { return SERVICE_PATH_COMPONENT; } - - /** - * - */ - private MediaProxy mediaProxy; - - /** - * - * Default constructor for MediaClient class. - * - */ - public MediaClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - @Override - public CollectionSpaceProxy getProxy() { - return this.mediaProxy; - } - - /** - * allow to reset proxy as per security needs - */ - public void setProxy() { - if (useAuth()) { - mediaProxy = ProxyFactory.create(MediaProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - mediaProxy = ProxyFactory.create(MediaProxy.class, - getBaseURL()); - } - } + @Override + public Class getProxyClass() { + return MediaProxy.class; + } + + /* + * Proxied service calls + */ /** * @return * @see org.collectionspace.services.client.MediaProxy#getMedia() */ public ClientResponse readList() { - return mediaProxy.readList(); - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.MediaProxy#getAuthorityRefs(java.lang.String) - */ - public ClientResponse getAuthorityRefs(String csid) { - return mediaProxy.getAuthorityRefs(csid); + return getProxy().readList(); } - - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.MediaProxy#getMedia(java.lang.String) - */ - public ClientResponse read(String csid) { - return mediaProxy.read(csid); - } - - /** - * @param media - * @return - * - */ - public ClientResponse create(PoxPayloadOut xmlPayload) { - return mediaProxy.create(xmlPayload.getBytes()); - } - + /** * @param media * @return @@ -131,7 +69,7 @@ public class MediaClient extends AbstractServiceClientImpl { */ public ClientResponse createBlobFromFormData(String csid, MultipartFormDataOutput formDataOutput) { - return mediaProxy.createBlobFromFormData(csid, formDataOutput); + return getProxy().createBlobFromFormData(csid, formDataOutput); } /** @@ -140,36 +78,16 @@ public class MediaClient extends AbstractServiceClientImpl { * */ public ClientResponse createBlobFromUri(String csid, String blobUri) { - return mediaProxy.createBlobFromUri(csid, blobUri); + return getProxy().createBlobFromUri(csid, blobUri); } - - /** - * @param csid - * @param media - * @return - */ - public ClientResponse update(String csid, PoxPayloadOut xmlPayload) { - return mediaProxy.update(csid, xmlPayload.getBytes()); - - } - + /** * @param csid * @param media * @return */ public ClientResponse update(String csid, PoxPayloadOut xmlPayload, String URI) { - return mediaProxy.update(csid, xmlPayload.getBytes()); + return getProxy().update(csid, xmlPayload.getBytes()); } - - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.MediaProxy#deleteMedia(java.lang.Long) - */ - public ClientResponse delete(String csid) { - return mediaProxy.delete(csid); - } } diff --git a/services/media/client/src/main/java/org/collectionspace/services/client/MediaProxy.java b/services/media/client/src/main/java/org/collectionspace/services/client/MediaProxy.java index ed931d8d9..829bd5abf 100644 --- a/services/media/client/src/main/java/org/collectionspace/services/client/MediaProxy.java +++ b/services/media/client/src/main/java/org/collectionspace/services/client/MediaProxy.java @@ -1,23 +1,19 @@ package org.collectionspace.services.client; -import javax.servlet.http.HttpServletRequest; +import org.jboss.resteasy.client.ClientResponse; +import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput; + import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Context; import javax.ws.rs.core.Response; -import org.collectionspace.services.common.authorityref.AuthorityRefList; import org.collectionspace.services.jaxb.AbstractCommonList; import org.collectionspace.services.client.BlobClient; -import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput; /** * @version $Revision: 2108 $ @@ -25,12 +21,8 @@ import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput; @Path(MediaClient.SERVICE_PATH + "/") @Produces("application/xml") @Consumes("application/xml") -public interface MediaProxy extends CollectionSpaceProxy { +public interface MediaProxy extends CollectionSpacePoxProxy { - //(C)reate - @POST - ClientResponse create(byte[] xmlPayload); - @POST @Path("/{csid}") @Consumes("multipart/form-data") @@ -43,31 +35,9 @@ public interface MediaProxy extends CollectionSpaceProxy { @Consumes("application/xml") ClientResponsecreateBlobFromUri(@PathParam("csid") String csid, @QueryParam(BlobClient.BLOB_URI_PARAM) String blobUri); - - //(R)ead - @GET - @Path("/{csid}") - ClientResponse read(@PathParam("csid") String csid); - - //(U)pdate - @PUT - @Path("/{csid}") - ClientResponse update(@PathParam("csid") String csid, byte[] xmlPayload); - - //(D)elete - @DELETE - @Path("/{csid}") - ClientResponse delete(@PathParam("csid") String csid); // List @GET @Produces({"application/xml"}) ClientResponse readList(); - - // List Authority References - @GET - @Produces({"application/xml"}) - @Path("/{csid}/authorityrefs/") - ClientResponse getAuthorityRefs(@PathParam("csid") String csid); - } diff --git a/services/movement/client/src/main/java/org/collectionspace/services/client/MovementClient.java b/services/movement/client/src/main/java/org/collectionspace/services/client/MovementClient.java index 89d2ee506..db71e9b6d 100644 --- a/services/movement/client/src/main/java/org/collectionspace/services/client/MovementClient.java +++ b/services/movement/client/src/main/java/org/collectionspace/services/client/MovementClient.java @@ -17,16 +17,8 @@ package org.collectionspace.services.client; -import javax.ws.rs.core.Response; - -import org.collectionspace.services.common.authorityref.AuthorityRefList; -import org.collectionspace.services.movement.MovementsCommonList; - -import org.jboss.resteasy.client.ProxyFactory; -import org.jboss.resteasy.plugins.providers.RegisterBuiltin; import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor; -import org.jboss.resteasy.spi.ResteasyProviderFactory; +import org.collectionspace.services.movement.MovementsCommonList; /** * MovementClient.java @@ -35,63 +27,38 @@ import org.jboss.resteasy.spi.ResteasyProviderFactory; * $LastChangedDate$ * */ -public class MovementClient extends AbstractServiceClientImpl { +public class MovementClient extends AbstractPoxServiceClientImpl { public static final String SERVICE_NAME = "movements"; public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME; public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT; public static final String SERVICE_PATH_PROXY = SERVICE_PATH + "/"; public static final String SERVICE_PAYLOAD_NAME = SERVICE_NAME; - private MovementProxy movementProxy; - /** - * - * Default constructor for MovementClient class. - * - */ - public MovementClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - @Override public String getServiceName() { return SERVICE_NAME; } - /* (non-Javadoc) - * @see org.collectionspace.services.client.AbstractServiceClientImpl#getServicePathComponent() - */ @Override public String getServicePathComponent() { return SERVICE_PATH_COMPONENT; } - - @Override - public CollectionSpaceProxy getProxy() { - return this.movementProxy; - } - /** - * allow to reset proxy as per security needs - */ - @Override - public void setProxy() { - if (useAuth()) { - movementProxy = ProxyFactory.create(MovementProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - movementProxy = ProxyFactory.create(MovementProxy.class, - getBaseURL()); - } - } + @Override + public Class getProxyClass() { + return MovementProxy.class; + } + /* + * Proxied service calls + */ + /** * @return * @see org.collectionspace.services.client.MovementProxy#readList() */ public ClientResponse readList() { - return movementProxy.readList(); + return getProxy().readList(); } /** @@ -100,7 +67,7 @@ public class MovementClient extends AbstractServiceClientImpl { * @see org.collectionspace.services.client.MovementProxy#readList(java.lang.String) */ public ClientResponse readListSortedBy(String sortFieldName) { - return movementProxy.readListSortedBy(sortFieldName); + return getProxy().readListSortedBy(sortFieldName); } /** @@ -110,55 +77,6 @@ public class MovementClient extends AbstractServiceClientImpl { * @see org.collectionspace.services.client.MovementProxy#keywordSearchSortedBy(java.lang.String, java.lang.String) */ public ClientResponse keywordSearchSortedBy(String keywords, String sortFieldName) { - return movementProxy.keywordSearchSortedBy(keywords, sortFieldName); - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.MovementProxy#getAuthorityRefs(java.lang.String) - */ - public ClientResponse getAuthorityRefs(String csid) { - return movementProxy.getAuthorityRefs(csid); - } - - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.MovementProxy#getMovement(java.lang.String) - */ - public ClientResponse read(String csid) { - return movementProxy.read(csid); - } - - /** - * @param multipart - * @return - * @see org.collectionspace.services.client.MovementProxy#createMovement(org.collectionspace.hello.Movement) - */ - public ClientResponse create(PoxPayloadOut xmlPayload) { - return movementProxy.create(xmlPayload.getBytes()); - } - - /** - * @param csid - * @param multipart - * @return - * @see org.collectionspace.services.client.MovementProxy#updateMovement(java.lang.Long, org.collectionspace.hello.Movement) - */ - public ClientResponse update(String csid, PoxPayloadOut xmlPayload) { - return movementProxy.update(csid, xmlPayload.getBytes()); - - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.MovementProxy#deleteMovement(java.lang.Long) - */ - @Override - public ClientResponse delete(String csid) { - return movementProxy.delete(csid); - } + return getProxy().keywordSearchSortedBy(keywords, sortFieldName); + } } diff --git a/services/movement/client/src/main/java/org/collectionspace/services/client/MovementProxy.java b/services/movement/client/src/main/java/org/collectionspace/services/client/MovementProxy.java index d4b90f0b2..8c576c6dc 100644 --- a/services/movement/client/src/main/java/org/collectionspace/services/client/MovementProxy.java +++ b/services/movement/client/src/main/java/org/collectionspace/services/client/MovementProxy.java @@ -24,22 +24,14 @@ package org.collectionspace.services.client; +import org.jboss.resteasy.client.ClientResponse; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; -import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Response; -import org.collectionspace.services.common.query.IQueryManager; -import org.collectionspace.services.common.authorityref.AuthorityRefList; import org.collectionspace.services.movement.MovementsCommonList; -import org.jboss.resteasy.client.ClientResponse; - /** * MovementProxy.java @@ -50,27 +42,8 @@ import org.jboss.resteasy.client.ClientResponse; @Path("/movements/") @Produces("application/xml") @Consumes("application/xml") -public interface MovementProxy extends CollectionSpaceProxy { - - //(C)reate - @POST - ClientResponse create(byte[] payload); - - //(R)ead - @GET - @Path("/{csid}") - ClientResponse read(@PathParam("csid") String csid); +public interface MovementProxy extends CollectionSpacePoxProxy { - //(U)pdate - @PUT - @Path("/{csid}") - ClientResponse update(@PathParam("csid") String csid, byte[] payload); - - //(D)elete - @DELETE - @Path("/{csid}") - ClientResponse delete(@PathParam("csid") String csid); - // List @GET @Produces({"application/xml"}) @@ -87,11 +60,4 @@ public interface MovementProxy extends CollectionSpaceProxy { ClientResponse keywordSearchSortedBy( @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords, @QueryParam(IClientQueryParams.SORT_BY_PARAM) String sortFieldName); - - // List Authority References - @GET - @Produces({"application/xml"}) - @Path("/{csid}/authorityrefs/") - ClientResponse getAuthorityRefs(@PathParam("csid") String csid); - } diff --git a/services/movement/service/src/main/java/org/collectionspace/services/movement/MovementResource.java b/services/movement/service/src/main/java/org/collectionspace/services/movement/MovementResource.java index 67759b3a7..ad709a4f7 100644 --- a/services/movement/service/src/main/java/org/collectionspace/services/movement/MovementResource.java +++ b/services/movement/service/src/main/java/org/collectionspace/services/movement/MovementResource.java @@ -41,6 +41,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriBuilder; import javax.ws.rs.core.UriInfo; +import org.collectionspace.services.client.IQueryManager; import org.collectionspace.services.client.PoxPayloadIn; import org.collectionspace.services.client.PoxPayloadOut; import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl; @@ -55,7 +56,7 @@ import org.collectionspace.services.common.document.DocumentFilter; import org.collectionspace.services.common.document.DocumentHandler; import org.collectionspace.services.common.document.DocumentNotFoundException; import org.collectionspace.services.common.document.DocumentWrapper; -import org.collectionspace.services.common.query.IQueryManager; +//import org.collectionspace.services.common.query.IQueryManager; import org.collectionspace.services.common.query.QueryManager; import org.collectionspace.services.common.security.UnauthorizedException; import org.collectionspace.services.movement.MovementsCommon; diff --git a/services/note/client/src/main/java/org/collectionspace/services/client/NoteClient.java b/services/note/client/src/main/java/org/collectionspace/services/client/NoteClient.java index 6e026b4ae..d356897a8 100644 --- a/services/note/client/src/main/java/org/collectionspace/services/client/NoteClient.java +++ b/services/note/client/src/main/java/org/collectionspace/services/client/NoteClient.java @@ -33,60 +33,36 @@ import org.jboss.resteasy.spi.ResteasyProviderFactory; * $LastChangedDate: $ */ -public class NoteClient extends AbstractServiceClientImpl { +public class NoteClient extends AbstractServiceClientImpl { - private NoteProxy noteProxy; public static final String SERVICE_NAME = "notes"; public static final String SERVICE_PATH_COMPONENT = "notes"; - /** - * - * Default constructor for NoteClient class. - * - */ - public NoteClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - @Override public String getServiceName() { return SERVICE_NAME; } - /* (non-Javadoc) - * @see org.collectionspace.services.client.BaseServiceClient#getServicePathComponent() - */ @Override public String getServicePathComponent() { return SERVICE_PATH_COMPONENT; } - @Override - public CollectionSpaceProxy getProxy() { - return this.noteProxy; - } - - /** - * allow to reset proxy as per security needs - */ - public void setProxy() { - if (useAuth()) { - noteProxy = ProxyFactory.create(NoteProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - noteProxy = ProxyFactory.create(NoteProxy.class, - getBaseURL()); - } - } + @Override + public Class getProxyClass() { + return NoteProxy.class; + } + /* + * Proxied service calls + */ + /** * @return * @see org.collectionspace.services.client.Note#getNote() */ public ClientResponse readList() { - return noteProxy.readList(); + return getProxy().readList(); } /** @@ -96,7 +72,7 @@ public class NoteClient extends AbstractServiceClientImpl { */ public ClientResponse read(String csid) { - return noteProxy.read(csid); + return getProxy().read(csid); } /** @@ -107,7 +83,7 @@ public class NoteClient extends AbstractServiceClientImpl { */ public ClientResponse create(PoxPayloadOut multipart) { String payload = multipart.toXML(); - return noteProxy.create(payload); + return getProxy().create(payload); } /** @@ -118,17 +94,7 @@ public class NoteClient extends AbstractServiceClientImpl { */ public ClientResponse update(String csid, PoxPayloadOut multipart) { String payload = multipart.toXML(); - return noteProxy.update(csid, payload); - - } + return getProxy().update(csid, payload); - /** - * @param csid - * @return - * @see org.collectionspace.services.client.Note#deleteNote(java.lang.Long) - */ - @Override - public ClientResponse delete(String csid) { - return noteProxy.delete(csid); } } diff --git a/services/objectexit/client/src/main/java/org/collectionspace/services/client/ObjectExitClient.java b/services/objectexit/client/src/main/java/org/collectionspace/services/client/ObjectExitClient.java index 21b9991dd..e1a76c6e1 100644 --- a/services/objectexit/client/src/main/java/org/collectionspace/services/client/ObjectExitClient.java +++ b/services/objectexit/client/src/main/java/org/collectionspace/services/client/ObjectExitClient.java @@ -16,17 +16,8 @@ */ package org.collectionspace.services.client; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.Response; - -import org.collectionspace.services.common.authorityref.AuthorityRefList; import org.collectionspace.services.jaxb.AbstractCommonList; - -import org.jboss.resteasy.client.ProxyFactory; -import org.jboss.resteasy.plugins.providers.RegisterBuiltin; import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor; -import org.jboss.resteasy.spi.ResteasyProviderFactory; /** * ObjectExitClient.java @@ -35,15 +26,11 @@ import org.jboss.resteasy.spi.ResteasyProviderFactory; * $LastChangedDate: 2010-05-17 18:25:37 -0700 (Mon, 17 May 2010) $ * */ -public class ObjectExitClient extends AbstractServiceClientImpl { +public class ObjectExitClient extends AbstractPoxServiceClientImpl { public static final String SERVICE_NAME = "objectexit"; public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME; public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT; public static final String SERVICE_PAYLOAD_NAME = SERVICE_NAME; - /** - * - */ - private ObjectExitProxy objectexitProxy; @Override public String getServiceName() { @@ -54,97 +41,19 @@ public class ObjectExitClient extends AbstractServiceClientImpl { public String getServicePathComponent() { return SERVICE_PATH_COMPONENT; } - - /** - * - * Default constructor for ObjectExitClient class. - * - */ - public ObjectExitClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - - @Override - public CollectionSpaceProxy getProxy() { - return this.objectexitProxy; - } - - /** - * allow to reset proxy as per security needs - */ - public void setProxy() { - if (useAuth()) { - objectexitProxy = ProxyFactory.create(ObjectExitProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - objectexitProxy = ProxyFactory.create(ObjectExitProxy.class, - getBaseURL()); - } - } - /** - * FIXME Comment this - * - * @return - */ -// public static ObjectExitClient getInstance() { -// return instance; -// } + @Override + public Class getProxyClass() { + // TODO Auto-generated method stub + return ObjectExitProxy.class; + } - /** - * @return - * @see org.collectionspace.services.client.ObjectExitProxy#getObjectExit() - */ + /* + * Proxied service calls. + * + */ + public ClientResponse readList() { - return objectexitProxy.readList(); - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.ObjectExitProxy#getAuthorityRefs(java.lang.String) - */ - public ClientResponse getAuthorityRefs(String csid) { - return objectexitProxy.getAuthorityRefs(csid); - } - - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.ObjectExitProxy#getObjectExit(java.lang.String) - */ - public ClientResponse read(String csid) { - return objectexitProxy.read(csid); - } - - /** - * @param objectexit - * @return - * - */ - public ClientResponse create(PoxPayloadOut xmlPayload) { - return objectexitProxy.create(xmlPayload.getBytes()); - } - - /** - * @param csid - * @param objectexit - * @return - */ - public ClientResponse update(String csid, PoxPayloadOut xmlPayload) { - return objectexitProxy.update(csid, xmlPayload.getBytes()); - - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.ObjectExitProxy#deleteObjectExit(java.lang.Long) - */ - public ClientResponse delete(String csid) { - return objectexitProxy.delete(csid); + return getProxy().readList(); } } diff --git a/services/objectexit/client/src/main/java/org/collectionspace/services/client/ObjectExitProxy.java b/services/objectexit/client/src/main/java/org/collectionspace/services/client/ObjectExitProxy.java index 05f63b437..81f8d383a 100644 --- a/services/objectexit/client/src/main/java/org/collectionspace/services/client/ObjectExitProxy.java +++ b/services/objectexit/client/src/main/java/org/collectionspace/services/client/ObjectExitProxy.java @@ -1,18 +1,12 @@ package org.collectionspace.services.client; +import org.jboss.resteasy.client.ClientResponse; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; -import javax.ws.rs.PathParam; import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; -import org.collectionspace.services.common.authorityref.AuthorityRefList; import org.collectionspace.services.jaxb.AbstractCommonList; -import org.jboss.resteasy.client.ClientResponse; /** * @version $Revision: 2108 $ @@ -20,34 +14,8 @@ import org.jboss.resteasy.client.ClientResponse; @Path(ObjectExitClient.SERVICE_PATH + "/") @Produces({"application/xml"}) @Consumes({"application/xml"}) -public interface ObjectExitProxy extends CollectionSpaceProxy { - - //(C)reate - @POST - ClientResponse create(byte[] xmlPayload); - - //(R)ead - @GET - @Path("/{csid}") - ClientResponse read(@PathParam("csid") String csid); - - //(U)pdate - @PUT - @Path("/{csid}") - ClientResponse update(@PathParam("csid") String csid, byte[] xmlPayload); - - //(D)elete - @DELETE - @Path("/{csid}") - ClientResponse delete(@PathParam("csid") String csid); - +public interface ObjectExitProxy extends CollectionSpacePoxProxy { // List @GET ClientResponse readList(); - - // List Authority References - @GET - @Path("/{csid}/authorityrefs/") - ClientResponse getAuthorityRefs(@PathParam("csid") String csid); - } diff --git a/services/organization/client/src/main/java/org/collectionspace/services/client/OrgAuthorityClient.java b/services/organization/client/src/main/java/org/collectionspace/services/client/OrgAuthorityClient.java index 111c54e59..a64e1c9bb 100644 --- a/services/organization/client/src/main/java/org/collectionspace/services/client/OrgAuthorityClient.java +++ b/services/organization/client/src/main/java/org/collectionspace/services/client/OrgAuthorityClient.java @@ -25,26 +25,15 @@ * https://source.collectionspace.org/collection-space/LICENSE.txt */ package org.collectionspace.services.client; +import org.jboss.resteasy.client.ClientResponse; -//import javax.ws.rs.PathParam; -import javax.ws.rs.core.Response; - -import org.collectionspace.services.common.authorityref.AuthorityRefDocList; -import org.collectionspace.services.common.authorityref.AuthorityRefList; -import org.collectionspace.services.contact.ContactsCommonList; import org.collectionspace.services.organization.OrgauthoritiesCommonList; import org.collectionspace.services.organization.OrganizationsCommonList; -import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.client.ProxyFactory; -import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor; -import org.jboss.resteasy.plugins.providers.RegisterBuiltin; -import org.jboss.resteasy.spi.ResteasyProviderFactory; - /** * The Class OrgAuthorityClient. */ -public class OrgAuthorityClient extends AbstractServiceClientImpl { +public class OrgAuthorityClient extends AuthorityWithContactsClientImpl { public static final String SERVICE_NAME = "orgauthorities"; public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME; public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT; @@ -72,555 +61,26 @@ public class OrgAuthorityClient extends AbstractServiceClientImpl { public String getServicePathComponent() { return SERVICE_PATH_COMPONENT; } - - /** - * Gets the item common part name. - * - * @return the item common part name - */ + + @Override + public Class getProxyClass() { + return OrgAuthorityProxy.class; + } + public String getItemCommonPartName() { return getCommonPartName(SERVICE_ITEM_NAME); } - - /** The org authority proxy. */ - private OrgAuthorityProxy orgAuthorityProxy; - /** - * Instantiates a new org authority client. + /* + * Proxied service call methods */ - public OrgAuthorityClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - - /* (non-Javadoc) - * @see org.collectionspace.services.client.CollectionSpaceClient#getProxy() - */ - @Override - public CollectionSpaceProxy getProxy() { - return this.orgAuthorityProxy; - } - - /** - * Sets the proxy. - */ - public void setProxy() { - if (useAuth()) { - orgAuthorityProxy = ProxyFactory.create(OrgAuthorityProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - orgAuthorityProxy = ProxyFactory.create(OrgAuthorityProxy.class, - getBaseURL()); - } - } - - /** - * Gets the single instance of OrgAuthorityClient. - * - * @return single instance of OrgAuthorityClient //FIXME: This is wrong. There should NOT be a static instance of the client - */ -// public static OrgAuthorityClient getInstance() { -// return instance; -// } - + /** * Read list. * * @return the client response */ public ClientResponse readList() { - return orgAuthorityProxy.readList(); - } - - /** - * Read. - * - * @param csid the csid - * @return the client response - */ - public ClientResponse read(String csid) { - return orgAuthorityProxy.read(csid); - } - - /** - * Read by name. - * - * @param name the name - * @return the client response - */ - public ClientResponse readByName(String name) { - return orgAuthorityProxy.readByName(name); - } - - /** - * Creates the. - * - * @param multipart the multipart - * @return the client response - */ - public ClientResponse create(PoxPayloadOut xmlPayload) { - return orgAuthorityProxy.create(xmlPayload.getBytes()); - } - - /** - * Update. - * - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse update(String csid, PoxPayloadOut xmlPayload) { - return orgAuthorityProxy.update(csid, xmlPayload.getBytes()); - - } - - /** - * Delete. - * - * @param csid the csid - * @return the client response - */ - @Override - public ClientResponse delete(String csid) { - return orgAuthorityProxy.delete(csid); - } - - /** - * Read item list, filtering by partial term match, or keywords. Only one of - * partialTerm or keywords should be specified. If both are specified, keywords - * will be ignored. - * - * @param inAuthority the parent authority - * @param partialTerm A partial term on which to match, - * which will filter list results to return only matched resources. - * @param keywords A set of keywords on which to match, - * which will filter list results to return only matched resources. - * @return the client response - */ - public ClientResponse - readItemList(String inAuthority, String partialTerm, String keywords) { - return orgAuthorityProxy.readItemList(inAuthority, partialTerm, keywords); - } - - /** - * Gets the referencing objects. - * - * @param parentcsid the parentcsid - * @param csid the csid - * @return the referencing objects - */ - public ClientResponse getReferencingObjects(String parentcsid, String csid) { - return orgAuthorityProxy.getReferencingObjects(parentcsid, csid); - } - - - /** - * Read item list for named vocabulary, filtering by partial term match, or keywords. Only one of - * partialTerm or keywords should be specified. If both are specified, keywords - * will be ignored. - * - * @param specifier the specifier - * @param partialTerm A partial term on which to match, - * which will filter list results to return only matched resources. - * @param keywords A set of keywords on which to match, - * which will filter list results to return only matched resources. - * @return the client response - */ - public ClientResponse - readItemListForNamedAuthority(String specifier, String partialTerm, String keywords) { - return orgAuthorityProxy.readItemListForNamedAuthority(specifier, partialTerm, keywords); - } - - /** - * Gets the item authority refs. - * - * @param parentcsid the parentcsid - * @param csid the csid - * @return the item authority refs - */ - public ClientResponse getItemAuthorityRefs(String parentcsid, String csid) { - return orgAuthorityProxy.getItemAuthorityRefs(parentcsid, csid); - } - - /** - * Read item. - * - * @param vcsid the vcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse readItem(String vcsid, String csid) { - return orgAuthorityProxy.readItem(vcsid, csid); - } - - /** - * Read named item. - * - * @param vcsid the vcsid - * @param shortId the shortIdentifier - * @return the client response - */ - public ClientResponse readNamedItem(String vcsid, String shortId) { - return orgAuthorityProxy.readNamedItem(vcsid, shortId); - } - - /** - * Read item in Named Authority. - * - * @param authShortId the shortIdentifier for the Authority - * @param csid the csid - * @return the client response - */ - public ClientResponse readItemInNamedAuthority(String authShortId, String csid) { - return orgAuthorityProxy.readItemInNamedAuthority(authShortId, csid); + return getProxy().readList(); } - - /** - * Read named item in Named Authority. - * - * @param authShortId the shortIdentifier for the Authority - * @param itemShortId the shortIdentifier for the item - * @return the client response - */ - public ClientResponse readNamedItemInNamedAuthority(String authShortId, String itemShortId) { - return orgAuthorityProxy.readNamedItemInNamedAuthority(authShortId, itemShortId); - } - - /** - * Creates the item. - * - * @param vcsid the vcsid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse createItem(String vcsid, PoxPayloadOut multipart) { - return orgAuthorityProxy.createItem(vcsid, multipart.getBytes()); - } - - /** - * Update item. - * - * @param vcsid the vcsid - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse updateItem(String vcsid, String csid, PoxPayloadOut xmlPayload) { - return orgAuthorityProxy.updateItem(vcsid, csid, xmlPayload.getBytes()); - - } - - /** - * Delete item. - * - * @param vcsid the vcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse deleteItem(String vcsid, String csid) { - return orgAuthorityProxy.deleteItem(vcsid, csid); - } - - /*************************************************************************** - * - * Contact sub-resource interfaces - * - ***************************************************************************/ - - /** - * Creates the contact. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse createContact(String parentcsid, - String itemcsid, PoxPayloadOut xmlPayload) { - return orgAuthorityProxy.createContact(parentcsid, itemcsid, xmlPayload.getBytes()); - } - - /** - * Creates the contact. - * - * @param parentcsid - * @param itemspecifier (shortIdentifier) - * @param multipart - * @return the client response - */ - public ClientResponse createContactForNamedItem( - String parentcsid, - String itemspecifier, - PoxPayloadOut xmlPayload) { - return orgAuthorityProxy.createContactForNamedItem(parentcsid, itemspecifier, xmlPayload.getBytes()); - } - /** - * Creates the contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemcsid - * @param multipart - * @return the client response - */ - public ClientResponse createContactForItemInNamedAuthority( - String parentspecifier, - String itemcsid, - PoxPayloadOut xmlPayload) { - return orgAuthorityProxy.createContactForItemInNamedAuthority(parentspecifier, itemcsid, xmlPayload.getBytes()); - } - /** - * Creates the contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemspecifier (shortIdentifier) - * @param multipart - * @return the client response - */ - public ClientResponse createContactForNamedItemInNamedAuthority( - String parentspecifier, - String itemspecifier, - PoxPayloadOut xmlPayload) { - return orgAuthorityProxy.createContactForNamedItemInNamedAuthority(parentspecifier, itemspecifier, xmlPayload.getBytes()); - } - - /** - * Read contact. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse readContact(String parentcsid, - String itemcsid, String csid) { - return orgAuthorityProxy.readContact(parentcsid, itemcsid, csid); - } - - /** - * Read contact. - * - * @param parentcsid - * @param itemspecifier (shortIdentifier) - * @param csid - * @return the client response - */ - public ClientResponse readContactForNamedItem( - String parentcsid, - String itemspecifier, - String csid){ - return orgAuthorityProxy.readContactForNamedItem(parentcsid, itemspecifier, csid); - } - - /** - * Read contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemcsid - * @param csid - * @return the client response - */ - public ClientResponse readContactInNamedAuthority( - String parentspecifier, - String itemcsid, - String csid){ - return orgAuthorityProxy.readContactInNamedAuthority(parentspecifier, itemcsid, csid); - } - - /** - * Read contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemspecifier (shortIdentifier) - * @param csid - * @return the client response - */ - public ClientResponse readContactForNamedItemInNamedAuthority( - String parentspecifier, - String itemspecifier, - String csid){ - return orgAuthorityProxy.readContactForNamedItemInNamedAuthority(parentspecifier, itemspecifier, csid); - } - - - /** - * Read contact list. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @return the client response - */ - public ClientResponse readContactList(String parentcsid, - String itemcsid) { - return orgAuthorityProxy.readContactList(parentcsid, itemcsid); - } - - /** - * Read contact list. - * - * @param parentcsid - * @param itemspecifier (shortIdentifier) - * @return the client response - */ - public ClientResponse readContactListForNamedItem( - String parentcsid, - String itemspecifier){ - return orgAuthorityProxy.readContactList(parentcsid, itemspecifier); - } - - /** - * Read contact list. - * - * @param parentspecifier (shortIdentifier) - * @param itemcsid - * @return the client response - */ - public ClientResponse readContactListForItemInNamedAuthority( - String parentspecifier, - String itemcsid){ - return orgAuthorityProxy.readContactList(parentspecifier, itemcsid); - } - - /** - * Read contact list. - * - * @param parentspecifier (shortIdentifier) - * @param itemspecifier (shortIdentifier) - * @return the client response - */ - public ClientResponse readContactListForNamedItemInNamedAuthority( - String parentspecifier, - String itemspecifier){ - return orgAuthorityProxy.readContactList(parentspecifier, itemspecifier); - } - - - /** - * Update contact. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse updateContact(String parentcsid, - String itemcsid, String csid, PoxPayloadOut xmlPayload) { - return orgAuthorityProxy.updateContact(parentcsid, itemcsid, csid, xmlPayload.getBytes()); - } - - /** - * Update contact. - * - * @param parentcsid the parentcsid - * @param itemspecifier (shortIdentifier) - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse updateContactForNamedItem( - String parentcsid, - String itemspecifier, - String csid, - PoxPayloadOut xmlPayload) { - return orgAuthorityProxy.updateContactForNamedItem(parentcsid, itemspecifier, csid, xmlPayload.getBytes()); - } - - /** - * Update contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemcsid the itemcsid - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse updateContactInNamedAuthority( - String parentspecifier, - String itemcsid, - String csid, - PoxPayloadOut xmlPayload) { - return orgAuthorityProxy.updateContactInNamedAuthority(parentspecifier, itemcsid, csid, xmlPayload.getBytes()); - } - - /** - * Update contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemspecifier (shortIdentifier) - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse updateContactForNamedItemInNamedAuthority( - String parentspecifier, - String itemspecifier, - String csid, - PoxPayloadOut xmlPayload) { - return orgAuthorityProxy.updateContactForNamedItemInNamedAuthority(parentspecifier, itemspecifier, csid, xmlPayload.getBytes()); - } - - - /** - * Delete contact. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse deleteContact(String parentcsid, - String itemcsid, String csid) { - return orgAuthorityProxy.deleteContact(parentcsid, - itemcsid, csid); - } - - /** - * Delete contact. - * - * @param parentcsid the parentcsid - * @param itemspecifier (shortIdentifier) - * @param csid the csid - * @return the client response - */ - public ClientResponse deleteContactForNamedItem( - String parentcsid, - String itemspecifier, - String csid) { - return orgAuthorityProxy.deleteContactForNamedItem(parentcsid, - itemspecifier, csid); - } - - /** - * Delete contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemcsid the itemcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse deleteContactInNamedAuthority( - String parentspecifier, - String itemcsid, - String csid) { - return orgAuthorityProxy.deleteContactInNamedAuthority(parentspecifier, - itemcsid, csid); - } - - /** - * Delete contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemspecifier (shortIdentifier) - * @param csid the csid - * @return the client response - */ - public ClientResponse deleteContactForNamedItemInNamedAuthority( - String parentspecifier, - String itemspecifier, - String csid) { - return orgAuthorityProxy.deleteContactForNamedItemInNamedAuthority(parentspecifier, - itemspecifier, csid); - } - } diff --git a/services/organization/client/src/main/java/org/collectionspace/services/client/OrgAuthorityProxy.java b/services/organization/client/src/main/java/org/collectionspace/services/client/OrgAuthorityProxy.java index e84136e57..7a3c67d8a 100644 --- a/services/organization/client/src/main/java/org/collectionspace/services/client/OrgAuthorityProxy.java +++ b/services/organization/client/src/main/java/org/collectionspace/services/client/OrgAuthorityProxy.java @@ -1,23 +1,16 @@ package org.collectionspace.services.client; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Response; -import org.collectionspace.services.common.query.IQueryManager; -import org.collectionspace.services.common.authorityref.AuthorityRefDocList; import org.collectionspace.services.common.authorityref.AuthorityRefList; -import org.collectionspace.services.contact.ContactsCommonList; import org.collectionspace.services.organization.OrgauthoritiesCommonList; import org.collectionspace.services.organization.OrganizationsCommonList; -//import org.collectionspace.services.person.PersonsCommonList; +import org.collectionspace.services.person.PersonauthoritiesCommonList; import org.jboss.resteasy.client.ClientResponse; /** @@ -26,243 +19,32 @@ import org.jboss.resteasy.client.ClientResponse; @Path(OrgAuthorityClient.SERVICE_PATH + "/") @Produces({"application/xml"}) @Consumes({"application/xml"}) -public interface OrgAuthorityProxy extends CollectionSpaceProxy { //FIXME: REM - Most of the methods in this class and PersonAuthorityProxy are the same and should be moved to a base class - +public interface OrgAuthorityProxy extends AuthorityWithContactsProxy { // List OrgAuthorities @GET ClientResponse readList(); - - //(C)reate - @POST - ClientResponse create(byte[] xmlPayload); - - //(R)ead - @GET - @Path("/{csid}") - ClientResponse read(@PathParam("csid") String csid); - - //(R)ead by name - @GET - @Path("/urn:cspace:name({name})") - ClientResponse readByName(@PathParam("name") String name); - - //(U)pdate - @PUT - @Path("/{csid}") - ClientResponse update(@PathParam("csid") String csid, byte[] xmlPayload); - - //(D)elete - @DELETE - @Path("/{csid}") - ClientResponse delete(@PathParam("csid") String csid); - - // List Items with options for matching a partial term or keywords. - @GET - @Produces("application/xml") + + /* + * List results that must be overridden for the RESTEasy proxy generation to work correctly. + */ + + // List Items matching a partial term or keywords. + @Override + @GET + @Produces({"application/xml"}) @Path("/{csid}/items/") - ClientResponsereadItemList( - @PathParam("csid") String parentcsid, + ClientResponse readItemList( + @PathParam("csid") String vcsid, @QueryParam (IQueryManager.SEARCH_TYPE_PARTIALTERM) String partialTerm, @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords); - - /** - * @param parentcsid - * @param itemcsid - * @param csid - * @return - * @see org.collectionspace.services.client.IntakeProxy#getAuthorityRefs(java.lang.String) - */ - @GET - @Path("{csid}/items/{itemcsid}/refObjs") - @Produces("application/xml") - ClientResponse getReferencingObjects( - @PathParam("csid") String parentcsid, - @PathParam("itemcsid") String itemcsid); - + // List Items for a named authority matching a partial term or keywords. - @GET + @Override + @GET @Produces({"application/xml"}) @Path("/urn:cspace:name({specifier})/items/") ClientResponse readItemListForNamedAuthority( @PathParam("specifier") String specifier, @QueryParam (IQueryManager.SEARCH_TYPE_PARTIALTERM) String partialTerm, @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords); - - // List Item Authority References - @GET - @Produces({"application/xml"}) - @Path("/{parentcsid}/items/{itemcsid}/authorityrefs/") - public ClientResponse getItemAuthorityRefs( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid); - - //(C)reate Item - @POST - @Path("/{vcsid}/items/") - ClientResponse createItem(@PathParam("vcsid") String vcsid, byte[] xmlPayload); - - //(R)ead Item - @GET - @Path("/{vcsid}/items/{csid}") - ClientResponse readItem(@PathParam("vcsid") String vcsid, @PathParam("csid") String csid); - - //(R)ead Named Item - @GET - @Path("/{vcsid}/items/urn:cspace:name({specifier})") - ClientResponse readNamedItem(@PathParam("vcsid") String vcsid, @PathParam("specifier") String specifier); - - //(R)ead Item In Named Authority - @GET - @Path("/urn:cspace:name({specifier})/items/{csid}") - ClientResponse readItemInNamedAuthority(@PathParam("specifier") String specifier, @PathParam("csid") String csid); - - //(R)ead Named Item In Named Authority - @GET - @Path("/urn:cspace:name({specifier})/items/urn:cspace:name({itemspecifier})") - ClientResponse readNamedItemInNamedAuthority(@PathParam("specifier") String specifier, @PathParam("itemspecifier") String itemspecifier); - - //(U)pdate Item - @PUT - @Path("/{vcsid}/items/{csid}") - ClientResponse updateItem(@PathParam("vcsid") String vcsid, @PathParam("csid") String csid, byte[] xmlPayload); - - //(D)elete Item - @DELETE - @Path("/{vcsid}/items/{csid}") - ClientResponse deleteItem(@PathParam("vcsid") String vcsid, @PathParam("csid") String csid); - - // List Contacts - @GET - @Produces({"application/xml"}) - @Path("/{parentcsid}/items/{itemcsid}/contacts/") - ClientResponse readContactList( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid); - @GET - @Produces({"application/xml"}) - @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/") - ClientResponse readContactListForNamedItem( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemspecifier") String itemspecifier); - @GET - @Produces({"application/xml"}) - @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/") - ClientResponse readContactListForItemInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemcsid") String itemcsid); - @GET - @Produces({"application/xml"}) - @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/") - ClientResponse readContactListForNamedItemInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemspecifier") String itemspecifier); - - //(C)reate Contact - @POST - @Path("/{parentcsid}/items/{itemcsid}/contacts/") - ClientResponse createContact( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid, - byte[] xmlPayload); - @POST - @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/") - ClientResponse createContactForNamedItem( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemspecifier") String itemspecifier, - byte[] xmlPayload); - @POST - @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/") - ClientResponse createContactForItemInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemcsid") String itemcsid, - byte[] xmlPayload); - @POST - @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/") - ClientResponse createContactForNamedItemInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemspecifier") String itemspecifier, - byte[] xmlPayload); - - //(R)ead Contact - @GET - @Path("/{parentcsid}/items/{itemcsid}/contacts/{csid}") - ClientResponse readContact( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid); - @GET - @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/{csid}") - ClientResponse readContactForNamedItem( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemspecifier") String itemspecifier, - @PathParam("csid") String csid); - @GET - @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/{csid}") - ClientResponse readContactInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid); - @GET - @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/{csid}") - ClientResponse readContactForNamedItemInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemspecifier") String itemspecifier, - @PathParam("csid") String csid); - - //(U)pdate Contact - @PUT - @Path("/{parentcsid}/items/{itemcsid}/contacts/{csid}") - ClientResponse updateContact( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid, - byte[] xmlPayload); - @PUT - @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/{csid}") - ClientResponse updateContactForNamedItem( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemspecifier") String itemspecifier, - @PathParam("csid") String csid, - byte[] xmlPayload); - @PUT - @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/{csid}") - ClientResponse updateContactInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid, - byte[] xmlPayload); - @PUT - @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/{csid}") - ClientResponse updateContactForNamedItemInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemspecifier") String itemspecifier, - @PathParam("csid") String csid, - byte[] xmlPayload); - - //(D)elete Contact - @DELETE - @Path("/{parentcsid}/items/{itemcsid}/contacts/{csid}") - ClientResponse deleteContact( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid); - @DELETE - @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/{csid}") - ClientResponse deleteContactForNamedItem( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemspecifier") String itemspecifier, - @PathParam("csid") String csid); - @DELETE - @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/{csid}") - ClientResponse deleteContactInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid); - @DELETE - @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/{csid}") - ClientResponse deleteContactForNamedItemInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemspecifier") String itemspecifier, - @PathParam("csid") String csid); - } diff --git a/services/person/client/src/main/java/org/collectionspace/services/client/PersonAuthorityClient.java b/services/person/client/src/main/java/org/collectionspace/services/client/PersonAuthorityClient.java index b67138744..182d121b9 100644 --- a/services/person/client/src/main/java/org/collectionspace/services/client/PersonAuthorityClient.java +++ b/services/person/client/src/main/java/org/collectionspace/services/client/PersonAuthorityClient.java @@ -27,25 +27,16 @@ package org.collectionspace.services.client; //import javax.ws.rs.PathParam; -import javax.ws.rs.core.Response; +import org.jboss.resteasy.client.ClientResponse; -//import org.collectionspace.services.common.authorityref.AuthorityRefList; -import org.collectionspace.services.common.authorityref.AuthorityRefDocList; -import org.collectionspace.services.contact.ContactsCommonList; import org.collectionspace.services.person.PersonauthoritiesCommonList; import org.collectionspace.services.person.PersonsCommonList; import org.collectionspace.services.client.PersonAuthorityProxy; -import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.client.ProxyFactory; -import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor; -import org.jboss.resteasy.plugins.providers.RegisterBuiltin; -import org.jboss.resteasy.spi.ResteasyProviderFactory; - /** * The Class PersonAuthorityClient. */ -public class PersonAuthorityClient extends AbstractServiceClientImpl { +public class PersonAuthorityClient extends AuthorityWithContactsClientImpl { public static final String SERVICE_NAME = "personauthorities"; public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME; public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT; @@ -78,536 +69,16 @@ public class PersonAuthorityClient extends AbstractServiceClientImpl { return getCommonPartName(SERVICE_ITEM_NAME); } - /** - * - */ - private PersonAuthorityProxy personAuthorityProxy; - - /** - * Instantiates a new person authority client. - */ - public PersonAuthorityClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - - /* (non-Javadoc) - * @see org.collectionspace.services.client.CollectionSpaceClient#getProxy() - */ - @Override - public CollectionSpaceProxy getProxy() { - return this.personAuthorityProxy; - } - - /** - * Sets the proxy. - */ - public void setProxy() { - if (useAuth()) { - personAuthorityProxy = ProxyFactory.create(PersonAuthorityProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - personAuthorityProxy = ProxyFactory.create(PersonAuthorityProxy.class, - getBaseURL()); - } - } - - /** - * Read list. - * - * @return the client response - */ -// public static PersonAuthorityClient getInstance() { -// return instance; -// } - - /** - * @return list - * @see org.collectionspace.services.client.PersonAuthorityProxy#readList() - */ - public ClientResponse readList() { - return personAuthorityProxy.readList(); - } - - /** - * Read. - * - * @param csid the csid - * @return the client response - */ - public ClientResponse read(String csid) { - return personAuthorityProxy.read(csid); - } - - /** - * Read by name. - * - * @param name the name - * @return the client response - */ - public ClientResponse readByName(String name) { - return personAuthorityProxy.readByName(name); - } - - /** - * Creates the. - * - * @param multipart the multipart - * @return the client response - */ - public ClientResponse create(PoxPayloadOut xmlPayload) { - return personAuthorityProxy.create(xmlPayload.getBytes()); - } - - /** - * Update. - * - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse update(String csid, PoxPayloadOut xmlPayload) { - return personAuthorityProxy.update(csid, xmlPayload.getBytes()); - - } - - /** - * Delete. - * - * @param csid the csid - * @return the client response - */ - public ClientResponse delete(String csid) { - return personAuthorityProxy.delete(csid); - } - - /** - * Gets the referencing objects. - * - * @param parentcsid the parentcsid - * @param csid the csid - * @return the referencing objects - */ - public ClientResponse getReferencingObjects(String parentcsid, String csid) { - return personAuthorityProxy.getReferencingObjects(parentcsid, csid); - } - - /** - * Read item list, filtering by partial term match, or keywords. Only one of - * partialTerm or keywords should be specified. If both are specified, keywords - * will be ignored. - * - * @param inAuthority the parent authority - * @param partialTerm A partial term on which to match, - * which will filter list results to return only matched resources. - * @param keywords A set of keywords on which to match, - * which will filter list results to return only matched resources. - * @return the client response - */ - public ClientResponse - readItemList(String inAuthority, String partialTerm, String keywords) { - return personAuthorityProxy.readItemList(inAuthority, partialTerm, keywords); - } - - /** - * Read item list for named vocabulary, filtering by partial term match, or keywords. Only one of - * partialTerm or keywords should be specified. If both are specified, keywords - * will be ignored. - * - * @param specifier the specifier - * @param partialTerm A partial term on which to match, - * which will filter list results to return only matched resources. - * @param keywords A set of keywords on which to match, - * which will filter list results to return only matched resources. - * @return the client response - */ - public ClientResponse - readItemListForNamedAuthority(String specifier, String partialTerm, String keywords) { - return personAuthorityProxy.readItemListForNamedAuthority(specifier, partialTerm, keywords); - } - - /** - * Read item. - * - * @param vcsid the vcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse readItem(String vcsid, String csid) { - return personAuthorityProxy.readItem(vcsid, csid); - } - - /** - * Read named item. - * - * @param vcsid the vcsid - * @param shortId the shortIdentifier - * @return the client response - */ - public ClientResponse readNamedItem(String vcsid, String shortId) { - return personAuthorityProxy.readNamedItem(vcsid, shortId); - } - - /** - * Read item in Named Authority. - * - * @param authShortId the shortIdentifier for the Authority - * @param csid the csid - * @return the client response - */ - public ClientResponse readItemInNamedAuthority(String authShortId, String csid) { - return personAuthorityProxy.readItemInNamedAuthority(authShortId, csid); - } - - /** - * Read named item in Named Authority. - * - * @param authShortId the shortIdentifier for the Authority - * @param itemShortId the shortIdentifier for the item - * @return the client response - */ - public ClientResponse readNamedItemInNamedAuthority(String authShortId, String itemShortId) { - return personAuthorityProxy.readNamedItemInNamedAuthority(authShortId, itemShortId); - } - - /** - * Creates the item. - * - * @param vcsid the vcsid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse createItem(String vcsid, PoxPayloadOut xmlPayload) { - return personAuthorityProxy.createItem(vcsid, xmlPayload.getBytes()); - } - - /** - * Update item. - * - * @param vcsid the vcsid - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse updateItem(String vcsid, String csid, PoxPayloadOut xmlPayload) { - return personAuthorityProxy.updateItem(vcsid, csid, xmlPayload.getBytes()); - - } - - /** - * Delete item. - * - * @param vcsid the vcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse deleteItem(String vcsid, String csid) { - return personAuthorityProxy.deleteItem(vcsid, csid); - } - - /*************************************************************************** - * - * Contact sub-resource interfaces - * - ***************************************************************************/ - - /** - * Creates the contact. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse createContact(String parentcsid, - String itemcsid, PoxPayloadOut xmlPayload) { - return personAuthorityProxy.createContact(parentcsid, itemcsid, xmlPayload.getBytes()); - } - - /** - * Creates the contact. - * - * @param parentcsid - * @param itemspecifier (shortIdentifier) - * @param multipart - * @return the client response - */ - public ClientResponse createContactForNamedItem( - String parentcsid, - String itemspecifier, - PoxPayloadOut xmlPayload) { - return personAuthorityProxy.createContactForNamedItem(parentcsid, itemspecifier, xmlPayload.getBytes()); - } - /** - * Creates the contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemcsid - * @param multipart - * @return the client response - */ - public ClientResponse createContactForItemInNamedAuthority( - String parentspecifier, - String itemcsid, - PoxPayloadOut xmlPayload) { - return personAuthorityProxy.createContactForItemInNamedAuthority(parentspecifier, - itemcsid, xmlPayload.getBytes()); - } - /** - * Creates the contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemspecifier (shortIdentifier) - * @param multipart - * @return the client response - */ - public ClientResponse createContactForNamedItemInNamedAuthority( - String parentspecifier, - String itemspecifier, - PoxPayloadOut xmlPayload) { - return personAuthorityProxy.createContactForNamedItemInNamedAuthority(parentspecifier, itemspecifier, - xmlPayload.getBytes()); - } - - /** - * Read contact. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse readContact(String parentcsid, - String itemcsid, String csid) { - return personAuthorityProxy.readContact(parentcsid, itemcsid, csid); - } - - /** - * Read contact. - * - * @param parentcsid - * @param itemspecifier (shortIdentifier) - * @param csid - * @return the client response - */ - public ClientResponse readContactForNamedItem( - String parentcsid, - String itemspecifier, - String csid){ - return personAuthorityProxy.readContactForNamedItem(parentcsid, itemspecifier, csid); - } - - /** - * Read contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemcsid - * @param csid - * @return the client response - */ - public ClientResponse readContactInNamedAuthority( - String parentspecifier, - String itemcsid, - String csid){ - return personAuthorityProxy.readContactInNamedAuthority(parentspecifier, itemcsid, csid); - } - - /** - * Read contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemspecifier (shortIdentifier) - * @param csid - * @return the client response - */ - public ClientResponse readContactForNamedItemInNamedAuthority( - String parentspecifier, - String itemspecifier, - String csid){ - return personAuthorityProxy.readContactForNamedItemInNamedAuthority(parentspecifier, itemspecifier, csid); - } - - - /** - * Read contact list. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @return the client response - */ - public ClientResponse readContactList(String parentcsid, - String itemcsid) { - return personAuthorityProxy.readContactList(parentcsid, itemcsid); - } - - /** - * Read contact list. - * - * @param parentcsid - * @param itemspecifier (shortIdentifier) - * @return the client response - */ - public ClientResponse readContactListForNamedItem( - String parentcsid, - String itemspecifier){ - return personAuthorityProxy.readContactList(parentcsid, itemspecifier); - } - - /** - * Read contact list. - * - * @param parentspecifier (shortIdentifier) - * @param itemcsid - * @return the client response - */ - public ClientResponse readContactListForItemInNamedAuthority( - String parentspecifier, - String itemcsid){ - return personAuthorityProxy.readContactList(parentspecifier, itemcsid); - } - - /** - * Read contact list. - * - * @param parentspecifier (shortIdentifier) - * @param itemspecifier (shortIdentifier) - * @return the client response - */ - public ClientResponse readContactListForNamedItemInNamedAuthority( - String parentspecifier, - String itemspecifier){ - return personAuthorityProxy.readContactList(parentspecifier, itemspecifier); - } - - - /** - * Update contact. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse updateContact(String parentcsid, - String itemcsid, String csid, PoxPayloadOut xmlPayload) { - return personAuthorityProxy.updateContact(parentcsid, itemcsid, csid, xmlPayload.getBytes()); - } - - /** - * Update contact. - * - * @param parentcsid the parentcsid - * @param itemspecifier (shortIdentifier) - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse updateContactForNamedItem( - String parentcsid, - String itemspecifier, - String csid, - PoxPayloadOut xmlPayload) { - return personAuthorityProxy.updateContactForNamedItem(parentcsid, itemspecifier, csid, xmlPayload.getBytes()); - } - - /** - * Update contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemcsid the itemcsid - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse updateContactInNamedAuthority( - String parentspecifier, - String itemcsid, - String csid, - PoxPayloadOut xmlPayload) { - return personAuthorityProxy.updateContactInNamedAuthority(parentspecifier, itemcsid, csid, xmlPayload.getBytes()); - } - - /** - * Update contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemspecifier (shortIdentifier) - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse updateContactForNamedItemInNamedAuthority( - String parentspecifier, - String itemspecifier, - String csid, - PoxPayloadOut xmlPayload) { - return personAuthorityProxy.updateContactForNamedItemInNamedAuthority(parentspecifier, itemspecifier, csid, - xmlPayload.getBytes()); - } - - - /** - * Delete contact. - * - * @param parentcsid the parentcsid - * @param itemcsid the itemcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse deleteContact(String parentcsid, - String itemcsid, String csid) { - return personAuthorityProxy.deleteContact(parentcsid, - itemcsid, csid); - } + @Override + public Class getProxyClass() { + return PersonAuthorityProxy.class; + } - /** - * Delete contact. - * - * @param parentcsid the parentcsid - * @param itemspecifier (shortIdentifier) - * @param csid the csid - * @return the client response - */ - public ClientResponse deleteContactForNamedItem( - String parentcsid, - String itemspecifier, - String csid) { - return personAuthorityProxy.deleteContactForNamedItem(parentcsid, - itemspecifier, csid); - } - - /** - * Delete contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemcsid the itemcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse deleteContactInNamedAuthority( - String parentspecifier, - String itemcsid, - String csid) { - return personAuthorityProxy.deleteContactInNamedAuthority(parentspecifier, - itemcsid, csid); - } - - /** - * Delete contact. - * - * @param parentspecifier (shortIdentifier) - * @param itemspecifier (shortIdentifier) - * @param csid the csid - * @return the client response + /* + * Proxied service call methods */ - public ClientResponse deleteContactForNamedItemInNamedAuthority( - String parentspecifier, - String itemspecifier, - String csid) { - return personAuthorityProxy.deleteContactForNamedItemInNamedAuthority(parentspecifier, - itemspecifier, csid); + + public ClientResponse readList() { + return getProxy().readList(); } - } diff --git a/services/person/client/src/main/java/org/collectionspace/services/client/PersonAuthorityProxy.java b/services/person/client/src/main/java/org/collectionspace/services/client/PersonAuthorityProxy.java index 5b4105c8b..a67aae6fb 100644 --- a/services/person/client/src/main/java/org/collectionspace/services/client/PersonAuthorityProxy.java +++ b/services/person/client/src/main/java/org/collectionspace/services/client/PersonAuthorityProxy.java @@ -1,24 +1,15 @@ package org.collectionspace.services.client; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; -import javax.ws.rs.Encoded; -import javax.ws.rs.core.Response; -import org.collectionspace.services.common.authorityref.AuthorityRefDocList; -import org.collectionspace.services.common.query.IQueryManager; -import org.collectionspace.services.contact.ContactsCommonList; import org.collectionspace.services.person.PersonauthoritiesCommonList; import org.collectionspace.services.person.PersonsCommonList; import org.jboss.resteasy.client.ClientResponse; -//import org.jboss.resteasy.plugins.providers.multipart.PoxPayloadOut; /** * @version $Revision:$ @@ -26,236 +17,33 @@ import org.jboss.resteasy.client.ClientResponse; @Path(PersonAuthorityClient.SERVICE_PATH + "/") @Produces({"application/xml"}) @Consumes({"application/xml"}) -public interface PersonAuthorityProxy extends CollectionSpaceProxy { +public interface PersonAuthorityProxy extends AuthorityWithContactsProxy { // List Personauthorities @GET ClientResponse readList(); - //(C)reate - @POST - ClientResponse create(byte[] xmlPayload); - - //(R)ead - @GET - @Path("/{csid}") - ClientResponse read(@PathParam("csid") String csid); - - //(R)ead by name - @GET - @Path("/urn:cspace:name({name})") - ClientResponse readByName(@PathParam("name") String name); - - //(U)pdate - @PUT - @Path("/{csid}") - ClientResponse update(@PathParam("csid") String csid, byte[] xmlPayload); - - //(D)elete - @DELETE - @Path("/{csid}") - ClientResponse delete(@PathParam("csid") String csid); - - // List Items with options for matching a partial term or keywords. - @GET - @Produces("application/xml") - @Path("/{csid}/items/") - ClientResponsereadItemList( - @PathParam("csid") String parentcsid, - @QueryParam (IQueryManager.SEARCH_TYPE_PARTIALTERM) @Encoded String partialTerm, - @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) @Encoded String keywords); - - /** - * @param parentcsid - * @param itemcsid - * @param csid - * @return - * @see org.collectionspace.services.client.IntakeProxy#getAuthorityRefs(java.lang.String) + /* + * List results that must be overridden for the RESTEasy proxy generation to work correctly. */ - @GET - @Path("{csid}/items/{itemcsid}/refObjs") - @Produces("application/xml") - ClientResponse getReferencingObjects( - @PathParam("csid") String parentcsid, - @PathParam("itemcsid") String itemcsid); - + + // List Items matching a partial term or keywords. + @Override + @GET + @Produces({"application/xml"}) + @Path("/{csid}/items/") + ClientResponse readItemList( + @PathParam("csid") String vcsid, + @QueryParam (IQueryManager.SEARCH_TYPE_PARTIALTERM) String partialTerm, + @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords); + // List Items for a named authority matching a partial term or keywords. - @GET + @Override + @GET @Produces({"application/xml"}) @Path("/urn:cspace:name({specifier})/items/") ClientResponse readItemListForNamedAuthority( @PathParam("specifier") String specifier, @QueryParam (IQueryManager.SEARCH_TYPE_PARTIALTERM) String partialTerm, @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords); - - //(C)reate Item - @POST - @Path("/{vcsid}/items/") - ClientResponse createItem(@PathParam("vcsid") String vcsid, byte[] xmlPayload); - - //(R)ead Item - @GET - @Path("/{vcsid}/items/{csid}") - ClientResponse readItem(@PathParam("vcsid") String vcsid, @PathParam("csid") String csid); - - //(R)ead Named Item - @GET - @Path("/{vcsid}/items/urn:cspace:name({specifier})") - ClientResponse readNamedItem(@PathParam("vcsid") String vcsid, @PathParam("specifier") String specifier); - - //(R)ead Item In Named Authority - @GET - @Path("/urn:cspace:name({specifier})/items/{csid}") - ClientResponse readItemInNamedAuthority(@PathParam("specifier") String specifier, @PathParam("csid") String csid); - - //(R)ead Named Item In Named Authority - @GET - @Path("/urn:cspace:name({specifier})/items/urn:cspace:name({itemspecifier})") - ClientResponse readNamedItemInNamedAuthority(@PathParam("specifier") String specifier, @PathParam("itemspecifier") String itemspecifier); - - //(U)pdate Item - @PUT - @Path("/{vcsid}/items/{csid}") - ClientResponse updateItem(@PathParam("vcsid") String vcsid, @PathParam("csid") String csid, byte[] xmlPayload); - - //(D)elete Item - @DELETE - @Path("/{vcsid}/items/{csid}") - ClientResponse deleteItem(@PathParam("vcsid") String vcsid, @PathParam("csid") String csid); - - // List Contacts - @GET - @Produces({"application/xml"}) - @Path("/{parentcsid}/items/{itemcsid}/contacts/") - ClientResponse readContactList( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid); - @GET - @Produces({"application/xml"}) - @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/") - ClientResponse readContactListForNamedItem( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemspecifier") String itemspecifier); - @GET - @Produces({"application/xml"}) - @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/") - ClientResponse readContactListForItemInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemcsid") String itemcsid); - @GET - @Produces({"application/xml"}) - @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/") - ClientResponse readContactListForNamedItemInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemspecifier") String itemspecifier); - - //(C)reate Contact - @POST - @Path("/{parentcsid}/items/{itemcsid}/contacts/") - ClientResponse createContact( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid, - byte[] xmlPayload); - @POST - @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/") - ClientResponse createContactForNamedItem( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemspecifier") String itemspecifier, - byte[] xmlPayload); - @POST - @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/") - ClientResponse createContactForItemInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemcsid") String itemcsid, - byte[] xmlPayload); - @POST - @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/") - ClientResponse createContactForNamedItemInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemspecifier") String itemspecifier, - byte[] xmlPayload); - - //(R)ead Contact - @GET - @Path("/{parentcsid}/items/{itemcsid}/contacts/{csid}") - ClientResponse readContact( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid); - @GET - @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/{csid}") - ClientResponse readContactForNamedItem( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemspecifier") String itemspecifier, - @PathParam("csid") String csid); - @GET - @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/{csid}") - ClientResponse readContactInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid); - @GET - @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/{csid}") - ClientResponse readContactForNamedItemInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemspecifier") String itemspecifier, - @PathParam("csid") String csid); - - //(U)pdate Contact - @PUT - @Path("/{parentcsid}/items/{itemcsid}/contacts/{csid}") - ClientResponse updateContact( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid, - byte[] xmlPayload); - @PUT - @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/{csid}") - ClientResponse updateContactForNamedItem( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemspecifier") String itemspecifier, - @PathParam("csid") String csid, - byte[] xmlPayload); - @PUT - @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/{csid}") - ClientResponse updateContactInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid, - byte[] xmlPayload); - @PUT - @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/{csid}") - ClientResponse updateContactForNamedItemInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemspecifier") String itemspecifier, - @PathParam("csid") String csid, - byte[] xmlPayload); - - //(D)elete Contact - @DELETE - @Path("/{parentcsid}/items/{itemcsid}/contacts/{csid}") - ClientResponse deleteContact( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid); - - @DELETE - @Path("/{parentcsid}/items/urn:cspace:name({itemspecifier})/contacts/{csid}") - ClientResponse deleteContactForNamedItem( - @PathParam("parentcsid") String parentcsid, - @PathParam("itemspecifier") String itemspecifier, - @PathParam("csid") String csid); - @DELETE - @Path("/urn:cspace:name({parentspecifier})/items/{itemcsid}/contacts/{csid}") - ClientResponse deleteContactInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemcsid") String itemcsid, - @PathParam("csid") String csid); - - @DELETE - @Path("/urn:cspace:name({parentspecifier})/items/urn:cspace:name({itemspecifier})/contacts/{csid}") - ClientResponse deleteContactForNamedItemInNamedAuthority( - @PathParam("parentspecifier") String parentspecifier, - @PathParam("itemspecifier") String itemspecifier, - @PathParam("csid") String csid); } diff --git a/services/pom.xml b/services/pom.xml index 67cf3559c..35fd25fbe 100644 --- a/services/pom.xml +++ b/services/pom.xml @@ -51,6 +51,7 @@ report dimension contact + workflow JaxRsServiceProvider IntegrationTests diff --git a/services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java b/services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java index df0da4ecb..d318e6448 100644 --- a/services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java +++ b/services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java @@ -26,21 +26,14 @@ */ package org.collectionspace.services.client; -import javax.ws.rs.core.Response; - -//import org.collectionspace.services.common.context.ServiceContext; +import org.jboss.resteasy.client.ClientResponse; import org.collectionspace.services.relation.RelationsCommonList; -import org.jboss.resteasy.client.ProxyFactory; -import org.jboss.resteasy.plugins.providers.RegisterBuiltin; -import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor; -import org.jboss.resteasy.spi.ResteasyProviderFactory; /** * The Class RelationClient. */ -public class RelationClient extends AbstractServiceClientImpl { +public class RelationClient extends AbstractPoxServiceClientImpl { public static final String SERVICE_NAME = "relations"; public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME; public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT; @@ -57,44 +50,22 @@ public class RelationClient extends AbstractServiceClientImpl { return SERVICE_PATH_COMPONENT; } - /** The relation proxy. */ - private RelationProxy relationProxy; - - /** - * Instantiates a new relation client. - */ - public RelationClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - - @Override - public CollectionSpaceProxy getProxy() { - return this.relationProxy; - } - - /** - * Sets the proxy. - */ @Override - public void setProxy() { - if (useAuth()) { - relationProxy = ProxyFactory.create(RelationProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - relationProxy = ProxyFactory.create(RelationProxy.class, - getBaseURL()); - } + public Class getProxyClass() { + return RelationProxy.class; } + /* + * Proxied service calls + */ + /** * Read list. * * @return the client response */ public ClientResponse readList() { - return relationProxy.readList(); + return getProxy().readList(); } /** @@ -112,7 +83,7 @@ public class RelationClient extends AbstractServiceClientImpl { String predicate, String objectCsid, String objectType) { - return relationProxy.readList(subjectCsid, subjectType, predicate, objectCsid, objectType); + return getProxy().readList(subjectCsid, subjectType, predicate, objectCsid, objectType); } public ClientResponse readList(String subjectCsid, @@ -123,49 +94,6 @@ public class RelationClient extends AbstractServiceClientImpl { String sortBy, Long pageSize, Long pageNumber) { - return relationProxy.readList(subjectCsid, subjectType, predicate, objectCsid, objectType, sortBy, pageSize, pageNumber); + return getProxy().readList(subjectCsid, subjectType, predicate, objectCsid, objectType, sortBy, pageSize, pageNumber); } - - - /** - * Read. - * - * @param csid the csid - * @return the client response - */ - public ClientResponse read(String csid) { - return relationProxy.read(csid); - } - - /** - * Creates the. - * - * @param multipart the multipart - * @return the client response - */ - public ClientResponse create(PoxPayloadOut multipart) { - return relationProxy.create(multipart.getBytes()); - } - - /** - * Update. - * - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse update(String csid, - PoxPayloadOut multipart) { - return relationProxy.update(csid, multipart.getBytes()); - } - - /** - * Delete. - * - * @param csid the csid - * @return the client response - */ - public ClientResponse delete(String csid) { - return relationProxy.delete(csid); - } } diff --git a/services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java b/services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java index 21e140828..e020a19c3 100644 --- a/services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java +++ b/services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java @@ -1,21 +1,14 @@ package org.collectionspace.services.client; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; -import javax.ws.rs.PathParam; import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; import org.collectionspace.services.relation.RelationsCommonList; import org.collectionspace.services.common.relation.IRelationsManager; import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.plugins.providers.multipart.MultipartInput; -import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput; import javax.ws.rs.QueryParam; /** @@ -24,7 +17,7 @@ import javax.ws.rs.QueryParam; @Path("/relations/") @Produces({"application/xml"}) @Consumes({"application/xml"}) -public interface RelationProxy extends CollectionSpaceProxy { +public interface RelationProxy extends CollectionSpacePoxProxy { @GET @Produces({"application/xml"}) @@ -50,23 +43,4 @@ public interface RelationProxy extends CollectionSpaceProxy { @QueryParam(IClientQueryParams.SORT_BY_PARAM) String sortBy, @QueryParam(IClientQueryParams.PAGE_SIZE_PARAM) Long pageSize, @QueryParam(IClientQueryParams.START_PAGE_PARAM) Long pageNumber); - - //(C)reate - @POST - ClientResponse create(byte[] payload); - - //(R)ead - @GET - @Path("/{csid}") - ClientResponse read(@PathParam("csid") String csid); - - //(U)pdate - @PUT - @Path("/{csid}") - ClientResponse update(@PathParam("csid") String csid, byte[] payload); - - //(D)elete - @DELETE - @Path("/{csid}") - ClientResponse delete(@PathParam("csid") String csid); } diff --git a/services/relation/service/src/main/java/org/collectionspace/services/relation/RelationResource.java b/services/relation/service/src/main/java/org/collectionspace/services/relation/RelationResource.java index 2cba6a45d..e92eebce9 100644 --- a/services/relation/service/src/main/java/org/collectionspace/services/relation/RelationResource.java +++ b/services/relation/service/src/main/java/org/collectionspace/services/relation/RelationResource.java @@ -42,9 +42,10 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriBuilder; import javax.ws.rs.core.UriInfo; +import org.collectionspace.services.client.IQueryManager; import org.collectionspace.services.client.PoxPayloadIn; import org.collectionspace.services.client.PoxPayloadOut; -import org.collectionspace.services.common.query.IQueryManager; +//import org.collectionspace.services.common.query.IQueryManager; import org.collectionspace.services.common.relation.IRelationsManager; import org.collectionspace.services.common.relation.nuxeo.RelationsUtils; import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl; diff --git a/services/report/client/src/main/java/org/collectionspace/services/client/ReportClient.java b/services/report/client/src/main/java/org/collectionspace/services/client/ReportClient.java index ba606c77a..3850603bc 100644 --- a/services/report/client/src/main/java/org/collectionspace/services/client/ReportClient.java +++ b/services/report/client/src/main/java/org/collectionspace/services/client/ReportClient.java @@ -26,17 +26,9 @@ */ package org.collectionspace.services.client; -import javax.ws.rs.core.Response; - -import org.collectionspace.services.common.authorityref.AuthorityRefList; //import org.collectionspace.services.common.context.ServiceContext; import org.collectionspace.services.report.ReportsCommonList; - -import org.jboss.resteasy.client.ProxyFactory; -import org.jboss.resteasy.plugins.providers.RegisterBuiltin; import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor; -import org.jboss.resteasy.spi.ResteasyProviderFactory; /** * A ReportClient. @@ -44,108 +36,36 @@ import org.jboss.resteasy.spi.ResteasyProviderFactory; * @version $Revision:$ * FIXME: http://issues.collectionspace.org/browse/CSPACE-1684 */ -public class ReportClient extends AbstractServiceClientImpl { +public class ReportClient extends AbstractPoxServiceClientImpl { - private ReportProxy reportProxy; public static final String SERVICE_NAME = "reports"; public static final String SERVICE_PATH_COMPONENT = "reports"; - /** - * - * Default constructor for ReportClient class. - * - */ - public ReportClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - @Override public String getServiceName() { return SERVICE_NAME; } - /* (non-Javadoc) - * @see org.collectionspace.services.client.AbstractServiceClientImpl#getServicePathComponent() - */ - public String getServicePathComponent() { - return SERVICE_PATH_COMPONENT; - } - - @Override - public CollectionSpaceProxy getProxy() { - return this.reportProxy; - } - - /** - * allow to reset proxy as per security needs - */ - public void setProxy() { - if (useAuth()) { - reportProxy = ProxyFactory.create(ReportProxy.class, - getBaseURL(), new ApacheHttpClientExecutor(getHttpClient())); - } else { - reportProxy = ProxyFactory.create(ReportProxy.class, - getBaseURL()); - } + public String getServicePathComponent() { + return SERVICE_PATH_COMPONENT; } + @Override + public Class getProxyClass() { + return ReportProxy.class; + } + + /* + * Proxied service calls. + */ + /** * @return * @see org.collectionspace.services.client.ReportProxy#getReport() */ public ClientResponse readList() { - return reportProxy.readList(); + return getProxy().readList(); } - /** - * @param csid - * @return - * @see org.collectionspace.services.client.ReportProxy#getAuthorityRefs(java.lang.String) - */ - public ClientResponse getAuthorityRefs(String csid) { - return reportProxy.getAuthorityRefs(csid); - } - - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.ReportProxy#getReport(java.lang.String) - */ - public ClientResponse read(String csid) { - return reportProxy.read(csid); - } - - /** - * @param report - * @return - * @see org.collectionspace.services.client.ReportProxy#createReport(org.collectionspace.hello.Report) - */ - public ClientResponse create(PoxPayloadOut multipart) { - return reportProxy.create(multipart.getBytes()); - } - - /** - * @param csid - * @param report - * @return - * @see org.collectionspace.services.client.ReportProxy#updateReport(java.lang.Long, org.collectionspace.hello.Report) - */ - public ClientResponse update(String csid, PoxPayloadOut multipart) { - return reportProxy.update(csid, multipart.getBytes()); - } - - /** - * @param csid - * @return - * @see org.collectionspace.services.client.ReportProxy#deleteReport(java.lang.Long) - */ - public ClientResponse delete(String csid) { - return reportProxy.delete(csid); - } - - } diff --git a/services/report/client/src/main/java/org/collectionspace/services/client/ReportProxy.java b/services/report/client/src/main/java/org/collectionspace/services/client/ReportProxy.java index 32b836ee7..66c3b6a65 100644 --- a/services/report/client/src/main/java/org/collectionspace/services/client/ReportProxy.java +++ b/services/report/client/src/main/java/org/collectionspace/services/client/ReportProxy.java @@ -27,18 +27,11 @@ package org.collectionspace.services.client; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; -import javax.ws.rs.PathParam; import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; -import org.collectionspace.services.common.authorityref.AuthorityRefList; import org.collectionspace.services.report.ReportsCommonList; -import org.collectionspace.services.person.PersonsCommonList; import org.jboss.resteasy.client.ClientResponse; /** @@ -48,8 +41,7 @@ import org.jboss.resteasy.client.ClientResponse; @Path("/reports/") @Produces({"application/xml;charset=UTF-8"}) @Consumes({"application/xml"}) -public interface ReportProxy extends CollectionSpaceProxy { - +public interface ReportProxy extends CollectionSpacePoxProxy { /** * Read list. * @@ -58,61 +50,4 @@ public interface ReportProxy extends CollectionSpaceProxy { @GET @Produces({"application/xml"}) ClientResponse readList(); - - //(C)reate - /** - * Creates the. - * - * @param multipart the multipart - * @return the client response - */ - @POST - ClientResponse create(byte[] payload); - - //(R)ead - /** - * Read. - * - * @param csid the csid - * @return the client response - */ - @GET - @Path("/{csid}") - ClientResponse read(@PathParam("csid") String csid); - - //(U)pdate - /** - * Update. - * - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - @PUT - @Path("/{csid}") - ClientResponse update(@PathParam("csid") String csid, byte[] payload); - - //(D)elete - /** - * Delete. - * - * @param csid the csid - * @return the client response - */ - @DELETE - @Path("/{csid}") - ClientResponse delete(@PathParam("csid") String csid); - - // List Items - /** - * Gets the authority refs. - * - * @param csid the csid - * @return the authority refs - */ - @GET - @Produces({"application/xml"}) - @Path("/{csid}/authorityrefs/") - ClientResponse getAuthorityRefs(@PathParam("csid") String csid); - } diff --git a/services/report/service/src/main/java/org/collectionspace/services/report/ReportResource.java b/services/report/service/src/main/java/org/collectionspace/services/report/ReportResource.java index c0e83ea39..ae63afe19 100644 --- a/services/report/service/src/main/java/org/collectionspace/services/report/ReportResource.java +++ b/services/report/service/src/main/java/org/collectionspace/services/report/ReportResource.java @@ -56,6 +56,7 @@ import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import org.collectionspace.services.ReportJAXBSchema; +import org.collectionspace.services.client.IQueryManager; import org.collectionspace.services.client.PoxPayloadIn; import org.collectionspace.services.client.PoxPayloadOut; import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl; @@ -69,7 +70,6 @@ import org.collectionspace.services.common.document.DocumentFilter; import org.collectionspace.services.common.document.DocumentHandler; import org.collectionspace.services.common.document.DocumentNotFoundException; import org.collectionspace.services.common.document.DocumentWrapper; -import org.collectionspace.services.common.query.IQueryManager; import org.collectionspace.services.common.query.QueryManager; import org.collectionspace.services.common.security.UnauthorizedException; import org.collectionspace.services.common.vocabulary.AuthorityItemJAXBSchema; diff --git a/services/vocabulary/client/src/main/java/org/collectionspace/services/client/VocabularyClient.java b/services/vocabulary/client/src/main/java/org/collectionspace/services/client/VocabularyClient.java index 78df317e7..b86a75ac7 100644 --- a/services/vocabulary/client/src/main/java/org/collectionspace/services/client/VocabularyClient.java +++ b/services/vocabulary/client/src/main/java/org/collectionspace/services/client/VocabularyClient.java @@ -26,22 +26,16 @@ */ package org.collectionspace.services.client; -import javax.ws.rs.core.Response; +import org.jboss.resteasy.client.ClientResponse; import org.collectionspace.services.vocabulary.VocabulariesCommonList; import org.collectionspace.services.vocabulary.VocabularyitemsCommonList; import org.collectionspace.services.client.VocabularyProxy; -import org.jboss.resteasy.client.ClientResponse; -import org.jboss.resteasy.client.ProxyFactory; -import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor; -import org.jboss.resteasy.plugins.providers.RegisterBuiltin; -import org.jboss.resteasy.spi.ResteasyProviderFactory; - /** * The Class VocabularyClient. */ -public class VocabularyClient extends AbstractServiceClientImpl { +public class VocabularyClient extends AuthorityClientImpl { public static final String SERVICE_NAME = "vocabularies"; public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME; public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT; @@ -58,9 +52,6 @@ public class VocabularyClient extends AbstractServiceClientImpl { return SERVICE_NAME; } - /* (non-Javadoc) - * @see org.collectionspace.services.client.BaseServiceClient#getServicePathComponent() - */ @Override public String getServicePathComponent() { return SERVICE_PATH_COMPONENT; @@ -70,6 +61,11 @@ public class VocabularyClient extends AbstractServiceClientImpl { return SERVICE_PAYLOAD_NAME; } + @Override + public Class getProxyClass() { + return VocabularyProxy.class; + } + /** * Gets the item common part name. * @@ -79,189 +75,16 @@ public class VocabularyClient extends AbstractServiceClientImpl { return getCommonPartName(SERVICE_ITEM_PAYLOAD_NAME); } - /** The Constant instance. */ //FIXME: This is wrong. There should not be a static instance of the client. -// private static final VocabularyClient instance = new VocabularyClient(); - - /** The vocabulary proxy. */ - private VocabularyProxy vocabularyProxy; - - /** - * Instantiates a new vocabulary client. - */ - public VocabularyClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - setProxy(); - } - - /* (non-Javadoc) - * @see org.collectionspace.services.client.CollectionSpaceClient#getProxy() + /* + * Service calls */ - @Override - public CollectionSpaceProxy getProxy() { - return this.vocabularyProxy; - } - - /** - * Sets the proxy. - */ - public void setProxy() { - if (useAuth()) { - vocabularyProxy = ProxyFactory.create(VocabularyProxy.class, getBaseURL(), - new ApacheHttpClientExecutor(getHttpClient())); - } else { - vocabularyProxy = ProxyFactory.create(VocabularyProxy.class, getBaseURL()); - } - } - - /** - * Gets the single instance of VocabularyClient. - * - * @return single instance of VocabularyClient //FIXME: This is wrong. There should not be a static instance of the client. - */ -// public static VocabularyClient getInstance() { -// return instance; -// } - + /** * Read list. * * @return the client response */ public ClientResponse readList() { - return vocabularyProxy.readList(); - } - - /** - * Read. - * - * @param csid the csid - * @return the client response - */ - public ClientResponse read(String csid) { - return vocabularyProxy.read(csid); - } - - /** - * Read by name. - * - * @param name the name - * @return the client response - */ - public ClientResponse readByName(String name) { - return vocabularyProxy.readByName(name); - } - - /** - * Creates the. - * - * @param multipart the multipart - * @return the client response - */ - public ClientResponse create(PoxPayloadOut poxPayloadout) { - return vocabularyProxy.create(poxPayloadout.getBytes()); - } - - /** - * Update. - * - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse update(String csid, PoxPayloadOut poxPayloadout) { - return vocabularyProxy.update(csid, poxPayloadout.getBytes()); - - } - - /** - * Delete. - * - * @param csid the csid - * @return the client response - */ - public ClientResponse delete(String csid) { - return vocabularyProxy.delete(csid); - } - - /** - * Read item list, filtering by partial term match, or keywords. Only one of - * partialTerm or keywords should be specified. If both are specified, keywords - * will be ignored. - * - * @param inAuthority the parent authority - * @param partialTerm A partial term on which to match, - * which will filter list results to return only matched resources. - * @param keywords A set of keywords on which to match, - * which will filter list results to return only matched resources. - * @return the client response - */ - public ClientResponse - readItemList(String inAuthority, String partialTerm, String keywords) { - return vocabularyProxy.readItemList(inAuthority, partialTerm, keywords); - } - - /** - * Read item list for named vocabulary, filtering by partial term match, or keywords. Only one of - * partialTerm or keywords should be specified. If both are specified, keywords - * will be ignored. - * - * @param specifier the specifier - * @param partialTerm A partial term on which to match, - * which will filter list results to return only matched resources. - * @param keywords A set of keywords on which to match, - * which will filter list results to return only matched resources. - * @return the client response - */ - public ClientResponse - readItemListForNamedVocabulary(String specifier, String partialTerm, String keywords) { - return vocabularyProxy.readItemListForNamedVocabulary(specifier, partialTerm, keywords); - } - - /** - * Read item. - * - * @param vcsid the vcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse readItem(String vcsid, String csid) { - return vocabularyProxy.readItem(vcsid, csid); - } - - /** - * Creates the item. - * - * @param vcsid the vcsid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse createItem(String vcsid, PoxPayloadOut poxPayloadOut) { - String xmlPayload = poxPayloadOut.toXML(); - return vocabularyProxy.createItem(vcsid, xmlPayload); - } - - /** - * Update item. - * - * @param vcsid the vcsid - * @param csid the csid - * @param multipart the multipart - * @return the client response - */ - public ClientResponse updateItem(String vcsid, String csid, PoxPayloadOut poxPayloadOut) { - String xmlPayload = poxPayloadOut.toXML(); - return vocabularyProxy.updateItem(vcsid, csid, xmlPayload); - } - - /** - * Delete item. - * - * @param vcsid the vcsid - * @param csid the csid - * @return the client response - */ - public ClientResponse deleteItem(String vcsid, String csid) { - return vocabularyProxy.deleteItem(vcsid, csid); + return getProxy().readList(); } } diff --git a/services/vocabulary/client/src/main/java/org/collectionspace/services/client/VocabularyProxy.java b/services/vocabulary/client/src/main/java/org/collectionspace/services/client/VocabularyProxy.java index 54d254f88..41f8aba6f 100644 --- a/services/vocabulary/client/src/main/java/org/collectionspace/services/client/VocabularyProxy.java +++ b/services/vocabulary/client/src/main/java/org/collectionspace/services/client/VocabularyProxy.java @@ -1,19 +1,12 @@ package org.collectionspace.services.client; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; -//import javax.ws.rs.core.Context; -import javax.ws.rs.core.Response; -//import javax.ws.rs.core.UriInfo; -import org.collectionspace.services.common.query.IQueryManager; import org.collectionspace.services.vocabulary.VocabulariesCommonList; import org.collectionspace.services.vocabulary.VocabularyitemsCommonList; import org.jboss.resteasy.client.ClientResponse; @@ -21,76 +14,36 @@ import org.jboss.resteasy.client.ClientResponse; /** * @version $Revision:$ */ -//@Path("/vocabularies/") @Path("/" + VocabularyClient.SERVICE_PATH_COMPONENT + "/") @Produces({"application/xml"}) @Consumes({"application/xml"}) -public interface VocabularyProxy extends CollectionSpaceProxy { - +public interface VocabularyProxy extends AuthorityProxy { // List Vocabularies @GET @Produces({"application/xml"}) ClientResponse readList(); - - //(C)reate - @POST - ClientResponse create(byte[] xmlPayload); - - //(R)ead - @GET - @Path("/{csid}") - ClientResponse read(@PathParam("csid") String csid); - - //(R)ead by name - @GET - @Path("/urn:cspace:name({name})") - ClientResponse readByName(@PathParam("name") String name); - - //(U)pdate - @PUT - @Path("/{csid}") - ClientResponse update(@PathParam("csid") String csid, byte[] xmlPayload); - - //(D)elete - @DELETE - @Path("/{csid}") - ClientResponse delete(@PathParam("csid") String csid); - + + /* + * List results that must be overridden for the RESTEasy proxy generation to work correctly. + */ + // List Items matching a partial term or keywords. - @GET + @Override + @GET @Produces({"application/xml"}) - @Path("/{vcsid}/items/") + @Path("/{csid}/items/") ClientResponse readItemList( - @PathParam("vcsid") String vcsid, + @PathParam("csid") String vcsid, @QueryParam (IQueryManager.SEARCH_TYPE_PARTIALTERM) String partialTerm, @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords); // List Items for a named authority matching a partial term or keywords. - @GET + @Override + @GET @Produces({"application/xml"}) - @Path("/urn:cspace:name({specifier})/items") - ClientResponse readItemListForNamedVocabulary( + @Path("/urn:cspace:name({specifier})/items/") + ClientResponse readItemListForNamedAuthority( @PathParam("specifier") String specifier, @QueryParam (IQueryManager.SEARCH_TYPE_PARTIALTERM) String partialTerm, @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords); - - //(C)reate Item - @POST - @Path("/{vcsid}/items/") - ClientResponse createItem(@PathParam("vcsid") String vcsid, String xmlPayload); - - //(R)ead - @GET - @Path("/{vcsid}/items/{csid}") - ClientResponse readItem(@PathParam("vcsid") String vcsid, @PathParam("csid") String csid); - - //(U)pdate - @PUT - @Path("/{vcsid}/items/{csid}") - ClientResponse updateItem(@PathParam("vcsid") String vcsid, @PathParam("csid") String csid, String xmlPayload); - - //(D)elete - @DELETE - @Path("/{vcsid}/items/{csid}") - ClientResponse deleteItem(@PathParam("vcsid") String vcsid, @PathParam("csid") String csid); } diff --git a/services/vocabulary/client/src/test/java/org/collectionspace/services/client/test/VocabularyServiceTest.java b/services/vocabulary/client/src/test/java/org/collectionspace/services/client/test/VocabularyServiceTest.java index 972076681..f5bc4b6b3 100644 --- a/services/vocabulary/client/src/test/java/org/collectionspace/services/client/test/VocabularyServiceTest.java +++ b/services/vocabulary/client/src/test/java/org/collectionspace/services/client/test/VocabularyServiceTest.java @@ -699,7 +699,7 @@ public class VocabularyServiceTest extends AbstractServiceTestImpl { if (vcsid != null) { res = client.readItemList(vcsid, null, null); } else if (shortId != null) { - res = client.readItemListForNamedVocabulary(shortId, null, null); + res = client.readItemListForNamedAuthority(shortId, null, null); } else { Assert.fail("Internal Error: readItemList both vcsid and shortId are null!"); } diff --git a/services/workflow/3rdparty/build.xml b/services/workflow/3rdparty/build.xml new file mode 100644 index 000000000..aa1d77207 --- /dev/null +++ b/services/workflow/3rdparty/build.xml @@ -0,0 +1,127 @@ + + + + workflow service 3rdparty + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/services/workflow/3rdparty/nuxeo-platform-cs-workflow/build.xml b/services/workflow/3rdparty/nuxeo-platform-cs-workflow/build.xml new file mode 100644 index 000000000..0e43e442d --- /dev/null +++ b/services/workflow/3rdparty/nuxeo-platform-cs-workflow/build.xml @@ -0,0 +1,143 @@ + + + + workflow nuxeo document type + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/services/workflow/3rdparty/nuxeo-platform-cs-workflow/pom.xml b/services/workflow/3rdparty/nuxeo-platform-cs-workflow/pom.xml new file mode 100644 index 000000000..d744aca1d --- /dev/null +++ b/services/workflow/3rdparty/nuxeo-platform-cs-workflow/pom.xml @@ -0,0 +1,37 @@ + + 4.0.0 + + org.collectionspace.services + org.collectionspace.services.workflow.3rdparty + 1.6-SNAPSHOT + + + org.collectionspace.services + org.collectionspace.services.workflow.3rdparty.nuxeo + services.workflow.3rdparty.nuxeo + jar + + Workflow Nuxeo Document Type + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + src/main/resources/META-INF/MANIFEST.MF + + ${eclipseVersion} + 2 + + + + + + + + diff --git a/services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/META-INF/MANIFEST.MF b/services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/META-INF/MANIFEST.MF new file mode 100644 index 000000000..6b8bf3500 --- /dev/null +++ b/services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/META-INF/MANIFEST.MF @@ -0,0 +1,22 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 1 +Bundle-Name: NuxeoCS +Bundle-SymbolicName: org.collectionspace.workflow;singleton:=true +Bundle-Version: 1.0.0 +Bundle-Localization: plugin +Bundle-Vendor: Nuxeo +Require-Bundle: org.nuxeo.runtime, + org.nuxeo.ecm.core.api, + org.nuxeo.ecm.core, + org.nuxeo.ecm.core.api, + org.nuxeo.ecm.platform.types.api, + org.nuxeo.ecm.platform.versioning.api, + org.nuxeo.ecm.platform.ui, + org.nuxeo.ecm.platform.forms.layout.client, + org.nuxeo.ecm.platform.ws, + org.collectionspace.collectionspace_core +Provide-Package: org.collectionspace.workflow +Nuxeo-Component: OSGI-INF/core-types-contrib.xml, + OSGI-INF/ecm-types-contrib.xml, + OSGI-INF/layouts-contrib.xml + diff --git a/services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/OSGI-INF/core-types-contrib.xml b/services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/OSGI-INF/core-types-contrib.xml new file mode 100644 index 000000000..8b34a1e80 --- /dev/null +++ b/services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/OSGI-INF/core-types-contrib.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/OSGI-INF/deployment-fragment.xml b/services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/OSGI-INF/deployment-fragment.xml new file mode 100644 index 000000000..1d37c1b32 --- /dev/null +++ b/services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/OSGI-INF/deployment-fragment.xml @@ -0,0 +1,10 @@ + + + + + + ${bundle.fileName} + + + + \ No newline at end of file diff --git a/services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/schemas/workflows_common.xsd b/services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/schemas/workflows_common.xsd new file mode 100644 index 000000000..c93c1b938 --- /dev/null +++ b/services/workflow/3rdparty/nuxeo-platform-cs-workflow/src/main/resources/schemas/workflows_common.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + diff --git a/services/workflow/3rdparty/pom.xml b/services/workflow/3rdparty/pom.xml new file mode 100644 index 000000000..8db5da64b --- /dev/null +++ b/services/workflow/3rdparty/pom.xml @@ -0,0 +1,24 @@ + + + + org.collectionspace.services.workflow + org.collectionspace.services + 1.6-SNAPSHOT + + + 4.0.0 + org.collectionspace.services + org.collectionspace.services.workflow.3rdparty + services.workflow.3rdparty + pom + + + 3rd party build for workflow service + + + + nuxeo-platform-cs-workflow + + diff --git a/services/workflow/build.xml b/services/workflow/build.xml new file mode 100644 index 000000000..53604d936 --- /dev/null +++ b/services/workflow/build.xml @@ -0,0 +1,121 @@ + + + + workflow service + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/services/workflow/client/pom.xml b/services/workflow/client/pom.xml new file mode 100644 index 000000000..b1bfac465 --- /dev/null +++ b/services/workflow/client/pom.xml @@ -0,0 +1,85 @@ + + + + org.collectionspace.services + org.collectionspace.services.workflow + 1.6-SNAPSHOT + + + 4.0.0 + org.collectionspace.services + org.collectionspace.services.workflow.client + services.workflow.client + + + + + org.slf4j + slf4j-api + test + + + org.slf4j + slf4j-log4j12 + test + + + + org.collectionspace.services + org.collectionspace.services.jaxb + ${project.version} + + + org.collectionspace.services + org.collectionspace.services.common + true + ${project.version} + + + org.collectionspace.services + org.collectionspace.services.client + ${project.version} + + + org.collectionspace.services + org.collectionspace.services.dimension.client + ${project.version} + + + + org.testng + testng + 5.6 + + + org.jboss.resteasy + resteasy-jaxrs + + + + tjws + webserver + + + + + org.jboss.resteasy + resteasy-jaxb-provider + + + org.jboss.resteasy + resteasy-multipart-provider + + + commons-httpclient + commons-httpclient + 3.1 + + + + + collectionspace-services-workflow-client + + diff --git a/services/workflow/client/src/test/java/org/collectionspace/services/client/test/WorkflowServiceTest.java b/services/workflow/client/src/test/java/org/collectionspace/services/client/test/WorkflowServiceTest.java new file mode 100644 index 000000000..77d2e8eda --- /dev/null +++ b/services/workflow/client/src/test/java/org/collectionspace/services/client/test/WorkflowServiceTest.java @@ -0,0 +1,306 @@ +/** + * This document is a part of the source code and related artifacts + * for CollectionSpace, an open source collections management system + * for museums and related institutions: + * + * http://www.collectionspace.org + * http://wiki.collectionspace.org + * + * Copyright © 2009 Regents of the University of California + * + * Licensed under the Educational Community License (ECL), Version 2.0. + * You may not use this file except in compliance with this License. + * + * You may obtain a copy of the ECL 2.0 License at + * https://source.collectionspace.org/collection-space/LICENSE.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.collectionspace.services.client.test; + +import java.util.List; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.collectionspace.services.client.CollectionSpaceClient; +import org.collectionspace.services.client.PayloadOutputPart; +import org.collectionspace.services.client.PoxPayloadIn; +import org.collectionspace.services.client.PoxPayloadOut; + +import org.collectionspace.services.jaxb.AbstractCommonList; +import org.collectionspace.services.common.workflow.client.WorkflowClient; +import org.collectionspace.services.workflow.WorkflowsCommon; +import org.collectionspace.services.client.DimensionClient; +import org.collectionspace.services.dimension.DimensionsCommon; + +import org.jboss.resteasy.client.ClientResponse; + +import org.testng.Assert; +import org.testng.annotations.Test; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * ObjectExitServiceTest, carries out tests against a deployed and running ObjectExit Service.

+ * $LastChangedRevision: $ + * $LastChangedDate: $ + */ +public class WorkflowServiceTest extends AbstractServiceTestImpl { + + private final String CLASS_NAME = WorkflowServiceTest.class.getName(); + private final Logger logger = LoggerFactory.getLogger(CLASS_NAME); + private String knownResourceId = null; + + @Override + public String getServicePathComponent() { + return WorkflowClient.SERVICE_PATH_COMPONENT; + } + + @Override + protected String getServiceName() { + return WorkflowClient.SERVICE_NAME; + } + + @Override + protected CollectionSpaceClient getClientInstance() { + return new WorkflowClient(); + } + + @Override + protected AbstractCommonList getAbstractCommonList(ClientResponse response) { + return response.getEntity(AbstractCommonList.class); + } + +// @Override +// @Test(dataProvider = "testName", dataProviderClass = AbstractServiceTestImpl.class) +// public void create(String testName) throws Exception { +// logger.debug(testBanner(testName, CLASS_NAME)); +// setupCreate(); +// WorkflowClient client = new WorkflowClient(); +// PoxPayloadOut multipart = createObjectExitInstance(createIdentifier()); +// ClientResponse res = client.create(multipart); +// assertStatusCode(res, testName); +// if (knownResourceId == null) { +// knownResourceId = extractId(res); // Store the ID returned from the first resource created for additional tests below. +// logger.debug(testName + ": knownResourceId=" + knownResourceId); +// } +// allResourceIdsCreated.add(extractId(res)); // Store the IDs from every resource created by tests so they can be deleted after tests have been run. +// } + + /* + * Create a Dimension instance to use as our test target. + */ + @Test(dataProvider = "testName", dataProviderClass = AbstractServiceTestImpl.class) + public void createTestObject(String testName) throws Exception { + logger.debug(testBanner(testName, CLASS_NAME)); + setupCreate(); + DimensionClient client = new DimensionClient(); + PoxPayloadOut multipart = createDimensionInstance(createIdentifier()); + ClientResponse res = client.create(multipart); + assertStatusCode(res, testName); + if (knownResourceId == null) { + knownResourceId = extractId(res); // Store the ID returned from the first resource created for additional tests below. + logger.debug(testName + ": knownResourceId=" + knownResourceId); + } + allResourceIdsCreated.add(extractId(res)); // Store the IDs from every resource created by tests so they can be deleted after tests have been run. + } + + @Override + public void createList(String testName) throws Exception { + //empty N/A + } + + @Override + @Test(dataProvider = "testName", dataProviderClass = AbstractServiceTestImpl.class, dependsOnMethods = {"createTestObject"}) + public void read(String testName) throws Exception { + logger.debug(testBanner(testName, CLASS_NAME)); + setupRead(); + DimensionClient client = new DimensionClient(); + ClientResponse res = client.getWorkflow(knownResourceId); + assertStatusCode(res, testName); + PoxPayloadIn input = new PoxPayloadIn(res.getEntity()); + WorkflowsCommon workflowsCommon = (WorkflowsCommon) extractPart(input, WorkflowClient.SERVICE_COMMONPART_NAME, WorkflowsCommon.class); + if (logger.isDebugEnabled() == true) { + logger.debug("Workflow payload is: " + input.getXmlPayload()); + } + Assert.assertNotNull(workflowsCommon); + } + +// @Override +// @Test(dataProvider = "testName", dataProviderClass = AbstractServiceTestImpl.class, dependsOnMethods = {"createList", "read"}) +// public void readList(String testName) throws Exception { +// logger.debug(testBanner(testName, CLASS_NAME)); +// setupReadList(); +// WorkflowClient client = new WorkflowClient(); +// ClientResponse res = client.readList(); +// AbstractCommonList list = res.getEntity(); +// assertStatusCode(res, testName); +// if (logger.isDebugEnabled()) { +// List items = +// list.getListItem(); +// int i = 0; +// for(AbstractCommonList.ListItem item : items){ +// logger.debug(testName + ": list-item[" + i + "] " + +// item.toString()); +// i++; +// } +// } +// } + + @Override +// @Test(dataProvider = "testName", dataProviderClass = AbstractServiceTestImpl.class, dependsOnMethods = {"read"}) + public void update(String testName) throws Exception { + logger.debug(testBanner(testName, CLASS_NAME)); + setupUpdate(); + WorkflowClient client = new WorkflowClient(); + ClientResponse res = client.read(knownResourceId); + assertStatusCode(res, testName); + logger.debug("got object to update with ID: " + knownResourceId); + PoxPayloadIn input = new PoxPayloadIn(res.getEntity()); + WorkflowsCommon objectexit = (WorkflowsCommon) extractPart(input, client.getCommonPartName(), WorkflowsCommon.class); + Assert.assertNotNull(objectexit); + +// objectexit.setExitNumber("updated-" + objectexit.getExitNumber()); + logger.debug("Object to be updated:"+objectAsXmlString(objectexit, WorkflowsCommon.class)); + PoxPayloadOut output = new PoxPayloadOut(WorkflowClient.SERVICE_PAYLOAD_NAME); + PayloadOutputPart commonPart = output.addPart(objectexit, MediaType.APPLICATION_XML_TYPE); + commonPart.setLabel(client.getCommonPartName()); + res = client.update(knownResourceId, output); + assertStatusCode(res, testName); + input = new PoxPayloadIn(res.getEntity()); + WorkflowsCommon updatedObjectExit = (WorkflowsCommon) extractPart(input, client.getCommonPartName(), WorkflowsCommon.class); + Assert.assertNotNull(updatedObjectExit); + } + + @Override +// @Test(dataProvider = "testName", dataProviderClass = AbstractServiceTestImpl.class, dependsOnMethods = {"update", "testSubmitRequest"}) + public void updateNonExistent(String testName) throws Exception { + logger.debug(testBanner(testName, CLASS_NAME)); + setupUpdateNonExistent(); + // Submit the request to the service and store the response. + // Note: The ID used in this 'create' call may be arbitrary. + // The only relevant ID may be the one used in update(), below. + WorkflowClient client = new WorkflowClient(); + PoxPayloadOut multipart = createDimensionInstance(NON_EXISTENT_ID); + ClientResponse res = client.update(NON_EXISTENT_ID, multipart); + assertStatusCode(res, testName); + } + + @Override +// @Test(dataProvider = "testName", dataProviderClass = AbstractServiceTestImpl.class, dependsOnMethods = {"create", "readList", "testSubmitRequest", "update"}) + public void delete(String testName) throws Exception { + logger.debug(testBanner(testName, CLASS_NAME)); + setupDelete(); + WorkflowClient client = new WorkflowClient(); + ClientResponse res = client.delete(knownResourceId); + assertStatusCode(res, testName); + } + + // --------------------------------------------------------------- + // Failure outcome tests : means we expect response to fail, but test to succeed + // --------------------------------------------------------------- + + // Failure outcome + @Override +// @Test(dataProvider = "testName", dataProviderClass = AbstractServiceTestImpl.class, dependsOnMethods = {"read"}) + public void readNonExistent(String testName) throws Exception { + logger.debug(testBanner(testName, CLASS_NAME)); + setupReadNonExistent(); + WorkflowClient client = new WorkflowClient(); + ClientResponse res = client.read(NON_EXISTENT_ID); + assertStatusCode(res, testName); + } + + // Failure outcome + @Override +// @Test(dataProvider = "testName", dataProviderClass = AbstractServiceTestImpl.class, dependsOnMethods = {"delete"}) + public void deleteNonExistent(String testName) throws Exception { + logger.debug(testBanner(testName, CLASS_NAME)); + setupDeleteNonExistent(); + WorkflowClient client = new WorkflowClient(); + ClientResponse res = client.delete(NON_EXISTENT_ID); + assertStatusCode(res, testName); + } + + // Failure outcomes + // Placeholders until the tests below can be implemented. See Issue CSPACE-401. + + @Override + public void createWithEmptyEntityBody(String testName) throws Exception { + } + + @Override + public void createWithMalformedXml(String testName) throws Exception { + } + + @Override + public void createWithWrongXmlSchema(String testName) throws Exception { + } + + @Override + public void updateWithEmptyEntityBody(String testName) throws Exception { + } + + @Override + public void updateWithMalformedXml(String testName) throws Exception { + } + + @Override + public void updateWithWrongXmlSchema(String testName) throws Exception { + } + + // --------------------------------------------------------------- + // Utility tests : tests of code used in tests above + // --------------------------------------------------------------- + +// @Test(dependsOnMethods = {"create", "read"}) + public void testSubmitRequest() { + final int EXPECTED_STATUS = Response.Status.OK.getStatusCode(); // Expected status code: 200 OK + String method = ServiceRequestType.READ.httpMethodName(); + String url = getResourceURL(knownResourceId); + int statusCode = submitRequest(method, url); + logger.debug("testSubmitRequest: url=" + url + " status=" + statusCode); + Assert.assertEquals(statusCode, EXPECTED_STATUS); + } + + // --------------------------------------------------------------- + // Utility methods used by tests above + // --------------------------------------------------------------- + private PoxPayloadOut createDimensionInstance(String dimensionValue) { + String value = "dimensionValue-" + dimensionValue; + String dimensionsCommonPartName = new DimensionClient().getCommonPartName(); + DimensionsCommon dimensionsCommon = new DimensionsCommon(); + + dimensionsCommon.setValue(value); + PoxPayloadOut multipart = new PoxPayloadOut(DimensionClient.SERVICE_PAYLOAD_NAME); + PayloadOutputPart commonPart = multipart.addPart(dimensionsCommonPartName, dimensionsCommon); + + if (logger.isDebugEnabled()) { + logger.debug("To be created, Dimensions common: " + commonPart.asXML()); + logger.debug(objectAsXmlString(dimensionsCommon, DimensionsCommon.class)); + } + + return multipart; + } + + @Override + public void create(String testName) throws Exception { + //empty N/A + } + + @Override + public void readList(String testName) throws Exception { + //empty N/A + } + + @Override + public void readPaginatedList(String testName) throws Exception { + //empty N/A + } + +} diff --git a/services/workflow/client/src/test/resources/log4j.properties b/services/workflow/client/src/test/resources/log4j.properties new file mode 100644 index 000000000..18c510350 --- /dev/null +++ b/services/workflow/client/src/test/resources/log4j.properties @@ -0,0 +1,23 @@ +log4j.rootLogger=debug, stdout, R + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout + +# Pattern to output the caller's file name and line number. +log4j.appender.stdout.layout.ConversionPattern=%d %-5p [%t] [%c:%L] %m%n + +log4j.appender.R=org.apache.log4j.RollingFileAppender +log4j.appender.R.File=target/test-client.log + +log4j.appender.R.MaxFileSize=100KB +# Keep one backup file +log4j.appender.R.MaxBackupIndex=1 + +log4j.appender.R.layout=org.apache.log4j.PatternLayout +log4j.appender.R.layout.ConversionPattern=%d %-5p [%t] [%c:%L] %m%n + +#packages +log4j.logger.org.collectionspace=DEBUG +log4j.logger.org.apache=INFO +log4j.logger.httpclient=INFO +log4j.logger.org.jboss.resteasy=INFO diff --git a/services/workflow/jaxb/pom.xml b/services/workflow/jaxb/pom.xml new file mode 100644 index 000000000..a0677e8d5 --- /dev/null +++ b/services/workflow/jaxb/pom.xml @@ -0,0 +1,47 @@ + + + + org.collectionspace.services.workflow + org.collectionspace.services + 1.6-SNAPSHOT + + + 4.0.0 + org.collectionspace.services + org.collectionspace.services.workflow.jaxb + services.workflow.jaxb + + + + com.sun.xml.bind + jaxb-impl + + + org.jvnet.jaxb2-commons + property-listener-injector + + + org.jvnet.jaxb2_commons + runtime + + + org.collectionspace.services + org.collectionspace.services.jaxb + ${project.version} + + + + + collectionspace-services-workflow-jaxb + install + + + org.jvnet.jaxb2.maven2 + maven-jaxb2-plugin + + + + + diff --git a/services/workflow/pom.xml b/services/workflow/pom.xml new file mode 100644 index 000000000..63309a1d2 --- /dev/null +++ b/services/workflow/pom.xml @@ -0,0 +1,23 @@ + + + + + org.collectionspace.services + org.collectionspace.services.main + 1.6-SNAPSHOT + + + 4.0.0 + org.collectionspace.services + org.collectionspace.services.workflow + services.workflow + pom + + + 3rdparty + client + service + + + + diff --git a/services/workflow/service/.project b/services/workflow/service/.project new file mode 100644 index 000000000..1d4d27430 --- /dev/null +++ b/services/workflow/service/.project @@ -0,0 +1,23 @@ + + org.collectionspace.services.workflow.service + NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse. + + org.collectionspace.services.3rdparty.nuxeo.quote-api + org.collectionspace.services.client + org.collectionspace.services.common + org.collectionspace.services.hyperjaxb + org.collectionspace.services.jaxb + + + + org.eclipse.jdt.core.javabuilder + + + org.maven.ide.eclipse.maven2Builder + + + + org.eclipse.jdt.core.javanature + org.maven.ide.eclipse.maven2Nature + + \ No newline at end of file diff --git a/services/workflow/service/pom.xml b/services/workflow/service/pom.xml new file mode 100644 index 000000000..0610a2ec8 --- /dev/null +++ b/services/workflow/service/pom.xml @@ -0,0 +1,96 @@ + + + + + org.collectionspace.services + org.collectionspace.services.workflow + 1.6-SNAPSHOT + + + 4.0.0 + org.collectionspace.services + org.collectionspace.services.workflow.service + services.workflow.service + jar + + + + org.collectionspace.services + org.collectionspace.services.common + ${project.version} + + + org.collectionspace.services + org.collectionspace.services.jaxb + ${project.version} + + + + junit + junit + 4.1 + test + + + org.testng + testng + 5.6 + + + + + + javax.security + jaas + 1.0.01 + provided + + + + dom4j + dom4j + 1.6.1 + provided + + + + + + org.jboss.resteasy + resteasy-jaxrs + + + tjws + webserver + + + + + org.jboss.resteasy + resteasy-jaxb-provider + + + org.jboss.resteasy + resteasy-multipart-provider + + + + + + org.nuxeo.ecm.core + nuxeo-core-api + ${nuxeo.core.version} + + + jboss-remoting + jboss + + + + + + + collectionspace-services-workflow + + + diff --git a/services/workflow/service/src/main/java/org/collectionspace/services/workflow/WorkflowResource.java b/services/workflow/service/src/main/java/org/collectionspace/services/workflow/WorkflowResource.java new file mode 100644 index 000000000..0e27cceb3 --- /dev/null +++ b/services/workflow/service/src/main/java/org/collectionspace/services/workflow/WorkflowResource.java @@ -0,0 +1,112 @@ +/** + * This document is a part of the source code and related artifacts + * for CollectionSpace, an open source collections management system + * for museums and related institutions: + + * http://www.collectionspace.org + * http://wiki.collectionspace.org + + * Copyright 2009 University of California at Berkeley + + * Licensed under the Educational Community License (ECL), Version 2.0. + * You may not use this file except in compliance with this License. + + * You may obtain a copy of the ECL 2.0 License at + + * https://source.collectionspace.org/collection-space/LICENSE.txt + + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.collectionspace.services.workflow; + +import org.collectionspace.services.client.IQueryManager; +import org.collectionspace.services.client.PoxPayloadIn; +import org.collectionspace.services.client.PoxPayloadOut; +import org.collectionspace.services.common.ResourceBase; +import org.collectionspace.services.common.ServiceMessages; +import org.collectionspace.services.common.context.ServiceContext; +import org.collectionspace.services.jaxb.AbstractCommonList; +import org.collectionspace.services.common.workflow.client.WorkflowClient; + +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.UriInfo; + +@Path(WorkflowClient.SERVICE_PATH) +@Produces({"application/xml"}) +@Consumes({"application/xml"}) +public class WorkflowResource extends ResourceBase { + + @Override + public String getServiceName(){ + return WorkflowClient.SERVICE_NAME; + } + + @Override + protected String getVersionString() { + final String lastChangeRevision = "$LastChangedRevision: 2108 $"; + return lastChangeRevision; + } + + @Override + //public Class getCommonPartClass() { + public Class getCommonPartClass() { + try { + return Class.forName("org.collectionspace.services.objectexit.WorkflowCommon");//.class; + } catch (ClassNotFoundException e){ + return null; + } + } + + /* + * HTTP Methods + */ + + @Override + @POST + public Response create(@Context UriInfo ui, String xmlPayload) { + Response response = Response.status(Response.Status.BAD_REQUEST) + .entity(ServiceMessages.POST_UNSUPPORTED).type("text/plain").build(); + return response; + } + + @Override + @DELETE + @Path("{csid}") + public Response delete(@PathParam("csid") String csid) { + Response response = Response.status(Response.Status.BAD_REQUEST) + .entity(ServiceMessages.DELETE_UNSUPPORTED).type("text/plain") + .build(); + return response; + } + + + /* (non-Javadoc) + * @see org.collectionspace.services.common.ResourceBase#getList(javax.ws.rs.core.UriInfo, java.lang.String) + * + * The workflow sub-resource does not support a getList operation. + */ + @Override + @GET + public AbstractCommonList getList(@Context UriInfo ui, + @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords) { + Response response = Response.status(Response.Status.BAD_REQUEST) + .entity(ServiceMessages.GET_LIST_UNSUPPORTED).type("text/plain") + .build(); + throw new WebApplicationException(response); + } + +} diff --git a/services/workflow/service/src/main/java/org/collectionspace/services/workflow/nuxeo/WorkflowValidatorHandler.java b/services/workflow/service/src/main/java/org/collectionspace/services/workflow/nuxeo/WorkflowValidatorHandler.java new file mode 100644 index 000000000..8ba0fe378 --- /dev/null +++ b/services/workflow/service/src/main/java/org/collectionspace/services/workflow/nuxeo/WorkflowValidatorHandler.java @@ -0,0 +1,63 @@ +package org.collectionspace.services.workflow.nuxeo; + +import org.collectionspace.services.client.PoxPayloadIn; +import org.collectionspace.services.client.PoxPayloadOut; +import org.collectionspace.services.common.document.InvalidDocumentException; +import org.collectionspace.services.common.document.ValidatorHandlerImpl; +import org.collectionspace.services.workflow.WorkflowsCommon; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class WorkflowValidatorHandler extends ValidatorHandlerImpl { + + /** The logger. */ + private final Logger logger = LoggerFactory.getLogger(WorkflowValidatorHandler.class); + + /** Error Messages **/ + private static final String VALIDATION_ERROR = "The intake record payload was invalid. See log file for more details."; + + + @Override + protected Class getCommonPartClass() { + return WorkflowsCommon.class; + } + + @Override + protected void handleCreate() throws InvalidDocumentException { + try { + WorkflowsCommon intakesCommon = (WorkflowsCommon)getCommonPart(); + assert(intakesCommon != null); + } catch (AssertionError e) { + if (logger.isErrorEnabled() == true) { + logger.error(e.getMessage(), e); + } + throw new InvalidDocumentException(VALIDATION_ERROR, e); + } + } + + @Override + protected void handleGet() throws InvalidDocumentException { + // TODO Auto-generated method stub + + } + + @Override + protected void handleGetAll() throws InvalidDocumentException { + // TODO Auto-generated method stub + + } + + @Override + protected void handleUpdate() throws InvalidDocumentException { + // TODO Auto-generated method stub + + } + + @Override + protected void handleDelete() throws InvalidDocumentException { + // TODO Auto-generated method stub + + } + +} diff --git a/services/workflow/service/src/test/java/org/collectionspace/services/test/WorkflowServiceTest.java b/services/workflow/service/src/test/java/org/collectionspace/services/test/WorkflowServiceTest.java new file mode 100644 index 000000000..544e33f68 --- /dev/null +++ b/services/workflow/service/src/test/java/org/collectionspace/services/test/WorkflowServiceTest.java @@ -0,0 +1,13 @@ +package org.collectionspace.services.test; + +//import org.collectionspace.services.objectexit.ObjectExit; +//import org.collectionspace.services.objectexit.ObjectexitList; + +/** + * Placeholder for server-side testing of Loan Out service code. + * + * @version $Revision: 2108 $ + */ +public class WorkflowServiceTest { + //empty +} diff --git a/services/workflow/service/src/test/resources/log4j.xml b/services/workflow/service/src/test/resources/log4j.xml new file mode 100644 index 000000000..52121cb83 --- /dev/null +++ b/services/workflow/service/src/test/resources/log4j.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.47.3