X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-netty-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fnettyutil%2Fhandler%2FNetconfEXIToMessageDecoder.java;h=77d33e18313d84b96202a9105453e7d06720ca3a;hp=57134af3c74f213884ca701109b8454d0d1b32df;hb=940603a5319c9a0eff30e92f2dc83817974d7f78;hpb=2d586172a138afacb388ca2b35b74160ba26b0ba diff --git a/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/NetconfEXIToMessageDecoder.java b/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/NetconfEXIToMessageDecoder.java index 57134af3c7..77d33e1831 100644 --- a/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/NetconfEXIToMessageDecoder.java +++ b/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/NetconfEXIToMessageDecoder.java @@ -7,32 +7,32 @@ */ package org.opendaylight.controller.netconf.nettyutil.handler; +import com.google.common.base.Preconditions; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.ByteBufInputStream; +import io.netty.buffer.ByteBufUtil; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.ByteToMessageDecoder; +import java.io.IOException; import java.io.InputStream; import java.util.List; - -import javax.xml.transform.TransformerFactory; +import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.sax.SAXTransformerFactory; import javax.xml.transform.sax.TransformerHandler; - import org.opendaylight.controller.netconf.api.NetconfMessage; +import org.openexi.proc.common.EXIOptionsException; import org.openexi.sax.EXIReader; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; import org.xml.sax.InputSource; - -import com.google.common.base.Preconditions; - -import io.netty.buffer.ByteBuf; -import io.netty.buffer.ByteBufInputStream; -import io.netty.buffer.ByteBufUtil; -import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.codec.ByteToMessageDecoder; +import org.xml.sax.SAXException; public final class NetconfEXIToMessageDecoder extends ByteToMessageDecoder { private static final Logger LOG = LoggerFactory.getLogger(NetconfEXIToMessageDecoder.class); + private static final SAXTransformerFactory FACTORY = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); private final NetconfEXICodec codec; @@ -41,7 +41,7 @@ public final class NetconfEXIToMessageDecoder extends ByteToMessageDecoder { } @Override - protected void decode(final ChannelHandlerContext ctx, final ByteBuf in, final List out) throws Exception { + protected void decode(final ChannelHandlerContext ctx, final ByteBuf in, final List out) throws EXIOptionsException, IOException, SAXException, TransformerConfigurationException { /* * Note that we could loop here and process all the messages, but we can't do that. * The reason is operation, which has the contract of immediately stopping @@ -50,18 +50,17 @@ public final class NetconfEXIToMessageDecoder extends ByteToMessageDecoder { */ // If empty Byte buffer is passed to r.parse, EOFException is thrown - if (in.isReadable() == false) { + if (!in.isReadable()) { LOG.debug("No more content in incoming buffer."); return; } - LOG.trace("Received to decode: {}", ByteBufUtil.hexDump(in)); + if (LOG.isTraceEnabled()) { + LOG.trace("Received to decode: {}", ByteBufUtil.hexDump(in)); + } final EXIReader r = codec.getReader(); - - final SAXTransformerFactory transformerFactory - = (SAXTransformerFactory) TransformerFactory.newInstance(); - final TransformerHandler handler = transformerFactory.newTransformerHandler(); + final TransformerHandler handler = FACTORY.newTransformerHandler(); r.setContentHandler(handler); final DOMResult domResult = new DOMResult();