PoC of change-based configuration using MerkleTree 76/78476/6
authorPiotr Jaszczyk <piotr.jaszczyk@nokia.com>
Thu, 14 Feb 2019 12:06:33 +0000 (13:06 +0100)
committerPiotr Jaszczyk <piotr.jaszczyk@nokia.com>
Wed, 20 Feb 2019 11:36:42 +0000 (12:36 +0100)
commit5020b150b594e4bb972a136156f744398eff8fd1
tree147a2e2c4db851a13b813173526823980ce274f3
parentb7399558681d2af418d0031b2ef33c28b19cfd7e
PoC of change-based configuration using MerkleTree

The goal of this MR is to check if storing application configuration
fetched from CBS in Merkle Tree would be a good approach.

CoS:
- it should be possible to refetch configuration at some intervals
- any new update should trigger changes in affected modules, ie. change
  of dmaap topics should trigger changes in dmaap client but not in aai
  client

In order to satisfy this requirement a MerkleTree-based solution was
proposed. The structure keeps track of hashes of each node and its
subnodes. In case of a change in one branch the hash of other sibling
branch will not change.

Change-Id: I034be0f67d8522025a49a6ac8311b7efb8452765
Issue-ID: DCAEGEN2-884
Signed-off-by: Piotr Jaszczyk <piotr.jaszczyk@nokia.com>
rest-services/cbs-client/pom.xml
rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/listener/HashAlgorithm.java [new file with mode: 0644]
rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/listener/ListenableCbsConfig.java [new file with mode: 0644]
rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/listener/MerkleTree.java [new file with mode: 0644]
rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/listener/TreeChangeListener.java [new file with mode: 0644]
rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/listener/ValueSerializer.java [new file with mode: 0644]
rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/listener/ListenableCbsConfigTest.java [new file with mode: 0644]
rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/listener/MerkleTreeTest.java [new file with mode: 0644]