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 top node and as such we can create a new method which is called before toDataMap:


public static Map<String, Object> toDataMapTopNode(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 top level of the JSON output and as such have to distinguish between a top level node and non top 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:

Query/ServiceClassNotesResponse nowResponse After
Notification ServiceCpsDataUpdatedEventFactory,javaNotification Service response should be the same as CPS Core for consistencyQuery data nodes

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

and then the relevant data:. CPS Temporal

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

[[bookstore-name:Chapters]]


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

[bookstore:[bookstore-name:Chapters]]

Query 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


http://localhost:8883/cps/api/v1/dataspaces/test/anchors/bookstore-anchor-test2/nodes/query?cps-path=/bookstore/categories&include-descendants=true check

Do with node instead of list

[

     {

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

[

     "categories": {

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

get Node by CMHandle and Xpath (NCMP)DataRestController.javaget Node should follow the get Node which CPS Core produces for consistency

...