BUG-848 Fix netconf communication while using CHUNK encoding 43/6543/2
authorMaros Marsalek <mmarsale@cisco.com>
Mon, 28 Apr 2014 09:12:08 +0000 (11:12 +0200)
committerMaros Marsalek <mmarsale@cisco.com>
Tue, 29 Apr 2014 07:18:04 +0000 (09:18 +0200)
commit79df3ca27a571091af4d8cf766ef81864aa70c2f
treeed574c7cd12c9725721a8709a6fee71e06783ab7
parent61bad4207cc91cd14d8d38a255ad6549c20ff54e
BUG-848 Fix netconf communication while using CHUNK encoding

Cause:
When using Chunk encoding, the negotiation process lasts longer due to pipeline manipulation.
Messages received while still in negotiation were not processed correctly (This is incorrect, messages should not be processed while still in negotiation).

Fix:
Introduce a message barrier that will forward only hello message until negotiation is completed (implemented in NetconfXmlToHelloMessageDecoder).
Modify SessionNegotiators to replace message barier/hello decoder when negotiation is finished and to process non-hello messages stopped by the barier.

* Exclude pax-url-aether dependency in netconf-it

Change-Id: Ifa0a97da75ac3cdca29e29bf40138b637e08ff45
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
15 files changed:
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSession.java
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiator.java
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiatorFactory.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionNegotiator.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionNegotiatorFactory.java
opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/ConcurrentClientsTest.java
opendaylight/netconf/netconf-it/pom.xml
opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/pax/IdentityRefNetconfTest.java
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/AbstractNetconfSession.java
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/AbstractNetconfSessionNegotiator.java
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfEXIToMessageDecoder.java
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfXMLToHelloMessageDecoder.java
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfXMLToMessageDecoder.java
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/NetconfHelloMessage.java
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/SendErrorExceptionUtil.java