46 lines
1.2 KiB
Java
46 lines
1.2 KiB
Java
import jakarta.xml.bind.annotation.XmlRootElement;
|
|
|
|
import jakarta.xml.bind.JAXBContext;
|
|
import jakarta.xml.bind.JAXBException;
|
|
import jakarta.xml.bind.Marshaller;
|
|
import jakarta.xml.bind.Unmarshaller;
|
|
|
|
import java.io.InputStream;
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.ByteArrayInputStream;
|
|
|
|
@XmlRootElement(namespace = "org.fedoraproject.jaxb.test.smoke")
|
|
class Data
|
|
{
|
|
public String text = "default text";
|
|
public int number = 123;
|
|
}
|
|
|
|
public class Smoke
|
|
{
|
|
public static void main(String[] args) throws Exception
|
|
{
|
|
JAXBContext context = JAXBContext.newInstance(Data.class);
|
|
Marshaller m = context.createMarshaller();
|
|
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
|
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
|
m.marshal(new Data(), baos);
|
|
|
|
Unmarshaller um = context.createUnmarshaller();
|
|
|
|
Data data;
|
|
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
|
|
data = Data.class.cast(um.unmarshal(is));
|
|
}
|
|
|
|
if (!data.text.equals("default text"))
|
|
{
|
|
throw new RuntimeException("Expected \"default text\", found \"" + data.text + "\"");
|
|
}
|
|
if (data.number != 123)
|
|
{
|
|
throw new RuntimeException("Expected 123, found " + String.valueOf(data.number));
|
|
}
|
|
}
|
|
}
|