From: Toine Siebelink Date: Wed, 25 Aug 2021 13:48:07 +0000 (+0000) Subject: Merge "Process data-updated event asynchronously" X-Git-Tag: 2.0.0~21 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=90fc8dc16f07d6e039edf1c0a4d6883388cf9004;p=cps.git Merge "Process data-updated event asynchronously" --- 90fc8dc16f07d6e039edf1c0a4d6883388cf9004 diff --cc cps-application/src/main/resources/application.yml index bafe7f4f36,acf78036ad..39309d842b --- a/cps-application/src/main/resources/application.yml +++ b/cps-application/src/main/resources/application.yml @@@ -71,9 -71,16 +71,16 @@@ spring notification: data-updated: enabled: false - topic: ${CPS_CHANGE_EVENT_TOPIC:cps.cfg-state-events} + topic: ${CPS_CHANGE_EVENT_TOPIC:cps.data-updated-events} filters: - enabled-dataspaces: ${DATASPACE_FILTER_PATTERNS:""} + enabled-dataspaces: ${NOTIFICATION_DATASPACE_FILTER_PATTERNS:""} + async-executor: + core-pool-size: 2 + max-pool-size: 10 + queue-capacity: 500 + wait-for-tasks-to-complete-on-shutdown: true + thread-name-prefix: Async- + springdoc: swagger-ui: diff --cc cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java index b45645bc42,a512f67baf..8989dc80ef --- 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 @@@ -94,21 -96,9 +96,21 @@@ public class CpsDataServiceImpl impleme final var dataNode = buildDataNodeFromJson(dataspaceName, anchorName, parentNodeXpath, jsonData); cpsDataPersistenceService .updateDataLeaves(dataspaceName, anchorName, dataNode.getXpath(), dataNode.getLeaves()); - notificationService.processDataUpdatedEvent(dataspaceName, anchorName); + processDataUpdatedEventAsync(dataspaceName, anchorName); } + @Override + public void updateNodeLeavesAndExistingDescendantLeaves(final String dataspaceName, final String anchorName, + final String parentNodeXpath, + final String dataNodeUpdatesAsJson) { + final Collection dataNodeUpdates = + buildDataNodeCollectionFromJson(dataspaceName, anchorName, parentNodeXpath, dataNodeUpdatesAsJson); + for (final DataNode dataNodeUpdate : dataNodeUpdates) { + processDataNodeUpdate(dataspaceName, anchorName, dataNodeUpdate); + } + notificationService.processDataUpdatedEvent(dataspaceName, anchorName); + } + @Override public void replaceNodeTree(final String dataspaceName, final String anchorName, final String parentNodeXpath, final String jsonData) { diff --cc cps-service/src/main/java/org/onap/cps/notification/CpsDataUpdatedEventFactory.java index 26b89fcd57,6b7f5a89be..e0c8fe7055 --- a/cps-service/src/main/java/org/onap/cps/notification/CpsDataUpdatedEventFactory.java +++ b/cps-service/src/main/java/org/onap/cps/notification/CpsDataUpdatedEventFactory.java @@@ -35,17 -38,15 +37,17 @@@ import org.onap.cps.utils.DataMapUtils import org.springframework.stereotype.Component; @Component - class CpsDataUpdatedEventFactory { + public class CpsDataUpdatedEventFactory { + private static final URI EVENT_SCHEMA; private static final URI EVENT_SOURCE; private static final String EVENT_TYPE = "org.onap.cps.data-updated-event"; private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); - static { + static { try { + EVENT_SCHEMA = new URI("urn:cps:org.onap.cps:data-updated-event-schema:v1"); EVENT_SOURCE = new URI("urn:cps:org.onap.cps"); } catch (final URISyntaxException e) { // As it is fixed string, I don't expect to see this error