]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-2338: Develop Basic Object Exit Code developed by Laramie and submitted as...
authorRichard Millet <richard.millet@berkeley.edu>
Sat, 28 Aug 2010 00:02:23 +0000 (00:02 +0000)
committerRichard Millet <richard.millet@berkeley.edu>
Sat, 28 Aug 2010 00:02:23 +0000 (00:02 +0000)
services/JaxRsServiceProvider/pom.xml
services/JaxRsServiceProvider/src/main/java/org/collectionspace/services/jaxrs/CollectionSpaceJaxRsApplication.java
services/build.xml
services/client/src/main/java/org/collectionspace/services/client/test/BaseServiceTest.java
services/common/src/main/config/services/tenant-bindings.xml
services/common/src/main/java/org/collectionspace/services/common/AbstractMultiPartCollectionSpaceResourceImpl.java
services/pom.xml

index 473e1e88a0ba28badb50966cf8680326960d18ff..3140db16635eaef70cb69db79c885307eb8a2396 100644 (file)
             <artifactId>org.collectionspace.services.loanout.service</artifactId>\r
             <version>${project.version}</version>\r
         </dependency>\r
+        <dependency>\r
+            <groupId>org.collectionspace.services</groupId>\r
+            <artifactId>org.collectionspace.services.objectexit.service</artifactId>\r
+            <version>${project.version}</version>\r
+        </dependency>\r
         <dependency>\r
             <groupId>org.collectionspace.services</groupId>\r
             <artifactId>org.collectionspace.services.location.service</artifactId>\r
index 5ea199c769d4009b352b19926130c8a79d612bed..6be3537f2e9ea9556607426b3a0c7b365e42ce7e 100644 (file)
@@ -29,6 +29,7 @@ import org.collectionspace.services.note.NoteResource;
 import org.collectionspace.services.intake.IntakeResource;
 import org.collectionspace.services.loanin.LoaninResource;
 import org.collectionspace.services.loanout.LoanoutResource;
+import org.collectionspace.services.objectexit.ObjectExitResource;
 import org.collectionspace.services.location.LocationAuthorityResource;
 import org.collectionspace.services.movement.MovementResource;
 import org.collectionspace.services.report.ReportResource;
@@ -84,6 +85,7 @@ public class CollectionSpaceJaxRsApplication extends Application {
         singletons.add(new IntakeResource());
         singletons.add(new LoaninResource());
         singletons.add(new LoanoutResource());
+        singletons.add(new ObjectExitResource());
         singletons.add(new LocationAuthorityResource());
         singletons.add(new MovementResource());
         singletons.add(new ReportResource());
index ce708f5e301ca601bcd03ab917c36bd670cbf231..c230d6c0a5d5285d9a8cd9acfd8f9eb2ebf48f0a 100644 (file)
         <ant antfile="intake/build.xml" target="deploy" inheritAll="false"/>\r
         <ant antfile="loanin/build.xml" target="deploy" inheritAll="false"/>\r
         <ant antfile="loanout/build.xml" target="deploy" inheritAll="false"/>\r
+        <ant antfile="objectexit/build.xml" target="deploy" inheritAll="false"/>\r
         <ant antfile="location/build.xml" target="deploy" inheritAll="false"/>\r
         <ant antfile="movement/build.xml" target="deploy" inheritAll="false"/>\r
         <ant antfile="report/build.xml" target="deploy" inheritAll="false"/>\r
         <ant antfile="dimension/build.xml" target="undeploy" inheritAll="false"/>\r
         <ant antfile="acquisition/build.xml" target="undeploy" inheritAll="false"/>\r
         <ant antfile="location/build.xml" target="undeploy" inheritAll="false"/>\r
+        <ant antfile="objectexit/build.xml" target="undeploy" inheritAll="false"/>\r
         <ant antfile="report/build.xml" target="undeploy" inheritAll="false"/>\r
         <ant antfile="movement/build.xml" target="undeploy" inheritAll="false"/>\r
         <ant antfile="loanout/build.xml" target="undeploy" inheritAll="false"/>\r
         <ant antfile="loanin/build.xml" target="dist" inheritAll="false"/>\r
         <ant antfile="loanout/build.xml" target="dist" inheritAll="false"/>\r
         <ant antfile="location/build.xml" target="dist" inheritAll="false"/>\r
+        <ant antfile="objectexit/build.xml" target="dist" inheritAll="false"/>\r
         <ant antfile="movement/build.xml" target="dist" inheritAll="false"/>\r
         <ant antfile="report/build.xml" target="dist" inheritAll="false"/>\r
         <ant antfile="vocabulary/build.xml" target="dist" inheritAll="false"/>\r
index 15446ec27b384b0a8cedc3a7da1f8b817d13d843..e682a0d5e2ba5a5b0e441fbc9363a3348949c39b 100644 (file)
@@ -52,6 +52,7 @@ import org.jboss.resteasy.plugins.providers.multipart.InputPart;
 import org.jboss.resteasy.plugins.providers.multipart.MultipartInput;\r
 import org.slf4j.Logger;\r
 import org.slf4j.LoggerFactory;\r
+import org.testng.Assert;\r
 import org.testng.annotations.DataProvider;\r
 import org.w3c.dom.Document;\r
 \r
@@ -176,7 +177,7 @@ public abstract class BaseServiceTest {
      *\r
      * @param expectedStatusCode  A status code expected to be returned in the response.\r
      *\r
-     * @param serviceRequestType  A type of service request (e.g. CREATE, DELETE).\r
+     * @param reqType  A type of service request (e.g. CREATE, DELETE).\r
      */\r
     protected void testSetup(\r
             int expectedStatusCode,\r
@@ -191,7 +192,7 @@ public abstract class BaseServiceTest {
      * specific call to a service does not fall within a set of valid status\r
      * codes for that service.\r
      *\r
-     * @param serviceRequestType  A type of service request (e.g. CREATE, DELETE).\r
+     * @param requestType  A type of service request (e.g. CREATE, DELETE).\r
      *\r
      * @param statusCode  The invalid status code that was returned in the response,\r
      *                    from submitting that type of request to the service.\r
@@ -257,7 +258,7 @@ public abstract class BaseServiceTest {
                     "Exception during HTTP " + method + " request to "\r
                     + url + ":", e);\r
         } finally {\r
-               httpMethod.releaseConnection();\r
+               if (httpMethod != null) httpMethod.releaseConnection();\r
         }\r
         return statusCode;\r
     }\r
@@ -273,12 +274,11 @@ public abstract class BaseServiceTest {
      *\r
      * @param  mediaType  The media type of the entity body to be submitted.\r
      *\r
-     * @param  entity     The contents of the entity body to be submitted.\r
+     * @param  entityStr     The contents of the entity body to be submitted.\r
      *\r
      * @return The status code received in the HTTP response.\r
      */\r
-    protected int submitRequest(String method, String url, String mediaType,\r
-            String entityStr) {\r
+    protected int submitRequest(String method, String url, String mediaType, String entityStr) {\r
         int statusCode = 0;\r
         EntityEnclosingMethod httpMethod = null;\r
         try {\r
@@ -299,7 +299,7 @@ public abstract class BaseServiceTest {
                     "Exception during HTTP " + method + " request to "\r
                     + url + ":", e);\r
         } finally {\r
-               httpMethod.releaseConnection();\r
+               if (httpMethod != null) httpMethod.releaseConnection();\r
         }\r
         return statusCode;\r
     }\r
@@ -385,10 +385,13 @@ public abstract class BaseServiceTest {
                     if (logger.isDebugEnabled()) {\r
                         logger.debug("extracted part as str=\n" + partStr);\r
                     }\r
-                    obj = part.getBody(clazz, null);\r
-                    if (logger.isDebugEnabled()) {\r
-                        logger.debug("extracted part as obj=\n",\r
-                                objectAsXmlString(obj, clazz));\r
+                    try {\r
+                        obj = part.getBody(clazz, null);\r
+                        if (logger.isDebugEnabled()) {\r
+                            logger.debug("extracted part as obj="+objectAsXmlString(obj, clazz));\r
+                        }\r
+                    } catch (Throwable t) {\r
+                        logger.error("Could not get part body based on content and classname. "+ clazz.getName()+ " error: "+t);\r
                     }\r
                 }\r
                 break;\r
@@ -428,7 +431,7 @@ public abstract class BaseServiceTest {
                 try {\r
                     bais.close();\r
                 } catch (Exception e) {\r
-                       if (logger.isDebugEnabled() == true) {\r
+                       if (logger.isDebugEnabled()) {\r
                                e.printStackTrace();\r
                        }\r
                 }\r
@@ -595,4 +598,14 @@ public abstract class BaseServiceTest {
         }\r
         return className;\r
     }\r
+\r
+    public void assertStatusCode(ClientResponse<?> res, String testName) {\r
+        int statusCode = res.getStatus();\r
+        // Check the status code of the response: does it match the expected response(s)?\r
+        logger.debug(testName + ": status = " + statusCode);\r
+        Assert.assertTrue(REQUEST_TYPE.isValidStatusCode(statusCode), invalidStatusCodeMessage(REQUEST_TYPE, statusCode));\r
+        Assert.assertEquals(statusCode, EXPECTED_STATUS_CODE);\r
+    }\r
+\r
+\r
 }\r
index 42d0448f2026f2c8b39d2bf8394195c4211ea9a8..77d50335ec1524416867a3dcfdf21ec426ecaf3c 100644 (file)
         </tenant:serviceBindings>
         <!-- end loanout service meta-data -->
 
+       <!-- begin objectexit service meta-data -->
+        <tenant:serviceBindings name="ObjectExit" type="procedure" version="0.1">
+            <service:repositoryDomain xmlns:service='http://collectionspace.org/services/common/service'>
+                default-domain
+            </service:repositoryDomain>
+            <service:documentHandler xmlns:service='http://collectionspace.org/services/common/service'>
+                org.collectionspace.services.objectexit.nuxeo.ObjectExitDocumentModelHandler
+            </service:documentHandler>
+            <service:validatorHandler xmlns:service='http://collectionspace.org/services/common/service'>
+                org.collectionspace.services.objectexit.nuxeo.ObjectExitValidatorHandler
+            </service:validatorHandler>
+            <service:object name="ObjectExit" version="0.1"
+                            xmlns:service='http://collectionspace.org/services/common/service'>
+                <service:part id="0" control_group="Managed"
+                              versionable="true" auditable="false"
+                              label="objectexit-system" updated="" order="0">
+                    <service:content contentType="application/xml">
+                        <service:xmlContent
+                            namespaceURI="http://collectionspace.org/services/common/system"
+                            schemaLocation="http://collectionspace.org/services/common/system http://collectionspace.org/services/common/system/system-response.xsd">
+                        </service:xmlContent>
+                    </service:content>
+                </service:part>
+                <service:part id="1" control_group="Managed"
+                              versionable="true" auditable="false"
+                              label="objectexit_common" updated="" order="1">
+                    <service:properties>
+                        <types:item><types:key>authRef</types:key><types:value>currentOwner</types:value></types:item>
+                        <types:item><types:key>authRef</types:key><types:value>depositor</types:value></types:item>
+                    </service:properties>
+                    <service:content contentType="application/xml">
+                        <service:xmlContent
+                            namespaceURI="http://collectionspace.org/services/objectexit"
+                            schemaLocation="http://collectionspace.org/services/objectexit http://services.collectionspace.org/objectexit/objectexit_common.xsd">
+                        </service:xmlContent>
+                    </service:content>
+                </service:part>
+            </service:object>
+        </tenant:serviceBindings>
+        <!-- end objectexit service meta-data -->
+
         <!-- begin movement service meta-data -->
         <tenant:serviceBindings name="Movements" type="procedure" version="0.1">
             <!-- other URI paths using which this service could be accessed -->
             </service:object>
         </tenant:serviceBindings>
         <!-- end loanout service meta-data -->
+        
+        <!-- begin objectexit service meta-data -->
+        <tenant:serviceBindings name="ObjectExit" type="procedure" version="0.1">
+            <service:repositoryDomain xmlns:service='http://collectionspace.org/services/common/service'>
+                default-domain
+            </service:repositoryDomain>
+            <service:documentHandler xmlns:service='http://collectionspace.org/services/common/service'>
+                org.collectionspace.services.objectexit.nuxeo.ObjectExitDocumentModelHandler
+            </service:documentHandler>
+            <service:validatorHandler xmlns:service='http://collectionspace.org/services/common/service'>
+                org.collectionspace.services.objectexit.nuxeo.ObjectExitValidatorHandler
+            </service:validatorHandler>
+            <service:object name="ObjectExit" version="0.1"
+                            xmlns:service='http://collectionspace.org/services/common/service'>
+                <service:part id="0" control_group="Managed"
+                              versionable="true" auditable="false"
+                              label="objectexit-system" updated="" order="0">
+                    <service:content contentType="application/xml">
+                        <service:xmlContent
+                            namespaceURI="http://collectionspace.org/services/common/system"
+                            schemaLocation="http://collectionspace.org/services/common/system http://collectionspace.org/services/common/system/system-response.xsd">
+                        </service:xmlContent>
+                    </service:content>
+                </service:part>
+                <service:part id="1" control_group="Managed"
+                              versionable="true" auditable="false"
+                              label="objectexit_common" updated="" order="1">
+                    <service:properties>
+                        <types:item><types:key>authRef</types:key><types:value>currentOwner</types:value></types:item>
+                        <types:item><types:key>authRef</types:key><types:value>depositor</types:value></types:item>
+                    </service:properties>
+                    <service:content contentType="application/xml">
+                        <service:xmlContent
+                            namespaceURI="http://collectionspace.org/services/objectexit"
+                            schemaLocation="http://collectionspace.org/services/objectexit http://services.collectionspace.org/objectexit/objectexit_common.xsd">
+                        </service:xmlContent>
+                    </service:content>
+                </service:part>
+            </service:object>
+        </tenant:serviceBindings>
+        <!-- end objectexit service meta-data -->
 
         <!-- begin movement service meta-data -->
         <tenant:serviceBindings name="Movements" type="procedure" version="0.1">
index 8c1acf1f427e1c88713a443ec8dba4c5074b1791..4e5b1d4f28270a735e5ca76b1e1161b8c0dd926c 100644 (file)
@@ -34,6 +34,8 @@ import org.collectionspace.services.common.document.DocumentHandler;
 \r
 import org.jboss.resteasy.plugins.providers.multipart.MultipartInput;\r
 import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
 \r
 /**\r
  * The Class AbstractMultiPartCollectionSpaceResourceImpl.\r
@@ -41,16 +43,16 @@ import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput;
 public abstract class AbstractMultiPartCollectionSpaceResourceImpl extends\r
                AbstractCollectionSpaceResourceImpl<MultipartInput, MultipartOutput> {\r
 \r
+    protected final Logger logger = LoggerFactory.getLogger(this.getClass());\r
+\r
     @Override\r
     public ServiceContextFactory<MultipartInput, MultipartOutput> getServiceContextFactory() {\r
-       return (ServiceContextFactory<MultipartInput, MultipartOutput>)MultipartServiceContextFactory.get();\r
+       return MultipartServiceContextFactory.get();\r
     }\r
 \r
     @Override\r
     public DocumentHandler createDocumentHandler(ServiceContext<MultipartInput, MultipartOutput> ctx) throws Exception {\r
-       DocumentHandler docHandler = createDocumentHandler(ctx, ctx.getCommonPartLabel(),\r
-                       getCommonPartClass());\r
-       return docHandler;\r
+       return createDocumentHandler(ctx, ctx.getCommonPartLabel(),getCommonPartClass());\r
     }\r
     \r
     /**\r
@@ -72,9 +74,7 @@ public abstract class AbstractMultiPartCollectionSpaceResourceImpl extends
        if (ctx.getInput() != null) {\r
                commonPart = ctx.getInputPart(schemaName, commonClass);\r
         }\r
-        DocumentHandler docHandler = super.createDocumentHandler(ctx, commonPart);\r
-        \r
-        return docHandler;\r
+        return super.createDocumentHandler(ctx, commonPart);\r
     }\r
     \r
     /**\r
index 26a3b906dbb1a0bdc0c8630ad5da8ef40b06aa2b..e8b6497797c8305628640b151a257331d94187c8 100644 (file)
@@ -41,6 +41,7 @@
         <module>intake</module>
         <module>loanin</module>
         <module>loanout</module>
+        <module>objectexit</module>
         <module>location</module>
         <module>movement</module>
         <module>report</module>