diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml index 9214461..b3c9829 100644 --- a/dependency-reduced-pom.xml +++ b/dependency-reduced-pom.xml @@ -7,7 +7,7 @@ pom.xml 4.0.0 - com.samagra + com.uci message-rosa message-rosa 0.0.1-SNAPSHOT diff --git a/src/main/java/messagerosa/core/model/XMessage.java b/src/main/java/messagerosa/core/model/XMessage.java index 518b7de..284d63e 100644 --- a/src/main/java/messagerosa/core/model/XMessage.java +++ b/src/main/java/messagerosa/core/model/XMessage.java @@ -86,13 +86,24 @@ public enum MessageType { private XMessageThread thread; private XMessagePayload payload; + private static JAXBContext context; + private static Marshaller marshaller; + + static { + try { + context = JAXBContext.newInstance(XMessage.class); + marshaller = context.createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + } catch (JAXBException e) { + e.printStackTrace(); + } + } + + public String toXML() throws JAXBException { - JAXBContext context = JAXBContext.newInstance(XMessage.class); - Marshaller marshaller = context.createMarshaller(); - marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); - StringWriter sw = new StringWriter(); - marshaller.marshal(this, sw); - return sw.toString(); + StringWriter stringWriter = new StringWriter(); + marshaller.marshal(this, stringWriter); + return stringWriter.toString(); } public void completeTransform() { diff --git a/src/main/java/messagerosa/xml/XMessageParser.java b/src/main/java/messagerosa/xml/XMessageParser.java index 4962105..20bbf01 100644 --- a/src/main/java/messagerosa/xml/XMessageParser.java +++ b/src/main/java/messagerosa/xml/XMessageParser.java @@ -19,9 +19,20 @@ */ public class XMessageParser { + + public static JAXBContext context; + public static Unmarshaller jaxbUnmarshaller; + + static { + try { + context = JAXBContext.newInstance(XMessage.class); + jaxbUnmarshaller = context.createUnmarshaller(); + } catch (JAXBException e) { + e.printStackTrace(); + } + } + public static XMessage parse(InputStream stream) throws JAXBException { - JAXBContext context = JAXBContext.newInstance(XMessage.class); - Unmarshaller jaxbUnmarshaller = context.createUnmarshaller(); return (XMessage) jaxbUnmarshaller.unmarshal(stream); } }