BUG-848 Fix netconf communication while using CHUNK encoding
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)
commit4d979e635566c02040938e9a5652ee3c9d9c63f5
tree0be178b2b89d2c40a8e49b79af426a8cacd94990
parent9d24237d269f0ebe417894b7c5b926bdb62e8d48
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