Sending Data Updated Event to kafka
[cps.git] / cps-service / src / main / java / org / onap / cps / api / impl / CpsDataServiceImpl.java
index 23bf4f2..c822c68 100755 (executable)
@@ -3,6 +3,7 @@
  *  Copyright (C) 2021 Nordix Foundation
  *  Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
  *  Modifications Copyright (C) 2021 Pantheon.tech
+ *  Modifications Copyright (C) 2021 Bell Canada.
  *  ================================================================================
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -25,6 +26,7 @@ import java.util.Collection;
 import org.onap.cps.api.CpsAdminService;
 import org.onap.cps.api.CpsDataService;
 import org.onap.cps.api.CpsModuleService;
+import org.onap.cps.notification.NotificationService;
 import org.onap.cps.spi.CpsDataPersistenceService;
 import org.onap.cps.spi.FetchDescendantsOption;
 import org.onap.cps.spi.exceptions.DataValidationException;
@@ -53,10 +55,14 @@ public class CpsDataServiceImpl implements CpsDataService {
     @Autowired
     private YangTextSchemaSourceSetCache yangTextSchemaSourceSetCache;
 
+    @Autowired
+    private NotificationService notificationService;
+
     @Override
     public void saveData(final String dataspaceName, final String anchorName, final String jsonData) {
         final var dataNode = buildDataNodeFromJson(dataspaceName, anchorName, ROOT_NODE_XPATH, jsonData);
         cpsDataPersistenceService.storeDataNode(dataspaceName, anchorName, dataNode);
+        notificationService.processDataUpdatedEvent(dataspaceName, anchorName);
     }
 
     @Override
@@ -64,6 +70,7 @@ public class CpsDataServiceImpl implements CpsDataService {
         final String jsonData) {
         final var dataNode = buildDataNodeFromJson(dataspaceName, anchorName, parentNodeXpath, jsonData);
         cpsDataPersistenceService.addChildDataNode(dataspaceName, anchorName, parentNodeXpath, dataNode);
+        notificationService.processDataUpdatedEvent(dataspaceName, anchorName);
     }
 
     @Override
@@ -72,6 +79,7 @@ public class CpsDataServiceImpl implements CpsDataService {
         final Collection<DataNode> dataNodesCollection =
             buildDataNodeCollectionFromJson(dataspaceName, anchorName, parentNodeXpath, jsonData);
         cpsDataPersistenceService.addListDataNodes(dataspaceName, anchorName, parentNodeXpath, dataNodesCollection);
+        notificationService.processDataUpdatedEvent(dataspaceName, anchorName);
     }
 
     @Override
@@ -86,6 +94,7 @@ public class CpsDataServiceImpl implements CpsDataService {
         final var dataNode = buildDataNodeFromJson(dataspaceName, anchorName, parentNodeXpath, jsonData);
         cpsDataPersistenceService
             .updateDataLeaves(dataspaceName, anchorName, dataNode.getXpath(), dataNode.getLeaves());
+        notificationService.processDataUpdatedEvent(dataspaceName, anchorName);
     }
 
     @Override
@@ -93,6 +102,7 @@ public class CpsDataServiceImpl implements CpsDataService {
         final String jsonData) {
         final var dataNode = buildDataNodeFromJson(dataspaceName, anchorName, parentNodeXpath, jsonData);
         cpsDataPersistenceService.replaceDataNodeTree(dataspaceName, anchorName, dataNode);
+        notificationService.processDataUpdatedEvent(dataspaceName, anchorName);
     }
 
     @Override
@@ -101,6 +111,7 @@ public class CpsDataServiceImpl implements CpsDataService {
         final Collection<DataNode> dataNodes =
             buildDataNodeCollectionFromJson(dataspaceName, anchorName, parentNodeXpath, jsonData);
         cpsDataPersistenceService.replaceListDataNodes(dataspaceName, anchorName, parentNodeXpath, dataNodes);
+        notificationService.processDataUpdatedEvent(dataspaceName, anchorName);
     }
 
     private DataNode buildDataNodeFromJson(final String dataspaceName, final String anchorName,