]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-5440,CSPACE-5509: Fully integrate relationshipMetaType field into the services...
authorAron Roberts <aron@socrates.berkeley.edu>
Tue, 18 Sep 2012 22:37:00 +0000 (15:37 -0700)
committerAron Roberts <aron@socrates.berkeley.edu>
Tue, 18 Sep 2012 22:37:00 +0000 (15:37 -0700)
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/collectionobject-hierarchy-csid.xml
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/hierarchy/3-collectionobject-create-with-parent-child-csids.xml
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/hierarchy/4-collectionobject-update-with-parent-child-csids.xml
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/hierarchy/res/relationship-metatype.res.xml [new file with mode: 0644]
services/common/src/main/java/org/collectionspace/services/common/relation/RelationJAXBSchema.java
services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/RemoteDocumentModelHandlerImpl.java
services/jaxb/src/main/resources/relations_common.xsd
services/relation/3rdparty/nuxeo-platform-cs-relation/src/main/resources/schemas/relations_common.xsd
services/relation/service/src/main/java/org/collectionspace/services/relation/nuxeo/RelationDocumentModelHandler.java

index bd3868c8adfe3050107e84acd15e7b5fc6d20226..b9c62eff260df56de04db17496da893e028ab8fa 100644 (file)
@@ -94,7 +94,7 @@
             <vars>
                 <var ID="objectNumber">CSPACE-5518-WhiteRook</var>
                 <var ID="parentCSID">${CreateBagOfWhiteChessPieces.CSID}</var>
-           </vars>
+            </vars>
             <expectedCodes>201</expectedCodes>
         </test>
         <test ID="ReadWhiteRook">
                 <var ID="objectNumber">CSPACE-5518-BagOfBlackChessPieces</var>
                 <var ID="parentCSID">${CreateChessSetBox.CSID}</var>
                 <var ID="childCSID">${CreateBlackQueen.CSID}</var>
+                <var ID="relationshipMetaType">Item in a set</var>
             </vars>
         </test>
         <test ID="ReadBagOfBlackChessPieces">
                 <var ID="parentCSID">${CreateBagOfBlackChessPieces.CSID}</var>
                 <var ID="child1CSID">${CreateBlackRookFragment1.CSID}</var>
                 <var ID="child2CSID">${CreateBlackRookFragment2.CSID}</var>
+                <var ID="relationshipMetaType">set</var>
             </vars>
             <expectedCodes>200</expectedCodes>
         </test>
                 </vars>
                 <startElement>/document/*[local-name()='relations-common-list']</startElement>
             </response>
-        </test>     
+        </test>
+        
+          
+        <!-- Verify that the value of the relationshipMetaType field was set -->
+        <!-- correctly and can be successfully retrieved -->
+        <test ID="GetRelationshipMetaType">
+            <method>GET</method>
+            <uri>/cspace-services/relations?sbj=${CreateBlackQueen.CSID}&amp;obj=${CreateBagOfBlackChessPieces.CSID}</uri>
+            <expectedCodes>200</expectedCodes>
+            <response>
+                <expected level="ADDOK" />
+                <filename>collectionobject/hierarchy/res/relationship-metatype.res.xml</filename>
+                <vars>
+                    <var ID="relationshipMetaType">${CreateBagOfBlackChessPieces.relationshipMetaType}</var>
+                    <var ID="parentCSID">${CreateBagOfBlackChessPieces.CSID}</var>
+                    <var ID="childCSID">${CreateBlackQueen.CSID}</var>
+                </vars>
+            </response>
+        </test>
     
         <!-- Clean up any remaining records that were NOT automatically deleted by autoDeletePOSTS -->
         
index 26fe850602dad8e7ee8c0ad9190e013a112c3441..9d5c7fda4ca70be9a4d2a59061dbf3a57c858d94 100644 (file)
@@ -52,6 +52,7 @@
                 <csid>${itemCSID}</csid>
                 <documentType>CollectionObject</documentType>
             </object>
+            <relationshipMetaType>${relationshipMetaType}</relationshipMetaType>
         </relation-list-item>
         
     </ns3:relations-common-list>
index b8c2620e2826b930f7eed4001f3371db306f38f8..231361814d225005d566a44cc7805337f029ba37 100644 (file)
@@ -27,7 +27,8 @@
                 <csid>${parentCSID}</csid>
                 <documentType>CollectionObject</documentType>
             </object>
-        </relation-list-item>
+            <relationshipMetaType>${relationshipMetaType}</relationshipMetaType>
+       </relation-list-item>
         
         <!-- Create a relationship between this item and a child -->
         <relation-list-item>
diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/hierarchy/res/relationship-metatype.res.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/hierarchy/res/relationship-metatype.res.xml
new file mode 100644 (file)
index 0000000..004b479
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<ns3:relations-common-list xmlns:ns3="http://collectionspace.org/services/relation" xmlns:ns2="http://collectionspace.org/services/jaxb">
+    <pageNum>0</pageNum>
+    <itemsInPage>1</itemsInPage>
+    <totalItems>1</totalItems>
+                
+    <relation-list-item>
+        <relationshipMetaType>${relationshipMetaType}</relationshipMetaType>
+        <predicate>hasBroader</predicate>
+        <subject>
+            <csid>${childCSID}</csid>
+            <documentType>CollectionObject</documentType>
+        </subject>
+        <object>
+            <csid>${parentCSID}</csid>
+            <documentType>CollectionObject</documentType>
+        </object>
+    </relation-list-item>
+        
+</ns3:relations-common-list>
index c28d367c5544dc5bf196d9fc2938fdb9dbee8628..713c546d27f1a086be58071f5f95a10c0d26f197 100644 (file)
@@ -44,6 +44,8 @@ public interface RelationJAXBSchema {
        \r
        /** The Constant RELATIONSHIP_TYPE_DISPLAYNAME. */\r
        final static String RELATIONSHIP_TYPE_DISPLAYNAME = "predicateDisplayName";\r
+        \r
+        final static String RELATIONSHIP_META_TYPE = "relationshipMetaType";\r
 \r
     final static String SUBJECT_URI =          "subjectUri";\r
     final static String SUBJECT_CSID =         "subjectCsid";\r
index f598d597d4ae64c178453e5f675f4e8f1b93bd75..075c24c8a7f48ec779257f3359f8c00a1e9dffc0 100644 (file)
@@ -1047,6 +1047,7 @@ public abstract class   RemoteDocumentModelHandlerImpl<T, TL>
             rc.setObjectRefName(itemObject.getRefName());
 
             rc.setRelationshipType(item.getPredicate());
+            rc.setRelationshipMetaType(item.getRelationshipMetaType());
             //RelationshipType  foo = (RelationshipType.valueOf(item.getPredicate())) ;
             //rc.setPredicate(foo);     //this must be one of the type found in the enum in  services/jaxb/src/main/resources/relations_common.xsd
 
index af01c9a156382d2875b171476216b4f9f8b17b9f..e17ac254cb7d7e983989efbeb63f8d0c8cb8dd2e 100644 (file)
                                     <xs:element name="relationshipType" type="xs:string" minOccurs="1"/>\r
                                     <xs:element name="predicate" type="xs:string" minOccurs="1"/>\r
                                     <xs:element name="predicateDisplayName" type="xs:string" minOccurs="1"/>\r
+                                    <xs:element name="relationshipMetaType" type="xs:string" minOccurs="1"/>\r
                                     <xs:element name="objectCsid" type="xs:string" minOccurs="1"/>\r
                                     <xs:element name="subject" type="relationsDocListItem" minOccurs="1"/>\r
                                     <xs:element name="object" type="relationsDocListItem" minOccurs="1"/>\r
index 3872f72683b9379a6ad71c220d778495e19eb050..640e785c9a861680a18c79f0765fc067ce95c04b 100644 (file)
@@ -62,6 +62,7 @@
                        <xs:enumeration value="hasBroader" />\r
                </xs:restriction>\r
        </xs:simpleType>\r
+        <xs:element name="relationshipMetaType" type="xs:string" minOccurs="0"/>\r
 \r
 </xs:schema>\r
 \r
index dc5f1ad3e3103f13ea8e7618ead5edb7682ad05b..2b5e22c1412c4180741166f1ab585a7f8d5be325 100644 (file)
@@ -227,7 +227,7 @@ public class RelationDocumentModelHandler
     @Override
     public RelationsCommonList extractCommonPartList(DocumentWrapper<DocumentModelList> wrapDoc) throws Exception {
         RelationsCommonList relList = this.extractPagingInfo(new RelationsCommonList(), wrapDoc);
-        relList.setFieldsReturned("subjectCsid|relationshipType|predicateDisplayName|objectCsid|uri|csid|subject|object");
+        relList.setFieldsReturned("subjectCsid|relationshipType|predicateDisplayName|relationshipMetaType|objectCsid|uri|csid|subject|object");
         ServiceContext ctx = getServiceContext();
         String serviceContextPath = getServiceContextPath();
 
@@ -273,6 +273,8 @@ public class RelationDocumentModelHandler
         relationListItem.setPredicateDisplayName((String) docModel.getProperty(ctx.getCommonPartLabel(), 
                                                                                                        RelationJAXBSchema.RELATIONSHIP_TYPE_DISPLAYNAME));
 
+        relationListItem.setRelationshipMetaType((String) docModel.getProperty(ctx.getCommonPartLabel(), 
+                                                                                                       RelationJAXBSchema.RELATIONSHIP_META_TYPE));
         relationListItem.setObjectCsid((String) docModel.getProperty(ctx.getCommonPartLabel(), 
                                                                                                        RelationJAXBSchema.OBJECT_CSID));