From ef9a86858a5e05b4dd9bff3992c477f49b0b20f2 Mon Sep 17 00:00:00 2001 From: Christof Rabensteiner Date: Tue, 16 Apr 2019 13:29:48 +0200 Subject: Add Getter for Repository + Refactor Marshalling - mv MyMarshaller Marshaller - Remove jaxbcontext bean - Move Marshaller config to MarshallerConfig class --- src/main/java/at/gv/egiz/moazs/Marshaller.java | 33 ++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/main/java/at/gv/egiz/moazs/Marshaller.java (limited to 'src/main/java/at/gv/egiz/moazs/Marshaller.java') diff --git a/src/main/java/at/gv/egiz/moazs/Marshaller.java b/src/main/java/at/gv/egiz/moazs/Marshaller.java new file mode 100644 index 0000000..c126f03 --- /dev/null +++ b/src/main/java/at/gv/egiz/moazs/Marshaller.java @@ -0,0 +1,33 @@ +package at.gv.egiz.moazs; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.oxm.jaxb.Jaxb2Marshaller; +import org.springframework.stereotype.Component; + +import javax.xml.transform.Result; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; +import java.io.InputStream; +import java.io.StringWriter; + +/** + * @author xerx593 + * Source: https://stackoverflow.com/questions/44676532/how-to-use-spring-to-marshal-and-unmarshal-xml + */ +@Component +public class Marshaller { + + @Autowired + private Jaxb2Marshaller marshaller; + + public String marshallXml(final T obj) { + StringWriter sw = new StringWriter(); + Result result = new StreamResult(sw); + marshaller.marshal(obj, result); + return sw.toString(); + } + + public T unmarshallXml(final InputStream xml) { + return (T) marshaller.unmarshal(new StreamSource(xml)); + } +} -- cgit v1.2.3