diff --git a/src/main/java/net/ivoa/xml/uws/v1/package-info.java b/src/main/java/net/ivoa/xml/uws/v1/package-info.java index 9146854a8eaeca3edca3e0c1b0c221469d1e2acc..ed3178b78545a0f4da00b5d9db6790bead166ddc 100644 --- a/src/main/java/net/ivoa/xml/uws/v1/package-info.java +++ b/src/main/java/net/ivoa/xml/uws/v1/package-info.java @@ -19,6 +19,10 @@ @javax.xml.bind.annotation.XmlNs( namespaceURI = "http://www.w3.org/2001/XMLSchema-instance", prefix = "xsi" + ), + @javax.xml.bind.annotation.XmlNs( + namespaceURI = "http://www.w3.org/1999/xlink", + prefix = "xlink" ) } // </edit> diff --git a/src/main/java/net/ivoa/xml/vospace/v2/package-info.java b/src/main/java/net/ivoa/xml/vospace/v2/package-info.java index 65f6dfb6a2849d52175d76eacc2dbe47d4a489a2..16b0c732bd0abd44485c3cbb7def1567e59f6c82 100644 --- a/src/main/java/net/ivoa/xml/vospace/v2/package-info.java +++ b/src/main/java/net/ivoa/xml/vospace/v2/package-info.java @@ -18,6 +18,10 @@ @javax.xml.bind.annotation.XmlNs( namespaceURI = "http://www.w3.org/2001/XMLSchema-instance", prefix = "xsi" + ), + @javax.xml.bind.annotation.XmlNs( + namespaceURI = "http://www.w3.org/1999/xlink", + prefix = "xlink" ) } // </edit> 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 56f351aea1844159d156b3a9d960f55320c23fd9..713181de6dd54383f2945e8214d922dad4f5e4ff 100644 --- a/src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java +++ b/src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java @@ -67,7 +67,7 @@ public class JobSummaryTest { transfer.setDirection("pullFromVoSpace"); Protocol protocol1 = new Protocol(); protocol1.setUri("ivo://ivoa.net/vospace/core#httpget"); - Protocol protocol2= new Protocol(); + Protocol protocol2 = new Protocol(); protocol2.setUri("ivo://ivoa.net/vospace/core#httpsget"); transfer.getProtocols().add(protocol1); transfer.getProtocols().add(protocol2); diff --git a/src/test/java/net/ivoa/xml/uws/v1/ShortJobDescriptionTest.java b/src/test/java/net/ivoa/xml/uws/v1/ShortJobDescriptionTest.java new file mode 100644 index 0000000000000000000000000000000000000000..8630dadb46c886371ab3f76140e20cceb4918875 --- /dev/null +++ b/src/test/java/net/ivoa/xml/uws/v1/ShortJobDescriptionTest.java @@ -0,0 +1,68 @@ +package net.ivoa.xml.uws.v1; + +import java.io.StringReader; +import java.io.StringWriter; +import javax.xml.bind.JAXB; +import javax.xml.datatype.DatatypeConfigurationException; +import javax.xml.datatype.DatatypeFactory; +import javax.xml.datatype.XMLGregorianCalendar; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Test; + +public class ShortJobDescriptionTest { + + @Test + public void testXmlSerialization() throws Exception { + + ShortJobDescription jobDesc = getShortJobDescription(); + + String xml; + try ( StringWriter sw = new StringWriter()) { + JAXB.marshal(jobDesc, sw); + xml = sw.toString(); + System.out.println(xml); + } + + assertTrue(xml.contains("xlink:type=\"type\"")); + + try ( StringReader sr = new StringReader(xml)) { + ShortJobDescription deserialized = JAXB.unmarshal(sr, ShortJobDescription.class); + verifyJobsAreEquals(deserialized); + } + } + + private ShortJobDescription getShortJobDescription() { + + ShortJobDescription jobDesc = new ShortJobDescription(); + jobDesc.setCreationTime(getXmlDate("2015-05-26T11:06:45.713")); + jobDesc.setId("job_id"); + jobDesc.setPhase(ExecutionPhase.EXECUTING); + jobDesc.setHref("href"); + jobDesc.setOwnerId("owner_id"); + jobDesc.setRunId("run_id"); + jobDesc.setType("type"); + + return jobDesc; + } + + private XMLGregorianCalendar getXmlDate(String dateTimeString) { + try { + return DatatypeFactory.newInstance().newXMLGregorianCalendar(dateTimeString); + } catch (DatatypeConfigurationException ex) { + throw new RuntimeException(ex); + } + } + + private void verifyJobsAreEquals(ShortJobDescription deserialized) { + + assertEquals("href", deserialized.getHref()); + assertEquals("job_id", deserialized.getId()); + assertEquals("owner_id", deserialized.getOwnerId()); + assertEquals("run_id", deserialized.getRunId()); + assertEquals("type", deserialized.getType()); + assertEquals("href", deserialized.getHref()); + assertEquals("2015-05-26T11:06:45.713", deserialized.getCreationTime().toString()); + assertEquals(ExecutionPhase.EXECUTING, deserialized.getPhase()); + } +}