]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-3175 Refactored *Resource classes to use functionality in two main base classe...
authorLaramie Crocker <laramie@berkeley.edu>
Sat, 14 May 2011 06:29:40 +0000 (06:29 +0000)
committerLaramie Crocker <laramie@berkeley.edu>
Sat, 14 May 2011 06:29:40 +0000 (06:29 +0000)
43 files changed:
services/IntegrationTests/src/test/resources/test-data/xmlreplay/person/person.xml
services/account/client/src/main/java/org/collectionspace/services/client/AccountClient.java
services/account/service/pom.xml
services/account/service/src/main/java/org/collectionspace/services/account/AccountResource.java
services/authorization-mgt/client/src/main/java/org/collectionspace/services/client/RoleClient.java
services/authorization-mgt/service/pom.xml
services/authorization-mgt/service/src/main/java/org/collectionspace/services/authorization/PermissionResource.java
services/authorization-mgt/service/src/main/java/org/collectionspace/services/authorization/RoleResource.java
services/blob/service/src/main/java/org/collectionspace/services/blob/BlobResource.java
services/client/src/main/java/org/collectionspace/services/client/AbstractServiceClientImpl.java
services/client/src/main/java/org/collectionspace/services/client/test/ServiceRequestType.java
services/client/src/test/resources/log4j.properties
services/collectionobject/service/src/main/java/org/collectionspace/services/collectionobject/CollectionObjectResource.java
services/common/src/main/java/org/collectionspace/services/common/AbstractCollectionSpaceResourceImpl.java
services/common/src/main/java/org/collectionspace/services/common/AbstractMultiPartCollectionSpaceResourceImpl.java
services/common/src/main/java/org/collectionspace/services/common/ResourceBase.java
services/common/src/main/java/org/collectionspace/services/common/SecurityResourceBase.java [new file with mode: 0644]
services/contact/service/src/main/java/org/collectionspace/services/contact/ContactResource.java
services/dimension/service/pom.xml
services/dimension/service/src/main/java/org/collectionspace/services/dimension/DimensionResource.java
services/imports/service/src/main/java/org/collectionspace/services/imports/ImportsResource.java
services/intake/service/src/main/java/org/collectionspace/services/intake/IntakeResource.java
services/loanin/client/src/main/java/org/collectionspace/services/client/LoaninClient.java
services/loanin/service/pom.xml
services/loanin/service/src/main/java/org/collectionspace/services/loanin/LoaninResource.java
services/loanout/service/src/main/java/org/collectionspace/services/loanout/LoanoutResource.java
services/location/service/src/main/java/org/collectionspace/services/location/LocationAuthorityResource.java
services/media/service/src/main/java/org/collectionspace/services/media/MediaResource.java
services/movement/client/src/test/java/org/collectionspace/services/client/test/MovementSortByTest.java
services/movement/service/pom.xml
services/movement/service/src/main/java/org/collectionspace/services/movement/MovementResource.java
services/note/client/src/main/java/org/collectionspace/services/client/NoteClient.java
services/note/service/pom.xml
services/note/service/src/main/java/org/collectionspace/services/note/NoteResource.java
services/organization/service/src/main/java/org/collectionspace/services/organization/OrgAuthorityResource.java
services/person/service/src/main/java/org/collectionspace/services/person/PersonAuthorityResource.java
services/relation/service/src/main/java/org/collectionspace/services/relation/RelationResource.java
services/report/client/src/main/java/org/collectionspace/services/client/ReportClient.java
services/report/service/pom.xml
services/report/service/src/main/java/org/collectionspace/services/report/ReportResource.java
services/taxonomy/service/src/main/java/org/collectionspace/services/taxonomy/TaxonomyAuthorityResource.java
services/vocabulary/service/src/main/java/org/collectionspace/services/vocabulary/VocabularyResource.java
services/workflow/service/src/main/java/org/collectionspace/services/workflow/WorkflowResource.java

index b13b339cddcd29da8a963e8c31b3093e044b4a4e..840bbc84ebf0014c9b0cb4bb84d2047c2c4a151a 100755 (executable)
        \r
        !-- ========================= POST a person ===================================================== -->\r
        \r
-       <testGroup ID="postPerson" autoDeletePOSTS="false">\r
+       <testGroup ID="postPerson" autoDeletePOSTS="true">\r
            <test ID="PersonAuth1" auth="admin@collectionspace.org">\r
             <method>POST</method>\r
             <uri>/cspace-services/personauthorities/</uri>\r
index 3e25e0aa5735b4b03951f50324ce5feef8847e90..6fff4a5e7e4f0a1b28a1d3af3159c2b8c4685ed9 100644 (file)
@@ -38,6 +38,8 @@ import org.jboss.resteasy.client.ClientResponse;
  */
 public class AccountClient extends AbstractServiceClientImpl<AccountsCommonList, AccountProxy> {
     public static final String SERVICE_NAME = "accounts";
+    public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME;
+    public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT;
 
        @Override
        public String getServiceName() {
index 2e4f775098a712b7b1c91a60e4b4c8a0133d3670..a8beb657dd863953fe524d36c5e35c2ad751dc43 100644 (file)
             <artifactId>org.collectionspace.services.account.jaxb</artifactId>\r
             <version>${project.version}</version>\r
         </dependency>\r
-        \r
+        <dependency>\r
+            <groupId>org.collectionspace.services</groupId>\r
+            <artifactId>org.collectionspace.services.account.client</artifactId>\r
+            <version>${project.version}</version>\r
+        </dependency>\r
+\r
         <!-- External dependencies -->\r
         \r
         <dependency>\r
index bb7fc830fb59ae0ac28b4291a665af86ef2c0c95..61da822b9a5eb4d648aa9c77672cf07fd97e4eec 100644 (file)
  */
 package org.collectionspace.services.account;
 
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
-import org.collectionspace.services.authorization.AccountRoleRel;
-import org.collectionspace.services.authorization.AccountPermission;
-//import org.collectionspace.services.authorization.AccountRolesList;
 import org.collectionspace.services.account.storage.AccountStorageClient;
+import org.collectionspace.services.authorization.AccountPermission;
 import org.collectionspace.services.authorization.AccountRole;
+import org.collectionspace.services.authorization.AccountRoleRel;
 import org.collectionspace.services.authorization.SubjectType;
-import org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl;
+import org.collectionspace.services.client.AccountClient;
+import org.collectionspace.services.common.SecurityResourceBase;
 import org.collectionspace.services.common.ServiceMessages;
+import org.collectionspace.services.common.context.RemoteServiceContextFactory;
 import org.collectionspace.services.common.context.ServiceContext;
 import org.collectionspace.services.common.context.ServiceContextFactory;
-import org.collectionspace.services.common.context.RemoteServiceContextFactory;
-import org.collectionspace.services.common.document.BadRequestException;
-import org.collectionspace.services.common.document.DocumentFilter;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.common.security.UnauthorizedException;
 import org.collectionspace.services.common.storage.StorageClient;
 import org.collectionspace.services.common.storage.jpa.JpaStorageUtils;
 import org.jboss.resteasy.util.HttpResponseCodes;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-/**
- * AccountResource provides RESTful interface to the account service
- */
-@Path("/accounts")
+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.UriBuilder;
+import javax.ws.rs.core.UriInfo;
+
+
+/** AccountResource provides RESTful interface to the account service  */
+@Path(AccountClient.SERVICE_PATH)
 @Consumes("application/xml")
 @Produces("application/xml")
-public class AccountResource
-        extends AbstractCollectionSpaceResourceImpl<AccountsCommon, AccountsCommon> {
+public class AccountResource extends SecurityResourceBase {
 
-    /** The service name. */
-    final private String serviceName = "accounts";
-    /** The logger. */
     final Logger logger = LoggerFactory.getLogger(AccountResource.class);
-    /** The storage client. */
     final StorageClient storageClient = new AccountStorageClient();
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
-     */
     @Override
     protected String getVersionString() {
-        /** The last change revision. */
-        final String lastChangeRevision = "$LastChangedRevision: 1165 $";
-        return lastChangeRevision;
+        return "$LastChangedRevision: 1165 $";
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
-        return serviceName;
+        return AccountClient.SERVICE_NAME;
     }
 
     @Override
@@ -101,258 +79,46 @@ public class AccountResource
         return AccountsCommon.class;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.CollectionSpaceResource#getServiceContextFactory()
-     */
     @Override
     public ServiceContextFactory<AccountsCommon, AccountsCommon> getServiceContextFactory() {
         return (ServiceContextFactory<AccountsCommon, AccountsCommon>) RemoteServiceContextFactory.get();
     }
 
-//    private <T> ServiceContext createServiceContext(T obj) throws Exception {
-//        ServiceContext ctx = new RemoteServiceContextImpl<T, T>(getServiceName());
-//        ctx.setInput(obj);
-//        ctx.setDocumentType(AccountsCommon.class.getPackage().getName()); //persistence unit
-//        ctx.setProperty("entity-name", AccountsCommon.class.getName());
-//        return ctx;
-//    }
-
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getStorageClient(org.collectionspace.services.common.context.ServiceContext)
-     */
     @Override
-    public StorageClient getStorageClient(ServiceContext<AccountsCommon, AccountsCommon> ctx) {
+    public StorageClient getStorageClient(ServiceContext ctx) {
         //FIXME use ctx to identify storage client
         return storageClient;
     }
 
-//    @Override
-//    public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-//        DocumentHandler docHandler = ctx.getDocumentHandler();
-//        docHandler.setCommonPart(ctx.getInput());
-//        return docHandler;
-//    }
-    /**
-     * Creates the account.
-     *
-     * @param input the input
-     *
-     * @return the response
-     */
     @POST
     public Response createAccount(AccountsCommon input) {
-        try {
-            ServiceContext<AccountsCommon, AccountsCommon> ctx = createServiceContext(input, AccountsCommon.class);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            String csid = getStorageClient(ctx).create(ctx, handler);
-            UriBuilder path = UriBuilder.fromResource(AccountResource.class);
-            path.path("" + csid);
-            Response response = Response.created(path.build()).build();
-            return response;
-        } catch (BadRequestException bre) {
-            Response response = Response.status(
-                    Response.Status.BAD_REQUEST).entity(ServiceMessages.POST_FAILED
-                    + bre.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.POST_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in createAccount", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.POST_FAILED + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        return create(input);
     }
 
-    /**
-     * Gets the account.
-     * 
-     * @param csid the csid
-     * 
-     * @return the account
-     */
     @GET
     @Path("{csid}")
-    public AccountsCommon getAccount(
-            @PathParam("csid") String csid) {
-       
-        if (logger.isDebugEnabled()) {
-            logger.debug("getAccount with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("getAccount: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.GET_FAILED + ServiceMessages.MISSING_INVALID_CSID + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        AccountsCommon result = null;
-        try {
-            ServiceContext<AccountsCommon, AccountsCommon> ctx = createServiceContext((AccountsCommon) null, AccountsCommon.class);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getStorageClient(ctx).get(ctx, csid, handler);
-            result = (AccountsCommon) ctx.getOutput();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getAccount", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getAccount", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(ServiceMessages.GET_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result;
+    public AccountsCommon getAccount(@PathParam("csid") String csid) {
+        return (AccountsCommon)get(csid, AccountsCommon.class);
     }
 
-    /**
-     * Gets the account list.
-     * 
-     * @param ui the ui
-     * 
-     * @return the account list
-     */
     @GET
     @Produces("application/xml")
-    public AccountsCommonList getAccountList(
-            @Context UriInfo ui) {
-        AccountsCommonList accountList = new AccountsCommonList();
-        try {
-            MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-            ServiceContext<AccountsCommon, AccountsCommon> ctx = createServiceContext((AccountsCommon) null,
-                       queryParams, AccountsCommon.class);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            handler.getDocumentFilter().setQueryParams(queryParams);
-//            DocumentFilter myFilter = handler.createDocumentFilter();
-//            myFilter.setPagination(queryParams);
-//            myFilter.setQueryParams(queryParams);
-//            handler.setDocumentFilter(myFilter);
-            getStorageClient(ctx).getFiltered(ctx, handler);
-            accountList = (AccountsCommonList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.LIST_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getAccountList", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(ServiceMessages.LIST_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return accountList;
+    public AccountsCommonList getAccountList(@Context UriInfo ui) {
+        return (AccountsCommonList)getList(ui, AccountsCommon.class);
     }
 
-    /**
-     * Update account.
-     * 
-     * @param csid the csid
-     * @param theUpdate the the update
-     * 
-     * @return the accounts common
-     */
     @PUT
     @Path("{csid}")
-    public AccountsCommon updateAccount(
-            @PathParam("csid") String csid,
-            AccountsCommon theUpdate) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("updateAccount with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("updateAccount: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.PUT_FAILED + ServiceMessages.MISSING_INVALID_CSID + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        AccountsCommon result = null;
-        try {
-            ServiceContext<AccountsCommon, AccountsCommon> ctx = createServiceContext(theUpdate, AccountsCommon.class);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getStorageClient(ctx).update(ctx, csid, handler);
-            result = (AccountsCommon) ctx.getOutput();
-        } catch (BadRequestException bre) {
-            Response response = Response.status(
-                    Response.Status.BAD_REQUEST).entity(ServiceMessages.PUT_FAILED
-                    + bre.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.PUT_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caugth exception in updateAccount", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.PUT_FAILED + "csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(ServiceMessages.PUT_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result;
+    public AccountsCommon updateAccount(@PathParam("csid") String csid,AccountsCommon theUpdate) {
+        return (AccountsCommon)update(csid, theUpdate, AccountsCommon.class);
     }
 
-    /**
-     * Delete account.
-     * 
-     * @param csid the csid
-     * 
-     * @return the response
-     */
+
     @DELETE
     @Path("{csid}")
     public Response deleteAccount(@PathParam("csid") String csid) {
-
-        if (logger.isDebugEnabled()) {
-            logger.debug("deleteAccount with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("deleteAccount: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.DELETE_FAILED + ServiceMessages.MISSING_INVALID_CSID + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("deleteAccount with csid=" + csid);
+        ensureCSID(csid, ServiceMessages.DELETE_FAILED);
         try {
             //FIXME ideally the following two ops shoudl be in the same tx CSPACE-658
             //delete all relationships
@@ -362,26 +128,8 @@ public class AccountResource
                     AccountsCommon.class);
             getStorageClient(ctx).delete(ctx, csid);
             return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deleteAccount", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.DELETE_FAILED + "csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(ServiceMessages.DELETE_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.DELETE_FAILED, csid);
         }
 
     }
@@ -396,17 +144,8 @@ public class AccountResource
                 return deleteAccountRole(accCsid, input);
             }
         }
-        if (logger.isDebugEnabled()) {
-            logger.debug("createAccountRole with accCsid=" + accCsid);
-        }
-        if (accCsid == null || "".equals(accCsid)) {
-            logger.error("createAccountRole: missing accCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.POST_FAILED + "accountroles account "
-                    + ServiceMessages.MISSING_INVALID_CSID + accCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("createAccountRole with accCsid=" + accCsid);
+        ensureCSID(accCsid, ServiceMessages.POST_FAILED+ "accountroles account ");
         try {
             AccountRoleSubResource subResource =
                     new AccountRoleSubResource(AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE);
@@ -415,26 +154,8 @@ public class AccountResource
             path.path(accCsid + "/accountroles/" + accrolecsid);
             Response response = Response.created(path.build()).build();
             return response;
-        } catch (BadRequestException bre) {
-            Response response = Response.status(
-                    Response.Status.BAD_REQUEST).entity(ServiceMessages.POST_FAILED
-                    + bre.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.POST_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in createAccountRole", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.POST_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
+         } catch (Exception e) {
+            throw bigReThrow(e, ServiceMessages.POST_FAILED, accCsid);
         }
     }
 
@@ -443,52 +164,18 @@ public class AccountResource
     public AccountRoleRel getAccountRole(
             @PathParam("csid") String accCsid,
             @PathParam("id") String accrolecsid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getAccountRole with accCsid=" + accCsid);
-        }
-        if (accCsid == null || "".equals(accCsid)) {
-            logger.error("getAccountRole: missing accCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.GET_FAILED + "accountroles account "
-                    + ServiceMessages.MISSING_INVALID_CSID + accCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("getAccountRole with accCsid=" + accCsid);
+        ensureCSID(accCsid, ServiceMessages.GET_FAILED+ "accountroles account ");
         AccountRoleRel result = null;
         try {
             AccountRoleSubResource subResource =
                     new AccountRoleSubResource(AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE);
             //get relationships for an account
             result = subResource.getAccountRoleRel(accCsid, SubjectType.ROLE, accrolecsid);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getAccountRole", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "account csid=" + accrolecsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getAccountRole", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.GET_FAILED + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "account csid=" + accCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
+         } catch (Exception e) {
+            throw bigReThrow(e, ServiceMessages.GET_FAILED, accCsid);
         }
+        checkResult(result, accCsid, ServiceMessages.GET_FAILED);
         return result;
     }
     
@@ -496,192 +183,64 @@ public class AccountResource
     @Path("{csid}/accountroles")
     public AccountRole getAccountRole(
             @PathParam("csid") String accCsid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getAccountRole with accCsid=" + accCsid);
-        }
-        if (accCsid == null || "".equals(accCsid)) {
-            logger.error("getAccountRole: missing accCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.GET_FAILED + "accountroles account "
-                    + ServiceMessages.MISSING_INVALID_CSID + accCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("getAccountRole with accCsid=" + accCsid);
+        ensureCSID(accCsid, ServiceMessages.GET_FAILED+ "accountroles account ");
         AccountRole result = null;
         try {
             AccountRoleSubResource subResource =
                     new AccountRoleSubResource(AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE);
             //get relationships for an account
             result = subResource.getAccountRole(accCsid, SubjectType.ROLE);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getAccountRole", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "account csid=" + accCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getAccountRole", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.GET_FAILED + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "account csid=" + accCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.GET_FAILED, accCsid);
         }
+        checkResult(result, accCsid, ServiceMessages.GET_FAILED);
         return result;
     }
 
     @GET
     @Path("{csid}/accountperms")
-    public AccountPermission getAccountPerm(
-               @PathParam("csid") String accCsid) {
-       
-        if (logger.isDebugEnabled()) {
-            logger.debug("getAccountPerm with accCsid=" + accCsid);
-        }
-        if (accCsid == null || "".equals(accCsid)) {
-            logger.error("getAccountPerm: missing accCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.GET_FAILED + "getAccountPerm account "
-                    + ServiceMessages.MISSING_INVALID_CSID + accCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-
+    public AccountPermission getAccountPerm(@PathParam("csid") String accCsid) {
+        logger.debug("getAccountPerm with accCsid=" + accCsid);
+        ensureCSID(accCsid, ServiceMessages.GET_FAILED+ "getAccountPerm account ");
         AccountPermission result = null;
         String userId = "undefined";
         try {
             result = JpaStorageUtils.getAccountPermissions(accCsid);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED +
-                    ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getAccountPerm", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(ServiceMessages.GET_FAILED +
-                       "account userId=" + userId).type("text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-               logger.debug("getAccountPerm", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.GET_FAILED + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "account userId=" + userId).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.GET_FAILED, accCsid);
         }
+        checkResult(result, accCsid, ServiceMessages.GET_FAILED);
         return result;
     }
     
-    /**
-     * Delete account role.
-     *
-     * @param accCsid the acc csid
-     * @param input the input
-     * @return the response
-     */
     public Response deleteAccountRole(String accCsid, AccountRole input) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("deleteAccountRole with accCsid=" + accCsid);
-        }
-        if (accCsid == null || "".equals(accCsid)) {
-            logger.error("deleteAccountRole: missing accCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.DELETE_FAILED + "accountroles account "
-                    + ServiceMessages.MISSING_INVALID_CSID + accCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("deleteAccountRole with accCsid=" + accCsid);
+        ensureCSID(accCsid, ServiceMessages.DELETE_FAILED+ "accountroles account ");
         try {
             AccountRoleSubResource subResource =
                     new AccountRoleSubResource(AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE);
             //delete all relationships for an account
             subResource.deleteAccountRole(accCsid, SubjectType.ROLE, input);
             return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deleteAccountRole", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.DELETE_FAILED + "account csid=" + accCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.DELETE_FAILED + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.DELETE_FAILED, accCsid);
         }
     }
     
     @DELETE
     @Path("{csid}/accountroles")
-    public Response deleteAccountRole(
-            @PathParam("csid") String accCsid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("deleteAccountRole: All roles related to account with accCsid=" + accCsid);
-        }
-        if (accCsid == null || "".equals(accCsid)) {
-            logger.error("deleteAccountRole: missing accCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.DELETE_FAILED + "accountroles account "
-                    + ServiceMessages.MISSING_INVALID_CSID + accCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+    public Response deleteAccountRole(@PathParam("csid") String accCsid) {
+        logger.debug("deleteAccountRole: All roles related to account with accCsid=" + accCsid);
+        ensureCSID(accCsid, ServiceMessages.DELETE_FAILED+ "accountroles account ");
         try {
             AccountRoleSubResource subResource =
                     new AccountRoleSubResource(AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE);
             //delete all relationships for an account
             subResource.deleteAccountRole(accCsid, SubjectType.ROLE);
             return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deleteAccountRole", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.DELETE_FAILED + "account csid=" + accCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.DELETE_FAILED + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.DELETE_FAILED, accCsid);
         }
     }
     
index a52723741b7b98ff41eae8f77c74e029a376a708..544d173a3c94f918cc6584d28bd5b475f9aa6b8c 100644 (file)
@@ -57,10 +57,6 @@ public class RoleClient extends AbstractServiceClientImpl<RolesList, RoleProxy>
         return SERVICE_PATH_COMPONENT;
     }
 
-    /**
-     * @return
-     * @see org.collectionspace.hello.client.RoleProxy#readList()
-     */
     public ClientResponse<RolesList> readList() {
         return getProxy().readList();
 
@@ -71,11 +67,6 @@ public class RoleClient extends AbstractServiceClientImpl<RolesList, RoleProxy>
 
     }
 
-    /**
-     * @param csid
-     * @return
-     * @see org.collectionspace.hello.client.RoleProxy#getAccount(java.lang.String)
-     */
     public ClientResponse<Role> read(String csid) {
         return getProxy().read(csid);
     }
@@ -94,7 +85,6 @@ public class RoleClient extends AbstractServiceClientImpl<RolesList, RoleProxy>
      * @param csid
      * @param role
      * @return
-     * @see org.collectionspace.hello.client.RoleProxy#updateAccount(java.lang.Long, org.collectionspace.services.role.Role)
      */
     public ClientResponse<Role> update(String csid, Role role) {
         return getProxy().update(csid, role);
index 5b1ce87ba66cbfd63ea508edd3587235fc5f5e7b..0edeca7a017105740f320676194751c1244afc79 100644 (file)
     </properties>\r
 \r
     <dependencies>\r
+        <dependency>\r
+            <groupId>org.collectionspace.services</groupId>\r
+            <artifactId>org.collectionspace.services.authorization-mgt.client</artifactId>\r
+            <version>${project.version}</version>\r
+            <scope>provided</scope>\r
+        </dependency>\r
 \r
         <!-- utilities -->\r
 \r
index 61e20083742047c3caf07eb4dd602151ccf52c08..41701453e6906b5fbed34148bcf134a74bb12459 100644 (file)
  */
 package org.collectionspace.services.authorization;
 
+import org.collectionspace.services.authorization.storage.AuthorizationDelegate;
+import org.collectionspace.services.client.PermissionClient;
+import org.collectionspace.services.common.SecurityResourceBase;
+import org.collectionspace.services.common.ServiceMessages;
+import org.collectionspace.services.common.context.RemoteServiceContextFactory;
+import org.collectionspace.services.common.context.ServiceContext;
+import org.collectionspace.services.common.context.ServiceContextFactory;
+import org.collectionspace.services.common.storage.StorageClient;
+import org.collectionspace.services.common.storage.jpa.JpaStorageClientImpl;
+import org.jboss.resteasy.util.HttpResponseCodes;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
 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.WebApplicationException;
 import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriBuilder;
 import javax.ws.rs.core.UriInfo;
 
-import org.collectionspace.services.authorization.storage.PermissionRoleDocumentHandler;
-import org.collectionspace.services.authorization.storage.AuthorizationDelegate;
-
-import org.collectionspace.services.common.storage.StorageClient;
-import org.collectionspace.services.common.storage.jpa.JpaStorageClientImpl;
-import org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl;
-import org.collectionspace.services.common.ServiceMessages;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.context.RemoteServiceContextFactory;
-import org.collectionspace.services.common.context.ServiceContextFactory;
-import org.collectionspace.services.common.document.BadRequestException;
-import org.collectionspace.services.common.document.DocumentFilter;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.common.security.UnauthorizedException;
-
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The Class PermissionResource.
- */
-@Path("/authorization/permissions")
+@Path(PermissionClient.SERVICE_PATH)
 @Consumes("application/xml")
 @Produces("application/xml")
-public class PermissionResource
-        extends AbstractCollectionSpaceResourceImpl<Permission, Permission> {
+public class PermissionResource extends SecurityResourceBase {
 
-    /** The service name. */
-    final private String serviceName = "authorization/permissions";
-    /** The logger. */
     final Logger logger = LoggerFactory.getLogger(PermissionResource.class);
-    /** The storage client. */
     final StorageClient storageClient = new JpaStorageClientImpl();
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
-     */
     @Override
     protected String getVersionString() {
-        /** The last change revision. */
-        final String lastChangeRevision = "$LastChangedRevision: 1165 $";
-        return lastChangeRevision;
+        return "$LastChangedRevision: 1165 $";
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
-        return serviceName;
+        return  PermissionClient.SERVICE_NAME;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
-     */
     @Override
     public Class<Permission> getCommonPartClass() {
         return Permission.class;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.CollectionSpaceResource#getServiceContextFactory()
-     */
     @Override
     public ServiceContextFactory<Permission, Permission> getServiceContextFactory() {
         return RemoteServiceContextFactory.get();
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getStorageClient(org.collectionspace.services.common.context.ServiceContext)
-     */
     @Override
     public StorageClient getStorageClient(ServiceContext ctx) {
         //FIXME use ctx to identify storage client
         return storageClient;
     }
 
-//    @Override
-//    public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-//        DocumentHandler docHandler = ctx.getDocumentHandler();
-//        docHandler.setCommonPart(ctx.getInput());
-//        return docHandler;
-//    }
-    /**
-     * Creates the permission.
-     *
-     * @param input the input
-     *
-     * @return the response
-     */
     @POST
     public Response createPermission(Permission input) {
-        try {
-            ServiceContext<Permission, Permission> ctx = createServiceContext(input, Permission.class);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            String csid = getStorageClient(ctx).create(ctx, handler);
-            UriBuilder path = UriBuilder.fromResource(PermissionResource.class);
-            path.path("" + csid);
-            Response response = Response.created(path.build()).build();
-            return response;
-        } catch (BadRequestException bre) {
-            Response response = Response.status(
-                    Response.Status.BAD_REQUEST).entity(ServiceMessages.POST_FAILED
-                    + bre.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.POST_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in createPermission", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.POST_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        return create(input);
     }
 
-    /**
-     * Gets the permission.
-     * 
-     * @param csid the csid
-     * 
-     * @return the permission
-     */
     @GET
     @Path("{csid}")
-    public Permission getPermission(
-            @PathParam("csid") String csid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getPermission with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("getPermission: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.GET_FAILED + "permission "
-                    + ServiceMessages.MISSING_INVALID_CSID + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        Permission result = null;
-        try {
-            ServiceContext<Permission, Permission> ctx = createServiceContext((Permission) null, Permission.class);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getStorageClient(ctx).get(ctx, csid, handler);
-            result = (Permission) ctx.getOutput();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getPermission", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "permission csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getPermission", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.GET_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + " permission csid=" + csid + ": was not found.").type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result;
+    public Permission getPermission(@PathParam("csid") String csid) {
+        return (Permission)get(csid, Permission.class);
     }
 
-    /**
-     * Gets the permission list.
-     * 
-     * @param ui the ui
-     * 
-     * @return the permission list
-     */
     @GET
     @Produces("application/xml")
-    public PermissionsList getPermissionList(
-            @Context UriInfo ui) {
-        PermissionsList permissionList = new PermissionsList();
-        try {
-            ServiceContext<Permission, Permission> ctx = createServiceContext((Permission) null, Permission.class);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-            DocumentFilter myFilter = handler.createDocumentFilter();
-            myFilter.setPagination(queryParams);
-            myFilter.setQueryParams(queryParams);
-            handler.setDocumentFilter(myFilter);
-            getStorageClient(ctx).getFiltered(ctx, handler);
-            permissionList = (PermissionsList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.LIST_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getPermissionsList", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.LIST_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return permissionList;
+    public PermissionsList getPermissionList(@Context UriInfo ui) {
+        return (PermissionsList)getList(ui, Permission.class);
     }
 
-    /**
-     * Update permission.
-     * 
-     * @param csid the csid
-     * @param theUpdate the the update
-     * 
-     * @return the permission
-     */
     @PUT
     @Path("{csid}")
-    public Permission updatePermission(
-            @PathParam("csid") String csid,
-            Permission theUpdate) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("updatePermission with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("updatePermission: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.PUT_FAILED + "permission "
-                    + ServiceMessages.MISSING_INVALID_CSID + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        Permission result = null;
-        try {
-            ServiceContext<Permission, Permission> ctx = createServiceContext(theUpdate, Permission.class);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getStorageClient(ctx).update(ctx, csid, handler);
-            result = (Permission) ctx.getOutput();
-        } catch (BadRequestException bre) {
-            Response response = Response.status(
-                    Response.Status.BAD_REQUEST).entity(ServiceMessages.PUT_FAILED
-                    + bre.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.PUT_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caugth exception in updatePermission", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.PUT_FAILED + "permission csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.PUT_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result;
+    public Permission updatePermission(@PathParam("csid") String csid,Permission theUpdate) {
+         return (Permission)update(csid, theUpdate, Permission.class);
     }
 
-    /**
-     * Delete permission.
-     * 
-     * @param csid the csid
-     * 
-     * @return the response
-     */
     @DELETE
     @Path("{csid}")
     public Response deletePermission(@PathParam("csid") String csid) {
-
-        if (logger.isDebugEnabled()) {
-            logger.debug("deletePermission with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("deletePermission: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.DELETE_FAILED + "permission "
-                    + ServiceMessages.MISSING_INVALID_CSID + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("deletePermission with csid=" + csid);
+        ensureCSID(csid, ServiceMessages.DELETE_FAILED + "permission ");
         try {
             //FIXME ideally the following two ops should be in the same tx CSPACE-658
             //delete all relationships for this permission
@@ -365,29 +128,9 @@ public class PermissionResource
             ServiceContext<Permission, Permission> ctx = createServiceContext((Permission) null, Permission.class);
             getStorageClient(ctx).delete(ctx, csid);
             return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deletePermission", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.DELETE_FAILED + "permission csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.DELETE_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.DELETE_FAILED, csid);
         }
-
     }
 
     @POST
@@ -400,17 +143,8 @@ public class PermissionResource
                 return deletePermissionRole(permCsid, input);
             }
         }
-        if (logger.isDebugEnabled()) {
-            logger.debug("createPermissionRole with permCsid=" + permCsid);
-        }
-        if (permCsid == null || "".equals(permCsid)) {
-            logger.error("createPermissionRole: missing permCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.POST_FAILED + "permroles permission "
-                    + ServiceMessages.MISSING_INVALID_CSID + permCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("createPermissionRole with permCsid=" + permCsid);
+        ensureCSID(permCsid, ServiceMessages.POST_FAILED + "permroles permission ");
         try {
             PermissionRoleSubResource subResource =
                     new PermissionRoleSubResource(PermissionRoleSubResource.PERMISSION_PERMROLE_SERVICE);
@@ -419,26 +153,8 @@ public class PermissionResource
             path.path(permCsid + "/permroles/" + permrolecsid);
             Response response = Response.created(path.build()).build();
             return response;
-        } catch (BadRequestException bre) {
-            Response response = Response.status(
-                    Response.Status.BAD_REQUEST).entity("Create failed reason "
-                    + bre.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Create failed reason "
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in createPermissionRole", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.POST_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.POST_FAILED, permCsid);
         }
     }
 
@@ -447,54 +163,18 @@ public class PermissionResource
     public PermissionRoleRel getPermissionRole(
             @PathParam("csid") String permCsid,
             @PathParam("id") String permrolecsid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getPermissionRole with permCsid=" + permCsid);
-        }
-        if (permCsid == null || "".equals(permCsid)) {
-            logger.error("getPermissionRole: missing permCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.GET_FAILED + "permroles permission "
-                    + ServiceMessages.MISSING_INVALID_CSID + permCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("getPermissionRole with permCsid=" + permCsid);
+        ensureCSID(permCsid, ServiceMessages.GET_FAILED + "permroles permission ");
         PermissionRoleRel result = null;
         try {
             PermissionRoleSubResource subResource =
                     new PermissionRoleSubResource(PermissionRoleSubResource.PERMISSION_PERMROLE_SERVICE);
             //get relationships for a permission
             result = subResource.getPermissionRoleRel(permCsid, SubjectType.ROLE, permrolecsid);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getPermissionRole", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "permroles permission csid=" + permCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getPermissionRole", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.GET_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "permroles permisison csid=" + permCsid
-                    + ": was not found.").type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.GET_FAILED, permCsid);
         }
+        checkResult(result, permCsid, ServiceMessages.GET_FAILED);
         return result;
     }
 
@@ -502,153 +182,49 @@ public class PermissionResource
     @Path("{csid}/permroles")
     public PermissionRole getPermissionRole(
             @PathParam("csid") String permCsid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getPermissionRole with permCsid=" + permCsid);
-        }
-        if (permCsid == null || "".equals(permCsid)) {
-            logger.error("getPermissionRole: missing permCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.GET_FAILED + "permroles permission "
-                    + ServiceMessages.MISSING_INVALID_CSID + permCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("getPermissionRole with permCsid=" + permCsid);
+        ensureCSID(permCsid, ServiceMessages.GET_FAILED + "permroles permission ");
         PermissionRole result = null;
         try {
             PermissionRoleSubResource subResource =
                     new PermissionRoleSubResource(PermissionRoleSubResource.PERMISSION_PERMROLE_SERVICE);
             //get relationships for a permission
             result = subResource.getPermissionRole(permCsid, SubjectType.ROLE);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getPermissionRole", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "permroles permission csid=" + permCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getPermissionRole", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.GET_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "permroles permisison csid=" + permCsid
-                    + ": was not found.").type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.GET_FAILED, permCsid);
         }
+        checkResult(result, permCsid, ServiceMessages.GET_FAILED);
         return result;
     }
 
-    /**
-     * Delete permission role.
-     *
-     * @param permCsid the perm csid
-     * @param input the input
-     * @return the response
-     */
     public Response deletePermissionRole(String permCsid, PermissionRole input) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("Delete payload of permrole relationships with permission permCsid=" + permCsid);
-        }
-        if (permCsid == null || "".equals(permCsid)) {
-            logger.error("deletePermissionRole: missing permCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.DELETE_FAILED + "permroles permission "
-                    + ServiceMessages.MISSING_INVALID_CSID + permCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("Delete payload of permrole relationships with permission permCsid=" + permCsid);
+        ensureCSID(permCsid, ServiceMessages.DELETE_FAILED + "permroles permission ");
         try {
             PermissionRoleSubResource subResource =
                     new PermissionRoleSubResource(PermissionRoleSubResource.PERMISSION_PERMROLE_SERVICE);
             //delete all relationships for a permission
             subResource.deletePermissionRole(permCsid, SubjectType.ROLE, input);
             return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deletePermissionRole", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.DELETE_FAILED + "permisison csid=" + permCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.DELETE_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.DELETE_FAILED, permCsid);
         }
-
     }
     
-    /**
-     * Delete permission role.
-     *
-     * @param permCsid the perm csid
-     * @return the response
-     */
     @DELETE
     @Path("{csid}/permroles")    
     public Response deletePermissionRole(
             @PathParam("csid") String permCsid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("Delete all the role relationships of the permissions with permCsid=" + permCsid);
-        }
-        if (permCsid == null || "".equals(permCsid)) {
-            logger.error("deletePermissionRole: missing permCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.DELETE_FAILED + "permroles permission "
-                    + ServiceMessages.MISSING_INVALID_CSID + permCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("Delete all the role relationships of the permissions with permCsid=" + permCsid);
+         ensureCSID(permCsid, ServiceMessages.DELETE_FAILED + "permroles permission ");
         try {
             PermissionRoleSubResource subResource =
                     new PermissionRoleSubResource(PermissionRoleSubResource.PERMISSION_PERMROLE_SERVICE);
             //delete all relationships for a permission
             subResource.deletePermissionRole(permCsid, SubjectType.ROLE);
             return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deletePermissionRole", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.DELETE_FAILED + "permisison csid=" + permCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.DELETE_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.DELETE_FAILED, permCsid);
         }
     }
     
index 03dcd06385fb0736cdea9c730f449df12e07ff44..fbfaac52a4d1a01422daa7a9b1ed40a040406e8d 100644 (file)
  */
 package org.collectionspace.services.authorization;
 
+import org.collectionspace.services.account.AccountRoleSubResource;
+import org.collectionspace.services.client.RoleClient;
+import org.collectionspace.services.common.SecurityResourceBase;
+import org.collectionspace.services.common.ServiceMessages;
+import org.collectionspace.services.common.context.RemoteServiceContextFactory;
+import org.collectionspace.services.common.context.ServiceContext;
+import org.collectionspace.services.common.context.ServiceContextFactory;
+import org.collectionspace.services.common.storage.StorageClient;
+import org.collectionspace.services.common.storage.jpa.JpaStorageClientImpl;
+import org.jboss.resteasy.util.HttpResponseCodes;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
 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.WebApplicationException;
 import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriBuilder;
 import javax.ws.rs.core.UriInfo;
 
-import org.collectionspace.services.account.AccountRoleSubResource;
-import org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl;
-//import org.collectionspace.services.common.context.RemoteServiceContextImpl;
-import org.collectionspace.services.common.ServiceMessages;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.context.ServiceContextFactory;
-import org.collectionspace.services.common.context.RemoteServiceContextFactory;
-import org.collectionspace.services.common.document.BadRequestException;
-import org.collectionspace.services.common.document.DocumentException;
-import org.collectionspace.services.common.document.DocumentFilter;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.common.security.UnauthorizedException;
-import org.collectionspace.services.common.storage.StorageClient;
-import org.collectionspace.services.common.storage.jpa.JpaStorageClientImpl;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-// TODO: Auto-generated Javadoc
-/**
- * The Class RoleResource.
- */
-@Path("/authorization/roles") //FIXME: REM - Replace string constant with RoleClient.SERVICE_PATH
+@Path(RoleClient.SERVICE_PATH)
 @Consumes("application/xml")
 @Produces("application/xml")
-public class RoleResource
-        extends AbstractCollectionSpaceResourceImpl {
+public class RoleResource extends SecurityResourceBase {
 
-    /** The service name. */
-    final private String serviceName = "authorization/roles";
-    /** The logger. */
     final Logger logger = LoggerFactory.getLogger(RoleResource.class);
-    /** The storage client. */
     final StorageClient storageClient = new JpaStorageClientImpl();
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
-     */
     @Override
     protected String getVersionString() {
-        /** The last change revision. */
-        final String lastChangeRevision = "$LastChangedRevision: 1165 $";
-        return lastChangeRevision;
+        return  "$LastChangedRevision: 1165 $";
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
-        return serviceName;
+        return RoleClient.SERVICE_NAME;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
-     */
     @Override
     public Class<RoleResource> getCommonPartClass() {
         return RoleResource.class;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.CollectionSpaceResource#getServiceContextFactory()
-     */
     @Override
     public ServiceContextFactory getServiceContextFactory() {
         return RemoteServiceContextFactory.get();
     }
 
-//    private <T> ServiceContext createServiceContext(T obj) throws Exception {
-//        ServiceContext ctx = new RemoteServiceContextImpl<T, T>(getServiceName());
-//        ctx.setInput(obj);
-//        ctx.setDocumentType(Role.class.getPackage().getName()); //persistence unit
-//        ctx.setProperty("entity-name", Role.class.getName());
-//        return ctx;
-//    }
-
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getStorageClient(org.collectionspace.services.common.context.ServiceContext)
-     */
     @Override
     public StorageClient getStorageClient(ServiceContext ctx) {
         //FIXME use ctx to identify storage client
         return storageClient;
     }
 
-//    @Override
-//    public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-//        DocumentHandler docHandler = ctx.getDocumentHandler();
-//        docHandler.setCommonPart(ctx.getInput());
-//        return docHandler;
-//    }
-    /**
-     * Creates the role.
-     *
-     * @param input the input
-     *
-     * @return the response
-     */
     @POST
     public Response createRole(Role input) {
-       Response response = null;
-
-       try {
-            ServiceContext ctx = createServiceContext(input, Role.class);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            String csid = getStorageClient(ctx).create(ctx, handler);
-            UriBuilder path = UriBuilder.fromResource(RoleResource.class);
-            path.path("" + csid);
-            response = Response.created(path.build()).build();
-        } catch (BadRequestException bre) {
-            response = Response.status(
-                    Response.Status.BAD_REQUEST).entity(ServiceMessages.POST_FAILED
-                    + bre.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentException bre) {
-            response = Response.status(
-                    Response.Status.BAD_REQUEST).entity(ServiceMessages.POST_FAILED
-                    + bre.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (UnauthorizedException ue) {
-            response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.POST_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught a general exception in RoleResource:createRole post: ", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(ServiceMessages.POST_FAILED
-                    + e.getMessage()).type("text/plain").build();
-            throw new WebApplicationException(e, response);
-        }
-        
-        return response;        
+        return create(input);
     }
 
-    /**
-     * Gets the role.
-     * 
-     * @param csid the csid
-     * 
-     * @return the role
-     */
     @GET
     @Path("{csid}")
-    public Role getRole(
-            @PathParam("csid") String csid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getRole with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("getRole: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.GET_FAILED + "role csid=").type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        Role result = null;
-        try {
-            ServiceContext ctx = createServiceContext((Role) null, Role.class);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getStorageClient(ctx).get(ctx, csid, handler);
-            result = (Role) ctx.getOutput();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getRole", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "role csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getRole", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(ServiceMessages.GET_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "role csid=" + csid + ": was not found.").type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result;
+    public Role getRole(@PathParam("csid") String csid) {
+        return (Role)get(csid, Role.class);
     }
 
-    /**
-     * Gets the role list.
-     * 
-     * @param ui the ui
-     * 
-     * @return the role list
-     */
     @GET
     @Produces("application/xml")
-    public RolesList getRoleList(
-            @Context UriInfo ui) {
-        RolesList roleList = new RolesList();
-        try {
-            ServiceContext ctx = createServiceContext((Role) null, Role.class);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-            DocumentFilter myFilter = handler.createDocumentFilter();
-            myFilter.setPagination(queryParams);
-            myFilter.setQueryParams(queryParams);
-            handler.setDocumentFilter(myFilter);
-            getStorageClient(ctx).getFiltered(ctx, handler);
-            roleList = (RolesList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.LIST_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getRoleList", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(ServiceMessages.LIST_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return roleList;
+    public RolesList getRoleList(@Context UriInfo ui) {
+        return (RolesList)getList(ui, Role.class);
     }
 
-    /**
-     * Update role.
-     * 
-     * @param csid the csid
-     * @param theUpdate the the update
-     * 
-     * @return the role
-     */
     @PUT
     @Path("{csid}")
-    public Role updateRole(
-            @PathParam("csid") String csid,
-            Role theUpdate) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("updateRole with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("updateRole: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.PUT_FAILED + "role "
-                    + ServiceMessages.MISSING_INVALID_CSID + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        Role result = null;
-        try {
-            ServiceContext ctx = createServiceContext(theUpdate, Role.class);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getStorageClient(ctx).update(ctx, csid, handler);
-            result = (Role) ctx.getOutput();
-        } catch (BadRequestException bre) {
-            Response response = Response.status(
-                    Response.Status.BAD_REQUEST).entity(ServiceMessages.PUT_FAILED
-                    + bre.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.PUT_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caugth exception in updateRole", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.PUT_FAILED + "role csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.PUT_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result;
+    public Role updateRole(@PathParam("csid") String csid, Role theUpdate) {
+        return (Role)update(csid, theUpdate, Role.class);
     }
 
-    /**
-     * Delete role.
-     * 
-     * @param csid the csid
-     * 
-     * @return the response
-     */
     @DELETE
     @Path("{csid}")
     public Response deleteRole(@PathParam("csid") String csid) {
+        logger.debug("deleteRole with csid=" + csid);
+        ensureCSID(csid, ServiceMessages.DELETE_FAILED + "deleteRole ");
 
-        if (logger.isDebugEnabled()) {
-            logger.debug("deleteRole with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("deleteRole: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.DELETE_FAILED + "role csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
         try {
             //FIXME ideally the following three operations should be in the same tx CSPACE-658
             //delete all relationships for this permission
@@ -374,37 +127,11 @@ public class RoleResource
             ServiceContext<Role, Role> ctx = createServiceContext((Role) null, Role.class);
             ((JpaStorageClientImpl) getStorageClient(ctx)).deleteWhere(ctx, csid);
             return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deleteRole", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.DELETE_FAILED + "role csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.DELETE_FAILED + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.DELETE_FAILED, csid);
         }
-
     }
 
-    /**
-     * Creates the role permission.
-     *
-     * @param method the method
-     * @param roleCsid the role csid
-     * @param input the input
-     * @return the response
-     */
     @POST
     @Path("{csid}/permroles")
     public Response createRolePermission(@QueryParam("_method") String method, @PathParam("csid") String roleCsid,
@@ -414,17 +141,8 @@ public class RoleResource
                 return deleteRolePermission(roleCsid, input);
             }
         }
-        if (logger.isDebugEnabled()) {
-            logger.debug("createRolePermission with roleCsid=" + roleCsid);
-        }
-        if (roleCsid == null || "".equals(roleCsid)) {
-            logger.error("createRolePermission: missing roleCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.POST_FAILED + "permroles role "
-                    + ServiceMessages.MISSING_INVALID_CSID + roleCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("createRolePermission with roleCsid=" + roleCsid);
+        ensureCSID(roleCsid, ServiceMessages.PUT_FAILED + "permroles role ");
         try {
             PermissionRoleSubResource subResource =
                     new PermissionRoleSubResource(PermissionRoleSubResource.ROLE_PERMROLE_SERVICE);
@@ -433,88 +151,27 @@ public class RoleResource
             path.path(roleCsid + "/permroles/" + permrolecsid);
             Response response = Response.created(path.build()).build();
             return response;
-        } catch (BadRequestException bre) {
-            Response response = Response.status(
-                    Response.Status.BAD_REQUEST).entity("Create failed reason "
-                    + bre.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Create failed reason "
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in createRolePermission", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.POST_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.DELETE_FAILED, roleCsid);
         }
     }
 
-    /**
-     * Gets the role permission.
-     *
-     * @param roleCsid the role csid
-     * @param permrolecsid the permrolecsid
-     * @return the role permission
-     */
     @GET
     @Path("{csid}/permroles")
     public PermissionRole getRolePermission(
             @PathParam("csid") String roleCsid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getRolePermission with roleCsid=" + roleCsid);
-        }
-        if (roleCsid == null || "".equals(roleCsid)) {
-            logger.error("getRolePermission: missing roleCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.GET_FAILED + "permroles role "
-                    + ServiceMessages.MISSING_INVALID_CSID + roleCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("getRolePermission with roleCsid=" + roleCsid);
+        ensureCSID(roleCsid, ServiceMessages.GET_FAILED + "permroles role ");
         PermissionRole result = null;
         try {
             PermissionRoleSubResource subResource =
                     new PermissionRoleSubResource(PermissionRoleSubResource.ROLE_PERMROLE_SERVICE);
             //get relationships for a role
             result = subResource.getPermissionRole(roleCsid, SubjectType.PERMISSION);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getRolePermission", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "permroles role csid=" + roleCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getRolePermission", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.GET_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "permroles role csid=" + roleCsid
-                    + ": was not found.").type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.GET_FAILED, roleCsid);
         }
+        checkResult(result, roleCsid, ServiceMessages.GET_FAILED);
         return result;
     }
 
@@ -523,157 +180,49 @@ public class RoleResource
     public PermissionRoleRel getRolePermission(
             @PathParam("csid") String roleCsid,
             @PathParam("id") String permrolecsid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getRolePermission with roleCsid=" + roleCsid);
-        }
-        if (roleCsid == null || "".equals(roleCsid)) {
-            logger.error("getRolePermission: missing roleCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.GET_FAILED + "permroles role "
-                    + ServiceMessages.MISSING_INVALID_CSID + roleCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("getRolePermission with roleCsid=" + roleCsid);
+        ensureCSID(roleCsid, ServiceMessages.GET_FAILED + "permroles role ");
         PermissionRoleRel result = null;
         try {
             PermissionRoleSubResource subResource =
                     new PermissionRoleSubResource(PermissionRoleSubResource.ROLE_PERMROLE_SERVICE);
             //get relationships for a role
             result = subResource.getPermissionRoleRel(roleCsid, SubjectType.PERMISSION, permrolecsid);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getRolePermission", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "permroles role csid=" + roleCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getRolePermission", e);
-            }
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.GET_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.GET_FAILED + "permroles role csid=" + roleCsid
-                    + ": was not found.").type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.GET_FAILED, roleCsid);
         }
+        checkResult(result, roleCsid, ServiceMessages.GET_FAILED);
         return result;
     }
 
-    /**
-     * Delete role permission.
-     *
-     * @param roleCsid the role csid
-     * @param input the input
-     * @return the response
-     */
     public Response deleteRolePermission(String roleCsid, PermissionRole input) {
-
-        if (logger.isDebugEnabled()) {
-            logger.debug("deleteRolePermission with roleCsid=" + roleCsid);
-        }
-
-        if (roleCsid == null || "".equals(roleCsid)) {
-            logger.error("deleteRolePermission: missing roleCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.DELETE_FAILED + "permroles role "
-                    + ServiceMessages.MISSING_INVALID_CSID + roleCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("deleteRolePermission with roleCsid=" + roleCsid);
+        ensureCSID(roleCsid, ServiceMessages.DELETE_FAILED + "permroles role ");
         try {
             PermissionRoleSubResource subResource =
                     new PermissionRoleSubResource(PermissionRoleSubResource.ROLE_PERMROLE_SERVICE);
             //delete all relationships for a permission
             subResource.deletePermissionRole(roleCsid, SubjectType.PERMISSION, input);
             return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deleteRolePermission", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.DELETE_FAILED + "role csid=" + roleCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.DELETE_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.DELETE_FAILED, roleCsid);
         }
-
     }
 
-    /**
-     * Delete role permission.
-     *
-     * @param roleCsid the role csid
-     * @return the response
-     */
     @DELETE
     @Path("{csid}/permroles")
     public Response deleteRolePermission(
                @PathParam("csid") String roleCsid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("deleteRolePermission with roleCsid=" + roleCsid);
-        }
-
-        if (roleCsid == null || "".equals(roleCsid)) {
-            logger.error("deleteRolePermission: missing roleCsid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.DELETE_FAILED + "permroles role "
-                    + ServiceMessages.MISSING_INVALID_CSID + roleCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
+        logger.debug("deleteRolePermission with roleCsid=" + roleCsid);
+        ensureCSID(roleCsid, ServiceMessages.DELETE_FAILED + "permroles role ");
         try {
             PermissionRoleSubResource subResource =
                     new PermissionRoleSubResource(PermissionRoleSubResource.ROLE_PERMROLE_SERVICE);
             //delete all relationships for a permission
             subResource.deletePermissionRole(roleCsid, SubjectType.PERMISSION);
             return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
-                    + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deleteRolePermission", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.DELETE_FAILED + "role csid=" + roleCsid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.DELETE_FAILED
-                    + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.DELETE_FAILED, roleCsid);
         }
-
     }
 }
index 014cf97555040bff570b810c8401086495ea57c2..059076801448582fbe2f619bddbec5467dec15b5 100644 (file)
  */
 package org.collectionspace.services.blob;
 
-import java.util.Map;
-import java.util.UUID;
-
 import org.collectionspace.services.client.BlobClient;
 import org.collectionspace.services.client.PoxPayloadIn;
 import org.collectionspace.services.client.PoxPayloadOut;
 import org.collectionspace.services.common.FileUtils;
 import org.collectionspace.services.common.ResourceBase;
-//import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
 import org.collectionspace.services.common.ServiceMessages;
 import org.collectionspace.services.common.blob.BlobInput;
 import org.collectionspace.services.common.blob.BlobUtil;
 import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.blob.nuxeo.BlobDocumentModelHandler; //FIXEME: A resource class should not have a dependency on a specific DocumentHandler
-import org.collectionspace.services.blob.BlobsCommon;
-//import org.collectionspace.services.blob.BlobsCommonList;
-import org.collectionspace.services.jaxb.AbstractCommonList;
 import org.collectionspace.services.nuxeo.client.java.CommonList;
-import javax.xml.parsers.ParserConfigurationException;
-
 import org.jboss.resteasy.plugins.providers.multipart.InputPart;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartInput;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput;
 import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
 
-//FIXME: REM - We should not have Nuxeo dependencies in our resource classes.
-import org.collectionspace.services.common.imaging.nuxeo.NuxeoImageUtils;
-import org.collectionspace.services.jaxb.AbstractCommonList;
-import org.nuxeo.ecm.core.api.repository.RepositoryInstance;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
@@ -65,16 +46,16 @@ 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.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.core.Response.ResponseBuilder;
-import javax.ws.rs.core.MediaType;
-
-
-import java.io.File;
+import javax.ws.rs.core.UriInfo;
 import java.io.InputStream;
 import java.util.List;
+import java.util.Map;
+
+//FIXME: REM - We should not have Nuxeo dependencies in our resource classes.
 
 @Path(BlobClient.SERVICE_PATH)
 @Consumes("application/xml")
index 15f958f8e4faf698cd02734939489d036c377a07..c397de27e45bf66407d97852400a7d9be7c8cf94 100644 (file)
@@ -253,9 +253,7 @@ public abstract class AbstractServiceClientImpl<LT, P extends CollectionSpacePro
 \r
             spec = properties.getProperty(URL_PROPERTY);\r
             url = new URL(spec);\r
-            if (logger.isInfoEnabled()) {\r
-                logger.info("readProperties() using url=" + url);\r
-            }\r
+            logger.debug("readProperties() using url=" + url);\r
 \r
             String auth = System.getProperty(AUTH_PROPERTY);\r
             if (auth != null && !"".equals(auth)) {\r
index b5a80b567a8e24efde38144a7c1c14bc7bc53b75..b6c918ae07f972459f72548890e7a391428b41ec 100644 (file)
@@ -83,6 +83,7 @@ public enum ServiceRequestType {
         public int[] validStatusCodes() {
             final int[] STATUS_CODES = {
                 Response.Status.OK.getStatusCode(),
+                Response.Status.BAD_REQUEST.getStatusCode(),
                 Response.Status.UNAUTHORIZED.getStatusCode(),
                 Response.Status.FORBIDDEN.getStatusCode(),
                 Response.Status.NOT_FOUND.getStatusCode(),
index 18c510350fd16aa0b59d63d387ee5634a4d3fea1..6236c6698fd88d52b42cdf7dcc7d9a33429f6cc4 100644 (file)
@@ -1,4 +1,4 @@
-log4j.rootLogger=debug, stdout, R\r
+log4j.rootLogger=info, stdout, R\r
 \r
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender\r
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout\r
@@ -17,7 +17,7 @@ log4j.appender.R.layout=org.apache.log4j.PatternLayout
 log4j.appender.R.layout.ConversionPattern=%d %-5p [%t] [%c:%L] %m%n\r
 \r
 #packages\r
-log4j.logger.org.collectionspace=DEBUG\r
+log4j.logger.org.collectionspace=INFO\r
 log4j.logger.org.apache=INFO\r
 log4j.logger.httpclient=INFO\r
 log4j.logger.org.jboss.resteasy=INFO\r
index 24e2daacbca2325a352f507c00ae3153818182b6..b5afe101c0316e949a31438311dd5cc1abda6d67 100644 (file)
  */
 package org.collectionspace.services.collectionobject;
 
-import java.util.ArrayList;
-import java.util.List;
+import org.collectionspace.services.client.CollectionObjectClient;
+import org.collectionspace.services.client.IQueryManager;
+import org.collectionspace.services.common.ResourceBase;
+import org.collectionspace.services.common.profile.Profiler;
+import org.collectionspace.services.intake.IntakeResource;
+import org.collectionspace.services.intake.IntakesCommonList;
+import org.collectionspace.services.jaxb.AbstractCommonList;
+import org.collectionspace.services.relation.RelationResource;
+import org.collectionspace.services.relation.RelationsCommonList;
+import org.collectionspace.services.relation.RelationshipType;
+import org.jboss.resteasy.util.HttpResponseCodes;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import javax.servlet.http.HttpServletRequest;
 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.WebApplicationException;
 import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
 import javax.ws.rs.core.UriInfo;
-import javax.ws.rs.core.MultivaluedMap;
-
-import org.collectionspace.services.client.CollectionObjectClient;
-import org.collectionspace.services.client.IQueryManager;
-import org.collectionspace.services.client.PoxPayloadIn;
-import org.collectionspace.services.client.PoxPayloadOut;
-//import org.collectionspace.services.common.imaging.nuxeo.NuxeoImageUtils; //FIXME: REM - Please remove all unneeded imports
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-import org.collectionspace.services.common.authorityref.AuthorityRefList;
-//import org.collectionspace.services.common.context.MultipartServiceContext;
-import org.collectionspace.services.common.context.MultipartServiceContextImpl;
-import org.collectionspace.services.common.context.ServiceBindingUtils;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.document.BadRequestException;
-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.intake.IntakeResource;
-import org.collectionspace.services.intake.IntakesCommonList;
-//import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl;
-import org.collectionspace.services.nuxeo.client.java.DocumentModelHandler;
-import org.collectionspace.services.relation.RelationResource;
-import org.collectionspace.services.relation.RelationsCommonList;
-import org.collectionspace.services.relation.RelationshipType;
-import org.collectionspace.services.common.profile.Profiler;
-
-import org.jboss.resteasy.util.HttpResponseCodes;
+import java.util.ArrayList;
+import java.util.List;
 
-//FIXME: There should be no direct dependency on Nuxeo in our resource classes.
-import org.nuxeo.ecm.core.api.DocumentModel;
-//import org.nuxeo.ecm.core.api.repository.RepositoryInstance;
-//import org.nuxeo.ecm.core.api.ClientException;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The Class CollectionObjectResource.
- */
 @Path(CollectionObjectClient.SERVICE_PATH_COMPONENT)
 @Consumes("application/xml")
 @Produces("application/xml")
-public class CollectionObjectResource
-        extends AbstractMultiPartCollectionSpaceResourceImpl {
+public class CollectionObjectResource extends ResourceBase {
     
-    /** The logger. */
     final Logger logger = LoggerFactory.getLogger(CollectionObjectResource.class);
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
-     */
     @Override
     public String getVersionString() {
-        /** The last change revision. */
         final String lastChangeRevision = "$LastChangedRevision$";
         return lastChangeRevision;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
         return CollectionObjectClient.SERVICE_PATH_COMPONENT;
     }
     
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
-     */
     @Override
     public Class<CollectionobjectsCommon> getCommonPartClass() {
        return CollectionobjectsCommon.class;
     }
-    
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#createDocumentHandler(org.collectionspace.services.common.context.ServiceContext)
-     */
-//    @Override
-//    public DocumentHandler createDocumentHandler(ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx) throws Exception {
-//        DocumentHandler docHandler = ctx.getDocumentHandler();
-//        if (ctx.getInput() != null) {
-//            Object obj = ((MultipartServiceContext) ctx).getInputPart(ctx.getCommonPartLabel(),
-//                    CollectionobjectsCommon.class);
-//            if (obj != null) {
-//                docHandler.setCommonPart((CollectionobjectsCommon) obj);
-//            }
-//        }
-//        return docHandler;
-//    }
 
-    /**
-     * Creates the collection object.
-     * 
-     * @param input the input
-     * 
-     * @return the response
-     */
-    @POST
-    public Response createCollectionObject(@Context HttpServletRequest req,
-               String xmlPayload) {
-        try {
-            PoxPayloadIn input = new PoxPayloadIn(xmlPayload);
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            String csid = getRepositoryClient(ctx).create(ctx, handler);
-            UriBuilder path = UriBuilder.fromResource(CollectionObjectResource.class);
-            path.path("" + csid);
-            Response response = Response.created(path.build()).build();
-            return response;
-        } catch (BadRequestException bre) {
-            Response response = Response.status(
-                    Response.Status.BAD_REQUEST).entity("Create failed reason " + bre.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Create failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in createCollectionObject", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-    }
-
-    /**
-     * Gets the collection object.
-     * 
-     * @param csid the csid
-     * 
-     * @return the collection object
-     */
-    @GET
-    @Path("{csid}")
-    public byte[] getCollectionObject(
-               @Context UriInfo ui,
-            @PathParam("csid") String csid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getCollectionObject with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("getCollectionObject: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "get failed on CollectionObject csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).get(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Get failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getCollectionObject", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Get failed on CollectionObject csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getCollectionObject", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Get failed, the requested CollectionObject CSID:" + csid + ": was not found.").type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        
-        return result.getBytes();
-    }
-    
-    /**
-     * Gets the collection object list.
-     * 
-     * @param ui the ui
-     * @param keywords the keywords
-     * 
-     * @return the collection object list
-     */
-    @GET
-    @Produces("application/xml")
-    public CollectionobjectsCommonList getCollectionObjectList(@Context UriInfo ui,
-               @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords) {
-       Profiler profiler = new Profiler("getCollectionObjectList():", 1);
-       profiler.start();
-       CollectionobjectsCommonList result = null;
-       MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-       if (keywords != null) {
-               result = searchCollectionObjects(queryParams, keywords);
-       } else {
-               result = getCollectionObjectList(queryParams);
-       }
-       profiler.stop();
-       return result;
-    }
-    
-    /**
-     * Gets the collection object list.
-     */
-    private CollectionobjectsCommonList getCollectionObjectList(MultivaluedMap<String, String> queryParams) {
-        CollectionobjectsCommonList collectionObjectList;
-        Profiler profiler = new Profiler(this, 1);
-        profiler.start();
-        
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).getFiltered(ctx, handler);
-            collectionObjectList = (CollectionobjectsCommonList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getCollectionObjectList", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        
-        profiler.stop();
-        return collectionObjectList;
-    }
-
-    /**
-     * Update collection object.
-     * 
-     * @param csid the csid
-     * @param xmlText an XML representation of the data to be used in the update
-     * 
-     * @return an XML representation of the updated object
-     */
-    @PUT
-    @Path("{csid}")
-    public String updateCollectionObject(
-            @PathParam("csid") String csid,
-            String xmlText) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("updateCollectionObject with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("updateCollectionObject: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "update failed on CollectionObject csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            PoxPayloadIn update = new PoxPayloadIn(xmlText);
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).update(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (BadRequestException bre) {
-            Response response = Response.status(
-                    Response.Status.BAD_REQUEST).entity("Update failed reason " + bre.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Update failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in updateCollectionObject", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Update failed on CollectionObject csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result.toXML();
-    }
-
-    /**
-     * Delete collection object.
-     * 
-     * @param csid the csid
-     * 
-     * @return the response
-     */
-    @DELETE
-    @Path("{csid}")
-    public Response deleteCollectionObject(@PathParam("csid") String csid) {
-
-        if (logger.isDebugEnabled()) {
-            logger.debug("deleteCollectionObject with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("deleteCollectionObject: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "delete failed on CollectionObject csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
-            getRepositoryClient(ctx).delete(ctx, csid);
-            return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Delete failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deleteCollectionObject", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Delete failed on CollectionObject csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-
-    }
-
-    // FIXME AR: should the method below be deprecated?
 
     /**
      * Gets the intakes common list.
@@ -447,47 +135,7 @@ public class CollectionObjectResource
         return result;
     }
 
-    /**
-     * Gets the authority refs.
-     * 
-     * @param csid the csid
-     * @param ui the ui
-     * 
-     * @return the authority refs
-     */
-    @GET
-    @Path("{csid}/authorityrefs")
-    @Produces("application/xml")
-    public AuthorityRefList getAuthorityRefs(
-               @PathParam("csid") String csid, 
-               @Context UriInfo ui) {
-       AuthorityRefList authRefList = null;
-        try {
-               MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentWrapper<DocumentModel> docWrapper = 
-               getRepositoryClient(ctx).getDoc(ctx, csid);
-            DocumentModelHandler<PoxPayloadIn, PoxPayloadOut> docHandler = 
-               (DocumentModelHandler<PoxPayloadIn, PoxPayloadOut>)createDocumentHandler(ctx);
-            List<String> authRefFields = 
-               ((MultipartServiceContextImpl)ctx).getCommonPartPropertyValues(
-                               ServiceBindingUtils.AUTH_REF_PROP, ServiceBindingUtils.QUALIFIED_PROP_NAMES);
-            authRefList = docHandler.getAuthorityRefs(docWrapper, authRefFields);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getAuthorityRefs", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return authRefList;
-    }
-    
+
     /**
      * Roundtrip.
      * 
@@ -525,54 +173,10 @@ public class CollectionObjectResource
     @Path("/search")
     @Produces("application/xml")
     @Deprecated
-    public CollectionobjectsCommonList keywordsSearchCollectionObjects(@Context UriInfo ui,
+    public AbstractCommonList keywordsSearchCollectionObjects(@Context UriInfo ui,
             @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS) String keywords) {
        MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-       return searchCollectionObjects(queryParams, keywords);
+       return search(queryParams, keywords);
     }    
-    
-    /**
-     * Search collection objects.
-     * 
-     * @param keywords the keywords
-     * 
-     * @return the collectionobjects common list
-     */
-    private CollectionobjectsCommonList searchCollectionObjects(
-               MultivaluedMap<String, String> queryParams,
-               String keywords) {
-        CollectionobjectsCommonList collectionObjectList;
-        try {
-               Profiler profiler = new Profiler("searchCollectionObjects():", 1);
-               profiler.start();
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
 
-            // perform a keyword search
-            if (keywords != null && !keywords.isEmpty()) {
-                String whereClause = QueryManager.createWhereClauseFromKeywords(keywords);
-                DocumentFilter documentFilter = handler.getDocumentFilter();
-                documentFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);
-                if (logger.isDebugEnabled()) {
-                    logger.debug("The WHERE clause is: " + documentFilter.getWhereClause());
-                }
-            }
-            profiler.stop();
-            getRepositoryClient(ctx).getFiltered(ctx, handler);
-            collectionObjectList = (CollectionobjectsCommonList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getCollectionObjectList", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return collectionObjectList;
-    }
-        
 }
index 76ec2781f32934a8c9dbe358e43ef3284bc5f1f2..3ed87f85e250283771c2f004c556a911cfcd76b8 100644 (file)
@@ -28,17 +28,25 @@ import java.util.List;
 import javax.ws.rs.GET;\r
 import javax.ws.rs.Path;\r
 import javax.ws.rs.Produces;\r
+import javax.ws.rs.WebApplicationException;\r
 import javax.ws.rs.core.MultivaluedMap;\r
 import javax.ws.rs.core.Response;\r
 \r
+import org.collectionspace.services.common.api.Tools;\r
 import org.collectionspace.services.common.context.ServiceContext;\r
 import org.collectionspace.services.common.context.ServiceContextProperties;\r
+import org.collectionspace.services.common.document.BadRequestException;\r
+import org.collectionspace.services.common.document.DocumentException;\r
 import org.collectionspace.services.common.document.DocumentHandler;\r
+import org.collectionspace.services.common.document.DocumentNotFoundException;\r
 import org.collectionspace.services.common.repository.RepositoryClient;\r
 import org.collectionspace.services.common.repository.RepositoryClientFactory;\r
+import org.collectionspace.services.common.security.UnauthorizedException;\r
 import org.collectionspace.services.common.storage.StorageClient;\r
 import org.collectionspace.services.common.storage.jpa.JpaStorageClientImpl;\r
 import org.jboss.resteasy.client.ClientResponse;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
 \r
 /**\r
  * The Class AbstractCollectionSpaceResourceImpl.\r
@@ -49,6 +57,9 @@ import org.jboss.resteasy.client.ClientResponse;
 public abstract class AbstractCollectionSpaceResourceImpl<IT, OT>\r
         implements CollectionSpaceResource<IT, OT> {\r
 \r
+    protected final Logger logger = LoggerFactory.getLogger(this.getClass());\r
+\r
+\r
     // Fields for default client factory and client\r
     /** The repository client factory. */\r
     private RepositoryClientFactory repositoryClientFactory;\r
@@ -192,10 +203,7 @@ public abstract class AbstractCollectionSpaceResourceImpl<IT, OT>
      * Creates the service context.\r
      * \r
      * @param serviceName the service name\r
-     * @param input the input\r
-     * \r
      * @return the service context< i t, o t>\r
-     * \r
      * @throws Exception the exception\r
      */\r
     protected ServiceContext<IT, OT> createServiceContext(String serviceName,\r
@@ -330,4 +338,86 @@ public abstract class AbstractCollectionSpaceResourceImpl<IT, OT>
        \r
        return result;\r
     }\r
+\r
+    public void checkResult(Object resultToCheck, String csid, String serviceMessage) throws WebApplicationException {\r
+        if (resultToCheck == null) {\r
+            Response response = Response.status(Response.Status.NOT_FOUND).entity(\r
+                    serviceMessage + "csid=" + csid\r
+                    + ": was not found.").type(\r
+                    "text/plain").build();\r
+            throw new WebApplicationException(response);\r
+        }\r
+    }\r
+\r
+    protected void ensureCSID(String csid, String crudType) throws WebApplicationException {\r
+           if (logger.isDebugEnabled()) {\r
+               logger.debug(crudType + " for " + getClass().getName() + " with csid=" + csid);\r
+           }\r
+           if (csid == null || "".equals(csid)) {\r
+               logger.error(crudType + " for " + getClass().getName() + " missing csid!");\r
+               Response response = Response.status(Response.Status.BAD_REQUEST).entity(crudType + " failed on " + getClass().getName() + " csid=" + csid).type("text/plain").build();\r
+               throw new WebApplicationException(response);\r
+           }\r
+       }\r
+\r
+    protected WebApplicationException bigReThrow(Exception e, String serviceMsg) throws WebApplicationException {\r
+        return bigReThrow(e, serviceMsg, "");\r
+    }\r
+\r
+    protected WebApplicationException bigReThrow(Exception e, String serviceMsg, String csid) throws WebApplicationException {\r
+        Response response;\r
+        if (logger.isDebugEnabled()) {\r
+            logger.debug(getClass().getName(), e);\r
+        }\r
+        /*    ===== how RoleResource does it: =======\r
+        } catch (BadRequestException bre) {\r
+            response = Response.status(\r
+                    Response.Status.BAD_REQUEST).entity(ServiceMessages.POST_FAILED\r
+                    + bre.getErrorReason()).type("text/plain").build();\r
+            throw new WebApplicationException(response);\r
+        } catch (DocumentException bre) {\r
+            response = Response.status(\r
+                    Response.Status.BAD_REQUEST).entity(ServiceMessages.POST_FAILED\r
+                    + bre.getErrorReason()).type("text/plain").build();\r
+            throw new WebApplicationException(response);\r
+        } catch (UnauthorizedException ue) {\r
+            response = Response.status(\r
+                    Response.Status.UNAUTHORIZED).entity(ServiceMessages.POST_FAILED\r
+                    + ue.getErrorReason()).type("text/plain").build();\r
+            throw new WebApplicationException(response);\r
+         */\r
+\r
+        if (e instanceof UnauthorizedException) {\r
+            response = Response.status(Response.Status.UNAUTHORIZED).entity(serviceMsg + e.getMessage()).type("text/plain").build();\r
+            return new WebApplicationException(response);\r
+\r
+        } else if (e instanceof DocumentNotFoundException) {\r
+            response = Response.status(Response.Status.NOT_FOUND).entity(serviceMsg + " on " + getClass().getName() + " csid=" + csid).type("text/plain").build();\r
+            return new WebApplicationException(response);\r
+\r
+        } else if (e instanceof BadRequestException) {\r
+            int code = ((BadRequestException) e).getErrorCode();\r
+            if (code == 0){\r
+                code = Response.Status.BAD_REQUEST.getStatusCode();\r
+            }\r
+            return new WebApplicationException(e, code);\r
+\r
+        } else if (e instanceof DocumentException){\r
+            int code = ((DocumentException) e).getErrorCode();\r
+            if (code == 0){\r
+               code = Response.Status.BAD_REQUEST.getStatusCode();\r
+            }\r
+            return new WebApplicationException(e, code);\r
+\r
+        } else if (e instanceof WebApplicationException) {\r
+            // subresource may have already thrown this exception\r
+            // so just pass it on\r
+            return (WebApplicationException) e;\r
+\r
+        } else { // e is now instanceof Exception\r
+            String detail = Tools.errorToString(e, true);\r
+            response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(serviceMsg + " detail: " + detail).type("text/plain").build();\r
+            return new WebApplicationException(response);\r
+        }\r
+    }\r
 }\r
index cc4976b9a80059ddbcbfdd199db836f82d38c776..0330e6e0769a57983921ceae912969203fffda8f 100644 (file)
@@ -66,37 +66,8 @@ public abstract class AbstractMultiPartCollectionSpaceResourceImpl extends Abstr
         return MultipartServiceContextFactory.get();\r
     }\r
 \r
-    protected WebApplicationException bigReThrow(Exception e, String serviceMsg)\r
-            throws WebApplicationException {\r
-        return bigReThrow(e, serviceMsg, "");\r
-    }\r
 \r
-    protected WebApplicationException bigReThrow(Exception e,\r
-            String serviceMsg, String csid) throws WebApplicationException {\r
-        Response response;\r
-        if (logger.isDebugEnabled()) {\r
-            logger.debug(getClass().getName(), e);\r
-        }\r
-        if (e instanceof UnauthorizedException) {\r
-            response = Response.status(Response.Status.UNAUTHORIZED).entity(serviceMsg + e.getMessage()).type("text/plain").build();\r
-            return new WebApplicationException(response);\r
-        } else if (e instanceof DocumentNotFoundException) {\r
-            response = Response.status(Response.Status.NOT_FOUND).entity(serviceMsg + " on " + getClass().getName()\r
-                    + " csid=" + csid).type("text/plain").build();\r
-            return new WebApplicationException(response);\r
-        } else if (e instanceof BadRequestException) {\r
-            return new WebApplicationException(e, ((BadRequestException) e).getErrorCode());\r
-        } else if (e instanceof WebApplicationException) {\r
-            //\r
-            // subresource may have already thrown this exception\r
-            // so just pass it on\r
-            return (WebApplicationException) e;\r
-        } else { // e is now instanceof Exception\r
-            String detail = Tools.errorToString(e, true);\r
-            response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(serviceMsg + " detail: " + detail).type("text/plain").build();\r
-            return new WebApplicationException(response);\r
-        }\r
-    }\r
+\r
 \r
     @Override\r
     public DocumentHandler createDocumentHandler(ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx) throws Exception {\r
index ebe4445acfcad3d2b83ef817e09a7ac67e1724f7..09c4ba6e9335dccced34db48344be34561c583ba 100644 (file)
@@ -76,16 +76,6 @@ public abstract class ResourceBase
         }\r
     }\r
 \r
-    protected void ensureCSID(String csid, String crudType) throws WebApplicationException {\r
-        if (logger.isDebugEnabled()) {\r
-            logger.debug(crudType + " for " + getClass().getName() + " with csid=" + csid);\r
-        }\r
-        if (csid == null || "".equals(csid)) {\r
-            logger.error(crudType + " for " + getClass().getName() + " missing csid!");\r
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(crudType + " failed on " + getClass().getName() + " csid=" + csid).type("text/plain").build();\r
-            throw new WebApplicationException(response);\r
-        }\r
-    }\r
 \r
     //======================= CREATE ====================================================\r
     @POST\r
diff --git a/services/common/src/main/java/org/collectionspace/services/common/SecurityResourceBase.java b/services/common/src/main/java/org/collectionspace/services/common/SecurityResourceBase.java
new file mode 100644 (file)
index 0000000..596a88d
--- /dev/null
@@ -0,0 +1,83 @@
+package org.collectionspace.services.common;
+
+import org.collectionspace.services.authorization.Role;
+import org.collectionspace.services.common.context.ServiceContext;
+import org.collectionspace.services.common.document.DocumentFilter;
+import org.collectionspace.services.common.document.DocumentHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.ws.rs.PathParam;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriBuilder;
+import javax.ws.rs.core.UriInfo;
+
+public abstract class SecurityResourceBase extends AbstractCollectionSpaceResourceImpl {
+
+    final Logger logger = LoggerFactory.getLogger(SecurityResourceBase.class);
+
+    public Response create(Object input) {
+            try {
+                ServiceContext ctx = createServiceContext(input, input.getClass());
+                DocumentHandler handler = createDocumentHandler(ctx);
+                String csid = getStorageClient(ctx).create(ctx, handler);
+                UriBuilder path = UriBuilder.fromResource(this.getClass());
+                path.path("" + csid);
+                Response response = Response.created(path.build()).build();
+                return response;
+            } catch (Exception e) {
+                throw bigReThrow(e, ServiceMessages.POST_FAILED+"create in "+this.getClass().getName());
+            }
+        }
+
+    public Object get(String csid, Class objectClass) {
+
+        logger.debug("get with csid=" + csid);
+        ensureCSID(csid, ServiceMessages.GET_FAILED + "csid");
+        Object result = null;
+        try {
+            ServiceContext ctx = createServiceContext((Object) null, objectClass);
+            DocumentHandler handler = createDocumentHandler(ctx);
+            getStorageClient(ctx).get(ctx, csid, handler);
+            result = ctx.getOutput();
+        } catch (Exception e) {
+            throw bigReThrow(e, ServiceMessages.GET_FAILED, csid);
+        }
+        checkResult(result, csid, ServiceMessages.GET_FAILED);
+        return result;
+    }
+
+    public Object getList(UriInfo ui, Class objectClass) {
+        try {
+            ServiceContext ctx = createServiceContext((Object) null, objectClass);
+            DocumentHandler handler = createDocumentHandler(ctx);
+            MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
+            DocumentFilter myFilter = handler.createDocumentFilter();
+            myFilter.setPagination(queryParams);
+            myFilter.setQueryParams(queryParams);
+            handler.setDocumentFilter(myFilter);
+            getStorageClient(ctx).getFiltered(ctx, handler);
+            //RolesList roleList = (RolesList) handler.getCommonPartList();
+            return handler.getCommonPartList();
+            //return roleList;
+        } catch (Exception e) {
+            throw bigReThrow(e, ServiceMessages.LIST_FAILED);
+        }
+    }
+
+    public Object update(@PathParam("csid") String csid, Object theUpdate, Class objectClass) {
+        if (logger.isDebugEnabled()) {
+            logger.debug("updateRole with csid=" + csid);
+        }
+        ensureCSID(csid, ServiceMessages.PUT_FAILED + this.getClass().getName());
+        try {
+            ServiceContext ctx = createServiceContext(theUpdate, objectClass);
+            DocumentHandler handler = createDocumentHandler(ctx);
+            getStorageClient(ctx).update(ctx, csid, handler);
+            return ctx.getOutput();
+        } catch (Exception e) {
+            throw bigReThrow(e, ServiceMessages.PUT_FAILED, csid);
+        }
+    }
+}
index c4be6619dc348e991dc509eb949602cc1b437084..5b95e14c29ea8ea20a3d56ed377f97ca57ae33f2 100644 (file)
  */
 package org.collectionspace.services.contact;
 
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
 import org.collectionspace.services.client.ContactClient;
-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.context.ServiceContext;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentHandler;
-
-import org.jboss.resteasy.util.HttpResponseCodes;
+import org.collectionspace.services.common.ResourceBase;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-/**
- * The Class ContactResource.
- */
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
 @Path(ContactClient.SERVICE_PATH)
 @Consumes("application/xml")
 @Produces("application/xml")
-public class ContactResource extends 
-               AbstractMultiPartCollectionSpaceResourceImpl {
-       //
-    // The logger init
-       //
+public class ContactResource   extends ResourceBase {
     final Logger logger = LoggerFactory.getLogger(ContactResource.class);
     
-    //FIXME retrieve client type from configuration
-    /** The Constant CLIENT_TYPE. */
-    final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
-
-    /**
-     * Instantiates a new contact resource.
-     */
-    public ContactResource() {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
-     */
     @Override
     protected String getVersionString() {
-       /** The last change revision. */
        final String lastChangeRevision = "$LastChangedRevision$";
        return lastChangeRevision;
     }
     
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
         return ContactClient.SERVICE_NAME;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
-     */
     @Override
     public Class<ContactsCommon> getCommonPartClass() {
        return ContactsCommon.class;
     }
-    
-//    @Override  //FIXME: REM - Remove this dead code please
-//    public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-//        DocumentHandler docHandler = ctx.getDocumentHandler();
-//        if (ctx.getInput() != null) {
-//            Object obj = ((MultipartServiceContext)ctx).getInputPart(ctx.getCommonPartLabel(), ContactsCommon.class);
-//            if (obj != null) {
-//                docHandler.setCommonPart((ContactsCommon) obj);
-//            }
-//        }
-//        return docHandler;
-//    }
-
-    /**
- * Creates the contact.
-     *
-     * @param xmlPayload the xml payload
- * @return the response
- */
-    @POST
-    public Response createContact(String xmlPayload) {
-        try {
-               PoxPayloadIn input = new PoxPayloadIn(xmlPayload);
-               ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            String csid = getRepositoryClient(ctx).create(ctx, handler);
-            //contactObject.setCsid(csid);
-            UriBuilder path = UriBuilder.fromResource(ContactResource.class);
-            path.path("" + csid);
-            Response response = Response.created(path.build()).build();
-            return response;
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in createContact", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-    }
 
-    /**
-     * Gets the contact.
-     * 
-     * @param csid the csid
-     * 
-     * @return the contact
-     */
-    @GET
-    @Path("{csid}")
-    public String getContact(
-               @Context UriInfo ui,
-            @PathParam("csid") String csid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getContact with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {  //FIXME: REM - This is a silly check?  We can't reach this resource if CSID is blank in the URL
-            logger.error("getContact: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "Get failed on Contact csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).get(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getContact", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Get failed on Contact csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getContact", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Get failed, the requested Contact CSID:" + csid + ": was not found.").type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result.toXML();
-    }
-
-    /**
-     * Gets the contact list.
-     * 
-     * @param ui the ui
-     * 
-     * @return the contact list
-     */
-    @GET
-    @Produces("application/xml")
-    public ContactsCommonList getContactList(@Context UriInfo ui) {
-       MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-        ContactsCommonList contactObjectList = new ContactsCommonList();
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).getFiltered(ctx, handler);
-            contactObjectList = (ContactsCommonList) handler.getCommonPartList();
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getContactList", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return contactObjectList;
-    }
-
-    /**
-     * Update contact.
-     * 
-     * @param csid the csid
-     * @param theUpdate the the update
-     * 
-     * @return the multipart output
-     */
-    @PUT
-    @Path("{csid}")
-    public String updateContact(
-            @PathParam("csid") String csid,
-            String xmlPayload) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("updateContact with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {//FIXME: REM - This is a silly check?  We can't reach this resource if CSID is blank in the URL.
-            logger.error("updateContact: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "update failed on Contact csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-               PoxPayloadIn theUpdate = new PoxPayloadIn(xmlPayload);
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(theUpdate);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).update(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in updateContact", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Update failed on Contact csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result.toXML();
-    }
-
-    /**
-     * Delete contact.
-     * 
-     * @param csid the csid
-     * 
-     * @return the response
-     */
-    @DELETE
-    @Path("{csid}")
-    public Response deleteContact(@PathParam("csid") String csid) {
-
-        if (logger.isDebugEnabled()) {
-            logger.debug("deleteContact with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("deleteContact: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "Delete failed on Contact csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
-            getRepositoryClient(ctx).delete(ctx, csid);
-            return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in deleteContact", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Delete failed on Contact csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-
-    }
 }
index 30970fe4185ba86f0506f389b5f7d160f3ddd31e..31b9982216b3bc974b0b7feed93b4d35a76d7569 100644 (file)
             <artifactId>org.collectionspace.services.dimension.jaxb</artifactId>\r
             <version>${project.version}</version>\r
         </dependency>\r
+        <dependency>\r
+            <groupId>org.collectionspace.services</groupId>\r
+            <artifactId>org.collectionspace.services.dimension.client</artifactId>\r
+            <version>${project.version}</version>\r
+        </dependency>\r
         <!-- External dependencies -->\r
         <dependency>\r
             <groupId>junit</groupId>\r
index d05c0a33b9b39c49d6099eeeddb9f06c5785d04f..096af4c5e0180836af072e7995536d7306c295dd 100644 (file)
  */
 package org.collectionspace.services.dimension;
 
+import org.collectionspace.services.client.DimensionClient;
+import org.collectionspace.services.common.ResourceBase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
-import org.collectionspace.services.client.PoxPayloadIn;
-import org.collectionspace.services.client.PoxPayloadOut;
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-//import org.collectionspace.services.dimension.DimensionsCommonList.*;
-
-import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
-//import org.collectionspace.services.common.context.MultipartServiceContext;
-//import org.collectionspace.services.common.context.MultipartServiceContextFactory;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-/**
- * The Class DimensionResource.
- */
-@Path("/dimensions")
+@Path(DimensionClient.SERVICE_PATH)
 @Consumes("application/xml")
 @Produces("application/xml")
-public class DimensionResource extends
-               AbstractMultiPartCollectionSpaceResourceImpl {
+public class DimensionResource extends ResourceBase {
 
-    /** The Constant serviceName. */
-    private final static String serviceName = "dimensions";
-    
-    /** The logger. */
     final Logger logger = LoggerFactory.getLogger(DimensionResource.class);
-    //FIXME retrieve client type from configuration
-    /** The Constant CLIENT_TYPE. */
-    final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
 
-    /**
-     * Instantiates a new dimension resource.
-     */
-    public DimensionResource() {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
-     */
     @Override
     public String getVersionString() {
-       /** The last change revision. */
        final String lastChangeRevision = "$LastChangedRevision$";
        return lastChangeRevision;
     }
     
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
-        return serviceName;
+        return DimensionClient.SERVICE_NAME;
     }
 
-//    @Override
-//    public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-//        DocumentHandler docHandler = ctx.getDocumentHandler();
-//        if (ctx.getInput() != null) {
-//            Object obj = ((MultipartServiceContext)ctx).getInputPart(ctx.getCommonPartLabel(), DimensionsCommon.class);
-//            if (obj != null) {
-//                docHandler.setCommonPart((DimensionsCommon) obj);
-//            }
-//        }
-//        return docHandler;
-//    }
-    
-    /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
- */
-@Override
+   @Override
     public Class<DimensionsCommon> getCommonPartClass() {
        return DimensionsCommon.class;
     }
-
-    /**
-     * Creates the dimension.
-     * 
-     * @param xmlText an XML payload
-     * 
-     * @return the response
-     */
-    @POST
-    public Response createDimension(String xmlText) {
-        try {
-            PoxPayloadIn input = new PoxPayloadIn(xmlText);
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            String csid = getRepositoryClient(ctx).create(ctx, handler);
-            //dimensionObject.setCsid(csid);
-            UriBuilder path = UriBuilder.fromResource(DimensionResource.class);
-            path.path("" + csid);
-            Response response = Response.created(path.build()).build();
-            return response;
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in createDimension", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-    }
-
-    /**
-     * Gets the dimension.
-     * 
-     * @param csid the csid
-     * 
-     * @return the dimension
-     */
-    @GET
-    @Path("{csid}")
-    public byte[] getDimension(
-               @Context UriInfo ui,
-            @PathParam("csid") String csid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getDimension with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("getDimension: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "get failed on Dimension csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).get(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getDimension", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Get failed on Dimension csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getDimension", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Get failed, the requested Dimension CSID:" + csid + ": was not found.").type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result.getBytes();
-    }
-
-    /**
-     * Gets the dimension list.
-     * 
-     * @param ui the ui
-     * 
-     * @return the dimension list
-     */
-    @GET
-    @Produces("application/xml")
-    public DimensionsCommonList getDimensionList(@Context UriInfo ui) {
-        DimensionsCommonList dimensionObjectList = new DimensionsCommonList();
-        MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).getFiltered(ctx, handler);
-            dimensionObjectList = (DimensionsCommonList) handler.getCommonPartList();
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getDimensionList", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return dimensionObjectList;
-    }
-
-    /**
-     * Update dimension.
-     * 
-     * @param csid the csid
-     * @param xmlText an XML payload
-     * 
-     * @return the multipart output
-     */
-    @PUT
-    @Path("{csid}")
-    public byte[] updateDimension(
-            @PathParam("csid") String csid, String xmlText) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("updateDimension with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("updateDimension: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "update failed on Dimension csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            PoxPayloadIn update = new PoxPayloadIn(xmlText);
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).update(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in updateDimension", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Update failed on Dimension csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result.getBytes();
-    }
-
-    /**
-     * Delete dimension.
-     * 
-     * @param csid the csid
-     * 
-     * @return the response
-     */
-    @DELETE
-    @Path("{csid}")
-    public Response deleteDimension(@PathParam("csid") String csid) {
-
-        if (logger.isDebugEnabled()) {
-            logger.debug("deleteDimension with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("deleteDimension: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "delete failed on Dimension csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
-            getRepositoryClient(ctx).delete(ctx, csid);
-            return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deleteDimension", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Delete failed on Dimension csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-
-    }
 }
index f339f1b13acc4cd6ae4ec03fc1ea18597bc759c1..64af759903b0c316d62efeb713a78353b4db30a7 100755 (executable)
@@ -23,8 +23,6 @@
  */
 package org.collectionspace.services.imports;
 
-import org.collectionspace.services.client.PoxPayloadIn;
-import org.collectionspace.services.client.PoxPayloadOut;
 import org.collectionspace.services.common.FileUtils;
 import org.collectionspace.services.common.ResourceBase;
 import org.collectionspace.services.common.ServiceMain;
@@ -32,10 +30,7 @@ import org.collectionspace.services.common.ServiceMessages;
 import org.collectionspace.services.common.api.FileTools;
 import org.collectionspace.services.common.api.Tools;
 import org.collectionspace.services.common.api.ZipTools;
-
-// The modified Nuxeo ImportCommand from nuxeo's shell:
 import org.collectionspace.services.common.config.TenantBindingConfigReaderImpl;
-import org.collectionspace.services.common.context.ServiceContext;
 import org.collectionspace.services.imports.nuxeo.ImportCommand;
 import org.jboss.resteasy.plugins.providers.multipart.InputPart;
 import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
@@ -58,6 +53,8 @@ import java.io.InputStream;
 import java.util.List;
 import java.util.Map;
 
+// The modified Nuxeo ImportCommand from nuxeo's shell:
+
 /**
  * @author Laramie Crocker
  */
index d9873e0d084821f07f9dbd9b74d30aa4132533b1..8d65cb9632033521dc32d59eed3c314de25f4e29 100644 (file)
  */
 package org.collectionspace.services.intake;
 
-import java.util.List;
+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.ResourceBase;
+import org.collectionspace.services.common.ServiceMessages;
+import org.collectionspace.services.common.context.ServiceContext;
+import org.collectionspace.services.common.document.DocumentHandler;
+import org.collectionspace.services.jaxb.AbstractCommonList;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 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.WebApplicationException;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
 import javax.ws.rs.core.UriInfo;
+import java.util.List;
 
-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.MultipartServiceContextImpl;
-import org.collectionspace.services.common.context.ServiceBindingUtils;
-import org.collectionspace.services.common.context.ServiceContext;
-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.QueryManager;
-import org.collectionspace.services.common.security.UnauthorizedException;
-import org.collectionspace.services.nuxeo.client.java.DocumentModelHandler;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.nuxeo.ecm.core.api.DocumentModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The Class IntakeResource.
- */
 @Path(IntakeClient.SERVICE_PATH)
 @Consumes("application/xml")
 @Produces("application/xml")
-public class IntakeResource extends
-               AbstractMultiPartCollectionSpaceResourceImpl {
+public class IntakeResource extends ResourceBase {
     
-    /** The logger. */
     final Logger logger = LoggerFactory.getLogger(IntakeResource.class);
-    //FIXME retrieve client type from configuration
-    /** The Constant CLIENT_TYPE. */
-    final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
-
-    /**
-     * Instantiates a new intake resource.
-     */
-    public IntakeResource() {
-        // do nothing
-    }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
-     */
     @Override
     protected String getVersionString() {
-       /** The last change revision. */
        final String lastChangeRevision = "$LastChangedRevision$";
        return lastChangeRevision;
     }
     
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
         return IntakeClient.SERVICE_NAME;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
-     */
     @Override
     public Class<IntakesCommon> getCommonPartClass() {
        return IntakesCommon.class;
     }
-    
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#createDocumentHandler(org.collectionspace.services.common.context.ServiceContext)
-     */
-//    @Override
-//    public DocumentHandler createDocumentHandler(ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx) throws Exception {
-//        DocumentHandler docHandler = ctx.getDocumentHandler();
-//        if (ctx.getInput() != null) {
-//            Object obj = ((MultipartServiceContext) ctx).getInputPart(ctx.getCommonPartLabel(), IntakesCommon.class);
-//            if (obj != null) {
-//                docHandler.setCommonPart((IntakesCommon) obj);
-//            }
-//        }
-//        return docHandler;
-//    }
-
-    /**
-     * Creates the intake.
-     * 
-     * @param input the input
-     * 
-     * @return the response
-     */
-    @POST
-    public Response createIntake(String xmlText) {     
-        try {
-               PoxPayloadIn input = new PoxPayloadIn(xmlText);
-               ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            String csid = getRepositoryClient(ctx).create(ctx, handler);
-            //intakeObject.setCsid(csid);
-            UriBuilder path = UriBuilder.fromResource(IntakeResource.class);
-            path.path("" + csid);
-            Response response = Response.created(path.build()).build();
-            return response;
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Create failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in createIntake", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-    }
-
-    
-    /**
-     * Gets the intake.
-     * 
-     * @param csid the csid
-     * 
-     * @return the intake
-     */
-    @GET
-    @Path("{csid}")
-    public byte[] getIntake(
-               @Context UriInfo ui,
-            @PathParam("csid") String csid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getIntake with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("getIntake: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "get failed on Intake csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            MultivaluedMap<String, String> queryParams = ui.getQueryParameters();              
-               ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).get(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Get failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getIntake", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Get failed on Intake csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getIntake", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Get failed, the requested Intake CSID:" + csid + ": was not found.").type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        
-        return result.getBytes();
-    }
 
-    /**
-     * Gets the intake list.
-     * 
-     * @param ui the ui
-     * @param keywords the keywords
-     * 
-     * @return the intake list
-     */
-    @GET
-    @Produces("application/xml")
-    public IntakesCommonList getIntakeList(@Context UriInfo ui,
-               @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords) {
-       IntakesCommonList result = null;
-       MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-       
-       if (keywords != null) {
-               result = searchIntakes(queryParams, keywords);
-       } else {
-               result = getIntakeList(queryParams);
-       }
-       return result;
-    }
-    
-    /**
-     * Gets the intake list.
-     * 
-     * @return the intake list
-     */
-    private IntakesCommonList getIntakeList(MultivaluedMap<String, String> queryParams) {
-        IntakesCommonList intakeObjectList;
-        try {
-               ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).getFiltered(ctx, handler);
-            intakeObjectList = (IntakesCommonList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getIntakeList", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return intakeObjectList;
-    }
-
-    /**
-     * Gets the authority refs.
-     * 
-     * @param csid the csid
-     * @param ui the ui
-     * 
-     * @return the authority refs
-     */
-    @GET
-    @Path("{csid}/authorityrefs")
-    @Produces("application/xml")
-    public AuthorityRefList getAuthorityRefs(
-               @PathParam("csid") String csid, 
-               @Context UriInfo ui) {
-       AuthorityRefList authRefList = null;
-        try {
-               MultivaluedMap<String, String> queryParams = ui.getQueryParameters();           
-               ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentWrapper<DocumentModel> docWrapper = 
-               getRepositoryClient(ctx).getDoc(ctx, csid);
-            DocumentModelHandler<PoxPayloadIn, PoxPayloadOut> handler 
-               = (DocumentModelHandler<PoxPayloadIn, PoxPayloadOut>)createDocumentHandler(ctx);
-            List<String> authRefFields = 
-               ((MultipartServiceContextImpl)ctx).getCommonPartPropertyValues(
-                               ServiceBindingUtils.AUTH_REF_PROP, ServiceBindingUtils.QUALIFIED_PROP_NAMES);
-            authRefList = handler.getAuthorityRefs(docWrapper, authRefFields);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getAuthorityRefs", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return authRefList;
-    }
-
-    /**
-     * Gets the intake list.
-     * 
-     * @param csidList the csid list
-     * 
-     * @return the intake list
-     */
     public IntakesCommonList getIntakeList(List<String> csidList) {
         IntakesCommonList intakeObjectList = new IntakesCommonList();
         try {
@@ -327,171 +75,20 @@ public class IntakeResource extends
             DocumentHandler handler = createDocumentHandler(ctx);
             getRepositoryClient(ctx).get(ctx, csidList, handler);
             intakeObjectList = (IntakesCommonList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
         } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getIntakeList", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
+            throw bigReThrow(e, ServiceMessages.LIST_FAILED);
         }
         return intakeObjectList;
     }
-    
-    /**
-     * Update intake.
-     * 
-     * @param csid the csid
-     * @param theUpdate the the update
-     * 
-     * @return the multipart output
-     */
-    @PUT
-    @Path("{csid}")
-    public byte[] updateIntake(
-            @PathParam("csid") String csid,
-            String xmlText) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("updateIntake with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("updateIntake: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "update failed on Intake csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            PoxPayloadIn update = new PoxPayloadIn(xmlText);
-               ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).update(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Update failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in updateIntake", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Update failed on Intake csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        
-        return result.getBytes();
-    }
-
-    /**
-     * Delete intake.
-     * 
-     * @param csid the csid
-     * 
-     * @return the response
-     */
-    @DELETE
-    @Path("{csid}")
-    public Response deleteIntake(@PathParam("csid") String csid) {
 
-        if (logger.isDebugEnabled()) {
-            logger.debug("deleteIntake with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("deleteIntake: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "delete failed on Intake csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        try {
-               ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
-            getRepositoryClient(ctx).delete(ctx, csid);
-            return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Delete failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deleteIntake", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Delete failed on Intake csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-    }
-    
-    /**
-     * Keywords search intakes.
-     * 
-     * @param ui the ui
-     * @param keywords the keywords
-     * 
-     * @return the intakes common list
-     */
     @GET
     @Path("/search")    
     @Produces("application/xml")
     @Deprecated
-    public IntakesCommonList keywordsSearchIntakes(@Context UriInfo ui,
+    public AbstractCommonList keywordsSearchIntakes(@Context UriInfo ui,
                @QueryParam (IQueryManager.SEARCH_TYPE_KEYWORDS) String keywords) {
        MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-       return searchIntakes(queryParams, keywords);
+       return search(queryParams, keywords);
     }
-       
-    /**
-     * Search intakes.
-     * 
-     * @param keywords the keywords
-     * 
-     * @return the intakes common list
-     */
-    private IntakesCommonList searchIntakes(MultivaluedMap<String, String> queryParams,
-               String keywords) {
-       IntakesCommonList intakesObjectList;
-        try {
-               ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
 
-            // perform a keyword search
-            if (keywords != null && !keywords.isEmpty()) {
-               String whereClause = QueryManager.createWhereClauseFromKeywords(keywords);
-                   DocumentFilter documentFilter = handler.getDocumentFilter();
-                   documentFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);
-                   if (logger.isDebugEnabled()) {
-                       logger.debug("The WHERE clause is: " + documentFilter.getWhereClause());
-                   }               
-            }
-            getRepositoryClient(ctx).getFiltered(ctx, handler);
-            intakesObjectList = (IntakesCommonList) handler.getCommonPartList();            
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in search for Intakes", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return intakesObjectList;
-    }
 }
index 20a667d849a9dcb72d36926df17bb8c4e269e4ef..68cff472dc821e697948ef7813f27b6cb0419899 100644 (file)
@@ -29,6 +29,7 @@ import org.collectionspace.services.jaxb.AbstractCommonList;
 public class LoaninClient extends AbstractPoxServiceClientImpl<AbstractCommonList, LoaninProxy> {
     public static final String SERVICE_NAME = "loansin";
     public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME;
+    public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT;
 
     /* (non-Javadoc)
      * @see org.collectionspace.services.client.AbstractServiceClientImpl#getServicePathComponent()
index 214ddbef38305c702543bcdb104367364738946a..8591d72092e9beecd9dfce3c0e75d2e877581f04 100644 (file)
             <artifactId>org.collectionspace.services.loanin.jaxb</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.collectionspace.services</groupId>
+            <artifactId>org.collectionspace.services.loanin.client</artifactId>
+            <version>${project.version}</version>
+        </dependency>
         <dependency>
             <groupId>org.collectionspace.services</groupId>
             <artifactId>org.collectionspace.services.collectionobject.jaxb</artifactId>
             <version>${project.version}</version>
         </dependency>
-        <!-- External dependencies -->        
+        <!-- External dependencies -->
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
index 8b19a5877e001c5536f38b2676a7aec52ecf8bd0..d270c7c64f2f14d757a4780f6a0ec64e8fafcf1e 100644 (file)
  */
 package org.collectionspace.services.loanin;
 
-import java.util.List;
+import org.collectionspace.services.client.LoaninClient;
+import org.collectionspace.services.common.ResourceBase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 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.WebApplicationException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-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;
-import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
-import org.collectionspace.services.common.ServiceMessages;
-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;
-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.jaxb.AbstractCommonList;
-import org.collectionspace.services.nuxeo.client.java.CommonList;
-import org.collectionspace.services.nuxeo.client.java.DocumentModelHandler;
-import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.nuxeo.ecm.core.api.DocumentModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The Class LoaninResource.
- */
-@Path("/loansin")
+@Path(LoaninClient.SERVICE_PATH)
 @Consumes("application/xml")
 @Produces("application/xml")
-public class LoaninResource extends
-               AbstractMultiPartCollectionSpaceResourceImpl {
+public class LoaninResource extends ResourceBase {
 
-    /** The Constant SERVICE_NAME. */
-    private final static String SERVICE_NAME = "loansin";
-    
-    /** The logger. */
     final Logger logger = LoggerFactory.getLogger(LoaninResource.class);
-    //FIXME retrieve client type from configuration
-    /** The Constant CLIENT_TYPE. */
-    final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
-
-    /**
-     * Instantiates a new loanin resource.
-     */
-    public LoaninResource() {
-        // do nothing
-    }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
-     */
     @Override
     protected String getVersionString() {
-       /** The last change revision. */
        final String lastChangeRevision = "$LastChangedRevision$";
        return lastChangeRevision;
     }
     
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
-        return SERVICE_NAME;
+        return LoaninClient.SERVICE_NAME;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
-     */
     @Override
     public Class<LoansinCommon> getCommonPartClass() {
        return LoansinCommon.class;
     }
-    
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#createDocumentHandler(org.collectionspace.services.common.context.ServiceContext)
-     */
-//    @Override
-//    public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-//        DocumentHandler docHandler = ctx.getDocumentHandler();
-//        if (ctx.getInput() != null) {
-//            Object obj = ((MultipartServiceContext) ctx).getInputPart(ctx.getCommonPartLabel(), LoansinCommon.class);
-//            if (obj != null) {
-//                docHandler.setCommonPart((LoansinCommon) obj);
-//            }
-//        }
-//        return docHandler;
-//    }
-
-    @POST
-    public Response createLoanin(String xmlText) {
-        try {
-            PoxPayloadIn input = new PoxPayloadIn(xmlText);
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            String csid = getRepositoryClient(ctx).create(ctx, handler);
-            //loaninObject.setCsid(csid);
-            UriBuilder path = UriBuilder.fromResource(LoaninResource.class);
-            path.path("" + csid);
-            Response response = Response.created(path.build()).build();
-            return response;
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Create failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in createLoanin", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-    }
+}
 
-    /**
-     * Gets the loanin.
-     * 
-     * @param csid the csid
-     * 
-     * @return the loanin
-     */
-    @GET
-    @Path("{csid}")
-    public byte[] getLoanin(
-               @Context UriInfo ui,
-            @PathParam("csid") String csid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getLoanin with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("getLoanin: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "get failed on Loanin csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).get(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Get failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getLoanin", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Get failed on Loanin csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getLoanin", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Get failed, the requested Loanin CSID:" + csid + ": was not found.").type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result.getBytes();
-    }
 
-    /**
-     * Gets the loanin list.
-     * 
-     * @param ui the ui
-     * @param keywords the keywords
-     * 
-     * @return the loanin list
-     */
-    @GET
-    @Produces({"application/xml"})
-    public AbstractCommonList getLoaninList(@Context UriInfo ui,
-               @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords) {
-       AbstractCommonList result = null;
-       MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-       if (keywords != null) {
-               result = searchLoansin(queryParams, keywords);
-       } else {
-               result = getLoaninList(queryParams);
-       }
-       return result;
-    }
-    
-    /**
-     * Gets the loanin list.
-     * 
-     * @return the loanin list
-     */
-    private CommonList getLoaninList(MultivaluedMap<String, String> queryParams) {
-        CommonList loaninObjectList;
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).getFiltered(ctx, handler);
-            loaninObjectList = (CommonList) handler.getCommonPartList();
-        } catch (Exception e) {
-            throw bigReThrow(e, ServiceMessages.LIST_FAILED, "no-csid-for-list");
-        }
-        return loaninObjectList;
-    }
 
-    /**
-     * Gets the authority refs.
-     * 
-     * @param csid the csid
-     * @param ui the ui
-     * 
-     * @return the authority refs
-     */
-    @GET
-    @Path("{csid}/authorityrefs")
-    public AuthorityRefList getAuthorityRefs(
-               @PathParam("csid") String csid, 
-               @Context UriInfo ui) {
-       AuthorityRefList authRefList = null;
-        try {
-               MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentWrapper<DocumentModel> docWrapper = 
-               getRepositoryClient(ctx).getDoc(ctx, csid);
-            DocumentModelHandler<PoxPayloadIn, PoxPayloadOut> handler 
-               = (DocumentModelHandler<PoxPayloadIn, PoxPayloadOut>)createDocumentHandler(ctx);
-            List<String> authRefFields = 
-               ((MultipartServiceContextImpl)ctx).getCommonPartPropertyValues(
-                               ServiceBindingUtils.AUTH_REF_PROP, ServiceBindingUtils.QUALIFIED_PROP_NAMES);
-            authRefList = handler.getAuthorityRefs(docWrapper, authRefFields);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Failed to retrieve authority references: reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getAuthorityRefs", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Failed to retrieve authority references").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return authRefList;
-    }
 
-    /**
-     * Gets the loanin list.
-     * 
-     * @param csidList the csid list
-     * 
-     * @return the loanin list
-     */
-    @Produces({"application/xml"})
-    @Deprecated
-    public CommonList getLoaninList(List<String> csidList) {
-        CommonList loaninObjectList;
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
-            loaninObjectList = new CommonList();
-//             ServiceContext<MultipartInput, MultipartOutput> ctx = createServiceContext();
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).get(ctx, csidList, handler);
-            loaninObjectList = (CommonList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getLoaninList", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return loaninObjectList;
-    }
-    
-    /**
-     * Update loanin.
-     * @param csid the csid
-     * @return the multipart output
-     */
-    @PUT
-    @Path("{csid}")
-    public byte[] updateLoanin(
-            @PathParam("csid") String csid,
-            String xmlText) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("updateLoanin with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("updateLoanin: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "update failed on Loanin csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            PoxPayloadIn update = new PoxPayloadIn(xmlText);
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).update(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Update failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in updateLoanin", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Update failed on Loanin csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result.getBytes();
-    }
-
-    /**
-     * Delete loanin.
-     * 
-     * @param csid the csid
-     * 
-     * @return the response
-     */
-    @DELETE
-    @Path("{csid}")
-    public Response deleteLoanin(@PathParam("csid") String csid) {
 
-        if (logger.isDebugEnabled()) {
-            logger.debug("deleteLoanin with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("deleteLoanin: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "delete failed on Loanin csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
-            getRepositoryClient(ctx).delete(ctx, csid);
-            return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Delete failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deleteLoanin", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Delete failed on Loanin csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-    }
-               
-    /**
-     * Search loansin.
-     * 
-     * @param keywords the keywords
-     * 
-     * @return the loansin common list
-     */
-    private CommonList searchLoansin(
-               MultivaluedMap<String, String> queryParams,
-               String keywords) {
-       CommonList loansinObjectList;
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
 
-            // perform a keyword search
-            if (keywords != null && !keywords.isEmpty()) {
-               String whereClause = QueryManager.createWhereClauseFromKeywords(keywords);
-                   DocumentFilter documentFilter = handler.getDocumentFilter();
-                   documentFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);
-                   if (logger.isDebugEnabled()) {
-                       logger.debug("The WHERE clause is: " + documentFilter.getWhereClause());
-                   }
-            }
-            getRepositoryClient(ctx).getFiltered(ctx, handler);
-            loansinObjectList = (CommonList) handler.getCommonPartList();            
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in search for Loansin", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return loansinObjectList;
-    }
-}
index 614ec5894e73f8cac974c0c2232b311612720d92..dd7ae6561e0ba4c1a76f8256e5e30ff22391eb73 100644 (file)
  */
 package org.collectionspace.services.loanout;
 
-import java.util.List;
+import org.collectionspace.services.common.ResourceBase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 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.WebApplicationException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
-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;
-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.MultipartServiceContextImpl;
-import org.collectionspace.services.common.context.ServiceBindingUtils;
-import org.collectionspace.services.common.context.ServiceContext;
-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.nuxeo.client.java.DocumentModelHandler;
-import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.nuxeo.ecm.core.api.DocumentModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-/**
- * The Class LoanoutResource.
- */
 @Path("/loansout")
+//@Path(LoanoutClient.SERVICE_PATH_COMPONENT)
 @Consumes("application/xml")
 @Produces("application/xml")
-public class LoanoutResource extends
-               AbstractMultiPartCollectionSpaceResourceImpl {
+public class LoanoutResource extends ResourceBase {
 
-    /** The Constant serviceName. */
     private final static String serviceName = "loansout";
     
-    /** The logger. */
     final Logger logger = LoggerFactory.getLogger(LoanoutResource.class);
-    //FIXME retrieve client type from configuration
-    /** The Constant CLIENT_TYPE. */
-    final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
-
-    /**
-     * Instantiates a new loanout resource.
-     */
-    public LoanoutResource() {
-        // do nothing
-    }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
-     */
     @Override
     protected String getVersionString() {
-       /** The last change revision. */
        final String lastChangeRevision = "$LastChangedRevision$";
        return lastChangeRevision;
     }
     
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
         return serviceName;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
-     */
     @Override
     public Class<LoansoutCommon> getCommonPartClass() {
        return LoansoutCommon.class;
     }
-    
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#createDocumentHandler(org.collectionspace.services.common.context.ServiceContext)
-     */
-//    @Override
-//    public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-//        DocumentHandler docHandler = ctx.getDocumentHandler();
-//        if (ctx.getInput() != null) {
-//            Object obj = ((MultipartServiceContext) ctx).getInputPart(ctx.getCommonPartLabel(), LoansoutCommon.class);
-//            if (obj != null) {
-//                docHandler.setCommonPart((LoansoutCommon) obj);
-//            }
-//        }
-//        return docHandler;
-//    }
-
-    /**
-     * Creates the loanout.
-     * 
-     * @param input the input
-     * 
-     * @return the response
-     */
-    @POST
-    public Response createLoanout(String xmlText) {
-        try {
-            PoxPayloadIn input = new PoxPayloadIn(xmlText);
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            String csid = getRepositoryClient(ctx).create(ctx, handler);
-            //loanoutObject.setCsid(csid);
-            UriBuilder path = UriBuilder.fromResource(LoanoutResource.class);
-            path.path("" + csid);
-            Response response = Response.created(path.build()).build();
-            return response;
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Create failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in createLoanout", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-    }
-
-    /**
-     * Gets the loanout.
-     * 
-     * @param csid the csid
-     * 
-     * @return the loanout
-     */
-    @GET
-    @Path("{csid}")
-    public byte[] getLoanout(
-               @Context UriInfo ui,
-            @PathParam("csid") String csid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getLoanout with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("getLoanout: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "get failed on Loanout csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).get(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Get failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getLoanout", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Get failed on Loanout csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getLoanout", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Get failed, the requested Loanout CSID:" + csid + ": was not found.").type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result.getBytes();
-    }
-
-    /**
-     * Gets the loanout list.
-     * 
-     * @param ui the ui
-     * @param keywords the keywords
-     * 
-     * @return the loanout list
-     */
-    @GET
-    @Produces("application/xml")
-    public LoansoutCommonList getLoanoutList(@Context UriInfo ui,
-               @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords) {
-       LoansoutCommonList result = null;
-       MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-       if (keywords != null) {
-               result = searchLoansout(queryParams, keywords);
-       } else {
-               result = getLoanoutList(queryParams);
-       }
-       return result;
-    }
-    
-    /**
-     * Gets the loanout list.
-     * 
-     * @return the loanout list
-     */
-    private LoansoutCommonList getLoanoutList(MultivaluedMap<String, String> queryParams) {
-        LoansoutCommonList loanoutObjectList;
-        try {
-               ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).getFiltered(ctx, handler);
-            loanoutObjectList = (LoansoutCommonList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getLoanoutList", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return loanoutObjectList;
-    }
-
-    /**
-     * Gets the authority refs.
-     * 
-     * @param csid the csid
-     * @param ui the ui
-     * 
-     * @return the authority refs
-     */
-    @GET
-    @Path("{csid}/authorityrefs")
-    @Produces("application/xml")
-    public AuthorityRefList getAuthorityRefs(
-               @PathParam("csid") String csid, 
-               @Context UriInfo ui) {
-       AuthorityRefList authRefList = null;
-        try {
-               MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentWrapper<DocumentModel> docWrapper = 
-               getRepositoryClient(ctx).getDoc(ctx, csid);
-            DocumentModelHandler<PoxPayloadIn, PoxPayloadOut> handler 
-               = (DocumentModelHandler<PoxPayloadIn, PoxPayloadOut>)createDocumentHandler(ctx);
-            List<String> authRefFields = 
-               ((MultipartServiceContextImpl)ctx).getCommonPartPropertyValues(
-                               ServiceBindingUtils.AUTH_REF_PROP, ServiceBindingUtils.QUALIFIED_PROP_NAMES);
-            authRefList = handler.getAuthorityRefs(docWrapper, authRefFields);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Failed to retrieve authority references: reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getAuthorityRefs", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Failed to retrieve authority references").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return authRefList;
-    }
-
-    /**
-     * Gets the loanout list.
-     * 
-     * @param csidList the csid list
-     * 
-     * @return the loanout list
-     */
-    @Deprecated
-    public LoansoutCommonList getLoanoutList(List<String> csidList) {
-        LoansoutCommonList loanoutObjectList = new LoansoutCommonList();
-        try {
-               ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).get(ctx, csidList, handler);
-            loanoutObjectList = (LoansoutCommonList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getLoanoutList", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return loanoutObjectList;
-    }
-    
-    /**
-     * Update loanout.
-     * 
-     * @param csid the csid
-     * @param theUpdate the the update
-     * 
-     * @return the multipart output
-     */
-    @PUT
-    @Path("{csid}")
-    public byte[] updateLoanout(
-            @PathParam("csid") String csid,
-            String xmlText) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("updateLoanout with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("updateLoanout: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "update failed on Loanout csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            PoxPayloadIn update = new PoxPayloadIn(xmlText);
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).update(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Update failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in updateLoanout", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Update failed on Loanout csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result.getBytes();
-    }
-
-    /**
-     * Delete loanout.
-     * 
-     * @param csid the csid
-     * 
-     * @return the response
-     */
-    @DELETE
-    @Path("{csid}")
-    public Response deleteLoanout(@PathParam("csid") String csid) {
-
-        if (logger.isDebugEnabled()) {
-            logger.debug("deleteLoanout with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("deleteLoanout: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "delete failed on Loanout csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
-            getRepositoryClient(ctx).delete(ctx, csid);
-            return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Delete failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deleteLoanout", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Delete failed on Loanout csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-    }
-               
-    /**
-     * Search loansout.
-     * 
-     * @param keywords the keywords
-     * 
-     * @return the loansout common list
-     */
-    private LoansoutCommonList searchLoansout(MultivaluedMap<String, String> queryParams,
-               String keywords) {
-       LoansoutCommonList loansoutObjectList;
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-
-            // perform a keyword search
-            if (keywords != null && !keywords.isEmpty()) {
-               String whereClause = QueryManager.createWhereClauseFromKeywords(keywords);
-                   DocumentFilter documentFilter = handler.getDocumentFilter();
-                   documentFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);
-                   if (logger.isDebugEnabled()) {
-                       logger.debug("The WHERE clause is: " + documentFilter.getWhereClause());
-                   }
-            }
-            getRepositoryClient(ctx).getFiltered(ctx, handler);
-            loansoutObjectList = (LoansoutCommonList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in search for Loansout", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return loansoutObjectList;
-    }
 }
index 6f780fc3dff3fe09f5b813ff3c7f5b0677d277d7..4192899775f6f0ee3783cef7e0313af14a82037c 100644 (file)
  */
 package org.collectionspace.services.location;
 
-import java.util.List;
-
-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.WebApplicationException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
 import org.collectionspace.services.client.LocationAuthorityClient;
-import org.collectionspace.services.common.vocabulary.AuthorityJAXBSchema;
-import org.collectionspace.services.LocationJAXBSchema;
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
-import org.collectionspace.services.common.authorityref.AuthorityRefDocList;
-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;
-import org.collectionspace.services.common.document.BadRequestException;
-import org.collectionspace.services.common.document.DocumentException;
-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.repository.RepositoryClient;
-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.nuxeo.client.java.RemoteDocumentModelHandlerImpl;
 import org.collectionspace.services.location.nuxeo.LocationDocumentModelHandler;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.nuxeo.ecm.core.api.DocumentModel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-/**
- * The Class LocationAuthorityResource.
- */
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
 @Path(LocationAuthorityClient.SERVICE_PATH)
 @Consumes("application/xml")
 @Produces("application/xml")
@@ -88,33 +46,18 @@ public class LocationAuthorityResource
     private final static String locationServiceName = "locations";
        private final static String LOCATIONS_COMMON = "locations_common";
     
-    /** The logger. */
     final Logger logger = LoggerFactory.getLogger(LocationAuthorityResource.class);
-    //FIXME retrieve client type from configuration
-    /** The Constant CLIENT_TYPE. */
-    final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
-    
-    /**
-     * Instantiates a new location authority resource.
-     */
+
     public LocationAuthorityResource() {
                super(LocationauthoritiesCommon.class, LocationAuthorityResource.class,
                                LOCATIONAUTHORITIES_COMMON, LOCATIONS_COMMON);
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
         return locationAuthorityServiceName;
     }
 
-    /**
-     * Gets the item service name.
-     * 
-     * @return the item service name
-     */
     public String getItemServiceName() {
         return locationServiceName;
     }
index fcf4f6e73c0a65e378446acb8468bf14999ceb70..ee745926a36e61d7fdb3dab954bf6d7e8e0a5dc1 100644 (file)
  */
 package org.collectionspace.services.media;
 
+import org.collectionspace.services.blob.BlobResource;
 import org.collectionspace.services.client.BlobClient;
 import org.collectionspace.services.client.MediaClient;
 import org.collectionspace.services.client.PayloadOutputPart;
 import org.collectionspace.services.client.PoxPayloadIn;
 import org.collectionspace.services.client.PoxPayloadOut;
-import org.collectionspace.services.common.ResourceBase;
 import org.collectionspace.services.common.ClientType;
+import org.collectionspace.services.common.ResourceBase;
 import org.collectionspace.services.common.ServiceMain;
 import org.collectionspace.services.common.ServiceMessages;
 import org.collectionspace.services.common.blob.BlobInput;
 import org.collectionspace.services.common.blob.BlobUtil;
 import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.blob.BlobResource;
 import org.collectionspace.services.nuxeo.client.java.CommonList;
 import org.jboss.resteasy.util.HttpResponseCodes;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -51,14 +50,9 @@ 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.MultivaluedMap;
 import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-
 import java.io.InputStream;
-import java.util.List;
 
 @Path(MediaClient.SERVICE_PATH)
 @Consumes("application/xml")
index cb2836c022a5885f3cb809e6eebab452a869cea1..ab59c59008d3e9e511a86f3a7acf2531f1da682f 100644 (file)
@@ -487,8 +487,7 @@ public class MovementSortByTest extends BaseServiceTest {
         if (logger.isDebugEnabled()) {
             logger.debug(testBanner(testName, CLASS_NAME));
         }
-        // FIXME: Ultimately, this should return a BAD_REQUEST status.
-        testSetup(STATUS_INTERNAL_SERVER_ERROR, ServiceRequestType.READ);
+        testSetup(STATUS_BAD_REQUEST, ServiceRequestType.READ);
 
         // Submit the request to the service and store the response.
         MovementClient client = new MovementClient();
@@ -517,8 +516,7 @@ public class MovementSortByTest extends BaseServiceTest {
         if (logger.isDebugEnabled()) {
             logger.debug(testBanner(testName, CLASS_NAME));
         }
-        // FIXME: Ultimately, this should return a BAD_REQUEST status.
-        testSetup(STATUS_INTERNAL_SERVER_ERROR, ServiceRequestType.READ);
+        testSetup(STATUS_BAD_REQUEST, ServiceRequestType.READ);
 
         // Submit the request to the service and store the response.
         MovementClient client = new MovementClient();
index 9eabc256ccdca4bf6f71c3d94e2fef9ab6dfb57a..231aa51a25ac5a6066b1ac47abab97c2a9500e1b 100644 (file)
             <artifactId>org.collectionspace.services.movement.jaxb</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.collectionspace.services</groupId>
+            <artifactId>org.collectionspace.services.movement.client</artifactId>
+            <version>${project.version}</version>
+        </dependency>
         <dependency>
             <groupId>org.collectionspace.services</groupId>
             <artifactId>org.collectionspace.services.collectionobject.jaxb</artifactId>
index 6a56a1bf99191ec9b2be7aa07f1605d94cf40dae..77faf3c3ce1eb0a0810e91eaab61991b51b5accd 100644 (file)
  */
 package org.collectionspace.services.movement;
 
-import java.util.List;
+import org.collectionspace.services.client.MovementClient;
+import org.collectionspace.services.common.ResourceBase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 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.WebApplicationException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
-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;
-import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
-import org.collectionspace.services.common.ServiceMessages;
-import org.collectionspace.services.common.authorityref.AuthorityRefList;
-import org.collectionspace.services.common.context.MultipartServiceContextImpl;
-import org.collectionspace.services.common.context.ServiceBindingUtils;
-import org.collectionspace.services.common.context.ServiceContext;
-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.movement.MovementsCommon;
-import org.collectionspace.services.movement.MovementsCommonList;
-import org.collectionspace.services.nuxeo.client.java.DocumentModelHandler;
-import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.nuxeo.ecm.core.api.DocumentModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * MovementResource.java
  *
  * Handles requests to the Movement service, orchestrates the retrieval
  * of relevant resources, and returns responses to the client.
- *
- * $LastChangedRevision$
- * $LastChangedDate$
  */
-@Path("/movements")
+@Path(MovementClient.SERVICE_PATH)
 @Consumes("application/xml")
 @Produces("application/xml")
-public class MovementResource extends AbstractMultiPartCollectionSpaceResourceImpl {
+public class MovementResource extends ResourceBase {
 
-    /** The Constant serviceName. */
-    private final static String serviceName = "movements";
-    /** The logger. */
     final Logger logger = LoggerFactory.getLogger(MovementResource.class);
-    //FIXME retrieve client type from configuration
-    /** The Constant CLIENT_TYPE. */
-    final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
-
-    /**
-     * Instantiates a new movement resource.
-     */
-    public MovementResource() {
-        // do nothing
-    }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
-     */
     @Override
     protected String getVersionString() {
-        /** The last change revision. */
         final String lastChangeRevision = "$LastChangedRevision$";
         return lastChangeRevision;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
-        return serviceName;
+        return MovementClient.SERVICE_NAME;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
-     */
     @Override
     public Class<MovementsCommon> getCommonPartClass() {
         return MovementsCommon.class;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#createDocumentHandler(org.collectionspace.services.common.context.ServiceContext)
-     */
-//    @Override
-//    public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-//        DocumentHandler docHandler = ctx.getDocumentHandler();
-//        if (ctx.getInput() != null) {
-//            Object obj = ((MultipartServiceContext) ctx).getInputPart(ctx.getCommonPartLabel(), MovementsCommon.class);
-//            if (obj != null) {
-//                docHandler.setCommonPart((MovementsCommon) obj);
-//            }
-//        }
-//        return docHandler;
-//    }
-    /**
-     * Creates the movement.
-     * 
-     * @param input the input
-     * 
-     * @return the response
-     */
-    @POST
-    public Response createMovement(String xmlText) {
-        try {
-            PoxPayloadIn input = new PoxPayloadIn(xmlText);
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            String csid = getRepositoryClient(ctx).create(ctx, handler);
-            //movementObject.setCsid(csid);
-            UriBuilder path = UriBuilder.fromResource(MovementResource.class);
-            path.path("" + csid);
-            Response response = Response.created(path.build()).build();
-            return response;
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(
-                    ServiceMessages.CREATE_FAILED + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in createMovement", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.CREATE_FAILED + e.getMessage()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-    }
-
-    /**
-     * Gets the movement.
-     * 
-     * @param csid the csid
-     * 
-     * @return the movement
-     */
-    @GET
-    @Path("{csid}")
-    public byte[] getMovement(
-               @Context UriInfo ui,
-            @PathParam("csid") String csid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getMovement with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("getMovement:" + ServiceMessages.MISSING_CSID);
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.READ_FAILED + ServiceMessages.MISSING_CSID).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).get(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(
-                    ServiceMessages.READ_FAILED + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getMovement", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.READ_FAILED + ServiceMessages.resourceNotFoundMsg(csid)).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getMovement", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.READ_FAILED + e.getMessage()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.READ_FAILED + ServiceMessages.resourceNotFoundMsg(csid)).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result.getBytes();
-    }
-
-    /**
-     * Gets the movement list.
-     * 
-     * @param ui the ui
-     * @param keywords the keywords
-     * 
-     * @return the movement list
-     */
-    @GET
-    @Produces("application/xml")
-    public MovementsCommonList getMovementList(@Context UriInfo ui,
-            @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords) {
-        MovementsCommonList result = null;
-        MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-        if (keywords != null) {
-            result = searchMovements(queryParams, keywords);
-        } else {
-            result = getMovementList(queryParams);
-        }
-
-        return result;
-    }
-
-    /**
-     * Gets the movement list.
-     * 
-     * @return the movement list
-     */
-    private MovementsCommonList getMovementList(MultivaluedMap<String, String> queryParams) {
-        MovementsCommonList movementObjectList;
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).getFiltered(ctx, handler);
-            movementObjectList = (MovementsCommonList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(
-                    ServiceMessages.LIST_FAILED + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getMovementList", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.LIST_FAILED + e.getMessage()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return movementObjectList;
-    }
-
-    /**
-     * Gets the authority refs.
-     * 
-     * @param csid the csid
-     * @param ui the ui
-     * 
-     * @return the authority refs
-     */
-    @GET
-    @Path("{csid}/authorityrefs")
-    @Produces("application/xml")
-    public AuthorityRefList getAuthorityRefs(
-            @PathParam("csid") String csid,
-            @Context UriInfo ui) {
-        AuthorityRefList authRefList = null;
-        try {
-            MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentWrapper<DocumentModel> docWrapper =
-                    getRepositoryClient(ctx).getDoc(ctx, csid);
-            DocumentModelHandler<PoxPayloadIn, PoxPayloadOut> handler = (DocumentModelHandler<PoxPayloadIn, PoxPayloadOut>) createDocumentHandler(ctx);
-            List<String> authRefFields =
-                    ((MultipartServiceContextImpl) ctx).getCommonPartPropertyValues(
-                    ServiceBindingUtils.AUTH_REF_PROP, ServiceBindingUtils.QUALIFIED_PROP_NAMES);
-            authRefList = handler.getAuthorityRefs(docWrapper, authRefFields);
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(
-                    ServiceMessages.AUTH_REFS_FAILED + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getAuthorityRefs", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.AUTH_REFS_FAILED + e.getMessage()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return authRefList;
-    }
-
-    /**
-     * Gets the movement list.
-     * 
-     * @param csidList the csid list
-     * 
-     * @return the movement list
-     */
-    @Deprecated
-    public MovementsCommonList getMovementList(List<String> csidList) {
-        MovementsCommonList movementObjectList = new MovementsCommonList();
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).get(ctx, csidList, handler);
-            movementObjectList = (MovementsCommonList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(
-                    ServiceMessages.LIST_FAILED + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getMovementList", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.LIST_FAILED + e.getMessage()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return movementObjectList;
-    }
-
-    /**
-     * Update movement.
-     * 
-     * @param csid the csid
-     * @param theUpdate the the update
-     * 
-     * @return the multipart output
-     */
-    @PUT
-    @Path("{csid}")
-    public byte[] updateMovement(
-            @PathParam("csid") String csid,
-            String xmlText) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("updateMovement with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("updateMovement: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    ServiceMessages.UPDATE_FAILED + ServiceMessages.MISSING_CSID).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            PoxPayloadIn update = new PoxPayloadIn(xmlText);
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).update(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(
-                    ServiceMessages.UPDATE_FAILED + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in updateMovement", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.UPDATE_FAILED + ServiceMessages.resourceNotFoundMsg(csid)).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.UPDATE_FAILED + e.getMessage()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result.getBytes();
-    }
-
-    /**
-     * Delete movement.
-     * 
-     * @param csid the csid
-     * 
-     * @return the response
-     */
-    @DELETE
-    @Path("{csid}")
-    public Response deleteMovement(@PathParam("csid") String csid) {
-
-        if (logger.isDebugEnabled()) {
-            logger.debug("deleteMovement with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("deleteMovement: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "delete failed on Movement csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
-            getRepositoryClient(ctx).delete(ctx, csid);
-            return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(
-                    ServiceMessages.DELETE_FAILED + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deleteMovement", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    ServiceMessages.DELETE_FAILED + ServiceMessages.resourceNotFoundMsg(csid)).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.DELETE_FAILED + e.getMessage()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-    }
-
-    /**
-     * Search movements.
-     * 
-     * @param keywords the keywords
-     * 
-     * @return the movements common list
-     */
-    private MovementsCommonList searchMovements(MultivaluedMap<String, String> queryParams,
-            String keywords) {
-        MovementsCommonList movementsObjectList;
-        try {
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-
-            // perform a keyword search
-            if (keywords != null && !keywords.isEmpty()) {
-                String whereClause = QueryManager.createWhereClauseFromKeywords(keywords);
-                DocumentFilter documentFilter = handler.getDocumentFilter();
-                documentFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);
-                if (logger.isDebugEnabled()) {
-                    logger.debug("The WHERE clause is: " + documentFilter.getWhereClause());
-                }
-            }
-            getRepositoryClient(ctx).getFiltered(ctx, handler);
-            movementsObjectList = (MovementsCommonList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity(
-                    ServiceMessages.SEARCH_FAILED + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in search for Movements", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity(
-                    ServiceMessages.SEARCH_FAILED + e.getMessage()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return movementsObjectList;
-    }
 }
index 92d88fc565250a1f3bf5089c3d939ce5e75637b3..ac2bef72ac80230e345b470c9a3fff27cd95727c 100644 (file)
@@ -36,7 +36,8 @@ import org.jboss.resteasy.spi.ResteasyProviderFactory;
 public class NoteClient extends AbstractServiceClientImpl<NotesCommonList, NoteProxy> {\r
 \r
     public static final String SERVICE_NAME = "notes";\r
-    public static final String SERVICE_PATH_COMPONENT = "notes";\r
+    public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME;\r
+    public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT;\r
 \r
     @Override\r
     public String getServiceName() {\r
index 28cd8292cde3c1ad6ea201867f1d1422e2c60f1b..6b3e197d77ffcfdd20ac0ec49054b2bb85c53339 100644 (file)
             <artifactId>org.collectionspace.services.note.jaxb</artifactId>\r
             <version>${project.version}</version>\r
         </dependency>\r
+        <dependency>\r
+            <groupId>org.collectionspace.services</groupId>\r
+            <artifactId>org.collectionspace.services.note.client</artifactId>\r
+            <version>${project.version}</version>\r
+         </dependency>\r
         <!-- External dependencies -->\r
         <dependency>\r
             <groupId>org.testng</groupId>\r
index 63894b0269ab8fad8be4ed1b1683ab55949f3837..368b7663f3fa7f2d6f4f30acbb81efe7b34e304c 100644 (file)
  */\r
 package org.collectionspace.services.note;\r
 \r
+import org.collectionspace.services.client.NoteClient;\r
+import org.collectionspace.services.common.ResourceBase;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+\r
 import javax.ws.rs.Consumes;\r
-import javax.ws.rs.GET;\r
 import javax.ws.rs.Path;\r
 import javax.ws.rs.Produces;\r
-import javax.ws.rs.DELETE;\r
-import javax.ws.rs.POST;\r
-import javax.ws.rs.PUT;\r
-import javax.ws.rs.PathParam;\r
-import javax.ws.rs.WebApplicationException;\r
-import javax.ws.rs.core.Context;\r
-import javax.ws.rs.core.MultivaluedMap;\r
-import javax.ws.rs.core.Response;\r
-import javax.ws.rs.core.UriBuilder;\r
-import javax.ws.rs.core.UriInfo;\r
-\r
-import org.collectionspace.services.client.PoxPayloadIn;\r
-import org.collectionspace.services.client.PoxPayloadOut;\r
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;\r
-import org.collectionspace.services.common.ClientType;\r
-import org.collectionspace.services.common.ServiceMain;\r
-import org.collectionspace.services.common.context.ServiceContext;\r
-import org.collectionspace.services.common.document.DocumentNotFoundException;\r
-import org.collectionspace.services.common.document.DocumentHandler;\r
-\r
-import org.jboss.resteasy.util.HttpResponseCodes;\r
-import org.slf4j.Logger;\r
-import org.slf4j.LoggerFactory;\r
 \r
-/**\r
- * The Class NoteResource.\r
- */\r
-@Path("/notes")\r
+@Path(NoteClient.SERVICE_PATH)\r
 @Consumes("application/xml")\r
-@Produces("application/xml;charset=UTF-8")\r
-public class NoteResource extends \r
-               AbstractMultiPartCollectionSpaceResourceImpl {\r
-\r
-    /** The Constant serviceName. */\r
-    private final static String serviceName = "notes";\r
-    \r
-    /** The logger. */\r
+@Produces("application/xml")\r
+//@Produces("application/xml;charset=UTF-8")\r
+public class NoteResource extends ResourceBase {\r
     final Logger logger = LoggerFactory.getLogger(NoteResource.class);\r
-    //FIXME retrieve client type from configuration\r
-    /** The Constant CLIENT_TYPE. */\r
-    final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();\r
-\r
-    /**\r
-     * Instantiates a new note resource.\r
-     */\r
-    public NoteResource() {\r
-        // do nothing\r
-    }\r
 \r
-    /* (non-Javadoc)\r
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()\r
-     */\r
     @Override\r
     protected String getVersionString() {\r
-       /** The last change revision. */\r
        final String lastChangeRevision = "$LastChangedRevision: 1982 $";\r
        return lastChangeRevision;\r
     }\r
     \r
-    /* (non-Javadoc)\r
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()\r
-     */\r
-    @Override\r
+     @Override\r
     public String getServiceName() {\r
-        return serviceName;\r
+        return NoteClient.SERVICE_PATH_COMPONENT;\r
     }\r
 \r
-    /* (non-Javadoc)\r
-     * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()\r
-     */\r
     @Override\r
     public Class<NotesCommon> getCommonPartClass() {\r
        return NotesCommon.class;\r
     }\r
-    \r
-\r
-    /**\r
-                * Creates the note.\r
-                * \r
-                * @param input the input\r
-                * \r
-                * @return the response\r
-                */\r
-               @POST\r
-    public Response createNote(String xmlText) {\r
-        try {\r
-            PoxPayloadIn input = new PoxPayloadIn(xmlText);\r
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);\r
-            DocumentHandler handler = createDocumentHandler(ctx);\r
-            String csid = getRepositoryClient(ctx).create(ctx, handler);\r
-            UriBuilder path = UriBuilder.fromResource(NoteResource.class);\r
-            path.path("" + csid);\r
-            Response response = Response.created(path.build()).build();\r
-            return response;\r
-        } catch (Exception e) {\r
-            if (logger.isDebugEnabled()) {\r
-                logger.debug("Caught exception in createNote", e);\r
-            }\r
-            Response response = Response.status(\r
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();\r
-            throw new WebApplicationException(response);\r
-        }\r
-    }\r
 \r
-    /**\r
-     * Gets the note.\r
-     * \r
-     * @param csid the csid\r
-     * \r
-     * @return the note\r
-     */\r
-    @GET\r
-    @Path("{csid}")\r
-    public String getNote(\r
-            @PathParam("csid") String csid) {\r
-        if (logger.isDebugEnabled()) {\r
-            logger.debug("getNote with csid=" + csid);\r
-        }\r
-        if (csid == null || "".equals(csid)) {\r
-            logger.error("getNote: missing csid!");\r
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(\r
-                    "Get failed on Note csid=" + csid).type(\r
-                    "text/plain").build();\r
-            throw new WebApplicationException(response);\r
-        }\r
-        PoxPayloadOut result = null;\r
-        try {\r
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();\r
-            DocumentHandler handler = createDocumentHandler(ctx);\r
-            getRepositoryClient(ctx).get(ctx, csid, handler);\r
-            result = ctx.getOutput();\r
-        } catch (DocumentNotFoundException dnfe) {\r
-            if (logger.isDebugEnabled()) {\r
-                logger.debug("getNote", dnfe);\r
-            }\r
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(\r
-                    "Get failed on Note csid=" + csid).type(\r
-                    "text/plain").build();\r
-            throw new WebApplicationException(response);\r
-        } catch (Exception e) {\r
-            if (logger.isDebugEnabled()) {\r
-                logger.debug("getNote", e);\r
-            }\r
-            Response response = Response.status(\r
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();\r
-            throw new WebApplicationException(response);\r
-        }\r
-        if (result == null) {\r
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(\r
-                    "Get failed, the requested Note CSID:" + csid + ": was not found.").type(\r
-                    "text/plain").build();\r
-            throw new WebApplicationException(response);\r
-        }\r
-        return result.toXML();\r
-    }\r
-\r
-    /**\r
-     * Gets the note list.\r
-     * \r
-     * @param ui the ui\r
-     * \r
-     * @return the note list\r
-     */\r
-    @GET\r
-    @Produces("application/xml")\r
-    public NotesCommonList getNoteList(@Context UriInfo ui) {\r
-       MultivaluedMap<String, String> queryParams = ui.getQueryParameters();\r
-        NotesCommonList noteObjectList = new NotesCommonList();\r
-        try {\r
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);\r
-            DocumentHandler handler = createDocumentHandler(ctx);\r
-            getRepositoryClient(ctx).getFiltered(ctx, handler);\r
-            noteObjectList = (NotesCommonList) handler.getCommonPartList();\r
-        } catch (Exception e) {\r
-            if (logger.isDebugEnabled()) {\r
-                logger.debug("Caught exception in getNoteList", e);\r
-            }\r
-            Response response = Response.status(\r
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();\r
-            throw new WebApplicationException(response);\r
-        }\r
-        return noteObjectList;\r
-    }\r
-\r
-    /**\r
-     * Update note.\r
-     * \r
-     * @param csid the csid\r
-     * @param theUpdate the the update\r
-     * \r
-     * @return the multipart output\r
-     */\r
-    @PUT\r
-    @Path("{csid}")\r
-    public String updateNote(\r
-            @PathParam("csid") String csid,\r
-            String xmlText) {\r
-        if (logger.isDebugEnabled()) {\r
-            logger.debug("updateNote with csid=" + csid);\r
-        }\r
-        if (csid == null || "".equals(csid)) {\r
-            logger.error("updateNote: missing csid!");\r
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(\r
-                    "update failed on Note csid=" + csid).type(\r
-                    "text/plain").build();\r
-            throw new WebApplicationException(response);\r
-        }\r
-        PoxPayloadOut result = null;\r
-        try {\r
-            PoxPayloadIn update = new PoxPayloadIn(xmlText);\r
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);\r
-            DocumentHandler handler = createDocumentHandler(ctx);\r
-            getRepositoryClient(ctx).update(ctx, csid, handler);\r
-            result = ctx.getOutput();\r
-        } catch (DocumentNotFoundException dnfe) {\r
-            if (logger.isDebugEnabled()) {\r
-                logger.debug("Caught exception in updateNote", dnfe);\r
-            }\r
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(\r
-                    "Update failed on Note csid=" + csid).type(\r
-                    "text/plain").build();\r
-            throw new WebApplicationException(response);\r
-        } catch (Exception e) {\r
-            Response response = Response.status(\r
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();\r
-            throw new WebApplicationException(response);\r
-        }\r
-        return result.toXML();\r
-    }\r
-\r
-    /**\r
-     * Delete note.\r
-     * \r
-     * @param csid the csid\r
-     * \r
-     * @return the response\r
-     */\r
-    @DELETE\r
-    @Path("{csid}")\r
-    public Response deleteNote(@PathParam("csid") String csid) {\r
-\r
-        if (logger.isDebugEnabled()) {\r
-            logger.debug("deleteNote with csid=" + csid);\r
-        }\r
-        if (csid == null || "".equals(csid)) {\r
-            logger.error("deleteNote: missing csid!");\r
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(\r
-                    "Delete failed on Note csid=" + csid).type(\r
-                    "text/plain").build();\r
-            throw new WebApplicationException(response);\r
-        }\r
-        try {\r
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();\r
-            getRepositoryClient(ctx).delete(ctx, csid);\r
-            return Response.status(HttpResponseCodes.SC_OK).build();\r
-        } catch (DocumentNotFoundException dnfe) {\r
-            if (logger.isDebugEnabled()) {\r
-                logger.debug("Caught exception in deleteNote", dnfe);\r
-            }\r
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(\r
-                    "Delete failed on Note csid=" + csid).type(\r
-                    "text/plain").build();\r
-            throw new WebApplicationException(response);\r
-        } catch (Exception e) {\r
-            Response response = Response.status(\r
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();\r
-            throw new WebApplicationException(response);\r
-        }\r
-\r
-    }\r
 }\r
index a417bf36923b017ee188b5c2250b080076dcec06..bcede372a05e9e386893bd2ead1e896c3716fee4 100644 (file)
  */
 package org.collectionspace.services.organization;
 
-import javax.ws.rs.Consumes;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
 import org.collectionspace.services.client.OrgAuthorityClient;
 import org.collectionspace.services.contact.AuthorityResourceWithContacts;
 import org.collectionspace.services.organization.nuxeo.OrganizationDocumentModelHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-/**
- * The Class OrgAuthorityResource.
- */
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
 @Path("/" + OrgAuthorityClient.SERVICE_PATH_COMPONENT)
 @Consumes("application/xml")
 @Produces("application/xml")
@@ -51,34 +48,20 @@ public class OrgAuthorityResource extends
     
     final Logger logger = LoggerFactory.getLogger(OrgAuthorityResource.class);
     
-    /**
-     * Instantiates a new org authority resource.
-     */
     public OrgAuthorityResource() {
                super(OrgauthoritiesCommon.class, OrgAuthorityResource.class,
                                ORGAUTHORITIES_COMMON, ORGANIZATIONS_COMMON);
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
         return orgAuthorityServiceName;
     }
     
-    /**
-     * Gets the item service name.
-     * 
-     * @return the item service name
-     */
     public String getItemServiceName() {
         return organizationServiceName;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
-     */
     @Override
     public Class<OrgauthoritiesCommon> getCommonPartClass() {
        return OrgauthoritiesCommon.class;
index 9ae81cd1fd769688605fd44a709e637640459aaa..3b32b060e84ff012040600affc7572b1680db857 100644 (file)
  */
 package org.collectionspace.services.person;
 
-import javax.ws.rs.Consumes;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
 import org.collectionspace.services.client.PersonAuthorityClient;
 import org.collectionspace.services.contact.AuthorityResourceWithContacts;
 import org.collectionspace.services.person.nuxeo.PersonDocumentModelHandler;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-/**
- * The Class PersonAuthorityResource.
- */
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
 @Path(PersonAuthorityClient.SERVICE_PATH)
 @Consumes("application/xml")
 @Produces("application/xml")
@@ -44,35 +40,18 @@ public class PersonAuthorityResource extends
        AuthorityResourceWithContacts<PersonauthoritiesCommon, PersonauthoritiesCommonList, PersonsCommon,
                PersonDocumentModelHandler> {
 
-//    private final static String personAuthorityServiceName = "personauthorities";
-//     private final static String PERSONAUTHORITIES_COMMON = "personauthorities_common";
-       
-//    private final static String personServiceName = "persons";
-//     private final static String PERSONS_COMMON = "persons_common";
-    
     final Logger logger = LoggerFactory.getLogger(PersonAuthorityResource.class);
 
-    /**
-     * Instantiates a new person authority resource.
-     */
     public PersonAuthorityResource() {
                super(PersonauthoritiesCommon.class, PersonAuthorityResource.class,
                                PersonAuthorityClient.SERVICE_COMMON_PART_NAME, PersonAuthorityClient.SERVICE_ITEM_COMMON_PART_NAME);
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
         return PersonAuthorityClient.SERVICE_NAME;
     }
 
-    /**
-     * Gets the item service name.
-     * 
-     * @return the item service name
-     */
     @Override
     public String getItemServiceName() {
         return PersonAuthorityClient.SERVICE_ITEM_NAME;
index b74764c194d16be5c1651abe94350d2c11f6242e..4e7eb2178e045ebcca1dd1ebec01c89e9cfb50eb 100644 (file)
  */
 package org.collectionspace.services.relation;
 
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-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.MultivaluedMap;
-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.ResourceBase;
 import org.collectionspace.services.common.ServiceMessages;
-import org.collectionspace.services.common.relation.IRelationsManager;
-import org.collectionspace.services.common.relation.nuxeo.RelationsUtils;
 import org.collectionspace.services.common.context.ServiceContext;
 import org.collectionspace.services.common.document.DocumentHandler;
-
-import org.collectionspace.services.jaxb.AbstractCommonList;
-
+import org.collectionspace.services.common.relation.IRelationsManager;
+import org.collectionspace.services.common.relation.nuxeo.RelationsUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.UriInfo;
+
 @Path("/relations")
 @Consumes("application/xml")
 @Produces("application/xml")
index ba6a512dd3c000e8611653829336309ce631057f..bcd845086100dd29647ea6ea2f8ca299e236cf20 100644 (file)
@@ -39,7 +39,8 @@ import org.jboss.resteasy.client.ClientResponse;
 public class ReportClient extends AbstractPoxServiceClientImpl<ReportsCommonList, ReportProxy> {
 
     public static final String SERVICE_NAME = "reports";
-    public static final String SERVICE_PATH_COMPONENT = "reports";
+    public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME;
+    public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT;
 
     @Override
     public String getServiceName() {
index d2f025df5b3c8b51196551e0546bd6151be4d531..f2c8ed957797e0616327276ea7a0bacfead553d8 100644 (file)
             <artifactId>org.collectionspace.services.report.jaxb</artifactId>\r
             <version>${project.version}</version>\r
         </dependency>\r
+        <dependency>\r
+            <groupId>org.collectionspace.services</groupId>\r
+            <artifactId>org.collectionspace.services.report.client</artifactId>\r
+            <version>${project.version}</version>\r
+        </dependency>\r
         <dependency>\r
             <groupId>org.collectionspace.services</groupId>\r
             <artifactId>org.collectionspace.services.collectionobject.jaxb</artifactId>\r
index 9afb682cb03caee5492c2e669cfbea54d5d915f9..7935018b126bfc7665018239af2fb1fb5491abd5 100644 (file)
  */
 package org.collectionspace.services.report;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.List;
-
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import javax.security.auth.login.LoginException;
-import javax.sql.DataSource;
-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.WebApplicationException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
 import net.sf.jasperreports.engine.JRException;
 import net.sf.jasperreports.engine.JasperExportManager;
 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;
-import org.collectionspace.services.common.ClientType;
+import org.collectionspace.services.client.ReportClient;
+import org.collectionspace.services.common.ResourceBase;
 import org.collectionspace.services.common.ServiceMain;
 import org.collectionspace.services.common.config.ConfigReader;
 import org.collectionspace.services.common.context.ServiceContext;
-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.QueryManager;
 import org.collectionspace.services.common.security.UnauthorizedException;
-import org.jboss.resteasy.util.HttpResponseCodes;
 import org.nuxeo.ecm.core.api.DocumentModel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-/**
- * The Class ReportResource.
- */
-@Path("/reports")
-@Consumes("application/xml")
-@Produces("application/xml;charset=UTF-8")
-public class ReportResource extends
-               AbstractMultiPartCollectionSpaceResourceImpl {
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.security.auth.login.LoginException;
+import javax.sql.DataSource;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Response;
+import java.io.File;
+import java.io.FileInputStream;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.HashMap;
 
-    /** The Constant serviceName. */
-    private final static String serviceName = "reports";
-    
+@Path(ReportClient.SERVICE_PATH)
+@Consumes("application/xml")
+@Produces("application/xml")
+//@Produces("application/xml;charset=UTF-8")
+public class ReportResource extends ResourceBase {
     private static String repositoryName = "NuxeoDS";
     private static String reportsFolder = "reports";
-    
-       /** The logger. */
     final Logger logger = LoggerFactory.getLogger(ReportResource.class);
-    //FIXME retrieve client type from configuration
-    /** The Constant CLIENT_TYPE. */
-    final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
-
-    /**
-     * Instantiates a new report resource.
-     */
-    public ReportResource() {
-        // do nothing
-    }
-
-    public static String getRepositoryName() {
-               return repositoryName;
-       }
 
-       public static void setRepositoryName(String repositoryName) {
-               ReportResource.repositoryName = repositoryName;
-       }
-
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
-     */
     @Override
     protected String getVersionString() {
-       /** The last change revision. */
        final String lastChangeRevision = "$LastChangedRevision: 1982 $";
        return lastChangeRevision;
     }
     
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
-        return serviceName;
+        return ReportClient.SERVICE_NAME;
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
-     */
     @Override
     public Class<ReportsCommon> getCommonPartClass() {
        return ReportsCommon.class;
     }
-    
-    /**
-     * Creates the report.
-     * 
-     * @param input the input
-     * 
-     * @return the response
-     */
-    @POST
-    public Response createReport(String xmlText) {
-        try {
-            PoxPayloadIn input = new PoxPayloadIn(xmlText);
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            String csid = getRepositoryClient(ctx).create(ctx, handler);
-            UriBuilder path = UriBuilder.fromResource(ReportResource.class);
-            path.path("" + csid);
-            Response response = Response.created(path.build()).build();
-            return response;
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Create failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in createReport", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-    }
 
     /**
      * Gets the report.
-     * 
      * @param csid the csid
-     * 
-     * @return the report
-     */
-    @GET
-    @Path("{csid}")
-    public byte[] getReport(
-               @Context UriInfo ui,
-            @PathParam("csid") String csid) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("getReport with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("getReport: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "get failed on Report csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).get(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Get failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getReport", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Get failed on Report csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("getReport", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        if (result == null) {
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Get failed, the requested Report CSID:" + csid + ": was not found.").type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result.getBytes();
-    }
-
-    /**
-     * Gets the report.
-     * 
-     * @param csid the csid
-     * 
      * @return the report
      */
     @GET
@@ -345,221 +200,6 @@ public class ReportResource extends
                 }
             }
         }
-
-    }
-
-    /**
-     * Gets the report list.
-     * 
-     * @param ui the ui
-     * @param keywords the keywords
-     * 
-     * @return the report list
-     */
-    @GET
-    @Produces("application/xml")
-    public ReportsCommonList getReportList(@Context UriInfo ui,
-               @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords) {
-       ReportsCommonList result = null;
-       MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-       
-       if (keywords != null) {
-               result = searchReports(queryParams, keywords);
-       } else {
-               result = getReportList(queryParams);
-       }
-       return result;
-    }
-    
-    /**
-     * Gets the report list.
-     * 
-     * @return the report list
-     */
-    private ReportsCommonList getReportList(MultivaluedMap<String, String> queryParams) {
-        ReportsCommonList reportObjectList;
-        try {
-               ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).getFiltered(ctx, handler);
-            reportObjectList = (ReportsCommonList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getReportList", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return reportObjectList;
-    }
-
-
-    /**
-     * Gets the report list.
-     * 
-     * @param csidList the csid list
-     * 
-     * @return the report list
-    public ReportsCommonList getReportList(List<String> csidList) {
-        ReportsCommonList reportObjectList = new ReportsCommonList();
-        try {
-               ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).get(ctx, csidList, handler);
-            reportObjectList = (ReportsCommonList) handler.getCommonPartList();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in getReportList", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return reportObjectList;
-    }
-     */
-    
-    /**
-     * Update report.
-     * 
-     * @param csid the csid
-     * @param theUpdate the the update
-     * 
-     * @return the multipart output
-     */
-    @PUT
-    @Path("{csid}")
-    public byte[] updateReport(
-            @PathParam("csid") String csid,
-            String xmlText) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("updateReport with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("updateReport: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "update failed on Report csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        PoxPayloadOut result = null;
-        try {
-            PoxPayloadIn update = new PoxPayloadIn(xmlText);
-            ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);
-            DocumentHandler handler = createDocumentHandler(ctx);
-            getRepositoryClient(ctx).update(ctx, csid, handler);
-            result = ctx.getOutput();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Update failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caugth exception in updateReport", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Update failed on Report csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return result.getBytes();
     }
 
-    /**
-     * Delete report.
-     * 
-     * @param csid the csid
-     * 
-     * @return the response
-     */
-    @DELETE
-    @Path("{csid}")
-    public Response deleteReport(@PathParam("csid") String csid) {
-
-        if (logger.isDebugEnabled()) {
-            logger.debug("deleteReport with csid=" + csid);
-        }
-        if (csid == null || "".equals(csid)) {
-            logger.error("deleteReport: missing csid!");
-            Response response = Response.status(Response.Status.BAD_REQUEST).entity(
-                    "delete failed on Report csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        try {
-               ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
-            getRepositoryClient(ctx).delete(ctx, csid);
-            return Response.status(HttpResponseCodes.SC_OK).build();
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Delete failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (DocumentNotFoundException dnfe) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("caught exception in deleteReport", dnfe);
-            }
-            Response response = Response.status(Response.Status.NOT_FOUND).entity(
-                    "Delete failed on Report csid=" + csid).type(
-                    "text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-    }
-       
-    /**
-     * Search reports.
-     * 
-     * @param keywords the keywords
-     * 
-     * @return the reports common list
-     */
-    private ReportsCommonList searchReports(MultivaluedMap<String, String> queryParams,
-               String keywords) {
-       ReportsCommonList reportsObjectList;
-        try {
-               ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
-            DocumentHandler handler = createDocumentHandler(ctx);
-
-            // perform a keyword search
-            if (keywords != null && !keywords.isEmpty()) {
-               String whereClause = QueryManager.createWhereClauseFromKeywords(keywords);
-                   DocumentFilter documentFilter = handler.getDocumentFilter();
-                   documentFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);
-                   if (logger.isDebugEnabled()) {
-                       logger.debug("The WHERE clause is: " + documentFilter.getWhereClause());
-                   }               
-            }
-            getRepositoryClient(ctx).getFiltered(ctx, handler);
-            reportsObjectList = (ReportsCommonList) handler.getCommonPartList();            
-        } catch (UnauthorizedException ue) {
-            Response response = Response.status(
-                    Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
-            throw new WebApplicationException(response);
-        } catch (Exception e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Caught exception in search for Reports", e);
-            }
-            Response response = Response.status(
-                    Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
-            throw new WebApplicationException(response);
-        }
-        return reportsObjectList;
-    }
 }
index 2dd0227ee1f8a3ad0ee5702d69388f38ca3715ee..6b3e31e290bbf0612224abd7e3c69a8d4a034557 100644 (file)
  */
 package org.collectionspace.services.taxonomy;
 
-import java.util.List;
-
-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.WebApplicationException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
 import org.collectionspace.services.client.TaxonomyAuthorityClient;
-import org.collectionspace.services.common.vocabulary.AuthorityJAXBSchema;
-import org.collectionspace.services.TaxonJAXBSchema;
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
-import org.collectionspace.services.common.authorityref.AuthorityRefDocList;
-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;
-import org.collectionspace.services.common.document.BadRequestException;
-import org.collectionspace.services.common.document.DocumentException;
-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.repository.RepositoryClient;
-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.nuxeo.client.java.RemoteDocumentModelHandlerImpl;
 import org.collectionspace.services.taxonomy.nuxeo.TaxonDocumentModelHandler;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.nuxeo.ecm.core.api.DocumentModel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-/**
- * The Class TaxonomyAuthorityResource.
- */
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
 @Path(TaxonomyAuthorityClient.SERVICE_PATH)
 @Consumes("application/xml")
 @Produces("application/xml")
@@ -85,33 +43,19 @@ public class TaxonomyAuthorityResource
     private final static String TAXONOMYAUTHORITY_COMMON = "taxonomyauthority_common";
     private final static String taxonomyItemServiceName = "taxon";
     private final static String TAXONOMYITEM_COMMON = "taxon_common";
-    /** The logger. */
+
     final Logger logger = LoggerFactory.getLogger(TaxonomyAuthorityResource.class);
-    //FIXME retrieve client type from configuration
-    /** The Constant CLIENT_TYPE. */
-    final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
 
-    /**
-     * Instantiates a new taxonomy authority resource.
-     */
     public TaxonomyAuthorityResource() {
         super(TaxonomyauthorityCommon.class, TaxonomyAuthorityResource.class,
                 TAXONOMYAUTHORITY_COMMON, TAXONOMYITEM_COMMON);
     }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
         return taxonomyAuthorityServiceName;
     }
 
-    /**
-     * Gets the item service name.
-     * 
-     * @return the item service name
-     */
     @Override
     public String getItemServiceName() {
         return taxonomyItemServiceName;
index 6a0249ab78ac2418f4e19b8db46ce609aea0296c..d9e07a5f41d613cd1283d8a71aa00c8e239ec4b0 100644 (file)
  */
 package org.collectionspace.services.vocabulary;
 
-//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.WebApplicationException;
-//import javax.ws.rs.core.Context;
-//import javax.ws.rs.core.MultivaluedMap;
-//import javax.ws.rs.core.Response;
-//import javax.ws.rs.core.UriBuilder;
-//import javax.ws.rs.core.UriInfo;
-
-//import org.collectionspace.services.common.vocabulary.AuthorityJAXBSchema;
-//import org.collectionspace.services.common.vocabulary.AuthorityItemJAXBSchema;
-import org.collectionspace.services.common.vocabulary.AuthorityResource;
 import org.collectionspace.services.client.VocabularyClient;
-
-//import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-//import org.collectionspace.services.common.ClientType;
-//import org.collectionspace.services.common.ServiceMain;
-//import org.collectionspace.services.common.context.ServiceContext;
-//import org.collectionspace.services.common.document.BadRequestException;
-//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.security.UnauthorizedException;
-//import org.collectionspace.services.common.query.IQueryManager;
+import org.collectionspace.services.common.vocabulary.AuthorityResource;
 import org.collectionspace.services.vocabulary.nuxeo.VocabularyItemDocumentModelHandler;
-//import org.jboss.resteasy.plugins.providers.multipart.PoxPayloadIn;
-//import org.jboss.resteasy.plugins.providers.multipart.PoxPayloadOut;
-//import org.jboss.resteasy.util.HttpResponseCodes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-/**
- * The Class VocabularyResource.
- */
-//@Path("/vocabularies")
+import javax.ws.rs.Path;
+
 @Path("/" + VocabularyClient.SERVICE_PATH_COMPONENT)
 public class VocabularyResource extends 
        AuthorityResource<VocabulariesCommon, VocabulariesCommonList, VocabularyitemsCommonList,
                                                VocabularyItemDocumentModelHandler> {
 
     private final static String vocabularyServiceName = VocabularyClient.SERVICE_PATH_COMPONENT;
-//    private final static String vocabularyServiceName = "vocabularies";
 
        private final static String VOCABULARIES_COMMON = "vocabularies_common";
     
     private final static String vocabularyItemServiceName = "vocabularyitems";
        private final static String VOCABULARYITEMS_COMMON = "vocabularyitems_common";
     
-    /** The logger. */
     final Logger logger = LoggerFactory.getLogger(VocabularyResource.class);
 
-       /**
-        * Instantiates a new VocabularyResource.
-        */
        public VocabularyResource() {
                super(VocabulariesCommon.class, VocabularyResource.class,
                                VOCABULARIES_COMMON, VOCABULARYITEMS_COMMON);
        }
 
-    /* (non-Javadoc)
-     * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
-     */
     @Override
     public String getServiceName() {
         return vocabularyServiceName;
     }
 
-    /**
-     * Gets the item service name.
-     * 
-     * @return the item service name
-     */
     @Override
     public String getItemServiceName() {
         return vocabularyItemServiceName;
     }
     
-       /* (non-Javadoc)
-        * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
-        */
        @Override
        public Class<VocabulariesCommon> getCommonPartClass() {
                return VocabulariesCommon.class;
index 2517203c2e440667cf8ca35ef92bd5b92c392eac..ea93390e663a92fb98b604eaaa48df226b449fc0 100644 (file)
@@ -23,7 +23,6 @@
  */
 package org.collectionspace.services.workflow;
 
-import org.collectionspace.services.client.IQueryManager;
 import org.collectionspace.services.client.workflow.WorkflowClient;
 import org.collectionspace.services.common.ResourceBase;
 import org.collectionspace.services.common.ServiceMessages;
@@ -36,7 +35,6 @@ 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;