diff options
Diffstat (limited to 'cps-service/src/main')
-rwxr-xr-x | cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java | 12 | ||||
-rw-r--r-- | cps-service/src/main/java/org/onap/cps/utils/YangUtils.java | 2 |
2 files changed, 11 insertions, 3 deletions
diff --git a/cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java b/cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java index 6e7c1649d7..7db87e87ea 100755 --- a/cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java +++ b/cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java @@ -116,8 +116,12 @@ public class CpsDataServiceImpl implements CpsDataService { final Anchor anchor = cpsAdminService.getAnchor(dataspaceName, anchorName); final Collection<DataNode> listElementDataNodeCollection = buildDataNodes(anchor, parentNodeXpath, jsonData, ContentType.JSON); - cpsDataPersistenceService.addListElements(dataspaceName, anchorName, parentNodeXpath, - listElementDataNodeCollection); + if (isRootNodeXpath(parentNodeXpath)) { + cpsDataPersistenceService.storeDataNodes(dataspaceName, anchorName, listElementDataNodeCollection); + } else { + cpsDataPersistenceService.addListElements(dataspaceName, anchorName, parentNodeXpath, + listElementDataNodeCollection); + } processDataUpdatedEventAsync(anchor, parentNodeXpath, UPDATE, observedTimestamp); } @@ -391,6 +395,10 @@ public class CpsDataServiceImpl implements CpsDataService { .get(anchor.getDataspaceName(), anchor.getSchemaSetName()).getSchemaContext(); } + private static boolean isRootNodeXpath(final String xpath) { + return ROOT_NODE_XPATH.equals(xpath); + } + private void processDataNodeUpdate(final Anchor anchor, final DataNode dataNodeUpdate) { cpsDataPersistenceService.batchUpdateDataLeaves(anchor.getDataspaceName(), anchor.getName(), Collections.singletonMap(dataNodeUpdate.getXpath(), dataNodeUpdate.getLeaves())); diff --git a/cps-service/src/main/java/org/onap/cps/utils/YangUtils.java b/cps-service/src/main/java/org/onap/cps/utils/YangUtils.java index 7da4024156..f00f9442ce 100644 --- a/cps-service/src/main/java/org/onap/cps/utils/YangUtils.java +++ b/cps-service/src/main/java/org/onap/cps/utils/YangUtils.java @@ -253,7 +253,7 @@ public class YangUtils { final List<String> keyAttributes = nodeIdentifier.entrySet().stream().map( entry -> { final String name = entry.getKey().getLocalName(); - final String value = String.valueOf(entry.getValue()).replace("'", "\\'"); + final String value = String.valueOf(entry.getValue()).replace("'", "''"); return String.format("@%s='%s'", name, value); } ).collect(Collectors.toList()); |