Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-461

...

For the JSON output of Get DataNode we need to alter the DataMapUtils class. The function toDataMap translates a datanode object to a JSON output. We only want this to occur on the parent node and as such we can create a new method which is called before toDataMap:


public static Map<String, Object> toDataMapParentNode(final DataNode dataNode) {
final String nodeName = dataNode.getXpath().substring(dataNode.getXpath().lastIndexOf('/') + 1)
.replaceAll("\\[.*?\\]", "");
return ImmutableMap.<String, Object>builder().put(nodeName,
toDataMap(dataNode)
).build();
}

We only want the container name on the highest parent level of the JSON output and as such have to distinguish between a parent level node and non parent level node. We create an outer map to wrap the inner map which creates the appropriate levels in the JSON output. 

...

Queries which use toDataMap:


Effected ComponentsEffected ClientsQuery/ServiceClassNotesResponse nowResponse AfterDecision
1CPS CoreCPS TBDMTGet Data Node (as above)DataRestController.javaThis change is given in the example above. The JSON output for Get Node will be updated.

{
   "bookstore-name":"Chapters",
   "categories":[ ... ]
}

{
   "bookstore":{
     "bookstore-name":"Chapters",
      "categories":[ ... ]
  }
}
Don't update version, check with tbdmt about impact of new JSON output for getNode/queryNode.
2CPS CoreCPS TemporalNotification ServiceCpsDataUpdatedEventFactory.javaNotification Service response should be the same as CPS Core for consistency. CPS Temporal

cpsDataUpdatedEvent Object content.data.additionalProperties.toString():

[[bookstore-name:Chapters]]


cpsDataUpdatedEvent Object content.data.additionalProperties.toString():

[bookstore:[bookstore-name:Chapters]]

CPS Temporal only recording and not processing this data. Therefore change (response after) is OK
3CPS CoreCPS TBDMTQuery data nodesQueryRestController.java

Query DataNodes will produce a datanode within an array with the container ID

and then the relevant data:

http://localhost:8883/cps/api/v1/dataspaces/test/anchors/bookstore-anchor-test2/nodes/query?cps-path=/bookstore/categories[@code='01']&include-descendants=true

[

     {

        "code": "01",
        "name": "SciFi",
        "books": [
            ...
        ]
    }
]

[

     "categories": {

        "code": "01",
        "name": "SciFi",
        "books": [
            ...
        ]
    }
]

Don't update version, check with tbdmt about impact of new JSON output for getNode/queryNode.
4CPS CoreNoneget Node by CMHandle and Xpath (NCMP)NetworkCmProxyController.javaThis method is deprecated and is no longer used as part of NCMP.


Backwards Incompatibility:

...