]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-2529,CSPACE-2549: Multiple changes to Intake records schema, in the services...
authorAron Roberts <aron@socrates.berkeley.edu>
Sat, 24 Jul 2010 00:49:12 +0000 (00:49 +0000)
committerAron Roberts <aron@socrates.berkeley.edu>
Sat, 24 Jul 2010 00:49:12 +0000 (00:49 +0000)
services/common/src/main/config/services/tenant-bindings.xml
services/intake/3rdparty/nuxeo-platform-cs-intake/src/main/resources/OSGI-INF/layouts-contrib.xml
services/intake/3rdparty/nuxeo-platform-cs-intake/src/main/resources/schemas/intakes_common.xsd
services/intake/client/src/test/java/org/collectionspace/services/client/test/IntakeAuthRefsTest.java
services/intake/client/src/test/java/org/collectionspace/services/client/test/IntakeServiceTest.java
services/intake/client/src/test/java/org/collectionspace/services/client/test/OrganizationAuthRefDocsTest.java
services/intake/client/src/test/java/org/collectionspace/services/client/test/PersonAuthRefDocsTest.java
services/intake/jaxb/src/main/resources/intakes-common.xsd

index 75c95ae474c7376582570c730c1a0d5ea1ff9935..b71e9adccb1391aa2569a614161ebeac202eb9f1 100644 (file)
                     <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>
-                        <types:item><types:key>authRef</types:key><types:value>conditionCheckerAssessor</types:value></types:item>
-                        <types:item><types:key>authRef</types:key><types:value>insurer</types:value></types:item>
+                        <types:item><types:key>authRef</types:key><types:value>fieldCollectionSources</types:value></types:item>
+                        <types:item><types:key>authRef</types:key><types:value>fieldCollectors</types:value></types:item>
                         <types:item><types:key>authRef</types:key><types:value>valuer</types:value></types:item>
-                    </service:properties>
+                        <types:item><types:key>authRef</types:key><types:value>insurers</types:value></types:item>
+                        <types:item><types:key>authRef</types:key><types:value>conditionCheckersOrAssessors</types:value></types:item>
+                   </service:properties>
                     <service:content contentType="application/xml">
                         <service:xmlContent
                             namespaceURI="http://collectionspace.org/services/intake"
                     <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>
-                        <types:item><types:key>authRef</types:key><types:value>conditionCheckerAssessor</types:value></types:item>
-                        <types:item><types:key>authRef</types:key><types:value>insurer</types:value></types:item>
+                        <types:item><types:key>authRef</types:key><types:value>fieldCollectionSources</types:value></types:item>
+                        <types:item><types:key>authRef</types:key><types:value>fieldCollectors</types:value></types:item>
                         <types:item><types:key>authRef</types:key><types:value>valuer</types:value></types:item>
-                    </service:properties>
+                        <types:item><types:key>authRef</types:key><types:value>insurers</types:value></types:item>
+                        <types:item><types:key>authRef</types:key><types:value>conditionCheckersOrAssessors</types:value></types:item>
+                   </service:properties>
                     <service:content contentType="application/xml">
                         <service:xmlContent
                             namespaceURI="http://collectionspace.org/services/intake"
index 63d04b0480d1ff22339893c5ef0a461975367495..30cfa82e4b5c3aeb05757165f78172dfdf2adec9 100644 (file)
@@ -14,7 +14,9 @@
         <row><widget>depositor</widget></row>
         <row><widget>depositorsRequirements</widget></row>
         <row><widget>entryDate</widget></row>
-        <row><widget>entryMethod</widget></row>
+        <!-- Repeatable fields are commented out for now until we -->
+        <!-- identify how to represent these complex types in layouts. -->
+        <!-- <row><widget>entryMethod</widget></row> -->
         <row><widget>entryNote</widget></row>
         <row><widget>entryNumber</widget></row>
         <row><widget>entryReason</widget></row>
@@ -74,6 +76,7 @@
         </properties>
       </widget>
 
+<!--
       <widget name="entryMethod" type="text">
         <labels>
           <label mode="any">entryMethod</label>
@@ -87,6 +90,8 @@
         </properties>
       </widget>
 
+-->
+
       <widget name="entryNote" type="text">
         <labels>
           <label mode="any">entryNote</label>
index 20a375d282b7ee065c6176bc5bdb57f467c0728a..18ef9705ee83cb3113f144503332ab59665c1835 100644 (file)
     <xs:element name="depositor" type="xs:string"/>\r
     <xs:element name="depositorsRequirements" type="xs:string"/>\r
     <xs:element name="entryDate" type="xs:string"/>\r
-    <xs:element name="entryMethod" type="xs:string"/>\r
+    <xs:element name="entryMethods">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element name="entryMethod" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
     <xs:element name="entryNote" type="xs:string"/>\r
     <xs:element name="entryNumber" type="xs:string"/>\r
     <xs:element name="entryReason" type="xs:string"/>\r
     <xs:element name="returnDate" type="xs:string"/>\r
     \r
     <!--  Object Collection Information Group -->\r
+    <xs:element name="fieldCollectionDate" type="xs:string"/>\r
+    <xs:element name="fieldCollectionMethods">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element name="fieldCollectionMethod" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
+    <xs:element name="fieldCollectionNote" type="xs:string"/>\r
+    <xs:element name="fieldCollectionNumber" type="xs:string"/>\r
+    <xs:element name="fieldCollectionPlace" type="xs:string"/>\r
+    <xs:element name="fieldCollectionSources">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element name="fieldCollectionSource" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
+    <xs:element name="fieldCollectors">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element name="fieldCollector" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
     <xs:element name="fieldCollectionEventName" type="xs:string"/>\r
 \r
     <!-- Valuation Information Group -->\r
     <xs:element name="insurancePolicyNumber" type="xs:string"/>\r
     <xs:element name="insuranceReferenceNumber" type="xs:string"/>\r
     <xs:element name="insuranceRenewalDate" type="xs:string"/>\r
-    <xs:element name="insurer" type="xs:string"/>\r
+    <xs:element name="insurers">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element name="insurer" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
     \r
     <!-- Object Location Information Group -->\r
     <xs:element name="currentLocation" type="xs:string"/>\r
     \r
     <!-- Condition Check/Technical Assessment Information Group -->\r
     <xs:element name="conditionCheckDate" type="xs:string"/>\r
-    <xs:element name="conditionCheckMethod" type="xs:string"/>\r
+    <xs:element name="conditionCheckMethods">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element name="conditionCheckMethod" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
     <xs:element name="conditionCheckNote" type="xs:string"/>\r
-    <xs:element name="conditionCheckReason" type="xs:string"/>\r
+    <xs:element name="conditionCheckReasons">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element name="conditionCheckReason" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
     <xs:element name="conditionCheckReferenceNumber" type="xs:string"/>\r
-    <xs:element name="conditionCheckerAssessor" type="xs:string"/>\r
+    <xs:element name="conditionCheckersOrAssessors">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element name="conditionCheckerOrAssessor" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
 \r
 </xs:schema>\r
index 2137d338dd8668a07cff5b347c4f399cf2e48998..c705daf41fe9616570ce3736709edc16716adc84 100644 (file)
@@ -36,7 +36,9 @@ import org.collectionspace.services.client.IntakeClient;
 import org.collectionspace.services.client.PersonAuthorityClient;
 import org.collectionspace.services.client.PersonAuthorityClientUtils;
 import org.collectionspace.services.common.authorityref.AuthorityRefList;
+import org.collectionspace.services.intake.ConditionCheckerOrAssessorList;
 import org.collectionspace.services.intake.IntakesCommon;
+import org.collectionspace.services.intake.InsurerList;
 import org.collectionspace.services.jaxb.AbstractCommonList;
 
 import org.jboss.resteasy.client.ClientResponse;
@@ -72,7 +74,7 @@ public class IntakeAuthRefsTest extends BaseServiceTest {
     private String personAuthCSID = null; 
     private String currentOwnerRefName = null;
     private String depositorRefName = null;
-    private String conditionCheckerAssessorRefName = null;
+    private String conditionCheckerOrAssessorRefName = null;
     private String insurerRefName = null;
     private String valuerRefName = null;
     private final int NUM_AUTH_REFS_EXPECTED = 5;
@@ -119,7 +121,7 @@ public class IntakeAuthRefsTest extends BaseServiceTest {
                 "entryDate-" + identifier,
                 currentOwnerRefName,
                 depositorRefName,
-                conditionCheckerAssessorRefName,
+                conditionCheckerOrAssessorRefName,
                 insurerRefName,
                 valuerRefName );
         ClientResponse<Response> res = intakeClient.create(multipart);
@@ -176,7 +178,7 @@ public class IntakeAuthRefsTest extends BaseServiceTest {
         personIdsCreated.add(csid);
         
         csid = createPerson("Andrew", "Assessor", "andrewAssessor", authRefName);
-        conditionCheckerAssessorRefName = PersonAuthorityClientUtils.getPersonRefName(personAuthCSID, csid, null);
+        conditionCheckerOrAssessorRefName = PersonAuthorityClientUtils.getPersonRefName(personAuthCSID, csid, null);
         personIdsCreated.add(csid);
         
         csid = createPerson("Ingrid", "Insurer", "ingridInsurer", authRefName);
@@ -237,7 +239,8 @@ public class IntakeAuthRefsTest extends BaseServiceTest {
         Assert.assertNotNull(intake);
         // Check a couple of fields
         Assert.assertEquals(intake.getCurrentOwner(), currentOwnerRefName);
-        Assert.assertEquals(intake.getInsurer(), insurerRefName);
+        Assert.assertEquals(intake.getConditionCheckersOrAssessors().getConditionCheckerOrAssessor().get(0), conditionCheckerOrAssessorRefName);
+        Assert.assertEquals(intake.getInsurers().getInsurer().get(0), insurerRefName);
         
         // Get the auth refs and check them
         ClientResponse<AuthorityRefList> res2 = intakeClient.getAuthorityRefs(knownResourceId);
@@ -337,9 +340,18 @@ public class IntakeAuthRefsTest extends BaseServiceTest {
         intake.setEntryDate(entryDate);
         intake.setCurrentOwner(currentOwner);
         intake.setDepositor(depositor);
-        intake.setConditionCheckerAssessor(conditionCheckerAssessor);
-        intake.setInsurer(insurer);
         intake.setValuer(Valuer);
+
+        ConditionCheckerOrAssessorList checkerOrAssessorList = new ConditionCheckerOrAssessorList();
+        List<String> checkersOrAssessors = checkerOrAssessorList.getConditionCheckerOrAssessor();
+        checkersOrAssessors.add(conditionCheckerAssessor);
+        intake.setConditionCheckersOrAssessors(checkerOrAssessorList);
+
+        InsurerList insurerList = new InsurerList();
+        List<String> insurers = insurerList.getInsurer();
+        insurers.add(insurer);
+        intake.setInsurers(insurerList);
+
         MultipartOutput multipart = new MultipartOutput();
         OutputPart commonPart =
             multipart.addPart(intake, MediaType.APPLICATION_XML_TYPE);
index f4be1b5f15558f17186c90629e6ecf076282ffc7..924b71a57301b72f8f7afc2a5f39a66ff8d35213 100644 (file)
@@ -28,6 +28,7 @@ import javax.ws.rs.core.Response;
 
 import org.collectionspace.services.client.CollectionSpaceClient;
 import org.collectionspace.services.client.IntakeClient;
+import org.collectionspace.services.intake.EntryMethodList;
 import org.collectionspace.services.intake.IntakesCommon;
 import org.collectionspace.services.intake.IntakesCommonList;
 import org.collectionspace.services.jaxb.AbstractCommonList;
@@ -299,6 +300,13 @@ public class IntakeServiceTest extends AbstractServiceTestImpl {
         IntakesCommon intake = (IntakesCommon) extractPart(input,
                 client.getCommonPartName(), IntakesCommon.class);
         Assert.assertNotNull(intake);
+
+        // Verify the number and contents of values in repeatable fields,
+        // as created in the instance record used for testing.
+        List<String> entryMethods =
+                intake.getEntryMethods().getEntryMethod();
+        Assert.assertTrue(entryMethods.size() > 0);
+        Assert.assertNotNull(entryMethods.get(0));
     }
 
     // Failure outcomes
@@ -735,6 +743,13 @@ public class IntakeServiceTest extends AbstractServiceTestImpl {
         intake.setEntryNumber(entryNumber);
         intake.setEntryDate(entryDate);
         intake.setDepositor(depositor);
+
+        EntryMethodList entryMethodsList = new EntryMethodList();
+        List<String> entryMethods = entryMethodsList.getEntryMethod();
+        entryMethods.add("Left at doorstep");
+        entryMethods.add("Received via post");
+        intake.setEntryMethods(entryMethodsList);
+
         MultipartOutput multipart = new MultipartOutput();
         OutputPart commonPart =
             multipart.addPart(intake, MediaType.APPLICATION_XML_TYPE);
index 246fb1f1a53546f5110e79fea7da1c28f61a6874..474fb73de350a8498fed6a0483c60cd1821e1de7 100644 (file)
@@ -36,8 +36,9 @@ import org.collectionspace.services.client.IntakeClient;
 import org.collectionspace.services.client.OrgAuthorityClient;\r
 import org.collectionspace.services.client.OrgAuthorityClientUtils;\r
 import org.collectionspace.services.common.authorityref.AuthorityRefDocList;\r
+import org.collectionspace.services.intake.ConditionCheckerOrAssessorList;\r
 import org.collectionspace.services.intake.IntakesCommon;\r
-//import org.collectionspace.services.intake.IntakesCommonList;\r
+import org.collectionspace.services.intake.InsurerList;\r
 import org.collectionspace.services.jaxb.AbstractCommonList;\r
 \r
 import org.jboss.resteasy.client.ClientResponse;\r
@@ -331,9 +332,18 @@ public class OrganizationAuthRefDocsTest extends BaseServiceTest {
         intake.setEntryDate(entryDate);\r
         intake.setCurrentOwner(currentOwner);\r
         intake.setDepositor(depositor);\r
-        intake.setConditionCheckerAssessor(conditionCheckerAssessor);\r
-        intake.setInsurer(insurer);\r
         intake.setValuer(Valuer);\r
+\r
+        ConditionCheckerOrAssessorList checkerOrAssessorList = new ConditionCheckerOrAssessorList();\r
+        List<String> checkersOrAssessors = checkerOrAssessorList.getConditionCheckerOrAssessor();\r
+        checkersOrAssessors.add(conditionCheckerAssessor);\r
+        intake.setConditionCheckersOrAssessors(checkerOrAssessorList);\r
+\r
+        InsurerList insurerList = new InsurerList();\r
+        List<String> insurers = insurerList.getInsurer();\r
+        insurers.add(insurer);\r
+        intake.setInsurers(insurerList);\r
+\r
         MultipartOutput multipart = new MultipartOutput();\r
         OutputPart commonPart =\r
             multipart.addPart(intake, MediaType.APPLICATION_XML_TYPE);\r
index 3bc8b4160a5cb4bd5e15fb0fceb436d4f917fd17..674a1f40d6de72efe220709632bdb0ce71de044b 100644 (file)
@@ -36,8 +36,9 @@ import org.collectionspace.services.client.IntakeClient;
 import org.collectionspace.services.client.PersonAuthorityClient;
 import org.collectionspace.services.client.PersonAuthorityClientUtils;
 import org.collectionspace.services.common.authorityref.AuthorityRefDocList;
+import org.collectionspace.services.intake.ConditionCheckerOrAssessorList;
 import org.collectionspace.services.intake.IntakesCommon;
-//import org.collectionspace.services.intake.IntakesCommonList;
+import org.collectionspace.services.intake.InsurerList;
 import org.collectionspace.services.jaxb.AbstractCommonList;
 
 import org.jboss.resteasy.client.ClientResponse;
@@ -338,9 +339,18 @@ public class PersonAuthRefDocsTest extends BaseServiceTest {
         intake.setEntryDate(entryDate);
         intake.setCurrentOwner(currentOwner);
         intake.setDepositor(depositor);
-        intake.setConditionCheckerAssessor(conditionCheckerAssessor);
-        intake.setInsurer(insurer);
         intake.setValuer(Valuer);
+
+        ConditionCheckerOrAssessorList checkerOrAssessorList = new ConditionCheckerOrAssessorList();
+        List<String> checkersOrAssessors = checkerOrAssessorList.getConditionCheckerOrAssessor();
+        checkersOrAssessors.add(conditionCheckerAssessor);
+        intake.setConditionCheckersOrAssessors(checkerOrAssessorList);
+
+        InsurerList insurerList = new InsurerList();
+        List<String> insurers = insurerList.getInsurer();
+        insurers.add(insurer);
+        intake.setInsurers(insurerList);
+
         MultipartOutput multipart = new MultipartOutput();
         OutputPart commonPart =
             multipart.addPart(intake, MediaType.APPLICATION_XML_TYPE);
index 55b1bdbacef8583f1245ca0a19e4b26f484a1edd..19d4dcdf56b8e643a25b331656ef622b9218c089 100644 (file)
@@ -38,7 +38,7 @@
                 <xs:element name="depositor" type="xs:string"/>
                 <xs:element name="depositorsRequirements" type="xs:string"/>
                 <xs:element name="entryDate" type="xs:string"/>
-                <xs:element name="entryMethod" type="xs:string"/>
+                <xs:element name="entryMethods" type="entryMethodList"/>
                 <xs:element name="entryNote" type="xs:string"/>
                 <xs:element name="entryNumber" type="xs:string"/>
                 <xs:element name="entryReason" type="xs:string"/>
                 <xs:element name="returnDate" type="xs:string"/>
 
                 <!--  Object Collection Information Group -->
+                <xs:element name="fieldCollectionDate" type="xs:string"/>
+                <xs:element name="fieldCollectionMethods" type="fieldCollectionMethodList"/>
+                <xs:element name="fieldCollectionNote" type="xs:string"/>
+                <xs:element name="fieldCollectionNumber" type="xs:string"/>
+                <xs:element name="fieldCollectionPlace" type="xs:string"/>
+                <xs:element name="fieldCollectionSources" type="fieldCollectionSourceList"/>
+                <xs:element name="fieldCollectors" type="fieldCollectorList"/>
                 <xs:element name="fieldCollectionEventName" type="xs:string"/>
 
                 <!-- Valuation Information Group -->
@@ -57,7 +64,7 @@
                 <xs:element name="insurancePolicyNumber" type="xs:string"/>
                 <xs:element name="insuranceReferenceNumber" type="xs:string"/>
                 <xs:element name="insuranceRenewalDate" type="xs:string"/>
-                <xs:element name="insurer" type="xs:string"/>
+                <xs:element name="insurers" type="insurerList"/>
 
                 <!-- Object Location Information Group -->
                 <xs:element name="currentLocation" type="xs:string"/>
 
                 <!-- Condition Check/Technical Assessment Information Group -->
                 <xs:element name="conditionCheckDate" type="xs:string"/>
-                <xs:element name="conditionCheckMethod" type="xs:string"/>
+                <xs:element name="conditionCheckMethods" type="conditionCheckMethodList"/>
                 <xs:element name="conditionCheckNote" type="xs:string"/>
-                <xs:element name="conditionCheckReason" type="xs:string"/>
+                <xs:element name="conditionCheckReasons" type="conditionCheckReasonList"/>
                 <xs:element name="conditionCheckReferenceNumber" type="xs:string"/>
-                <xs:element name="conditionCheckerAssessor" type="xs:string"/>
+                <xs:element name="conditionCheckersOrAssessors" type="conditionCheckerOrAssessorList"/>
 
             </xs:sequence>
         </xs:complexType>
     </xs:element>
+
+    <xs:complexType name="entryMethodList">
+        <xs:sequence>
+            <xs:element name="entryMethod" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="fieldCollectionMethodList">
+        <xs:sequence>
+            <xs:element name="fieldCollectionMethod" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="fieldCollectionSourceList">
+        <xs:sequence>
+            <xs:element name="fieldCollectionSource" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="fieldCollectorList">
+        <xs:sequence>
+            <xs:element name="fieldCollector" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="insurerList">
+        <xs:sequence>
+            <xs:element name="insurer" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="conditionCheckMethodList">
+        <xs:sequence>
+            <xs:element name="conditionCheckMethod" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="conditionCheckReasonList">
+        <xs:sequence>
+            <xs:element name="conditionCheckReason" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="conditionCheckerOrAssessorList">
+        <xs:sequence>
+            <xs:element name="conditionCheckerOrAssessor" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
     
     <!-- This is the base class for paginated lists -->
     <xs:complexType name="abstractCommonList">