Bug 509: Added support for merge operation to InMemoryData Store
authorTony Tkacik <ttkacik@cisco.com>
Wed, 23 Apr 2014 14:17:31 +0000 (16:17 +0200)
committerTony Tkacik <ttkacik@cisco.com>
Thu, 24 Apr 2014 08:38:04 +0000 (10:38 +0200)
commit2e2914a0b15474e7840cc415bc70a1e209dfe7d1
tree6579bf008a624429aa73720204b63cb29fb1e254
parente299d4a8c9f7ea15e647a769e7c298c1e3de7d55
Bug 509: Added support for merge operation to InMemoryData Store

Merge operation support is critical for backwards compatibility
and for Binding-Aware mapping and Restconf, which are not aware
of Mixin nodes representing lists, leaflists and choices.

Semantics of merge operation are similar to subtree modified,
but when node is not existing it creates one based on
state provided by user of the Data Broker APIs.

Merge operation also fixes concurrent creations of mixin nodes
as demonstrated in ConcurrentImplicitCreateTest,
where two separate applications may indirectly create same
root node.

Change-Id: I9ab290b512601bd99750a68ee53564e67ef0c879
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedTransaction.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerImpl.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/BackwardsCompatibleTransaction.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMDataStore.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/MutableDataTree.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/OperationWithModification.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeEventsTask.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/SchemaAwareApplyOperation.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/ModificationType.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/NodeModification.java
opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreWriteTransaction.java