X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-client%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fclient%2FNetconfClientSessionNegotiatorFactory.java;h=e678a601ff46a5496fbc311047a2162afa5bde61;hb=61ba702db1c87226354ec9c3351262500ffe6cb8;hp=db0b953bddf4f7c730fcd271bb7e5e603bcc0eb1;hpb=a92d9d6a21a0f6ca8d2153795721f500eaf29ee9;p=controller.git diff --git a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiatorFactory.java b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiatorFactory.java index db0b953bdd..e678a601ff 100644 --- a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiatorFactory.java +++ b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiatorFactory.java @@ -8,10 +8,13 @@ package org.opendaylight.controller.netconf.client; -import com.google.common.base.Preconditions; import io.netty.channel.Channel; import io.netty.util.Timer; import io.netty.util.concurrent.Promise; + +import java.io.IOException; +import java.io.InputStream; + import org.opendaylight.controller.netconf.api.NetconfMessage; import org.opendaylight.controller.netconf.api.NetconfSessionPreferences; import org.opendaylight.controller.netconf.util.xml.XmlUtil; @@ -20,15 +23,19 @@ import org.opendaylight.protocol.framework.SessionNegotiator; import org.opendaylight.protocol.framework.SessionNegotiatorFactory; import org.xml.sax.SAXException; -import java.io.IOException; -import java.io.InputStream; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; -public class NetconfClientSessionNegotiatorFactory implements SessionNegotiatorFactory { +public class NetconfClientSessionNegotiatorFactory implements SessionNegotiatorFactory { + private final Optional additionalHeader; + private final long connectionTimeoutMillis; private final Timer timer; - public NetconfClientSessionNegotiatorFactory(Timer timer) { - this.timer = timer; + public NetconfClientSessionNegotiatorFactory(Timer timer, Optional additionalHeader, long connectionTimeoutMillis) { + this.timer = Preconditions.checkNotNull(timer); + this.additionalHeader = additionalHeader; + this.connectionTimeoutMillis = connectionTimeoutMillis; } private static NetconfMessage loadHelloMessageTemplate() { @@ -42,12 +49,15 @@ public class NetconfClientSessionNegotiatorFactory implements SessionNegotiatorF } @Override - public SessionNegotiator getSessionNegotiator(SessionListenerFactory sessionListenerFactory, Channel channel, - Promise promise) { + public SessionNegotiator getSessionNegotiator(SessionListenerFactory sessionListenerFactory, Channel channel, + Promise promise) { // Hello message needs to be recreated every time - NetconfSessionPreferences proposal = new NetconfSessionPreferences(loadHelloMessageTemplate()); + NetconfMessage helloMessage = loadHelloMessageTemplate(); + if(this.additionalHeader.isPresent()) { + helloMessage = new NetconfMessage(helloMessage.getDocument(), additionalHeader.get()); + } + NetconfSessionPreferences proposal = new NetconfSessionPreferences(helloMessage); return new NetconfClientSessionNegotiator(proposal, promise, channel, timer, - sessionListenerFactory.getSessionListener()); + sessionListenerFactory.getSessionListener(), connectionTimeoutMillis); } - }