From 6a1bbf295501650a6a7b8308da4d88835f122fa2 Mon Sep 17 00:00:00 2001 From: ToineSiebelink Date: Mon, 5 Sep 2022 12:08:09 +0100 Subject: Performance Improvement: Fix Insert Yang Resource IDs (Schemset) - Add robustness to handle insertion/get of empty collection - Fix business logic to pass down ALL module references during module Sync - Update Java doc etc to clarify ALL module references are needed (not just new) Issue-ID: CPS-1246 Issue-ID: CPS-1126 Signed-off-by: ToineSiebelink Change-Id: Ic8ff4bdfef646e98ef61a6732c6d5ecb4b762e29 --- .../org/onap/cps/spi/impl/CpsModulePersistenceServiceImpl.java | 8 ++++---- .../onap/cps/spi/repository/YangResourceNativeRepositoryImpl.java | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'cps-ri/src/main') diff --git a/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsModulePersistenceServiceImpl.java b/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsModulePersistenceServiceImpl.java index e9e945a49..400e9b3e8 100755 --- a/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsModulePersistenceServiceImpl.java +++ b/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsModulePersistenceServiceImpl.java @@ -162,14 +162,14 @@ public class CpsModulePersistenceServiceImpl implements CpsModulePersistenceServ @Backoff(random = true, delay = 200, maxDelay = 2000, multiplier = 2)) public void storeSchemaSetFromModules(final String dataspaceName, final String schemaSetName, final Map newModuleNameToContentMap, - final Collection moduleReferences) { + final Collection allModuleReferences) { storeSchemaSet(dataspaceName, schemaSetName, newModuleNameToContentMap); final DataspaceEntity dataspaceEntity = dataspaceRepository.getByName(dataspaceName); final SchemaSetEntity schemaSetEntity = schemaSetRepository.getByDataspaceAndName(dataspaceEntity, schemaSetName); - final List listOfYangResourceIds = - yangResourceRepository.getResourceIdsByModuleReferences(moduleReferences); - yangResourceRepository.insertSchemaSetIdYangResourceId(schemaSetEntity.getId(), listOfYangResourceIds); + final List allYangResourceIds = + yangResourceRepository.getResourceIdsByModuleReferences(allModuleReferences); + yangResourceRepository.insertSchemaSetIdYangResourceId(schemaSetEntity.getId(), allYangResourceIds); } @Override diff --git a/cps-ri/src/main/java/org/onap/cps/spi/repository/YangResourceNativeRepositoryImpl.java b/cps-ri/src/main/java/org/onap/cps/spi/repository/YangResourceNativeRepositoryImpl.java index 485f839bf..850b274c9 100644 --- a/cps-ri/src/main/java/org/onap/cps/spi/repository/YangResourceNativeRepositoryImpl.java +++ b/cps-ri/src/main/java/org/onap/cps/spi/repository/YangResourceNativeRepositoryImpl.java @@ -21,6 +21,7 @@ package org.onap.cps.spi.repository; import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.StringJoiner; import javax.persistence.EntityManager; @@ -42,6 +43,9 @@ public class YangResourceNativeRepositoryImpl implements YangResourceNativeRepos @Override @Transactional public List getResourceIdsByModuleReferences(final Collection moduleReferences) { + if (moduleReferences.isEmpty()) { + return Collections.emptyList(); + } final Query query = entityManager.createNativeQuery(getCombinedSelectSqlQuery(moduleReferences)) .unwrap(org.hibernate.query.NativeQuery.class) .addScalar("id", StandardBasicTypes.LONG); -- cgit 1.2.3-korg