From 2007e86bded6ae21657aa5364b54a10771b31f4f Mon Sep 17 00:00:00 2001 From: Sonia Zorba <sonia.zorba@inaf.it> Date: Wed, 3 Feb 2021 16:09:23 +0100 Subject: [PATCH] Allowed unknown JSON properties in JobSummary --- src/main/java/net/ivoa/xml/uws/v1/JobSummary.java | 3 ++- src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/ivoa/xml/uws/v1/JobSummary.java b/src/main/java/net/ivoa/xml/uws/v1/JobSummary.java index b755062..1d7d382 100644 --- a/src/main/java/net/ivoa/xml/uws/v1/JobSummary.java +++ b/src/main/java/net/ivoa/xml/uws/v1/JobSummary.java @@ -8,6 +8,7 @@ package net.ivoa.xml.uws.v1; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import it.inaf.oats.vospace.datamodel.JobInfoDeserializer; @@ -20,7 +21,6 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAnyElement; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlSchemaType; @@ -98,6 +98,7 @@ import org.w3c.dom.Element; // <edit> @XmlSeeAlso({Transfer.class}) // Necessary for setting a Transfer inside the jobInfo property. @XmlRootElement(name = "job") +@JsonIgnoreProperties(ignoreUnknown = true) // </edit> public class JobSummary { diff --git a/src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java b/src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java index 713181d..6e31e1d 100644 --- a/src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java +++ b/src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java @@ -51,6 +51,15 @@ public class JobSummaryTest { verifyJobsAreEquals(deserialized); } + + /** + * Uses JSON extracted from real job executed by transfer service. Contains extra field jobType. + */ + @Test + public void testDeserializeTransferServiceResponse() throws Exception { + String response = "{\"jobId\": \"917c784f814c4a1a91a9d5d1af07dbe9\", \"ownerId\": \"2386\", \"jobType\": \"pullToVoSpace\", \"phase\": \"PENDING\", \"startTime\": null, \"endTime\": null, \"creationTime\": \"2021-02-03T15:05:57.233602\", \"jobInfo\": {\"transfer\": {\"view\": null, \"target\": \"vos://example.com!vospace/szorba/aaa\", \"version\": null, \"direction\": \"pullToVoSpace\", \"keepBytes\": null, \"protocols\": [{\"uri\": \"ia2:async-recall\", \"param\": [{\"uri\": \"ia2:node-type\", \"value\": \"single\"}], \"endpoint\": null}]}}, \"results\": null}"; + MAPPER.readValue(response, JobSummary.class); + } private JobSummary getJobSummary() { -- GitLab