Merge "Bug fix for delete data node not working for root node"
authorRenu Kumari <renu.kumari@bell.ca>
Thu, 3 Mar 2022 14:27:49 +0000 (14:27 +0000)
committerGerrit Code Review <gerrit@onap.org>
Thu, 3 Mar 2022 14:27:49 +0000 (14:27 +0000)
cps-dependencies/pom.xml
cps-ri/src/main/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceImpl.java
cps-ri/src/main/java/org/onap/cps/spi/impl/CpsModulePersistenceServiceImpl.java
cps-ri/src/main/java/org/onap/cps/spi/repository/ModuleReferenceRepositoryImpl.java
cps-ri/src/main/java/org/onap/cps/spi/repository/YangResourceRepository.java

index 5c2ff56..80513ba 100755 (executable)
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
+            <dependency>
+                <groupId>org.springframework</groupId>
+                <artifactId>spring-web</artifactId>
+                <version>5.3.13</version>
+            </dependency>
             <dependency>
                 <groupId>org.opendaylight.yangtools</groupId>
                 <artifactId>yangtools-artifacts</artifactId>
                 <artifactId>springfox-boot-starter</artifactId>
                 <version>3.0.0</version>
             </dependency>
+            <dependency>
+                <groupId>com.google.code.gson</groupId>
+                <artifactId>gson</artifactId>
+                <version>2.8.9</version>
+            </dependency>
             <dependency>
                 <groupId>com.vladmihalcea</groupId>
                 <artifactId>hibernate-types-52</artifactId>
index 5b89d9f..50b2720 100755 (executable)
@@ -1,6 +1,6 @@
 /*
  * ============LICENSE_START=======================================================
- * Copyright (C) 2020 Nordix Foundation.
+ * Copyright (C) 2020-2022 Nordix Foundation.
  * Modifications Copyright (C) 2020-2022 Bell Canada.
  * Modifications Copyright (C) 2021 Pantheon.tech
  * ================================================================================
@@ -147,20 +147,24 @@ public class CpsAdminPersistenceServiceImpl implements CpsAdminPersistenceServic
 
     private void validateDataspaceAndModuleNames(final String dataspaceName,
         final Collection<String> inputModuleNames) {
-        final Collection<String> retrievedModuleNames =
-            yangResourceRepository.findAllModuleReferences(dataspaceName, inputModuleNames)
+        final Collection<String> retrievedModuleReferences =
+            yangResourceRepository.findAllModuleReferencesByDataspaceAndModuleNames(dataspaceName, inputModuleNames)
                 .stream().map(YangResourceModuleReference::getModuleName)
                 .collect(Collectors.toList());
-        if (retrievedModuleNames.isEmpty()) {
-            dataspaceRepository.getByName(dataspaceName);
+        if (retrievedModuleReferences.isEmpty()) {
+            verifyDataspaceName(dataspaceName);
         }
-        if (inputModuleNames.size() > retrievedModuleNames.size()) {
+        if (inputModuleNames.size() > retrievedModuleReferences.size()) {
             final List<String> moduleNamesNotFound = inputModuleNames.stream()
-                .filter(moduleName -> !retrievedModuleNames.contains(moduleName))
+                .filter(moduleName -> !retrievedModuleReferences.contains(moduleName))
                 .collect(Collectors.toList());
             if (!moduleNamesNotFound.isEmpty()) {
                 throw new ModuleNamesNotFoundException(dataspaceName, moduleNamesNotFound);
             }
         }
     }
+
+    private void verifyDataspaceName(final String dataspaceName) {
+        dataspaceRepository.getByName(dataspaceName);
+    }
 }
index ec720b8..3719256 100755 (executable)
@@ -106,7 +106,7 @@ public class CpsModulePersistenceServiceImpl implements CpsModulePersistenceServ
     @Override
     public Collection<ModuleReference> getYangResourceModuleReferences(final String dataspaceName) {
         final Set<YangResourceModuleReference> yangResourceModuleReferenceList =
-            yangResourceRepository.findAllModuleReferences(dataspaceName);
+            yangResourceRepository.findAllModuleReferencesByDataspace(dataspaceName);
         return yangResourceModuleReferenceList.stream().map(CpsModulePersistenceServiceImpl::toModuleReference)
             .collect(Collectors.toList());
     }
@@ -116,7 +116,7 @@ public class CpsModulePersistenceServiceImpl implements CpsModulePersistenceServ
         final String anchorName) {
         final Set<YangResourceModuleReference> yangResourceModuleReferenceList =
             yangResourceRepository
-                .findAllModuleReferences(dataspaceName, anchorName);
+                .findAllModuleReferencesByDataspaceAndAnchor(dataspaceName, anchorName);
         return yangResourceModuleReferenceList.stream().map(CpsModulePersistenceServiceImpl::toModuleReference)
             .collect(Collectors.toList());
     }
index f4078ff..0e79deb 100644 (file)
@@ -45,11 +45,11 @@ public class ModuleReferenceRepositoryImpl implements ModuleReferenceQuery {
         final Collection<ModuleReference> moduleReferencesToCheck) {
 
         if (moduleReferencesToCheck == null || moduleReferencesToCheck.isEmpty()) {
-            return Collections.EMPTY_LIST;
+            return Collections.emptyList();
         }
 
         final String tempTableName = "moduleReferencesToCheckTemp"
-            + UUID.randomUUID().toString().replaceAll("-", "");
+            + UUID.randomUUID().toString().replace("-", "");
 
         createTemporaryTable(tempTableName);
         insertDataIntoTable(tempTableName, moduleReferencesToCheck);
index 895937b..5e9c474 100644 (file)
@@ -49,7 +49,7 @@ public interface YangResourceRepository extends JpaRepository<YangResourceEntity
         + "JOIN yang_resource ON yang_resource.id = schema_set_yang_resources.yang_resource_id\n"
         + "WHERE\n"
         + "dataspace.name = :dataspaceName", nativeQuery = true)
-    Set<YangResourceModuleReference> findAllModuleReferences(@Param("dataspaceName") String dataspaceName);
+    Set<YangResourceModuleReference> findAllModuleReferencesByDataspace(@Param("dataspaceName") String dataspaceName);
 
     @Query(value = "SELECT DISTINCT\n"
         + "yang_resource.module_Name AS module_name,\n"
@@ -64,7 +64,7 @@ public interface YangResourceRepository extends JpaRepository<YangResourceEntity
         + "WHERE\n"
         + "dataspace.name = :dataspaceName AND\n"
         + "anchor.name =:anchorName", nativeQuery = true)
-    Set<YangResourceModuleReference> findAllModuleReferences(
+    Set<YangResourceModuleReference> findAllModuleReferencesByDataspaceAndAnchor(
         @Param("dataspaceName") String dataspaceName, @Param("anchorName") String anchorName);
 
     @Query(value = "SELECT DISTINCT\n"
@@ -77,8 +77,8 @@ public interface YangResourceRepository extends JpaRepository<YangResourceEntity
         + "JOIN yang_resource ON yang_resource.id = schema_set_yang_resources.yang_resource_id\n"
         + "WHERE\n"
         + "dataspace.name = :dataspaceName and yang_resource.module_Name IN (:moduleNames)", nativeQuery = true)
-    Set<YangResourceModuleReference> findAllModuleReferences(@Param("dataspaceName") String dataspaceName,
-        @Param("moduleNames") Collection<String> moduleNames);
+    Set<YangResourceModuleReference> findAllModuleReferencesByDataspaceAndModuleNames(
+            @Param("dataspaceName") String dataspaceName, @Param("moduleNames") Collection<String> moduleNames);
 
 
     @Query(value = "SELECT id FROM yang_resource WHERE module_name=:name and revision=:revision", nativeQuery = true)