X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Futil%2Fhandler%2FNetconfHelloMessageToXMLEncoder.java;h=65d5b270254dcbd9503a98791c4c9f878d3442f9;hb=8f15fef884bc20239625850c4a2fcdaf36395526;hp=a87d175d78e2f901d70de1efd5a7466223a21001;hpb=15863b438cff589c647169776f876c330e2cd651;p=controller.git diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfHelloMessageToXMLEncoder.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfHelloMessageToXMLEncoder.java index a87d175d78..65d5b27025 100644 --- a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfHelloMessageToXMLEncoder.java +++ b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfHelloMessageToXMLEncoder.java @@ -7,12 +7,18 @@ */ package org.opendaylight.controller.netconf.util.handler; -import java.nio.ByteBuffer; +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandlerContext; + +import java.io.IOException; + +import javax.xml.transform.TransformerException; import org.opendaylight.controller.netconf.api.NetconfMessage; import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessage; import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Charsets; import com.google.common.base.Optional; import com.google.common.base.Preconditions; @@ -39,9 +45,9 @@ import com.google.common.base.Preconditions; * */ public final class NetconfHelloMessageToXMLEncoder extends NetconfMessageToXMLEncoder { - @Override - protected ByteBuffer encodeMessage(NetconfMessage msg) { + @VisibleForTesting + public void encode(ChannelHandlerContext ctx, NetconfMessage msg, ByteBuf out) throws IOException, TransformerException { Preconditions.checkState(msg instanceof NetconfHelloMessage, "Netconf message of type %s expected, was %s", NetconfHelloMessage.class, msg.getClass()); Optional headerOptional = ((NetconfHelloMessage) msg) @@ -50,15 +56,9 @@ public final class NetconfHelloMessageToXMLEncoder extends NetconfMessageToXMLEn // If additional header present, serialize it along with netconf hello // message if (headerOptional.isPresent()) { - byte[] bytesFromHeader = headerOptional.get().toFormattedString().getBytes(Charsets.UTF_8); - byte[] bytesFromMessage = xmlToString(msg.getDocument()).getBytes(Charsets.UTF_8); - - ByteBuffer byteBuffer = ByteBuffer.allocate(bytesFromHeader.length + bytesFromMessage.length) - .put(bytesFromHeader).put(bytesFromMessage); - byteBuffer.flip(); - return byteBuffer; + out.writeBytes(headerOptional.get().toFormattedString().getBytes(Charsets.UTF_8)); } - return super.encodeMessage(msg); + super.encode(ctx, msg, out); } }