From a4aef253bba77bddb4f728ac0f87edf2bd1c2239 Mon Sep 17 00:00:00 2001 From: Ray Lee Date: Sat, 30 Jul 2016 00:21:58 -0700 Subject: [PATCH] DRYD-23: Implement XML to JSON conversion. --- services/common/pom.xml | 6 + .../xmljson/XmlToJsonStreamConverter.java | 116 ++- .../common/xmljson/parsetree/Node.java | 186 ++++ .../test/XmlToJsonStreamConverterTest.java | 32 +- .../test-data/xmljson/accountperms.json | 949 ++++++++++++++++++ .../test-data/xmljson/accountperms.xml | 944 +++++++++++++++++ .../xmljson/collectionobject-list.json | 348 +++++++ .../xmljson/collectionobject-list.xml | 343 +++++++ .../test-data/xmljson/collectionobject.json | 43 + .../test-data/xmljson/collectionobject.xml | 146 +++ .../test-data/xmljson/permissions.json | 127 +++ .../test-data/xmljson/permissions.xml | 98 ++ .../resources/test-data/xmljson/record.json | 61 +- .../resources/test-data/xmljson/record.xml | 4 + .../test-data/xmljson/vocabulary-items.json | 62 ++ .../test-data/xmljson/vocabulary-items.xml | 57 ++ 16 files changed, 3498 insertions(+), 24 deletions(-) create mode 100644 services/common/src/main/java/org/collectionspace/services/common/xmljson/parsetree/Node.java create mode 100644 services/common/src/test/resources/test-data/xmljson/accountperms.json create mode 100644 services/common/src/test/resources/test-data/xmljson/accountperms.xml create mode 100644 services/common/src/test/resources/test-data/xmljson/collectionobject-list.json create mode 100644 services/common/src/test/resources/test-data/xmljson/collectionobject-list.xml create mode 100644 services/common/src/test/resources/test-data/xmljson/collectionobject.json create mode 100644 services/common/src/test/resources/test-data/xmljson/collectionobject.xml create mode 100644 services/common/src/test/resources/test-data/xmljson/permissions.json create mode 100644 services/common/src/test/resources/test-data/xmljson/permissions.xml create mode 100644 services/common/src/test/resources/test-data/xmljson/vocabulary-items.json create mode 100644 services/common/src/test/resources/test-data/xmljson/vocabulary-items.xml diff --git a/services/common/pom.xml b/services/common/pom.xml index c6f436e63..ef9c31cac 100644 --- a/services/common/pom.xml +++ b/services/common/pom.xml @@ -386,6 +386,12 @@ ${spring.version} + + com.fasterxml.jackson.core + jackson-databind + 2.8.0 + + org.easymock easymock diff --git a/services/common/src/main/java/org/collectionspace/services/common/xmljson/XmlToJsonStreamConverter.java b/services/common/src/main/java/org/collectionspace/services/common/xmljson/XmlToJsonStreamConverter.java index 6963533bc..f849971ed 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/xmljson/XmlToJsonStreamConverter.java +++ b/services/common/src/main/java/org/collectionspace/services/common/xmljson/XmlToJsonStreamConverter.java @@ -1,33 +1,127 @@ package org.collectionspace.services.common.xmljson; +import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; +import java.util.Iterator; +import java.util.Stack; +import javax.xml.namespace.QName; import javax.xml.stream.XMLEventReader; import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamException; +import javax.xml.stream.events.Attribute; +import javax.xml.stream.events.Namespace; +import javax.xml.stream.events.StartElement; +import javax.xml.stream.events.XMLEvent; + +import org.apache.commons.lang3.StringUtils; +import org.collectionspace.services.common.xmljson.parsetree.Node; + +import com.fasterxml.jackson.core.JsonGenerationException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; public class XmlToJsonStreamConverter { protected XMLEventReader eventReader; protected PrintWriter writer; + protected Stack stack = new Stack(); + protected Node parseResult = null; + + public static String nodeNameForQName(QName name) { + String prefix = name.getPrefix(); + String localPart = name.getLocalPart(); + + if (StringUtils.isNotEmpty(prefix)) { + return prefix + ":" + localPart; + } + + return localPart; + } public XmlToJsonStreamConverter(InputStream in, OutputStream out) throws XMLStreamException { XMLInputFactory factory = XMLInputFactory.newInstance(); - this.eventReader = factory.createXMLEventReader(in); - this.writer = new PrintWriter(out); + eventReader = factory.createXMLEventReader(in); + writer = new PrintWriter(out); } - public void convert() throws XMLStreamException { - writer.print("{\"foo\": \"bar\"}"); + public void convert() throws XMLStreamException, JsonGenerationException, JsonMappingException, IOException { + while(eventReader.hasNext()){ + XMLEvent event = eventReader.nextEvent(); + + switch(event.getEventType()) { + case XMLStreamConstants.CHARACTERS: + onCharacters(event); + break; + case XMLStreamConstants.START_ELEMENT: + onStartElement(event); + break; + case XMLStreamConstants.END_ELEMENT: + onEndElement(event); + break; + case XMLStreamConstants.START_DOCUMENT: + onStartDocument(event); + break; + case XMLStreamConstants.END_DOCUMENT: + onEndDocument(event); + break; + } + } + + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.writeValue(writer, parseResult); + writer.flush(); -// while(eventReader.hasNext()){ -// XMLEvent event = eventReader.nextEvent(); -// -// switch(event.getEventType()) { -// -// } -// } + } + + protected void onStartDocument(XMLEvent event) { + stack.push(new Node()); + } + + protected void onEndDocument(XMLEvent event) { + parseResult = stack.pop(); + } + + @SuppressWarnings("unchecked") + protected void onStartElement(XMLEvent event) { + StartElement element = event.asStartElement(); + QName name = element.getName(); + + Node node = new Node(nodeNameForQName(name)); + + Iterator attrIter = element.getAttributes(); + + while(attrIter.hasNext()) { + Attribute attr = attrIter.next(); + + node.addAttribute(attr.getName().toString(), attr.getValue()); + } + + Iterator nsIter = element.getNamespaces(); + + while(nsIter.hasNext()) { + Namespace ns = nsIter.next(); + + node.addNamespace(ns.getPrefix(), ns.getNamespaceURI()); + } + + stack.push(node); + } + + protected void onCharacters(XMLEvent event) { + String text = event.asCharacters().getData(); + Node parent = stack.peek(); + + parent.addText(text); + } + + protected void onEndElement(XMLEvent event) { + Node node = stack.pop(); + Node parent = stack.peek(); + + parent.addChild(node); } } diff --git a/services/common/src/main/java/org/collectionspace/services/common/xmljson/parsetree/Node.java b/services/common/src/main/java/org/collectionspace/services/common/xmljson/parsetree/Node.java new file mode 100644 index 000000000..b66dc1cb3 --- /dev/null +++ b/services/common/src/main/java/org/collectionspace/services/common/xmljson/parsetree/Node.java @@ -0,0 +1,186 @@ +package org.collectionspace.services.common.xmljson.parsetree; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang3.StringUtils; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * + */ +public class Node { + private String name; + private String text = ""; + private Map namespaces = new LinkedHashMap(); + private Map attributes = new LinkedHashMap(); + private Map children = new LinkedHashMap(); + private boolean isTextAllowed = true; + + public static String hashKeyForAttributeName(String name) { + return "@" + name; + } + + public static String hashKeyForNamespacePrefix(String prefix) { + return hashKeyForAttributeName("xmlns:" + prefix); + } + + public Node() { + + } + + public Node(String name) { + setName(name); + } + + @JsonValue + public Object getValue() { + if (hasChildren()) { + return getCombinedMap(); + } + + if (hasText()) { + return getText(); + } + + return null; + } + + public boolean isEmpty() { + return (!(hasChildren() || hasText())); + } + + public Map getCombinedMap() { + Map combined = new LinkedHashMap(); + Map namespaces = getNamespaces(); + Map attributes = getAttributes(); + + for (String prefix : namespaces.keySet()) { + combined.put(hashKeyForNamespacePrefix(prefix), namespaces.get(prefix)); + } + + for (String name : attributes.keySet()) { + combined.put(hashKeyForAttributeName(name), attributes.get(name)); + } + + combined.putAll(getChildren()); + + return combined; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getText() { + return text; + } + + public void setText(String text) { + if (!isTextAllowed()) { + return; + } + + this.text = text; + } + + public void addText(String text) { + if (!isTextAllowed()) { + return; + } + + this.text = this.text + text; + } + + public boolean hasText() { + return (isTextAllowed() && StringUtils.isNotEmpty(text)); + } + + public Map getNamespaces() { + return namespaces; + } + + public void setNamespaces(Map namespaces) { + this.namespaces = namespaces; + } + + public void addNamespace(String prefix, String uri) { + this.namespaces.put(prefix, uri); + } + + public Map getAttributes() { + return attributes; + } + + public void setAttributes(Map attributes) { + this.attributes = attributes; + } + + public void addAttribute(String name, String value) { + this.attributes.put(name, value); + } + + public Map getChildren() { + return children; + } + + public void setChildren(Map children) { + this.children = children; + } + + public boolean hasChildren() { + return this.children.size() > 0; + } + + public void addChild(Node node) { + // Assume mixed content is not allowed. If a child node is + // added, text is no longer allowed, and any existing + // text is removed. + + if (isTextAllowed()) { + setText(""); + setTextAllowed(false); + } + + if (node.isEmpty()) { + return; + } + + Map children = this.getChildren(); + String name = node.getName(); + + if (children.containsKey(name)) { + Object existing = children.get(name); + + if (existing instanceof List) { + ((List) existing).add(node); + } + else if (existing instanceof Node) { + List list = new ArrayList(); + + list.add((Node) existing); + list.add(node); + + children.put(name, list); + } + } + else { + children.put(name, node); + } + } + + public boolean isTextAllowed() { + return isTextAllowed; + } + + public void setTextAllowed(boolean isTextAllowed) { + this.isTextAllowed = isTextAllowed; + } +} diff --git a/services/common/src/test/java/org/collectionspace/services/common/xmljson/test/XmlToJsonStreamConverterTest.java b/services/common/src/test/java/org/collectionspace/services/common/xmljson/test/XmlToJsonStreamConverterTest.java index d872ebf29..ee66e2fde 100644 --- a/services/common/src/test/java/org/collectionspace/services/common/xmljson/test/XmlToJsonStreamConverterTest.java +++ b/services/common/src/test/java/org/collectionspace/services/common/xmljson/test/XmlToJsonStreamConverterTest.java @@ -10,28 +10,38 @@ import java.io.InputStream; import javax.xml.stream.XMLStreamException; import org.apache.commons.io.output.ByteArrayOutputStream; -import org.codehaus.jackson.JsonFactory; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.JsonParseException; -import org.codehaus.jackson.map.ObjectMapper; import org.collectionspace.services.common.xmljson.XmlToJsonStreamConverter; import org.testng.annotations.Test; +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + public class XmlToJsonStreamConverterTest { public final String FILE_PATH = "test-data/xmljson/"; private ObjectMapper mapper = new ObjectMapper(); - private JsonFactory jsonFactory = mapper.getJsonFactory(); + private JsonFactory jsonFactory = mapper.getFactory(); @Test public void testConvert() throws XMLStreamException, JsonParseException, IOException { - testConvert("record.xml", "record.json"); + testConvert("record"); + testConvert("collectionobject"); + testConvert("collectionobject-list"); + testConvert("accountperms"); + testConvert("permissions"); + testConvert("vocabulary-items"); } - private void testConvert(String xmlFileName, String jsonFileName) throws XMLStreamException, JsonParseException, IOException { + private void testConvert(String fileName) throws XMLStreamException, JsonParseException, IOException { + System.out.println("-------------------------------------------"); + System.out.println("Converting " + fileName); + System.out.println("-------------------------------------------"); + ClassLoader classLoader = getClass().getClassLoader(); - File xmlFile = new File(classLoader.getResource(FILE_PATH + xmlFileName).getFile()); - File jsonFile = new File(classLoader.getResource(FILE_PATH + jsonFileName).getFile()); + File xmlFile = new File(classLoader.getResource(FILE_PATH + fileName + ".xml").getFile()); + File jsonFile = new File(classLoader.getResource(FILE_PATH + fileName + ".json").getFile()); FileInputStream in = new FileInputStream(xmlFile); ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -42,10 +52,12 @@ public class XmlToJsonStreamConverterTest { JsonNode actualJson = parseJsonStream(out.toInputStream()); JsonNode expectedJson = parseJsonStream(new FileInputStream(jsonFile)); + System.out.println(actualJson.toString()); + assertEquals(actualJson, expectedJson); } private JsonNode parseJsonStream(InputStream in) throws JsonParseException, IOException { - return jsonFactory.createJsonParser(in).readValueAsTree(); + return jsonFactory.createParser(in).readValueAsTree(); } } diff --git a/services/common/src/test/resources/test-data/xmljson/accountperms.json b/services/common/src/test/resources/test-data/xmljson/accountperms.json new file mode 100644 index 000000000..2a259020d --- /dev/null +++ b/services/common/src/test/resources/test-data/xmljson/accountperms.json @@ -0,0 +1,949 @@ +{ + "ns2:account_permission": { + "@xmlns:ns2": "http://collectionspace.org/services/authorization", + "account": { + "accountId": "1731b26a-3f5c-4df1-a1ae-32560a978d33", + "screenName": "Administrator", + "userId": "admin@core.collectionspace.org", + "tenantId": "1" + }, + "permission": [ + { + "permRelationshipId": "6096", + "permissionId": "1-_vocabularyitems_*_workflow_deprecate-CRUDL", + "resourceName": "/vocabularyitems/*/workflow/deprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3028", + "permissionId": "1-id-CRUDL", + "resourceName": "id", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5574", + "permissionId": "1-_concepts_*_workflow_delete-CRUDL", + "resourceName": "/concepts/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3035", + "permissionId": "1-index-CRUDL", + "resourceName": "index", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3036", + "permissionId": "1-reports-CRUDL", + "resourceName": "reports", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6015", + "permissionId": "1-_vocabularies_*_workflow_unreplicate-CRUDL", + "resourceName": "/vocabularies/*/workflow/unreplicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5934", + "permissionId": "1-_orgauthorities_*_workflow_delete-CRUDL", + "resourceName": "/orgauthorities/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5988", + "permissionId": "1-_vocabularies_*_workflow_undeprecate-CRUDL", + "resourceName": "/vocabularies/*/workflow/undeprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5781", + "permissionId": "1-_locationauthorities_*_workflow_undelete-CRUDL", + "resourceName": "/locationauthorities/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3046", + "permissionId": "1-authorization_roles_accountroles-CRUDL", + "resourceName": "authorization/roles/accountroles", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5691", + "permissionId": "1-_persons_*_workflow_unreplicate-CRUDL", + "resourceName": "/persons/*/workflow/unreplicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6420", + "permissionId": "1-_reports_*_workflow_undelete-CRUDL", + "resourceName": "/reports/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3030", + "permissionId": "1-servicegroups-CRUDL", + "resourceName": "servicegroups", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3010", + "permissionId": "1-vocabularies-CRUDL", + "resourceName": "vocabularies", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5619", + "permissionId": "1-_conceptauthorities_*_workflow_deprecate-CRUDL", + "resourceName": "/conceptauthorities/*/workflow/deprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3043", + "permissionId": "1-authorization_permissions_permroles-CRUDL", + "resourceName": "authorization/permissions/permroles", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6168", + "permissionId": "1-_placeauthorities_*_workflow_undelete-CRUDL", + "resourceName": "/placeauthorities/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5808", + "permissionId": "1-_loansin_*_workflow_delete-CRUDL", + "resourceName": "/loansin/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3001", + "permissionId": "1-personauthorities-CRUDL", + "resourceName": "personauthorities", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5547", + "permissionId": "1-_concepts_*_workflow_undelete-CRUDL", + "resourceName": "/concepts/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5826", + "permissionId": "1-_loansout_*_workflow_delete-CRUDL", + "resourceName": "/loansout/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5889", + "permissionId": "1-_organizations_*_workflow_unreplicate-CRUDL", + "resourceName": "/organizations/*/workflow/unreplicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6078", + "permissionId": "1-_vocabularyitems_*_workflow_undelete-CRUDL", + "resourceName": "/vocabularyitems/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6150", + "permissionId": "1-_places_*_workflow_undelete-CRUDL", + "resourceName": "/places/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6186", + "permissionId": "1-_objectexit_*_workflow_undelete-CRUDL", + "resourceName": "/objectexit/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3004", + "permissionId": "1-loansin-CRUDL", + "resourceName": "loansin", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5637", + "permissionId": "1-_conceptauthorities_*_workflow_unreplicate-CRUDL", + "resourceName": "/conceptauthorities/*/workflow/unreplicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5835", + "permissionId": "1-_acquisitions_*_workflow_undelete-CRUDL", + "resourceName": "/acquisitions/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6159", + "permissionId": "1-_places_*_workflow_delete-CRUDL", + "resourceName": "/places/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6366", + "permissionId": "1-_publicitems_*_workflow_undelete-CRUDL", + "resourceName": "/publicitems/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3014", + "permissionId": "1-exhibitions-CRUDL", + "resourceName": "exhibitions", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5601", + "permissionId": "1-_conceptauthorities_*_workflow_undelete-CRUDL", + "resourceName": "/conceptauthorities/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5772", + "permissionId": "1-_locations_*_workflow_delete-CRUDL", + "resourceName": "/locations/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6141", + "permissionId": "1-_exhibitions_*_workflow_delete-CRUDL", + "resourceName": "/exhibitions/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6222", + "permissionId": "1-_workauthorities_*_workflow_undelete-CRUDL", + "resourceName": "/workauthorities/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6267", + "permissionId": "1-_citationauthorities_*_workflow_delete-CRUDL", + "resourceName": "/citationauthorities/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6357", + "permissionId": "1-_media_*_workflow_delete-CRUDL", + "resourceName": "/media/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6006", + "permissionId": "1-_vocabularies_*_workflow_delete-CRUDL", + "resourceName": "/vocabularies/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3032", + "permissionId": "1-batch-CRUDL", + "resourceName": "batch", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5853", + "permissionId": "1-_organizations_*_workflow_undelete-CRUDL", + "resourceName": "/organizations/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3042", + "permissionId": "1-authorization_permissions-CRUDL", + "resourceName": "authorization/permissions", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5979", + "permissionId": "1-_vocabularies_*_workflow_undelete-CRUDL", + "resourceName": "/vocabularies/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3045", + "permissionId": "1-authorization_roles_permroles-CRUDL", + "resourceName": "authorization/roles/permroles", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5556", + "permissionId": "1-_concepts_*_workflow_undeprecate-CRUDL", + "resourceName": "/concepts/*/workflow/undeprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6069", + "permissionId": "1-_movements_*_workflow_lock-CRUDL", + "resourceName": "/movements/*/workflow/lock", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6105", + "permissionId": "1-_vocabularyitems_*_workflow_delete-CRUDL", + "resourceName": "/vocabularyitems/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3041", + "permissionId": "1-authorization_roles-CRUDL", + "resourceName": "authorization/roles", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3044", + "permissionId": "1-accounts_accountroles-CRUDL", + "resourceName": "accounts/accountroles", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3016", + "permissionId": "1-placeauthorities-CRUDL", + "resourceName": "placeauthorities", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5592", + "permissionId": "1-_concepts_*_workflow_replicate-CRUDL", + "resourceName": "/concepts/*/workflow/replicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5880", + "permissionId": "1-_organizations_*_workflow_delete-CRUDL", + "resourceName": "/organizations/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6123", + "permissionId": "1-_vocabularyitems_*_workflow_replicate-CRUDL", + "resourceName": "/vocabularyitems/*/workflow/replicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "2999", + "permissionId": "1-conceptauthorities-CRUDL", + "resourceName": "conceptauthorities", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6438", + "permissionId": "1-_relations_*_workflow_undelete-CRUDL", + "resourceName": "/relations/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6492", + "permissionId": "1-_contacts_*_workflow_delete-CRUDL", + "resourceName": "/contacts/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6213", + "permissionId": "1-_works_*_workflow_delete-CRUDL", + "resourceName": "/works/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5673", + "permissionId": "1-_persons_*_workflow_deprecate-CRUDL", + "resourceName": "/persons/*/workflow/deprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6276", + "permissionId": "1-_intakes_*_workflow_undelete-CRUDL", + "resourceName": "/intakes/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3021", + "permissionId": "1-citationauthorities-CRUDL", + "resourceName": "citationauthorities", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5682", + "permissionId": "1-_persons_*_workflow_delete-CRUDL", + "resourceName": "/persons/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5727", + "permissionId": "1-_personauthorities_*_workflow_deprecate-CRUDL", + "resourceName": "/personauthorities/*/workflow/deprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5664", + "permissionId": "1-_persons_*_workflow_undeprecate-CRUDL", + "resourceName": "/persons/*/workflow/undeprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6087", + "permissionId": "1-_vocabularyitems_*_workflow_undeprecate-CRUDL", + "resourceName": "/vocabularyitems/*/workflow/undeprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3012", + "permissionId": "1-movements-CRUDL", + "resourceName": "movements", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6339", + "permissionId": "1-_valuationcontrols_*_workflow_delete-CRUDL", + "resourceName": "/valuationcontrols/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6384", + "permissionId": "1-_blobs_*_workflow_undelete-CRUDL", + "resourceName": "/blobs/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5790", + "permissionId": "1-_locationauthorities_*_workflow_delete-CRUDL", + "resourceName": "/locationauthorities/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6024", + "permissionId": "1-_vocabularies_*_workflow_replicate-CRUDL", + "resourceName": "/vocabularies/*/workflow/replicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5754", + "permissionId": "1-_personauthorities_*_workflow_replicate-CRUDL", + "resourceName": "/personauthorities/*/workflow/replicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6060", + "permissionId": "1-_movements_*_workflow_delete-CRUDL", + "resourceName": "/movements/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3027", + "permissionId": "1-idgenerators-CRUDL", + "resourceName": "idgenerators", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5817", + "permissionId": "1-_loansout_*_workflow_undelete-CRUDL", + "resourceName": "/loansout/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3015", + "permissionId": "1-places-CRUDL", + "resourceName": "places", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6231", + "permissionId": "1-_workauthorities_*_workflow_delete-CRUDL", + "resourceName": "/workauthorities/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5700", + "permissionId": "1-_persons_*_workflow_replicate-CRUDL", + "resourceName": "/persons/*/workflow/replicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6249", + "permissionId": "1-_citations_*_workflow_delete-CRUDL", + "resourceName": "/citations/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6330", + "permissionId": "1-_valuationcontrols_*_workflow_undelete-CRUDL", + "resourceName": "/valuationcontrols/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3025", + "permissionId": "1-valuationcontrols-CRUDL", + "resourceName": "valuationcontrols", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3038", + "permissionId": "1-dimensions-CRUDL", + "resourceName": "dimensions", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6474", + "permissionId": "1-_dimensions_*_workflow_lock-CRUDL", + "resourceName": "/dimensions/*/workflow/lock", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3034", + "permissionId": "1-workflow-CRUDL", + "resourceName": "workflow", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6033", + "permissionId": "1-_conservation_*_workflow_undelete-CRUDL", + "resourceName": "/conservation/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6321", + "permissionId": "1-_groups_*_workflow_delete-CRUDL", + "resourceName": "/groups/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3020", + "permissionId": "1-citations-CRUDL", + "resourceName": "citations", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3022", + "permissionId": "1-intakes-CRUDL", + "resourceName": "intakes", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5952", + "permissionId": "1-_orgauthorities_*_workflow_replicate-CRUDL", + "resourceName": "/orgauthorities/*/workflow/replicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3031", + "permissionId": "1-blobs-CRUDL", + "resourceName": "blobs", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3039", + "permissionId": "1-_dimensions_workflow_-CRUDL", + "resourceName": "/dimensions/workflow/", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3017", + "permissionId": "1-objectexit-CRUDL", + "resourceName": "objectexit", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6312", + "permissionId": "1-_groups_*_workflow_undelete-CRUDL", + "resourceName": "/groups/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3024", + "permissionId": "1-groups-CRUDL", + "resourceName": "groups", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5565", + "permissionId": "1-_concepts_*_workflow_deprecate-CRUDL", + "resourceName": "/concepts/*/workflow/deprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3005", + "permissionId": "1-loansout-CRUDL", + "resourceName": "loansout", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6402", + "permissionId": "1-_batch_*_workflow_undelete-CRUDL", + "resourceName": "/batch/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6375", + "permissionId": "1-_publicitems_*_workflow_delete-CRUDL", + "resourceName": "/publicitems/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3037", + "permissionId": "1-relations-CRUDL", + "resourceName": "relations", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5799", + "permissionId": "1-_loansin_*_workflow_undelete-CRUDL", + "resourceName": "/loansin/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5871", + "permissionId": "1-_organizations_*_workflow_deprecate-CRUDL", + "resourceName": "/organizations/*/workflow/deprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6447", + "permissionId": "1-_relations_*_workflow_delete-CRUDL", + "resourceName": "/relations/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6195", + "permissionId": "1-_objectexit_*_workflow_delete-CRUDL", + "resourceName": "/objectexit/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6204", + "permissionId": "1-_works_*_workflow_undelete-CRUDL", + "resourceName": "/works/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3018", + "permissionId": "1-works-CRUDL", + "resourceName": "works", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5736", + "permissionId": "1-_personauthorities_*_workflow_delete-CRUDL", + "resourceName": "/personauthorities/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "2997", + "permissionId": "1-accounts-CRUDL", + "resourceName": "accounts", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3007", + "permissionId": "1-organizations-CRUDL", + "resourceName": "organizations", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5898", + "permissionId": "1-_organizations_*_workflow_replicate-CRUDL", + "resourceName": "/organizations/*/workflow/replicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5763", + "permissionId": "1-_locations_*_workflow_undelete-CRUDL", + "resourceName": "/locations/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3006", + "permissionId": "1-acquisitions-CRUDL", + "resourceName": "acquisitions", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5961", + "permissionId": "1-_collectionobjects_*_workflow_undelete-CRUDL", + "resourceName": "/collectionobjects/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6465", + "permissionId": "1-_dimensions_*_workflow_delete-CRUDL", + "resourceName": "/dimensions/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3011", + "permissionId": "1-conservation-CRUDL", + "resourceName": "conservation", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5943", + "permissionId": "1-_orgauthorities_*_workflow_unreplicate-CRUDL", + "resourceName": "/orgauthorities/*/workflow/unreplicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5655", + "permissionId": "1-_persons_*_workflow_undelete-CRUDL", + "resourceName": "/persons/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3033", + "permissionId": "1-imports-CRUDL", + "resourceName": "imports", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5916", + "permissionId": "1-_orgauthorities_*_workflow_undeprecate-CRUDL", + "resourceName": "/orgauthorities/*/workflow/undeprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3009", + "permissionId": "1-collectionobjects-CRUDL", + "resourceName": "collectionobjects", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5646", + "permissionId": "1-_conceptauthorities_*_workflow_replicate-CRUDL", + "resourceName": "/conceptauthorities/*/workflow/replicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5745", + "permissionId": "1-_personauthorities_*_workflow_unreplicate-CRUDL", + "resourceName": "/personauthorities/*/workflow/unreplicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "2998", + "permissionId": "1-concepts-CRUDL", + "resourceName": "concepts", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6114", + "permissionId": "1-_vocabularyitems_*_workflow_unreplicate-CRUDL", + "resourceName": "/vocabularyitems/*/workflow/unreplicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3008", + "permissionId": "1-orgauthorities-CRUDL", + "resourceName": "orgauthorities", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3013", + "permissionId": "1-vocabularyitems-CRUDL", + "resourceName": "vocabularyitems", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5583", + "permissionId": "1-_concepts_*_workflow_unreplicate-CRUDL", + "resourceName": "/concepts/*/workflow/unreplicate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6411", + "permissionId": "1-_batch_*_workflow_delete-CRUDL", + "resourceName": "/batch/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5907", + "permissionId": "1-_orgauthorities_*_workflow_undelete-CRUDL", + "resourceName": "/orgauthorities/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5925", + "permissionId": "1-_orgauthorities_*_workflow_deprecate-CRUDL", + "resourceName": "/orgauthorities/*/workflow/deprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6051", + "permissionId": "1-_movements_*_workflow_undelete-CRUDL", + "resourceName": "/movements/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3040", + "permissionId": "1-contacts-CRUDL", + "resourceName": "contacts", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6483", + "permissionId": "1-_contacts_*_workflow_undelete-CRUDL", + "resourceName": "/contacts/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6258", + "permissionId": "1-_citationauthorities_*_workflow_undelete-CRUDL", + "resourceName": "/citationauthorities/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3003", + "permissionId": "1-locationauthorities-CRUDL", + "resourceName": "locationauthorities", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6348", + "permissionId": "1-_media_*_workflow_undelete-CRUDL", + "resourceName": "/media/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6240", + "permissionId": "1-_citations_*_workflow_undelete-CRUDL", + "resourceName": "/citations/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3026", + "permissionId": "1-media-CRUDL", + "resourceName": "media", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3000", + "permissionId": "1-persons-CRUDL", + "resourceName": "persons", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5970", + "permissionId": "1-_collectionobjects_*_workflow_delete-CRUDL", + "resourceName": "/collectionobjects/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3029", + "permissionId": "1-publicitems-CRUDL", + "resourceName": "publicitems", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6042", + "permissionId": "1-_conservation_*_workflow_delete-CRUDL", + "resourceName": "/conservation/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6177", + "permissionId": "1-_placeauthorities_*_workflow_delete-CRUDL", + "resourceName": "/placeauthorities/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3002", + "permissionId": "1-locations-CRUDL", + "resourceName": "locations", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6303", + "permissionId": "1-_conditionchecks_*_workflow_delete-CRUDL", + "resourceName": "/conditionchecks/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5610", + "permissionId": "1-_conceptauthorities_*_workflow_undeprecate-CRUDL", + "resourceName": "/conceptauthorities/*/workflow/undeprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5628", + "permissionId": "1-_conceptauthorities_*_workflow_delete-CRUDL", + "resourceName": "/conceptauthorities/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5709", + "permissionId": "1-_personauthorities_*_workflow_undelete-CRUDL", + "resourceName": "/personauthorities/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3019", + "permissionId": "1-workauthorities-CRUDL", + "resourceName": "workauthorities", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5997", + "permissionId": "1-_vocabularies_*_workflow_deprecate-CRUDL", + "resourceName": "/vocabularies/*/workflow/deprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6429", + "permissionId": "1-_reports_*_workflow_delete-CRUDL", + "resourceName": "/reports/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6456", + "permissionId": "1-_dimensions_*_workflow_undelete-CRUDL", + "resourceName": "/dimensions/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5844", + "permissionId": "1-_acquisitions_*_workflow_delete-CRUDL", + "resourceName": "/acquisitions/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5718", + "permissionId": "1-_personauthorities_*_workflow_undeprecate-CRUDL", + "resourceName": "/personauthorities/*/workflow/undeprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6132", + "permissionId": "1-_exhibitions_*_workflow_undelete-CRUDL", + "resourceName": "/exhibitions/*/workflow/undelete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6393", + "permissionId": "1-_blobs_*_workflow_delete-CRUDL", + "resourceName": "/blobs/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6285", + "permissionId": "1-_intakes_*_workflow_delete-CRUDL", + "resourceName": "/intakes/*/workflow/delete", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "3023", + "permissionId": "1-conditionchecks-CRUDL", + "resourceName": "conditionchecks", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "5862", + "permissionId": "1-_organizations_*_workflow_undeprecate-CRUDL", + "resourceName": "/organizations/*/workflow/undeprecate", + "actionGroup": "CRUDL" + }, + { + "permRelationshipId": "6294", + "permissionId": "1-_conditionchecks_*_workflow_undelete-CRUDL", + "resourceName": "/conditionchecks/*/workflow/undelete", + "actionGroup": "CRUDL" + } + ] + } +} \ No newline at end of file diff --git a/services/common/src/test/resources/test-data/xmljson/accountperms.xml b/services/common/src/test/resources/test-data/xmljson/accountperms.xml new file mode 100644 index 000000000..67331d06f --- /dev/null +++ b/services/common/src/test/resources/test-data/xmljson/accountperms.xml @@ -0,0 +1,944 @@ + + + 1731b26a-3f5c-4df1-a1ae-32560a978d33 + Administrator + admin@core.collectionspace.org + 1 + + + 6096 + 1-_vocabularyitems_*_workflow_deprecate-CRUDL + /vocabularyitems/*/workflow/deprecate + CRUDL + + + 3028 + 1-id-CRUDL + id + CRUDL + + + 5574 + 1-_concepts_*_workflow_delete-CRUDL + /concepts/*/workflow/delete + CRUDL + + + 3035 + 1-index-CRUDL + index + CRUDL + + + 3036 + 1-reports-CRUDL + reports + CRUDL + + + 6015 + 1-_vocabularies_*_workflow_unreplicate-CRUDL + /vocabularies/*/workflow/unreplicate + CRUDL + + + 5934 + 1-_orgauthorities_*_workflow_delete-CRUDL + /orgauthorities/*/workflow/delete + CRUDL + + + 5988 + 1-_vocabularies_*_workflow_undeprecate-CRUDL + /vocabularies/*/workflow/undeprecate + CRUDL + + + 5781 + 1-_locationauthorities_*_workflow_undelete-CRUDL + /locationauthorities/*/workflow/undelete + CRUDL + + + 3046 + 1-authorization_roles_accountroles-CRUDL + authorization/roles/accountroles + CRUDL + + + 5691 + 1-_persons_*_workflow_unreplicate-CRUDL + /persons/*/workflow/unreplicate + CRUDL + + + 6420 + 1-_reports_*_workflow_undelete-CRUDL + /reports/*/workflow/undelete + CRUDL + + + 3030 + 1-servicegroups-CRUDL + servicegroups + CRUDL + + + 3010 + 1-vocabularies-CRUDL + vocabularies + CRUDL + + + 5619 + 1-_conceptauthorities_*_workflow_deprecate-CRUDL + /conceptauthorities/*/workflow/deprecate + CRUDL + + + 3043 + 1-authorization_permissions_permroles-CRUDL + authorization/permissions/permroles + CRUDL + + + 6168 + 1-_placeauthorities_*_workflow_undelete-CRUDL + /placeauthorities/*/workflow/undelete + CRUDL + + + 5808 + 1-_loansin_*_workflow_delete-CRUDL + /loansin/*/workflow/delete + CRUDL + + + 3001 + 1-personauthorities-CRUDL + personauthorities + CRUDL + + + 5547 + 1-_concepts_*_workflow_undelete-CRUDL + /concepts/*/workflow/undelete + CRUDL + + + 5826 + 1-_loansout_*_workflow_delete-CRUDL + /loansout/*/workflow/delete + CRUDL + + + 5889 + 1-_organizations_*_workflow_unreplicate-CRUDL + /organizations/*/workflow/unreplicate + CRUDL + + + 6078 + 1-_vocabularyitems_*_workflow_undelete-CRUDL + /vocabularyitems/*/workflow/undelete + CRUDL + + + 6150 + 1-_places_*_workflow_undelete-CRUDL + /places/*/workflow/undelete + CRUDL + + + 6186 + 1-_objectexit_*_workflow_undelete-CRUDL + /objectexit/*/workflow/undelete + CRUDL + + + 3004 + 1-loansin-CRUDL + loansin + CRUDL + + + 5637 + 1-_conceptauthorities_*_workflow_unreplicate-CRUDL + /conceptauthorities/*/workflow/unreplicate + CRUDL + + + 5835 + 1-_acquisitions_*_workflow_undelete-CRUDL + /acquisitions/*/workflow/undelete + CRUDL + + + 6159 + 1-_places_*_workflow_delete-CRUDL + /places/*/workflow/delete + CRUDL + + + 6366 + 1-_publicitems_*_workflow_undelete-CRUDL + /publicitems/*/workflow/undelete + CRUDL + + + 3014 + 1-exhibitions-CRUDL + exhibitions + CRUDL + + + 5601 + 1-_conceptauthorities_*_workflow_undelete-CRUDL + /conceptauthorities/*/workflow/undelete + CRUDL + + + 5772 + 1-_locations_*_workflow_delete-CRUDL + /locations/*/workflow/delete + CRUDL + + + 6141 + 1-_exhibitions_*_workflow_delete-CRUDL + /exhibitions/*/workflow/delete + CRUDL + + + 6222 + 1-_workauthorities_*_workflow_undelete-CRUDL + /workauthorities/*/workflow/undelete + CRUDL + + + 6267 + 1-_citationauthorities_*_workflow_delete-CRUDL + /citationauthorities/*/workflow/delete + CRUDL + + + 6357 + 1-_media_*_workflow_delete-CRUDL + /media/*/workflow/delete + CRUDL + + + 6006 + 1-_vocabularies_*_workflow_delete-CRUDL + /vocabularies/*/workflow/delete + CRUDL + + + 3032 + 1-batch-CRUDL + batch + CRUDL + + + 5853 + 1-_organizations_*_workflow_undelete-CRUDL + /organizations/*/workflow/undelete + CRUDL + + + 3042 + 1-authorization_permissions-CRUDL + authorization/permissions + CRUDL + + + 5979 + 1-_vocabularies_*_workflow_undelete-CRUDL + /vocabularies/*/workflow/undelete + CRUDL + + + 3045 + 1-authorization_roles_permroles-CRUDL + authorization/roles/permroles + CRUDL + + + 5556 + 1-_concepts_*_workflow_undeprecate-CRUDL + /concepts/*/workflow/undeprecate + CRUDL + + + 6069 + 1-_movements_*_workflow_lock-CRUDL + /movements/*/workflow/lock + CRUDL + + + 6105 + 1-_vocabularyitems_*_workflow_delete-CRUDL + /vocabularyitems/*/workflow/delete + CRUDL + + + 3041 + 1-authorization_roles-CRUDL + authorization/roles + CRUDL + + + 3044 + 1-accounts_accountroles-CRUDL + accounts/accountroles + CRUDL + + + 3016 + 1-placeauthorities-CRUDL + placeauthorities + CRUDL + + + 5592 + 1-_concepts_*_workflow_replicate-CRUDL + /concepts/*/workflow/replicate + CRUDL + + + 5880 + 1-_organizations_*_workflow_delete-CRUDL + /organizations/*/workflow/delete + CRUDL + + + 6123 + 1-_vocabularyitems_*_workflow_replicate-CRUDL + /vocabularyitems/*/workflow/replicate + CRUDL + + + 2999 + 1-conceptauthorities-CRUDL + conceptauthorities + CRUDL + + + 6438 + 1-_relations_*_workflow_undelete-CRUDL + /relations/*/workflow/undelete + CRUDL + + + 6492 + 1-_contacts_*_workflow_delete-CRUDL + /contacts/*/workflow/delete + CRUDL + + + 6213 + 1-_works_*_workflow_delete-CRUDL + /works/*/workflow/delete + CRUDL + + + 5673 + 1-_persons_*_workflow_deprecate-CRUDL + /persons/*/workflow/deprecate + CRUDL + + + 6276 + 1-_intakes_*_workflow_undelete-CRUDL + /intakes/*/workflow/undelete + CRUDL + + + 3021 + 1-citationauthorities-CRUDL + citationauthorities + CRUDL + + + 5682 + 1-_persons_*_workflow_delete-CRUDL + /persons/*/workflow/delete + CRUDL + + + 5727 + 1-_personauthorities_*_workflow_deprecate-CRUDL + /personauthorities/*/workflow/deprecate + CRUDL + + + 5664 + 1-_persons_*_workflow_undeprecate-CRUDL + /persons/*/workflow/undeprecate + CRUDL + + + 6087 + 1-_vocabularyitems_*_workflow_undeprecate-CRUDL + /vocabularyitems/*/workflow/undeprecate + CRUDL + + + 3012 + 1-movements-CRUDL + movements + CRUDL + + + 6339 + 1-_valuationcontrols_*_workflow_delete-CRUDL + /valuationcontrols/*/workflow/delete + CRUDL + + + 6384 + 1-_blobs_*_workflow_undelete-CRUDL + /blobs/*/workflow/undelete + CRUDL + + + 5790 + 1-_locationauthorities_*_workflow_delete-CRUDL + /locationauthorities/*/workflow/delete + CRUDL + + + 6024 + 1-_vocabularies_*_workflow_replicate-CRUDL + /vocabularies/*/workflow/replicate + CRUDL + + + 5754 + 1-_personauthorities_*_workflow_replicate-CRUDL + /personauthorities/*/workflow/replicate + CRUDL + + + 6060 + 1-_movements_*_workflow_delete-CRUDL + /movements/*/workflow/delete + CRUDL + + + 3027 + 1-idgenerators-CRUDL + idgenerators + CRUDL + + + 5817 + 1-_loansout_*_workflow_undelete-CRUDL + /loansout/*/workflow/undelete + CRUDL + + + 3015 + 1-places-CRUDL + places + CRUDL + + + 6231 + 1-_workauthorities_*_workflow_delete-CRUDL + /workauthorities/*/workflow/delete + CRUDL + + + 5700 + 1-_persons_*_workflow_replicate-CRUDL + /persons/*/workflow/replicate + CRUDL + + + 6249 + 1-_citations_*_workflow_delete-CRUDL + /citations/*/workflow/delete + CRUDL + + + 6330 + 1-_valuationcontrols_*_workflow_undelete-CRUDL + /valuationcontrols/*/workflow/undelete + CRUDL + + + 3025 + 1-valuationcontrols-CRUDL + valuationcontrols + CRUDL + + + 3038 + 1-dimensions-CRUDL + dimensions + CRUDL + + + 6474 + 1-_dimensions_*_workflow_lock-CRUDL + /dimensions/*/workflow/lock + CRUDL + + + 3034 + 1-workflow-CRUDL + workflow + CRUDL + + + 6033 + 1-_conservation_*_workflow_undelete-CRUDL + /conservation/*/workflow/undelete + CRUDL + + + 6321 + 1-_groups_*_workflow_delete-CRUDL + /groups/*/workflow/delete + CRUDL + + + 3020 + 1-citations-CRUDL + citations + CRUDL + + + 3022 + 1-intakes-CRUDL + intakes + CRUDL + + + 5952 + 1-_orgauthorities_*_workflow_replicate-CRUDL + /orgauthorities/*/workflow/replicate + CRUDL + + + 3031 + 1-blobs-CRUDL + blobs + CRUDL + + + 3039 + 1-_dimensions_workflow_-CRUDL + /dimensions/workflow/ + CRUDL + + + 3017 + 1-objectexit-CRUDL + objectexit + CRUDL + + + 6312 + 1-_groups_*_workflow_undelete-CRUDL + /groups/*/workflow/undelete + CRUDL + + + 3024 + 1-groups-CRUDL + groups + CRUDL + + + 5565 + 1-_concepts_*_workflow_deprecate-CRUDL + /concepts/*/workflow/deprecate + CRUDL + + + 3005 + 1-loansout-CRUDL + loansout + CRUDL + + + 6402 + 1-_batch_*_workflow_undelete-CRUDL + /batch/*/workflow/undelete + CRUDL + + + 6375 + 1-_publicitems_*_workflow_delete-CRUDL + /publicitems/*/workflow/delete + CRUDL + + + 3037 + 1-relations-CRUDL + relations + CRUDL + + + 5799 + 1-_loansin_*_workflow_undelete-CRUDL + /loansin/*/workflow/undelete + CRUDL + + + 5871 + 1-_organizations_*_workflow_deprecate-CRUDL + /organizations/*/workflow/deprecate + CRUDL + + + 6447 + 1-_relations_*_workflow_delete-CRUDL + /relations/*/workflow/delete + CRUDL + + + 6195 + 1-_objectexit_*_workflow_delete-CRUDL + /objectexit/*/workflow/delete + CRUDL + + + 6204 + 1-_works_*_workflow_undelete-CRUDL + /works/*/workflow/undelete + CRUDL + + + 3018 + 1-works-CRUDL + works + CRUDL + + + 5736 + 1-_personauthorities_*_workflow_delete-CRUDL + /personauthorities/*/workflow/delete + CRUDL + + + 2997 + 1-accounts-CRUDL + accounts + CRUDL + + + 3007 + 1-organizations-CRUDL + organizations + CRUDL + + + 5898 + 1-_organizations_*_workflow_replicate-CRUDL + /organizations/*/workflow/replicate + CRUDL + + + 5763 + 1-_locations_*_workflow_undelete-CRUDL + /locations/*/workflow/undelete + CRUDL + + + 3006 + 1-acquisitions-CRUDL + acquisitions + CRUDL + + + 5961 + 1-_collectionobjects_*_workflow_undelete-CRUDL + /collectionobjects/*/workflow/undelete + CRUDL + + + 6465 + 1-_dimensions_*_workflow_delete-CRUDL + /dimensions/*/workflow/delete + CRUDL + + + 3011 + 1-conservation-CRUDL + conservation + CRUDL + + + 5943 + 1-_orgauthorities_*_workflow_unreplicate-CRUDL + /orgauthorities/*/workflow/unreplicate + CRUDL + + + 5655 + 1-_persons_*_workflow_undelete-CRUDL + /persons/*/workflow/undelete + CRUDL + + + 3033 + 1-imports-CRUDL + imports + CRUDL + + + 5916 + 1-_orgauthorities_*_workflow_undeprecate-CRUDL + /orgauthorities/*/workflow/undeprecate + CRUDL + + + 3009 + 1-collectionobjects-CRUDL + collectionobjects + CRUDL + + + 5646 + 1-_conceptauthorities_*_workflow_replicate-CRUDL + /conceptauthorities/*/workflow/replicate + CRUDL + + + 5745 + 1-_personauthorities_*_workflow_unreplicate-CRUDL + /personauthorities/*/workflow/unreplicate + CRUDL + + + 2998 + 1-concepts-CRUDL + concepts + CRUDL + + + 6114 + 1-_vocabularyitems_*_workflow_unreplicate-CRUDL + /vocabularyitems/*/workflow/unreplicate + CRUDL + + + 3008 + 1-orgauthorities-CRUDL + orgauthorities + CRUDL + + + 3013 + 1-vocabularyitems-CRUDL + vocabularyitems + CRUDL + + + 5583 + 1-_concepts_*_workflow_unreplicate-CRUDL + /concepts/*/workflow/unreplicate + CRUDL + + + 6411 + 1-_batch_*_workflow_delete-CRUDL + /batch/*/workflow/delete + CRUDL + + + 5907 + 1-_orgauthorities_*_workflow_undelete-CRUDL + /orgauthorities/*/workflow/undelete + CRUDL + + + 5925 + 1-_orgauthorities_*_workflow_deprecate-CRUDL + /orgauthorities/*/workflow/deprecate + CRUDL + + + 6051 + 1-_movements_*_workflow_undelete-CRUDL + /movements/*/workflow/undelete + CRUDL + + + 3040 + 1-contacts-CRUDL + contacts + CRUDL + + + 6483 + 1-_contacts_*_workflow_undelete-CRUDL + /contacts/*/workflow/undelete + CRUDL + + + 6258 + 1-_citationauthorities_*_workflow_undelete-CRUDL + /citationauthorities/*/workflow/undelete + CRUDL + + + 3003 + 1-locationauthorities-CRUDL + locationauthorities + CRUDL + + + 6348 + 1-_media_*_workflow_undelete-CRUDL + /media/*/workflow/undelete + CRUDL + + + 6240 + 1-_citations_*_workflow_undelete-CRUDL + /citations/*/workflow/undelete + CRUDL + + + 3026 + 1-media-CRUDL + media + CRUDL + + + 3000 + 1-persons-CRUDL + persons + CRUDL + + + 5970 + 1-_collectionobjects_*_workflow_delete-CRUDL + /collectionobjects/*/workflow/delete + CRUDL + + + 3029 + 1-publicitems-CRUDL + publicitems + CRUDL + + + 6042 + 1-_conservation_*_workflow_delete-CRUDL + /conservation/*/workflow/delete + CRUDL + + + 6177 + 1-_placeauthorities_*_workflow_delete-CRUDL + /placeauthorities/*/workflow/delete + CRUDL + + + 3002 + 1-locations-CRUDL + locations + CRUDL + + + 6303 + 1-_conditionchecks_*_workflow_delete-CRUDL + /conditionchecks/*/workflow/delete + CRUDL + + + 5610 + 1-_conceptauthorities_*_workflow_undeprecate-CRUDL + /conceptauthorities/*/workflow/undeprecate + CRUDL + + + 5628 + 1-_conceptauthorities_*_workflow_delete-CRUDL + /conceptauthorities/*/workflow/delete + CRUDL + + + 5709 + 1-_personauthorities_*_workflow_undelete-CRUDL + /personauthorities/*/workflow/undelete + CRUDL + + + 3019 + 1-workauthorities-CRUDL + workauthorities + CRUDL + + + 5997 + 1-_vocabularies_*_workflow_deprecate-CRUDL + /vocabularies/*/workflow/deprecate + CRUDL + + + 6429 + 1-_reports_*_workflow_delete-CRUDL + /reports/*/workflow/delete + CRUDL + + + 6456 + 1-_dimensions_*_workflow_undelete-CRUDL + /dimensions/*/workflow/undelete + CRUDL + + + 5844 + 1-_acquisitions_*_workflow_delete-CRUDL + /acquisitions/*/workflow/delete + CRUDL + + + 5718 + 1-_personauthorities_*_workflow_undeprecate-CRUDL + /personauthorities/*/workflow/undeprecate + CRUDL + + + 6132 + 1-_exhibitions_*_workflow_undelete-CRUDL + /exhibitions/*/workflow/undelete + CRUDL + + + 6393 + 1-_blobs_*_workflow_delete-CRUDL + /blobs/*/workflow/delete + CRUDL + + + 6285 + 1-_intakes_*_workflow_delete-CRUDL + /intakes/*/workflow/delete + CRUDL + + + 3023 + 1-conditionchecks-CRUDL + conditionchecks + CRUDL + + + 5862 + 1-_organizations_*_workflow_undeprecate-CRUDL + /organizations/*/workflow/undeprecate + CRUDL + + + 6294 + 1-_conditionchecks_*_workflow_undelete-CRUDL + /conditionchecks/*/workflow/undelete + CRUDL + + diff --git a/services/common/src/test/resources/test-data/xmljson/collectionobject-list.json b/services/common/src/test/resources/test-data/xmljson/collectionobject-list.json new file mode 100644 index 000000000..6a646b648 --- /dev/null +++ b/services/common/src/test/resources/test-data/xmljson/collectionobject-list.json @@ -0,0 +1,348 @@ +{ + "ns2:abstract-common-list": { + "@xmlns:ns2": "http://collectionspace.org/services/jaxb", + "pageNum": "0", + "pageSize": "40", + "itemsInPage": "40", + "totalItems": "41", + "fieldsReturned": "csid|uri|refName|updatedAt|workflowState|title|objectNumber|objectName|responsibleDepartment", + "list-item": [ + { + "csid": "2ece74b2-2053-458c-a252", + "uri": "/collectionobjects/2ece74b2-2053-458c-a252", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(2ece74b2-2053-458c-a252)'2'", + "updatedAt": "2016-07-27T04:31:38.648Z", + "workflowState": "deleted", + "objectNumber": "2", + "objectName": "new OBJNAME", + "responsibleDepartment": "new DEPT" + }, + { + "csid": "b6bc8b80-0a1a-4279-8d4d", + "uri": "/collectionobjects/b6bc8b80-0a1a-4279-8d4d", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(b6bc8b80-0a1a-4279-8d4d)'2'", + "updatedAt": "2016-07-27T04:31:38.222Z", + "workflowState": "deleted", + "objectNumber": "2", + "objectName": "new OBJNAME", + "responsibleDepartment": "new DEPT" + }, + { + "csid": "af661f9f-6f9d-425e-b3d9", + "uri": "/collectionobjects/af661f9f-6f9d-425e-b3d9", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(af661f9f-6f9d-425e-b3d9)'1'", + "updatedAt": "2016-07-27T04:30:43.568Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "75539775-b5db-4690-9d01", + "uri": "/collectionobjects/75539775-b5db-4690-9d01", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(75539775-b5db-4690-9d01)'1'", + "updatedAt": "2016-07-27T04:30:41.491Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "2d15f7ed-5aff-4222-9d07", + "uri": "/collectionobjects/2d15f7ed-5aff-4222-9d07", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(2d15f7ed-5aff-4222-9d07)'1'", + "updatedAt": "2016-07-27T04:30:39.256Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "4cfc4992-f25b-44f2-a083", + "uri": "/collectionobjects/4cfc4992-f25b-44f2-a083", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(4cfc4992-f25b-44f2-a083)'1'", + "updatedAt": "2016-07-27T04:30:37.419Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "156d2b43-474d-4780-bd47", + "uri": "/collectionobjects/156d2b43-474d-4780-bd47", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(156d2b43-474d-4780-bd47)'1'", + "updatedAt": "2016-07-27T04:30:31.616Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "917c4ef9-3c3f-4d14-af70", + "uri": "/collectionobjects/917c4ef9-3c3f-4d14-af70", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(917c4ef9-3c3f-4d14-af70)'1'", + "updatedAt": "2016-07-27T04:30:31.584Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "87c905d5-5501-430f-b5f4", + "uri": "/collectionobjects/87c905d5-5501-430f-b5f4", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(87c905d5-5501-430f-b5f4)'1'", + "updatedAt": "2016-07-27T04:30:31.554Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "1a31a1c0-9d88-4cd4-aead", + "uri": "/collectionobjects/1a31a1c0-9d88-4cd4-aead", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(1a31a1c0-9d88-4cd4-aead)'1'", + "updatedAt": "2016-07-27T04:30:28.838Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "bc5975b2-1bc2-4b56-b761", + "uri": "/collectionobjects/bc5975b2-1bc2-4b56-b761", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(bc5975b2-1bc2-4b56-b761)'1'", + "updatedAt": "2016-07-27T04:30:28.812Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "839e172c-d790-44a8-896a", + "uri": "/collectionobjects/839e172c-d790-44a8-896a", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(839e172c-d790-44a8-896a)'1'", + "updatedAt": "2016-07-27T04:30:28.773Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "3869b0ee-9276-428d-954f", + "uri": "/collectionobjects/3869b0ee-9276-428d-954f", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(3869b0ee-9276-428d-954f)'1'", + "updatedAt": "2016-07-27T04:30:26.837Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "86360825-a2ee-4d7e-b51d", + "uri": "/collectionobjects/86360825-a2ee-4d7e-b51d", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(86360825-a2ee-4d7e-b51d)'1'", + "updatedAt": "2016-07-27T04:30:26.812Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "f346e6ee-bae9-4700-9e96", + "uri": "/collectionobjects/f346e6ee-bae9-4700-9e96", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(f346e6ee-bae9-4700-9e96)'1'", + "updatedAt": "2016-07-27T04:30:26.786Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "f3782e3e-af7b-4f29-89a6", + "uri": "/collectionobjects/f3782e3e-af7b-4f29-89a6", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(f3782e3e-af7b-4f29-89a6)'1'", + "updatedAt": "2016-07-27T04:30:24.335Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "ae25c04a-f044-45cd-96ff", + "uri": "/collectionobjects/ae25c04a-f044-45cd-96ff", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(ae25c04a-f044-45cd-96ff)'1'", + "updatedAt": "2016-07-27T04:30:24.310Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "873b5a5b-6753-4eea-b0c3", + "uri": "/collectionobjects/873b5a5b-6753-4eea-b0c3", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(873b5a5b-6753-4eea-b0c3)'1'", + "updatedAt": "2016-07-27T04:30:24.285Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "dacd5398-708a-4580-a994", + "uri": "/collectionobjects/dacd5398-708a-4580-a994", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(dacd5398-708a-4580-a994)'TestObject'", + "updatedAt": "2016-07-27T04:30:21.092Z", + "workflowState": "deleted", + "objectNumber": "TestObject" + }, + { + "csid": "0a07c7a2-5fd6-43e7-ac64", + "uri": "/collectionobjects/0a07c7a2-5fd6-43e7-ac64", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(0a07c7a2-5fd6-43e7-ac64)'TestObject'", + "updatedAt": "2016-07-27T04:30:19.971Z", + "workflowState": "deleted", + "objectNumber": "TestObject" + }, + { + "csid": "49b577d7-44c7-49a8-8790", + "uri": "/collectionobjects/49b577d7-44c7-49a8-8790", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(49b577d7-44c7-49a8-8790)'1'", + "updatedAt": "2016-07-27T04:30:18.964Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "73af460b-7f51-40ad-8b84", + "uri": "/collectionobjects/73af460b-7f51-40ad-8b84", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(73af460b-7f51-40ad-8b84)'1'", + "updatedAt": "2016-07-27T04:30:18.935Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "47d3251d-9019-4e46-be94", + "uri": "/collectionobjects/47d3251d-9019-4e46-be94", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(47d3251d-9019-4e46-be94)'1'", + "updatedAt": "2016-07-27T04:30:18.908Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "0f21a77d-181e-4282-aac0", + "uri": "/collectionobjects/0f21a77d-181e-4282-aac0", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(0f21a77d-181e-4282-aac0)'4'", + "updatedAt": "2016-07-27T04:30:12.914Z", + "workflowState": "deleted", + "objectNumber": "4" + }, + { + "csid": "6d5ed5d9-7d50-4378-89c0", + "uri": "/collectionobjects/6d5ed5d9-7d50-4378-89c0", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(6d5ed5d9-7d50-4378-89c0)'4'", + "updatedAt": "2016-07-27T04:30:11.336Z", + "workflowState": "project", + "objectNumber": "4" + }, + { + "csid": "e19171dc-a9e5-40bc-927d", + "uri": "/collectionobjects/e19171dc-a9e5-40bc-927d", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(e19171dc-a9e5-40bc-927d)'3'", + "updatedAt": "2016-07-27T04:30:09.367Z", + "workflowState": "project", + "objectNumber": "3" + }, + { + "csid": "710d2c75-a9dc-45f6-9cc1", + "uri": "/collectionobjects/710d2c75-a9dc-45f6-9cc1", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(710d2c75-a9dc-45f6-9cc1)'objectNumber2'", + "updatedAt": "2016-07-27T04:30:07.914Z", + "workflowState": "deleted", + "objectNumber": "objectNumber2" + }, + { + "csid": "fc70b360-cfdd-4131-90e1", + "uri": "/collectionobjects/fc70b360-cfdd-4131-90e1", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(fc70b360-cfdd-4131-90e1)'1'", + "updatedAt": "2016-07-27T04:30:05.995Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "c789c0c1-b1b5-4192-b70b", + "uri": "/collectionobjects/c789c0c1-b1b5-4192-b70b", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(c789c0c1-b1b5-4192-b70b)'objectNumber'", + "updatedAt": "2016-07-27T04:30:05.967Z", + "workflowState": "deleted", + "title": "aardvark title", + "objectNumber": "objectNumber" + }, + { + "csid": "d57a545e-fc03-4d76-8206", + "uri": "/collectionobjects/d57a545e-fc03-4d76-8206", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(d57a545e-fc03-4d76-8206)'1'", + "updatedAt": "2016-07-27T04:30:04.915Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "1ee68c99-d76d-4192-b229", + "uri": "/collectionobjects/1ee68c99-d76d-4192-b229", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(1ee68c99-d76d-4192-b229)'1'", + "updatedAt": "2016-07-27T04:30:04.884Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "b9ab1401-3a7c-48e9-a611", + "uri": "/collectionobjects/b9ab1401-3a7c-48e9-a611", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(b9ab1401-3a7c-48e9-a611)'2010.1.9'", + "updatedAt": "2016-07-27T04:29:32.099Z", + "workflowState": "deleted", + "title": "Der Ring des Nibelungen", + "objectNumber": "2010.1.9", + "objectName": "objectName", + "responsibleDepartment": "ethnography1" + }, + { + "csid": "a3068a72-6451-44e1-ada4", + "uri": "/collectionobjects/a3068a72-6451-44e1-ada4", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(a3068a72-6451-44e1-ada4)'2010.1.9'", + "updatedAt": "2016-07-27T04:29:11.224Z", + "workflowState": "deleted", + "objectNumber": "2010.1.9", + "responsibleDepartment": "ethnography1 a" + }, + { + "csid": "46b9c971-59d6-4d81-8dd6", + "uri": "/collectionobjects/46b9c971-59d6-4d81-8dd6", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(46b9c971-59d6-4d81-8dd6)'2010.1.9'", + "updatedAt": "2016-07-27T04:29:11.195Z", + "workflowState": "deleted", + "objectNumber": "2010.1.9", + "responsibleDepartment": "ethnography1 a" + }, + { + "csid": "0625dfcc-919e-4e1e-ab45", + "uri": "/collectionobjects/0625dfcc-919e-4e1e-ab45", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(0625dfcc-919e-4e1e-ab45)'2010.1.9'", + "updatedAt": "2016-07-27T04:29:11.165Z", + "workflowState": "deleted", + "title": "title", + "objectNumber": "2010.1.9", + "responsibleDepartment": "ethnography1" + }, + { + "csid": "4c2104d1-e0c4-436e-847d", + "uri": "/collectionobjects/4c2104d1-e0c4-436e-847d", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(4c2104d1-e0c4-436e-847d)'objectNumber'", + "updatedAt": "2016-07-27T04:28:51.149Z", + "workflowState": "deleted", + "title": "aardvark title", + "objectNumber": "objectNumber" + }, + { + "csid": "0a6e07d7-a264-4dec-8fbf", + "uri": "/collectionobjects/0a6e07d7-a264-4dec-8fbf", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(0a6e07d7-a264-4dec-8fbf)'2010.1.9'", + "updatedAt": "2016-07-27T04:28:51.130Z", + "workflowState": "deleted", + "title": "title", + "objectNumber": "2010.1.9", + "responsibleDepartment": "ethnography1" + }, + { + "csid": "92a05139-73f3-402c-97b8", + "uri": "/collectionobjects/92a05139-73f3-402c-97b8", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(92a05139-73f3-402c-97b8)'32'", + "updatedAt": "2016-07-27T04:28:33.836Z", + "workflowState": "project", + "objectNumber": "32", + "objectName": "Left-handed screwdriver" + }, + { + "csid": "53c451b7-b60c-45ac-818c", + "uri": "/collectionobjects/53c451b7-b60c-45ac-818c", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(53c451b7-b60c-45ac-818c)'1'", + "updatedAt": "2016-07-27T04:27:15.302Z", + "workflowState": "deleted", + "objectNumber": "1" + }, + { + "csid": "297614ff-6c95-4445-a938", + "uri": "/collectionobjects/297614ff-6c95-4445-a938", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(297614ff-6c95-4445-a938)'1'", + "updatedAt": "2016-07-27T04:27:15.281Z", + "workflowState": "deleted", + "objectNumber": "1" + } + ] + } +} \ No newline at end of file diff --git a/services/common/src/test/resources/test-data/xmljson/collectionobject-list.xml b/services/common/src/test/resources/test-data/xmljson/collectionobject-list.xml new file mode 100644 index 000000000..df889b465 --- /dev/null +++ b/services/common/src/test/resources/test-data/xmljson/collectionobject-list.xml @@ -0,0 +1,343 @@ + + 0 + 40 + 40 + 41 + csid|uri|refName|updatedAt|workflowState|title|objectNumber|objectName|responsibleDepartment + + 2ece74b2-2053-458c-a252 + /collectionobjects/2ece74b2-2053-458c-a252 + urn:cspace:core.collectionspace.org:collectionobjects:id(2ece74b2-2053-458c-a252)'2' + 2016-07-27T04:31:38.648Z + deleted + 2 + new OBJNAME + new DEPT + + + b6bc8b80-0a1a-4279-8d4d + /collectionobjects/b6bc8b80-0a1a-4279-8d4d + urn:cspace:core.collectionspace.org:collectionobjects:id(b6bc8b80-0a1a-4279-8d4d)'2' + 2016-07-27T04:31:38.222Z + deleted + 2 + new OBJNAME + new DEPT + + + af661f9f-6f9d-425e-b3d9 + /collectionobjects/af661f9f-6f9d-425e-b3d9 + urn:cspace:core.collectionspace.org:collectionobjects:id(af661f9f-6f9d-425e-b3d9)'1' + 2016-07-27T04:30:43.568Z + deleted + 1 + + + 75539775-b5db-4690-9d01 + /collectionobjects/75539775-b5db-4690-9d01 + urn:cspace:core.collectionspace.org:collectionobjects:id(75539775-b5db-4690-9d01)'1' + 2016-07-27T04:30:41.491Z + deleted + 1 + + + 2d15f7ed-5aff-4222-9d07 + /collectionobjects/2d15f7ed-5aff-4222-9d07 + urn:cspace:core.collectionspace.org:collectionobjects:id(2d15f7ed-5aff-4222-9d07)'1' + 2016-07-27T04:30:39.256Z + deleted + 1 + + + 4cfc4992-f25b-44f2-a083 + /collectionobjects/4cfc4992-f25b-44f2-a083 + urn:cspace:core.collectionspace.org:collectionobjects:id(4cfc4992-f25b-44f2-a083)'1' + 2016-07-27T04:30:37.419Z + deleted + 1 + + + 156d2b43-474d-4780-bd47 + /collectionobjects/156d2b43-474d-4780-bd47 + urn:cspace:core.collectionspace.org:collectionobjects:id(156d2b43-474d-4780-bd47)'1' + 2016-07-27T04:30:31.616Z + deleted + 1 + + + 917c4ef9-3c3f-4d14-af70 + /collectionobjects/917c4ef9-3c3f-4d14-af70 + urn:cspace:core.collectionspace.org:collectionobjects:id(917c4ef9-3c3f-4d14-af70)'1' + 2016-07-27T04:30:31.584Z + deleted + 1 + + + 87c905d5-5501-430f-b5f4 + /collectionobjects/87c905d5-5501-430f-b5f4 + urn:cspace:core.collectionspace.org:collectionobjects:id(87c905d5-5501-430f-b5f4)'1' + 2016-07-27T04:30:31.554Z + deleted + 1 + + + 1a31a1c0-9d88-4cd4-aead + /collectionobjects/1a31a1c0-9d88-4cd4-aead + urn:cspace:core.collectionspace.org:collectionobjects:id(1a31a1c0-9d88-4cd4-aead)'1' + 2016-07-27T04:30:28.838Z + deleted + 1 + + + bc5975b2-1bc2-4b56-b761 + /collectionobjects/bc5975b2-1bc2-4b56-b761 + urn:cspace:core.collectionspace.org:collectionobjects:id(bc5975b2-1bc2-4b56-b761)'1' + 2016-07-27T04:30:28.812Z + deleted + 1 + + + 839e172c-d790-44a8-896a + /collectionobjects/839e172c-d790-44a8-896a + urn:cspace:core.collectionspace.org:collectionobjects:id(839e172c-d790-44a8-896a)'1' + 2016-07-27T04:30:28.773Z + deleted + 1 + + + 3869b0ee-9276-428d-954f + /collectionobjects/3869b0ee-9276-428d-954f + urn:cspace:core.collectionspace.org:collectionobjects:id(3869b0ee-9276-428d-954f)'1' + 2016-07-27T04:30:26.837Z + deleted + 1 + + + 86360825-a2ee-4d7e-b51d + /collectionobjects/86360825-a2ee-4d7e-b51d + urn:cspace:core.collectionspace.org:collectionobjects:id(86360825-a2ee-4d7e-b51d)'1' + 2016-07-27T04:30:26.812Z + deleted + 1 + + + f346e6ee-bae9-4700-9e96 + /collectionobjects/f346e6ee-bae9-4700-9e96 + urn:cspace:core.collectionspace.org:collectionobjects:id(f346e6ee-bae9-4700-9e96)'1' + 2016-07-27T04:30:26.786Z + deleted + 1 + + + f3782e3e-af7b-4f29-89a6 + /collectionobjects/f3782e3e-af7b-4f29-89a6 + urn:cspace:core.collectionspace.org:collectionobjects:id(f3782e3e-af7b-4f29-89a6)'1' + 2016-07-27T04:30:24.335Z + deleted + 1 + + + ae25c04a-f044-45cd-96ff + /collectionobjects/ae25c04a-f044-45cd-96ff + urn:cspace:core.collectionspace.org:collectionobjects:id(ae25c04a-f044-45cd-96ff)'1' + 2016-07-27T04:30:24.310Z + deleted + 1 + + + 873b5a5b-6753-4eea-b0c3 + /collectionobjects/873b5a5b-6753-4eea-b0c3 + urn:cspace:core.collectionspace.org:collectionobjects:id(873b5a5b-6753-4eea-b0c3)'1' + 2016-07-27T04:30:24.285Z + deleted + 1 + + + dacd5398-708a-4580-a994 + /collectionobjects/dacd5398-708a-4580-a994 + urn:cspace:core.collectionspace.org:collectionobjects:id(dacd5398-708a-4580-a994)'TestObject' + 2016-07-27T04:30:21.092Z + deleted + TestObject + + + 0a07c7a2-5fd6-43e7-ac64 + /collectionobjects/0a07c7a2-5fd6-43e7-ac64 + urn:cspace:core.collectionspace.org:collectionobjects:id(0a07c7a2-5fd6-43e7-ac64)'TestObject' + 2016-07-27T04:30:19.971Z + deleted + TestObject + + + 49b577d7-44c7-49a8-8790 + /collectionobjects/49b577d7-44c7-49a8-8790 + urn:cspace:core.collectionspace.org:collectionobjects:id(49b577d7-44c7-49a8-8790)'1' + 2016-07-27T04:30:18.964Z + deleted + 1 + + + 73af460b-7f51-40ad-8b84 + /collectionobjects/73af460b-7f51-40ad-8b84 + urn:cspace:core.collectionspace.org:collectionobjects:id(73af460b-7f51-40ad-8b84)'1' + 2016-07-27T04:30:18.935Z + deleted + 1 + + + 47d3251d-9019-4e46-be94 + /collectionobjects/47d3251d-9019-4e46-be94 + urn:cspace:core.collectionspace.org:collectionobjects:id(47d3251d-9019-4e46-be94)'1' + 2016-07-27T04:30:18.908Z + deleted + 1 + + + 0f21a77d-181e-4282-aac0 + /collectionobjects/0f21a77d-181e-4282-aac0 + urn:cspace:core.collectionspace.org:collectionobjects:id(0f21a77d-181e-4282-aac0)'4' + 2016-07-27T04:30:12.914Z + deleted + 4 + + + 6d5ed5d9-7d50-4378-89c0 + /collectionobjects/6d5ed5d9-7d50-4378-89c0 + urn:cspace:core.collectionspace.org:collectionobjects:id(6d5ed5d9-7d50-4378-89c0)'4' + 2016-07-27T04:30:11.336Z + project + 4 + + + e19171dc-a9e5-40bc-927d + /collectionobjects/e19171dc-a9e5-40bc-927d + urn:cspace:core.collectionspace.org:collectionobjects:id(e19171dc-a9e5-40bc-927d)'3' + 2016-07-27T04:30:09.367Z + project + 3 + + + 710d2c75-a9dc-45f6-9cc1 + /collectionobjects/710d2c75-a9dc-45f6-9cc1 + urn:cspace:core.collectionspace.org:collectionobjects:id(710d2c75-a9dc-45f6-9cc1)'objectNumber2' + 2016-07-27T04:30:07.914Z + deleted + objectNumber2 + + + fc70b360-cfdd-4131-90e1 + /collectionobjects/fc70b360-cfdd-4131-90e1 + urn:cspace:core.collectionspace.org:collectionobjects:id(fc70b360-cfdd-4131-90e1)'1' + 2016-07-27T04:30:05.995Z + deleted + 1 + + + c789c0c1-b1b5-4192-b70b + /collectionobjects/c789c0c1-b1b5-4192-b70b + urn:cspace:core.collectionspace.org:collectionobjects:id(c789c0c1-b1b5-4192-b70b)'objectNumber' + 2016-07-27T04:30:05.967Z + deleted + aardvark title + objectNumber + + + d57a545e-fc03-4d76-8206 + /collectionobjects/d57a545e-fc03-4d76-8206 + urn:cspace:core.collectionspace.org:collectionobjects:id(d57a545e-fc03-4d76-8206)'1' + 2016-07-27T04:30:04.915Z + deleted + 1 + + + 1ee68c99-d76d-4192-b229 + /collectionobjects/1ee68c99-d76d-4192-b229 + urn:cspace:core.collectionspace.org:collectionobjects:id(1ee68c99-d76d-4192-b229)'1' + 2016-07-27T04:30:04.884Z + deleted + 1 + + + b9ab1401-3a7c-48e9-a611 + /collectionobjects/b9ab1401-3a7c-48e9-a611 + urn:cspace:core.collectionspace.org:collectionobjects:id(b9ab1401-3a7c-48e9-a611)'2010.1.9' + 2016-07-27T04:29:32.099Z + deleted + Der Ring des Nibelungen + 2010.1.9 + objectName + ethnography1 + + + a3068a72-6451-44e1-ada4 + /collectionobjects/a3068a72-6451-44e1-ada4 + urn:cspace:core.collectionspace.org:collectionobjects:id(a3068a72-6451-44e1-ada4)'2010.1.9' + 2016-07-27T04:29:11.224Z + deleted + 2010.1.9 + ethnography1 a + + + 46b9c971-59d6-4d81-8dd6 + /collectionobjects/46b9c971-59d6-4d81-8dd6 + urn:cspace:core.collectionspace.org:collectionobjects:id(46b9c971-59d6-4d81-8dd6)'2010.1.9' + 2016-07-27T04:29:11.195Z + deleted + 2010.1.9 + ethnography1 a + + + 0625dfcc-919e-4e1e-ab45 + /collectionobjects/0625dfcc-919e-4e1e-ab45 + urn:cspace:core.collectionspace.org:collectionobjects:id(0625dfcc-919e-4e1e-ab45)'2010.1.9' + 2016-07-27T04:29:11.165Z + deleted + title + 2010.1.9 + ethnography1 + + + 4c2104d1-e0c4-436e-847d + /collectionobjects/4c2104d1-e0c4-436e-847d + urn:cspace:core.collectionspace.org:collectionobjects:id(4c2104d1-e0c4-436e-847d)'objectNumber' + 2016-07-27T04:28:51.149Z + deleted + aardvark title + objectNumber + + + 0a6e07d7-a264-4dec-8fbf + /collectionobjects/0a6e07d7-a264-4dec-8fbf + urn:cspace:core.collectionspace.org:collectionobjects:id(0a6e07d7-a264-4dec-8fbf)'2010.1.9' + 2016-07-27T04:28:51.130Z + deleted + title + 2010.1.9 + ethnography1 + + + 92a05139-73f3-402c-97b8 + /collectionobjects/92a05139-73f3-402c-97b8 + urn:cspace:core.collectionspace.org:collectionobjects:id(92a05139-73f3-402c-97b8)'32' + 2016-07-27T04:28:33.836Z + project + 32 + Left-handed screwdriver + + + 53c451b7-b60c-45ac-818c + /collectionobjects/53c451b7-b60c-45ac-818c + urn:cspace:core.collectionspace.org:collectionobjects:id(53c451b7-b60c-45ac-818c)'1' + 2016-07-27T04:27:15.302Z + deleted + 1 + + + 297614ff-6c95-4445-a938 + /collectionobjects/297614ff-6c95-4445-a938 + urn:cspace:core.collectionspace.org:collectionobjects:id(297614ff-6c95-4445-a938)'1' + 2016-07-27T04:27:15.281Z + deleted + 1 + + diff --git a/services/common/src/test/resources/test-data/xmljson/collectionobject.json b/services/common/src/test/resources/test-data/xmljson/collectionobject.json new file mode 100644 index 000000000..26dd95bc3 --- /dev/null +++ b/services/common/src/test/resources/test-data/xmljson/collectionobject.json @@ -0,0 +1,43 @@ +{ + "document": { + "@name": "collectionobjects", + "ns2:collectionspace_core": { + "@xmlns:ns2": "http://collectionspace.org/collectionspace_core/", + "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", + "tenantId": "1", + "updatedAt": "2016-07-27T04:31:38.648Z", + "workflowState": "deleted", + "createdBy": "admin@core.collectionspace.org", + "createdAt": "2016-07-27T04:31:38.290Z", + "refName": "urn:cspace:core.collectionspace.org:collectionobjects:id(2ece74b2-2053-458c-a252)'2'", + "uri": "/collectionobjects/2ece74b2-2053-458c-a252", + "updatedBy": "admin@core.collectionspace.org" + }, + "ns2:collectionobjects_common": { + "@xmlns:ns2": "http://collectionspace.org/services/collectionobject", + "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", + "responsibleDepartments": { + "responsibleDepartment": "new DEPT" + }, + "objectNameList": { + "objectNameGroup": { + "objectName": "new OBJNAME" + } + }, + "comments": { + "comment": "new COMMENTS" + }, + "objectNumber": "2", + "distinguishingFeatures": "new DISTFEATURES" + }, + "ns2:account_permission": { + "@xmlns:ns2": "http://collectionspace.org/services/authorization", + "account": { + "accountId": "cfc9f870-9c90-4cb7-97ca-96cbd086bbd4", + "screenName": "Administrator", + "userId": "admin@core.collectionspace.org", + "tenantId": "1" + } + } + } +} \ No newline at end of file diff --git a/services/common/src/test/resources/test-data/xmljson/collectionobject.xml b/services/common/src/test/resources/test-data/xmljson/collectionobject.xml new file mode 100644 index 000000000..56ffcd8ad --- /dev/null +++ b/services/common/src/test/resources/test-data/xmljson/collectionobject.xml @@ -0,0 +1,146 @@ + + + 1 + 2016-07-27T04:31:38.648Z + deleted + admin@core.collectionspace.org + 2016-07-27T04:31:38.290Z + urn:cspace:core.collectionspace.org:collectionobjects:id(2ece74b2-2053-458c-a252)'2' + /collectionobjects/2ece74b2-2053-458c-a252 + admin@core.collectionspace.org + + + + + + + + + + new DEPT + + + + + + + + + + + + + + + + + + + + new OBJNAME + + + + + + + + + + + + + new COMMENTS + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + new DISTFEATURES + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cfc9f870-9c90-4cb7-97ca-96cbd086bbd4 + Administrator + admin@core.collectionspace.org + 1 + + + diff --git a/services/common/src/test/resources/test-data/xmljson/permissions.json b/services/common/src/test/resources/test-data/xmljson/permissions.json new file mode 100644 index 000000000..ee26eaffa --- /dev/null +++ b/services/common/src/test/resources/test-data/xmljson/permissions.json @@ -0,0 +1,127 @@ +{ + "ns2:permissions_list": { + "@xmlns:ns2": "http://collectionspace.org/services/authorization/perms", + "permission": [ + { + "@csid": "15-idgenerators-CRUDL", + "description": "Generated admin permission.", + "resourceName": "idgenerators", + "actionGroup": "CRUDL", + "action": [ + { + "@Hjid": "1", + "name": "CREATE", + "objectIdentity": "1159431374", + "objectIdentityResource": "15:idgenerators#create" + }, + { + "@Hjid": "2", + "name": "READ", + "objectIdentity": "-615118360", + "objectIdentityResource": "15:idgenerators#read" + }, + { + "@Hjid": "3", + "name": "UPDATE", + "objectIdentity": "1672879259", + "objectIdentityResource": "15:idgenerators#update" + }, + { + "@Hjid": "4", + "name": "DELETE", + "objectIdentity": "1176267133", + "objectIdentityResource": "15:idgenerators#delete" + }, + { + "@Hjid": "5", + "name": "SEARCH", + "objectIdentity": "1605388666", + "objectIdentityResource": "15:idgenerators#search" + } + ], + "effect": "PERMIT", + "createdAt": "2012-06-11T23:19:09.066" + }, + { + "@csid": "15-id-CRUDL", + "description": "Generated admin permission.", + "resourceName": "id", + "actionGroup": "CRUDL", + "action": [ + { + "@Hjid": "6", + "name": "CREATE", + "objectIdentity": "-203156594", + "objectIdentityResource": "15:id#create" + }, + { + "@Hjid": "7", + "name": "READ", + "objectIdentity": "1551059112", + "objectIdentityResource": "15:id#read" + }, + { + "@Hjid": "8", + "name": "UPDATE", + "objectIdentity": "310291291", + "objectIdentityResource": "15:id#update" + }, + { + "@Hjid": "9", + "name": "DELETE", + "objectIdentity": "-186320835", + "objectIdentityResource": "15:id#delete" + }, + { + "@Hjid": "10", + "name": "SEARCH", + "objectIdentity": "242800698", + "objectIdentityResource": "15:id#search" + } + ], + "effect": "PERMIT", + "createdAt": "2012-06-11T23:19:09.068" + }, + { + "@csid": "15-servicegroups-CRUDL", + "description": "Generated admin permission.", + "resourceName": "servicegroups", + "actionGroup": "CRUDL", + "action": [ + { + "@Hjid": "11", + "name": "CREATE", + "objectIdentity": "1035471244", + "objectIdentityResource": "15:servicegroups#create" + }, + { + "@Hjid": "12", + "name": "READ", + "objectIdentity": "1042851366", + "objectIdentityResource": "15:servicegroups#read" + }, + { + "@Hjid": "13", + "name": "UPDATE", + "objectIdentity": "1548919129", + "objectIdentityResource": "15:servicegroups#update" + }, + { + "@Hjid": "14", + "name": "DELETE", + "objectIdentity": "1052307003", + "objectIdentityResource": "15:servicegroups#delete" + }, + { + "@Hjid": "15", + "name": "SEARCH", + "objectIdentity": "1481428536", + "objectIdentityResource": "15:servicegroups#search" + } + ], + "effect": "PERMIT", + "createdAt": "2012-06-11T23:19:09.068" + } + ] + } +} \ No newline at end of file diff --git a/services/common/src/test/resources/test-data/xmljson/permissions.xml b/services/common/src/test/resources/test-data/xmljson/permissions.xml new file mode 100644 index 000000000..a87719a0d --- /dev/null +++ b/services/common/src/test/resources/test-data/xmljson/permissions.xml @@ -0,0 +1,98 @@ + + + Generated admin permission. + idgenerators + CRUDL + + CREATE + 1159431374 + 15:idgenerators#create + + + READ + -615118360 + 15:idgenerators#read + + + UPDATE + 1672879259 + 15:idgenerators#update + + + DELETE + 1176267133 + 15:idgenerators#delete + + + SEARCH + 1605388666 + 15:idgenerators#search + + PERMIT + 2012-06-11T23:19:09.066 + + + Generated admin permission. + id + CRUDL + + CREATE + -203156594 + 15:id#create + + + READ + 1551059112 + 15:id#read + + + UPDATE + 310291291 + 15:id#update + + + DELETE + -186320835 + 15:id#delete + + + SEARCH + 242800698 + 15:id#search + + PERMIT + 2012-06-11T23:19:09.068 + + + Generated admin permission. + servicegroups + CRUDL + + CREATE + 1035471244 + 15:servicegroups#create + + + READ + 1042851366 + 15:servicegroups#read + + + UPDATE + 1548919129 + 15:servicegroups#update + + + DELETE + 1052307003 + 15:servicegroups#delete + + + SEARCH + 1481428536 + 15:servicegroups#search + + PERMIT + 2012-06-11T23:19:09.068 + + diff --git a/services/common/src/test/resources/test-data/xmljson/record.json b/services/common/src/test/resources/test-data/xmljson/record.json index 0d7273271..a008f4ddb 100644 --- a/services/common/src/test/resources/test-data/xmljson/record.json +++ b/services/common/src/test/resources/test-data/xmljson/record.json @@ -1,3 +1,58 @@ -{ - "foo": "bar" -} +{ + "document": { + "@name": "examples", + "ns:collectionspace_core": { + "@xmlns:ns": "http://collectionspace.org/collectionspace_core/", + "tenantId": "123", + "workflowState": "project", + "createdAt": "2016-07-27T04:31:38.290Z", + "createdBy": "someone@collectionspace.org", + "updatedAt": "2016-07-27T04:31:38.648Z", + "updatedBy": "user@collectionspace.org", + "uri": "/examples/2ece74b2-2053-458c-a252" + }, + "ns:examples_common": { + "@xmlns:ns": "http://collectionspace.org/services/example", + "scalar": "This is a scalar field value", + "struct": { + "field1": "A value in a structured field", + "field2": "Another structured field value", + "nestedstruct": { + "id": "123abc", + "description": "A nested structured field value" + } + }, + "repeat": { + "item": [ + "repeating scalar field value 1", + "repeating scalar field value 2", + "repeating scalar field value 3", + "repeating scalar field value 4" + ] + }, + "repeatstruct": { + "innerstruct": [ + { + "name": "Big Bird", + "color": "yellow" + }, + { + "name": "Cookie Monster", + "color": "blue" + }, + { + "name": "Elmo", + "age": "3", + "nestedrepeat": { + "nrval": [ + "a", + "b", + "c" + ] + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/services/common/src/test/resources/test-data/xmljson/record.xml b/services/common/src/test/resources/test-data/xmljson/record.xml index 58ca7f67e..ff18c8aaf 100644 --- a/services/common/src/test/resources/test-data/xmljson/record.xml +++ b/services/common/src/test/resources/test-data/xmljson/record.xml @@ -24,6 +24,7 @@ repeating scalar field value 3 repeating scalar field value 4 + Big Bird @@ -43,5 +44,8 @@ + + + diff --git a/services/common/src/test/resources/test-data/xmljson/vocabulary-items.json b/services/common/src/test/resources/test-data/xmljson/vocabulary-items.json new file mode 100644 index 000000000..fb57f6add --- /dev/null +++ b/services/common/src/test/resources/test-data/xmljson/vocabulary-items.json @@ -0,0 +1,62 @@ +{ + "ns2:abstract-common-list": { + "@xmlns:ns2": "http://collectionspace.org/services/jaxb", + "pageNum": "0", + "pageSize": "5", + "itemsInPage": "5", + "totalItems": "32", + "fieldsReturned": "csid|uri|refName|updatedAt|workflowState|order|termStatus|displayName|shortIdentifier", + "list-item": [ + { + "csid": "45377b7e-8071-4f37-8cae", + "uri": "/vocabularies/f5992afc-d5e6-49c2-99d4/items/45377b7e-8071-4f37-8cae", + "refName": "urn:cspace:pahma.cspace.berkeley.edu:vocabularies:name(languages):item:name(grc)'Ancient Greek'", + "updatedAt": "2014-04-24T16:33:14Z", + "workflowState": "project", + "termStatus": "active", + "displayName": "Ancient Greek", + "shortIdentifier": "grc" + }, + { + "csid": "9fe02421-612d-4de3-a917", + "uri": "/vocabularies/f5992afc-d5e6-49c2-99d4/items/9fe02421-612d-4de3-a917", + "refName": "urn:cspace:pahma.cspace.berkeley.edu:vocabularies:name(languages):item:name(ara)'Arabic'", + "updatedAt": "2014-04-24T16:33:11Z", + "workflowState": "project", + "termStatus": "active", + "displayName": "Arabic", + "shortIdentifier": "ara" + }, + { + "csid": "7ee9de49-fe9b-462c-9332", + "uri": "/vocabularies/f5992afc-d5e6-49c2-99d4/items/7ee9de49-fe9b-462c-9332", + "refName": "urn:cspace:pahma.cspace.berkeley.edu:vocabularies:name(languages):item:name(hye)'Armenian'", + "updatedAt": "2014-04-24T16:33:12Z", + "workflowState": "project", + "termStatus": "active", + "displayName": "Armenian", + "shortIdentifier": "hye" + }, + { + "csid": "a1f8c72a-0995-41c7-a9fd", + "uri": "/vocabularies/f5992afc-d5e6-49c2-99d4/items/a1f8c72a-0995-41c7-a9fd", + "refName": "urn:cspace:pahma.cspace.berkeley.edu:vocabularies:name(languages):item:name(zho)'Chinese'", + "updatedAt": "2014-04-24T16:33:12Z", + "workflowState": "project", + "termStatus": "active", + "displayName": "Chinese", + "shortIdentifier": "zho" + }, + { + "csid": "b468854e-1978-44e8-8e1d", + "uri": "/vocabularies/f5992afc-d5e6-49c2-99d4/items/b468854e-1978-44e8-8e1d", + "refName": "urn:cspace:pahma.cspace.berkeley.edu:vocabularies:name(languages):item:name(Coptic1398357194892)'Coptic'", + "updatedAt": "2014-04-24T16:33:14Z", + "workflowState": "project", + "termStatus": "active", + "displayName": "Coptic", + "shortIdentifier": "Coptic1398357194892" + } + ] + } +} \ No newline at end of file diff --git a/services/common/src/test/resources/test-data/xmljson/vocabulary-items.xml b/services/common/src/test/resources/test-data/xmljson/vocabulary-items.xml new file mode 100644 index 000000000..8b5265644 --- /dev/null +++ b/services/common/src/test/resources/test-data/xmljson/vocabulary-items.xml @@ -0,0 +1,57 @@ + + 0 + 5 + 5 + 32 + csid|uri|refName|updatedAt|workflowState|order|termStatus|displayName|shortIdentifier + + 45377b7e-8071-4f37-8cae + /vocabularies/f5992afc-d5e6-49c2-99d4/items/45377b7e-8071-4f37-8cae + urn:cspace:pahma.cspace.berkeley.edu:vocabularies:name(languages):item:name(grc)'Ancient Greek' + 2014-04-24T16:33:14Z + project + active + Ancient Greek + grc + + + 9fe02421-612d-4de3-a917 + /vocabularies/f5992afc-d5e6-49c2-99d4/items/9fe02421-612d-4de3-a917 + urn:cspace:pahma.cspace.berkeley.edu:vocabularies:name(languages):item:name(ara)'Arabic' + 2014-04-24T16:33:11Z + project + active + Arabic + ara + + + 7ee9de49-fe9b-462c-9332 + /vocabularies/f5992afc-d5e6-49c2-99d4/items/7ee9de49-fe9b-462c-9332 + urn:cspace:pahma.cspace.berkeley.edu:vocabularies:name(languages):item:name(hye)'Armenian' + 2014-04-24T16:33:12Z + project + active + Armenian + hye + + + a1f8c72a-0995-41c7-a9fd + /vocabularies/f5992afc-d5e6-49c2-99d4/items/a1f8c72a-0995-41c7-a9fd + urn:cspace:pahma.cspace.berkeley.edu:vocabularies:name(languages):item:name(zho)'Chinese' + 2014-04-24T16:33:12Z + project + active + Chinese + zho + + + b468854e-1978-44e8-8e1d + /vocabularies/f5992afc-d5e6-49c2-99d4/items/b468854e-1978-44e8-8e1d + urn:cspace:pahma.cspace.berkeley.edu:vocabularies:name(languages):item:name(Coptic1398357194892)'Coptic' + 2014-04-24T16:33:14Z + project + active + Coptic + Coptic1398357194892 + + -- 2.47.3