From: Robert Varga Date: Thu, 4 Dec 2014 16:22:16 +0000 (+0100) Subject: BUG-2459: Fix netconf-monitoring not reusing JAXB context X-Git-Tag: release/lithium~799^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=50b0ecab6c88cc2de12dc7d111ad80a198989543 BUG-2459: Fix netconf-monitoring not reusing JAXB context JAXBContext can be freely reused, so cache it, as it has significant footprint in testing tool. Change-Id: If2f53b9dfd4a1d30390580fd800aa2f5eb4e2b72 Signed-off-by: Robert Varga --- diff --git a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/JaxBSerializer.java b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/JaxBSerializer.java index 45f02af789..e80e3f82b1 100644 --- a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/JaxBSerializer.java +++ b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/JaxBSerializer.java @@ -16,12 +16,20 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; public class JaxBSerializer { + private static final JAXBContext JAXB_CONTEXT; + + static { + try { + JAXB_CONTEXT = JAXBContext.newInstance(NetconfState.class); + } catch (JAXBException e) { + throw new ExceptionInInitializerError(e); + } + } public Element toXml(final NetconfState monitoringModel) { final DOMResult res; try { - final JAXBContext jaxbContext = JAXBContext.newInstance(NetconfState.class); - final Marshaller marshaller = jaxbContext.createMarshaller(); + final Marshaller marshaller = JAXB_CONTEXT.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);