From 8b6890300ad4ae159d8df49af68b0e82d9f48576 Mon Sep 17 00:00:00 2001 From: Aron Roberts Date: Tue, 8 Jan 2013 15:00:54 -0800 Subject: [PATCH] CSPACE-5728: Relations in the reverse direction are now also reflected when computing current location. --- .../batch/batch-update-object-loc.xml | 20 +++++++++++-------- .../nuxeo/UpdateObjectLocationBatchJob.java | 20 +++++++++---------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/batch/batch-update-object-loc.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/batch/batch-update-object-loc.xml index 3f1308041..3b1fb8eaf 100644 --- a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/batch/batch-update-object-loc.xml +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/batch/batch-update-object-loc.xml @@ -8,6 +8,8 @@ + + POST @@ -60,7 +62,7 @@ 201 - + POST /cspace-services/relations batch/relation.xml @@ -73,7 +75,7 @@ 201 - + POST /cspace-services/relations batch/relation.xml @@ -86,7 +88,7 @@ 201 - + POST /cspace-services/relations batch/relation.xml @@ -115,7 +117,7 @@ - + GET /cspace-services/collectionobjects/${createCollectionObject.CSID} batch/updateobjloc.xml @@ -129,6 +131,8 @@ 200 + + @@ -144,8 +148,10 @@ 201 - - + + + + POST /cspace-services/relations batch/relation.xml @@ -168,7 +174,6 @@ 200 - diff --git a/services/batch/service/src/main/java/org/collectionspace/services/batch/nuxeo/UpdateObjectLocationBatchJob.java b/services/batch/service/src/main/java/org/collectionspace/services/batch/nuxeo/UpdateObjectLocationBatchJob.java index f454ef9e2..3787d2e3a 100644 --- a/services/batch/service/src/main/java/org/collectionspace/services/batch/nuxeo/UpdateObjectLocationBatchJob.java +++ b/services/batch/service/src/main/java/org/collectionspace/services/batch/nuxeo/UpdateObjectLocationBatchJob.java @@ -212,26 +212,26 @@ public class UpdateObjectLocationBatchJob extends AbstractBatchInvocable { logger.info("Identified " + relatedMovements.getTotalItems() + " movement records related to CollectionObject record " + csid); } - if (relatedMovements.getTotalItems() == 0) { - // continue; - } - // FIXME: Get the reciprocal relation records, via rtSbj=, as well, - // and remove duplicates + // FIXME: Get relation records in the reverse direction as well, + // via rtSbj=, merge with records obtained above, and remove duplicates - // FIXME Temporary for testing, until we integrate the two list results queryString = "rtSbj=" + csid; uri = new URI(null, null, null, queryString, null); uriInfo = createUriInfo(uri.getRawQuery()); - relatedMovements = movementResource.getList(uriInfo); + AbstractCommonList reverseRelatedMovements = movementResource.getList(uriInfo); if (logger.isInfoEnabled()) { - logger.info("Identified " + relatedMovements.getTotalItems() - + " movement records related to CollectionObject record " + csid); + logger.info("Identified " + reverseRelatedMovements.getTotalItems() + + " movement records related in the reverse to CollectionObject record " + csid); } - if (relatedMovements.getTotalItems() == 0) { + + if ((relatedMovements.getTotalItems() == 0) && reverseRelatedMovements.getTotalItems() == 0) { continue; } + + // Merge the two lists + relatedMovements.getListItem().addAll(reverseRelatedMovements.getListItem()); // Get the latest movement record from among those, and extract // its current location value -- 2.47.3