Loading src/main/java/org/etsi/osl/hypo/api/tmf/common/api/helpers/ServiceCatalogHelper.java +1 −2 Original line number Diff line number Diff line Loading @@ -317,8 +317,7 @@ public class ServiceCatalogHelper { public List<ServiceSpecificationEntity> getServiceSpecificationEntitiesByOrganizationId( String organizationId) { return serviceSpecificationRepository.findServiceSpecificationIdsByOrganizationId( organizationId); return serviceSpecificationRepository.findServiceSpecificationsByOrganizationId(organizationId); } public Optional<ServiceSpecificationEntity> findSpecificationById(String specificationId) { Loading src/main/java/org/etsi/osl/hypo/api/tmf/common/api/kafka/peering/api/incoming/PeeringApiListener.java +1 −1 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ public class PeeringApiListener { "Received the updated peered organization %s service specs", peeredOrganizationData.getOrganizationId()); try { peeringHelper.updatePeeredServiceSpecs(peeredOrganizationData); peeringHelper.updateServiceSpecsFromPeeringInfo(peeredOrganizationData); } catch (Exception e) { logger.errorf( "Could not update the specs of organization %s because %s", Loading src/main/java/org/etsi/osl/hypo/api/tmf/common/api/kafka/peering/api/incoming/helper/PeeringHelper.java +20 −26 Original line number Diff line number Diff line Loading @@ -5,7 +5,6 @@ import static org.etsi.osl.hypo.api.tmf.ServiceCategoriesConstants.K8S_SERVICES; import static org.etsi.osl.hypo.api.tmf.common.constants.OssConstants.PEERED_ORGANIZATION; import jakarta.enterprise.context.ApplicationScoped; import jakarta.transaction.Transactional; import java.util.HashSet; import java.util.List; import java.util.Set; Loading @@ -17,7 +16,6 @@ import org.etsi.osl.hypo.api.tmf.party.api.services.OrganizationService; import org.etsi.osl.hypo.api.tmf.peering.PeeredOrganizationData; import org.etsi.osl.hypo.api.tmf.peering.ServiceCatalog; import org.etsi.osl.hypo.api.tmf.peering.ServiceCategory; import org.etsi.osl.hypo.api.tmf.services.catalog.api.model.service.specification.ServiceSpecificationListsResult; import org.etsi.osl.hypo.api.tmf.services.catalog.api.services.ServiceCandidateService; import org.etsi.osl.hypo.api.tmf.services.catalog.api.services.ServiceCatalogService; import org.etsi.osl.hypo.api.tmf.services.catalog.api.services.ServiceCategoryService; Loading Loading @@ -94,45 +92,41 @@ public class PeeringHelper { updatePeeredOrganizationCharacteristicForSuccess(organizationId); } @Transactional public void updatePeeredServiceSpecs(PeeredOrganizationData peeredOrganizationData) { public void updateServiceSpecsFromPeeringInfo(PeeredOrganizationData peeredOrganizationData) { List<ServiceSpecificationEntity> serviceSpecificationEntities = peeredOrganizationData.getServiceSpecificationEntities(); String relatedPartyId = peeredOrganizationData.getOrganizationId(); String organizationId = peeredOrganizationData.getOrganizationId(); List<String> serviceSpecificationIdsFromPeeringData = serviceSpecificationEntities.stream().map(BaseEntity::getId).toList(); logger.debugf( "Received the updated peered organization service specs %s", serviceSpecificationEntities); ServiceSpecificationListsResult serviceSpecificationListsResult = serviceSpecificationService.getSpecsForPeeringUpdate( serviceSpecificationEntities, relatedPartyId); List<ServiceSpecificationEntity> existingSpecs = serviceSpecificationListsResult.getMatched(); if (CollectionUtils.isNotEmpty(existingSpecs)) { existingSpecs.forEach( serviceSpecificationEntity -> serviceSpecificationService.updateServiceSpecificationViaPeering( serviceSpecificationEntity.getId(), serviceSpecificationEntity)); } List<String> specIdsThatNeedPersistence = serviceSpecificationService.filterSpecsForPeering( serviceSpecificationEntities, organizationId); List<ServiceSpecificationEntity> notPersistedSpecs = serviceSpecificationListsResult.getNotMatched(); if (CollectionUtils.isNotEmpty(notPersistedSpecs)) { if (CollectionUtils.isNotEmpty(serviceSpecificationIdsFromPeeringData)) { PeeredOrganizationData peeredOrganizationDataNew = getPeeredOrganizationData(peeredOrganizationData, notPersistedSpecs); addPeeredServiceSpecs(peeredOrganizationDataNew); this.getPeeredOrganizationDataFiltered( peeredOrganizationData, specIdsThatNeedPersistence); this.addPeeredServiceSpecs(peeredOrganizationDataNew); } } private PeeredOrganizationData getPeeredOrganizationData( PeeredOrganizationData peeredOrganizationData, List<ServiceSpecificationEntity> notPersistedSpecs) { private PeeredOrganizationData getPeeredOrganizationDataFiltered( PeeredOrganizationData peeredOrganizationData, List<String> notPersistedSpecIds) { PeeredOrganizationData peeredOrganizationDataNew = new PeeredOrganizationData(); peeredOrganizationDataNew.setOrganizationId(peeredOrganizationData.getOrganizationId()); peeredOrganizationDataNew.setStatus(peeredOrganizationData.getStatus()); List<ServiceCatalog> serviceCatalogs = peeredOrganizationData.getServiceCatalogs(); List<ServiceSpecificationEntity> notPersistedSpecs = peeredOrganizationData.getServiceSpecificationEntities().stream() .filter( serviceSpecificationEntity -> notPersistedSpecIds.contains(serviceSpecificationEntity.getId())) .toList(); filterCatalogs(serviceCatalogs, notPersistedSpecs); peeredOrganizationDataNew.setServiceCatalogs(serviceCatalogs); peeredOrganizationDataNew.setServiceSpecificationEntities(notPersistedSpecs); Loading src/main/java/org/etsi/osl/hypo/api/tmf/services/catalog/api/mapper/ServiceCatalogUpdateEntityMapper.java +4 −8 Original line number Diff line number Diff line package org.etsi.osl.hypo.api.tmf.services.catalog.api.mapper; import static org.etsi.osl.hypo.api.tmf.common.api.constants.ApiConstants.ID; import org.etsi.osl.hypo.api.tmf.common.schema.ValueEntity; import org.etsi.osl.hypo.api.tmf.services.catalog.schema.ServiceCandidateEntity; import org.etsi.osl.hypo.api.tmf.services.catalog.schema.ServiceCatalogEntity; Loading @@ -24,15 +26,9 @@ public interface ServiceCatalogUpdateEntityMapper { String ENTITY_ID = "entityId"; @Mapping(target = ENTITY_ID, ignore = true) @Mapping(target = ID, ignore = true) @Mapping(target = "relatedParties", ignore = true) ServiceSpecificationEntity updateServiceSpecificationEntity( ServiceSpecificationEntity newServiceSpecificationEntity, @MappingTarget ServiceSpecificationEntity oldServiceSpecificationEntity); @Mapping(target = ENTITY_ID, ignore = true) @Mapping(target = "relatedParties", ignore = true) @Mapping(target = "attachment", ignore = true) ServiceSpecificationEntity updateServiceSpecificationEntityViaPeering( void updateServiceSpecificationEntity( ServiceSpecificationEntity newServiceSpecificationEntity, @MappingTarget ServiceSpecificationEntity oldServiceSpecificationEntity); Loading src/main/java/org/etsi/osl/hypo/api/tmf/services/catalog/api/model/service/specification/ServiceSpecificationIdsListsResult.java 0 → 100644 +14 −0 Original line number Diff line number Diff line package org.etsi.osl.hypo.api.tmf.services.catalog.api.model.service.specification; import java.util.List; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor public class ServiceSpecificationIdsListsResult { private List<String> matched; private List<String> notMatched; } Loading
src/main/java/org/etsi/osl/hypo/api/tmf/common/api/helpers/ServiceCatalogHelper.java +1 −2 Original line number Diff line number Diff line Loading @@ -317,8 +317,7 @@ public class ServiceCatalogHelper { public List<ServiceSpecificationEntity> getServiceSpecificationEntitiesByOrganizationId( String organizationId) { return serviceSpecificationRepository.findServiceSpecificationIdsByOrganizationId( organizationId); return serviceSpecificationRepository.findServiceSpecificationsByOrganizationId(organizationId); } public Optional<ServiceSpecificationEntity> findSpecificationById(String specificationId) { Loading
src/main/java/org/etsi/osl/hypo/api/tmf/common/api/kafka/peering/api/incoming/PeeringApiListener.java +1 −1 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ public class PeeringApiListener { "Received the updated peered organization %s service specs", peeredOrganizationData.getOrganizationId()); try { peeringHelper.updatePeeredServiceSpecs(peeredOrganizationData); peeringHelper.updateServiceSpecsFromPeeringInfo(peeredOrganizationData); } catch (Exception e) { logger.errorf( "Could not update the specs of organization %s because %s", Loading
src/main/java/org/etsi/osl/hypo/api/tmf/common/api/kafka/peering/api/incoming/helper/PeeringHelper.java +20 −26 Original line number Diff line number Diff line Loading @@ -5,7 +5,6 @@ import static org.etsi.osl.hypo.api.tmf.ServiceCategoriesConstants.K8S_SERVICES; import static org.etsi.osl.hypo.api.tmf.common.constants.OssConstants.PEERED_ORGANIZATION; import jakarta.enterprise.context.ApplicationScoped; import jakarta.transaction.Transactional; import java.util.HashSet; import java.util.List; import java.util.Set; Loading @@ -17,7 +16,6 @@ import org.etsi.osl.hypo.api.tmf.party.api.services.OrganizationService; import org.etsi.osl.hypo.api.tmf.peering.PeeredOrganizationData; import org.etsi.osl.hypo.api.tmf.peering.ServiceCatalog; import org.etsi.osl.hypo.api.tmf.peering.ServiceCategory; import org.etsi.osl.hypo.api.tmf.services.catalog.api.model.service.specification.ServiceSpecificationListsResult; import org.etsi.osl.hypo.api.tmf.services.catalog.api.services.ServiceCandidateService; import org.etsi.osl.hypo.api.tmf.services.catalog.api.services.ServiceCatalogService; import org.etsi.osl.hypo.api.tmf.services.catalog.api.services.ServiceCategoryService; Loading Loading @@ -94,45 +92,41 @@ public class PeeringHelper { updatePeeredOrganizationCharacteristicForSuccess(organizationId); } @Transactional public void updatePeeredServiceSpecs(PeeredOrganizationData peeredOrganizationData) { public void updateServiceSpecsFromPeeringInfo(PeeredOrganizationData peeredOrganizationData) { List<ServiceSpecificationEntity> serviceSpecificationEntities = peeredOrganizationData.getServiceSpecificationEntities(); String relatedPartyId = peeredOrganizationData.getOrganizationId(); String organizationId = peeredOrganizationData.getOrganizationId(); List<String> serviceSpecificationIdsFromPeeringData = serviceSpecificationEntities.stream().map(BaseEntity::getId).toList(); logger.debugf( "Received the updated peered organization service specs %s", serviceSpecificationEntities); ServiceSpecificationListsResult serviceSpecificationListsResult = serviceSpecificationService.getSpecsForPeeringUpdate( serviceSpecificationEntities, relatedPartyId); List<ServiceSpecificationEntity> existingSpecs = serviceSpecificationListsResult.getMatched(); if (CollectionUtils.isNotEmpty(existingSpecs)) { existingSpecs.forEach( serviceSpecificationEntity -> serviceSpecificationService.updateServiceSpecificationViaPeering( serviceSpecificationEntity.getId(), serviceSpecificationEntity)); } List<String> specIdsThatNeedPersistence = serviceSpecificationService.filterSpecsForPeering( serviceSpecificationEntities, organizationId); List<ServiceSpecificationEntity> notPersistedSpecs = serviceSpecificationListsResult.getNotMatched(); if (CollectionUtils.isNotEmpty(notPersistedSpecs)) { if (CollectionUtils.isNotEmpty(serviceSpecificationIdsFromPeeringData)) { PeeredOrganizationData peeredOrganizationDataNew = getPeeredOrganizationData(peeredOrganizationData, notPersistedSpecs); addPeeredServiceSpecs(peeredOrganizationDataNew); this.getPeeredOrganizationDataFiltered( peeredOrganizationData, specIdsThatNeedPersistence); this.addPeeredServiceSpecs(peeredOrganizationDataNew); } } private PeeredOrganizationData getPeeredOrganizationData( PeeredOrganizationData peeredOrganizationData, List<ServiceSpecificationEntity> notPersistedSpecs) { private PeeredOrganizationData getPeeredOrganizationDataFiltered( PeeredOrganizationData peeredOrganizationData, List<String> notPersistedSpecIds) { PeeredOrganizationData peeredOrganizationDataNew = new PeeredOrganizationData(); peeredOrganizationDataNew.setOrganizationId(peeredOrganizationData.getOrganizationId()); peeredOrganizationDataNew.setStatus(peeredOrganizationData.getStatus()); List<ServiceCatalog> serviceCatalogs = peeredOrganizationData.getServiceCatalogs(); List<ServiceSpecificationEntity> notPersistedSpecs = peeredOrganizationData.getServiceSpecificationEntities().stream() .filter( serviceSpecificationEntity -> notPersistedSpecIds.contains(serviceSpecificationEntity.getId())) .toList(); filterCatalogs(serviceCatalogs, notPersistedSpecs); peeredOrganizationDataNew.setServiceCatalogs(serviceCatalogs); peeredOrganizationDataNew.setServiceSpecificationEntities(notPersistedSpecs); Loading
src/main/java/org/etsi/osl/hypo/api/tmf/services/catalog/api/mapper/ServiceCatalogUpdateEntityMapper.java +4 −8 Original line number Diff line number Diff line package org.etsi.osl.hypo.api.tmf.services.catalog.api.mapper; import static org.etsi.osl.hypo.api.tmf.common.api.constants.ApiConstants.ID; import org.etsi.osl.hypo.api.tmf.common.schema.ValueEntity; import org.etsi.osl.hypo.api.tmf.services.catalog.schema.ServiceCandidateEntity; import org.etsi.osl.hypo.api.tmf.services.catalog.schema.ServiceCatalogEntity; Loading @@ -24,15 +26,9 @@ public interface ServiceCatalogUpdateEntityMapper { String ENTITY_ID = "entityId"; @Mapping(target = ENTITY_ID, ignore = true) @Mapping(target = ID, ignore = true) @Mapping(target = "relatedParties", ignore = true) ServiceSpecificationEntity updateServiceSpecificationEntity( ServiceSpecificationEntity newServiceSpecificationEntity, @MappingTarget ServiceSpecificationEntity oldServiceSpecificationEntity); @Mapping(target = ENTITY_ID, ignore = true) @Mapping(target = "relatedParties", ignore = true) @Mapping(target = "attachment", ignore = true) ServiceSpecificationEntity updateServiceSpecificationEntityViaPeering( void updateServiceSpecificationEntity( ServiceSpecificationEntity newServiceSpecificationEntity, @MappingTarget ServiceSpecificationEntity oldServiceSpecificationEntity); Loading
src/main/java/org/etsi/osl/hypo/api/tmf/services/catalog/api/model/service/specification/ServiceSpecificationIdsListsResult.java 0 → 100644 +14 −0 Original line number Diff line number Diff line package org.etsi.osl.hypo.api.tmf.services.catalog.api.model.service.specification; import java.util.List; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor public class ServiceSpecificationIdsListsResult { private List<String> matched; private List<String> notMatched; }