Loading src/main/java/org/etsi/osl/hypo/api/tmf/common/api/helpers/ServiceUtilsHelper.java +2 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ package org.etsi.osl.hypo.api.tmf.common.api.helpers; import java.util.HashSet; import java.util.Set; import java.util.UUID; import org.etsi.osl.hypo.api.tmf.common.schema.Note; import org.etsi.osl.hypo.api.tmf.services.inventory.schema.Service; import org.etsi.osl.hypo.api.tmf.services.order.model.ServiceOrderDTO; Loading @@ -17,6 +18,7 @@ public final class ServiceUtilsHelper { Note note = new Note(); note.setDate(SystemClockHelper.getSystemTimeDate()); note.setText(messageNote); note.setId(UUID.randomUUID().toString()); Set<Note> notes = service.getNote(); if (notes == null) { Set<Note> newNotes = new HashSet<>(); Loading src/main/java/org/etsi/osl/hypo/api/tmf/common/api/repository/BaseRepository.java +9 −3 Original line number Diff line number Diff line Loading @@ -3,11 +3,13 @@ package org.etsi.osl.hypo.api.tmf.common.api.repository; import static org.etsi.osl.hypo.api.tmf.common.constants.ColumnConstants.ID; import io.quarkus.hibernate.orm.panache.PanacheRepository; import jakarta.persistence.LockModeType; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; public interface BaseRepository<T> extends PanacheRepository<T> { Loading @@ -15,6 +17,10 @@ public interface BaseRepository<T> extends PanacheRepository<T> { return find(ID, id).singleResultOptional(); } default Optional<T> findByIdWithLockWrite(String id) { return find(ID, id).withLock(LockModeType.PESSIMISTIC_WRITE).singleResultOptional(); } default Optional<T> findByName(String name) { return find("name", name).singleResultOptional(); } Loading @@ -25,7 +31,7 @@ public interface BaseRepository<T> extends PanacheRepository<T> { } default Set<T> findByIdsSet(Set<String> ids) { Map<String, Object> params = Map.of("idsList", ids); return find("id in :idsList", params).stream().collect(Collectors.toSet()); ArrayList<String> idsSet = new ArrayList<>(ids); return new HashSet<>(this.findByIdsList(idsSet)); } } src/main/java/org/etsi/osl/hypo/api/tmf/resources/catalog/api/model/resource/base/BaseDTO.java +1 −2 Original line number Diff line number Diff line package org.etsi.osl.hypo.api.tmf.resources.catalog.api.model.resource.base; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.UUID; import lombok.Data; @Data public class BaseDTO { @JsonProperty("id") private UUID id; private String id; } src/main/java/org/etsi/osl/hypo/api/tmf/services/common/ServiceOrderAndServiceRepositories.java +28 −19 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import org.apache.commons.lang3.StringUtils; import org.etsi.osl.hypo.api.tmf.common.api.constants.ApiConstants; import org.etsi.osl.hypo.api.tmf.common.api.helpers.ServiceSpecificationHelpers; import org.etsi.osl.hypo.api.tmf.common.api.helpers.ServiceUtilsHelper; import org.etsi.osl.hypo.api.tmf.common.api.model.RelatedPartyDTO; import org.etsi.osl.hypo.api.tmf.common.api.services.UtilService; import org.etsi.osl.hypo.api.tmf.common.exception.DuplicateKeyException; import org.etsi.osl.hypo.api.tmf.common.exception.ServiceNotFoundException; Loading @@ -43,6 +44,7 @@ import org.etsi.osl.hypo.api.tmf.common.schema.RelatedPartyEntity; import org.etsi.osl.hypo.api.tmf.party.organization.schema.Organization; import org.etsi.osl.hypo.api.tmf.resources.inventory.schema.Resource; import org.etsi.osl.hypo.api.tmf.resources.inventory.schema.ResourceType; import org.etsi.osl.hypo.api.tmf.services.catalog.api.services.ServiceSpecificationService; import org.etsi.osl.hypo.api.tmf.services.catalog.schema.CharacteristicSpecificationEntity; import org.etsi.osl.hypo.api.tmf.services.catalog.schema.ServiceSpecRelationshipEntity; import org.etsi.osl.hypo.api.tmf.services.catalog.schema.ServiceSpecificationEntity; Loading @@ -51,7 +53,6 @@ import org.etsi.osl.hypo.api.tmf.services.common.model.ServiceRefOrValue; import org.etsi.osl.hypo.api.tmf.services.common.model.ServiceResponse; import org.etsi.osl.hypo.api.tmf.services.common.resource.ResourceHelper; import org.etsi.osl.hypo.api.tmf.services.common.schema.RelatedServiceOrderItem; import org.etsi.osl.hypo.api.tmf.services.common.schema.ResourceRef; import org.etsi.osl.hypo.api.tmf.services.common.schema.ServiceSpecificationRef; import org.etsi.osl.hypo.api.tmf.services.common.schema.ServiceStateType; import org.etsi.osl.hypo.api.tmf.services.common.service.RelatedPartyHelper; Loading Loading @@ -91,6 +92,7 @@ public class ServiceOrderAndServiceRepositories { private final RelatedPartyHelper relatedPartyHelper; private final ResourceHelper resourceHelper; private final ServiceSpecificationHelpers serviceSpecificationHelpers; private final ServiceSpecificationService serviceSpecificationService; private static final String INVENTORY_WITH_ID = "Service with id "; Loading @@ -101,7 +103,8 @@ public class ServiceOrderAndServiceRepositories { ServiceMapperHelper serviceMapperHelper, RelatedPartyHelper relatedPartyHelper, ResourceHelper resourceHelper, ServiceSpecificationHelpers serviceSpecificationHelpers) { ServiceSpecificationHelpers serviceSpecificationHelpers, ServiceSpecificationService serviceSpecificationService) { this.serviceHelper = serviceHelper; this.serviceOrderMapper = serviceOrderMapper; this.serviceOrderHelper = serviceOrderHelper; Loading @@ -109,6 +112,7 @@ public class ServiceOrderAndServiceRepositories { this.relatedPartyHelper = relatedPartyHelper; this.resourceHelper = resourceHelper; this.serviceSpecificationHelpers = serviceSpecificationHelpers; this.serviceSpecificationService = serviceSpecificationService; } @Transactional Loading Loading @@ -285,11 +289,23 @@ public class ServiceOrderAndServiceRepositories { throw new ServiceNotFoundException("Service with id: " + id + " was not found"); } public Service getServiceByIdWithLockWrite(String id) { Optional<Service> service = serviceHelper.findServiceByIdWithLockWrite(id); if (service.isPresent()) { return service.get(); } throw new ServiceNotFoundException("Service with id: " + id + " was not found"); } @Transactional public Optional<Service> getOptionalServiceById(String id) { return serviceHelper.findServiceById(id); } public Optional<Service> getOptionalServiceByIdWithLockWrite(String id) { return serviceHelper.findServiceByIdWithLockWrite(id); } @Transactional public ServiceResponse getByIdAndCriteria(String id, String fields, Map<String, String> params) { List<Service> services = serviceHelper.findServicesByCriteria(id, params, null); Loading Loading @@ -660,18 +676,6 @@ public class ServiceOrderAndServiceRepositories { id, serviceId); } @Transactional public void deleteResourceRefById(String id) { resourceHelper .getOptionalResourceReferenceById(id) .ifPresent(resourceHelper::deleteResourceReference); } @Transactional public List<ResourceRef> getResourceRefenceById(List<String> ids) { return resourceHelper.getResourceRefListByIds(ids); } public void createServiceReferences(ServiceOrderDTO serviceOrder) { Set<ServiceOrderItem> serviceOrderItemSet = serviceOrder.getServiceOrderItem(); serviceOrderItemSet.forEach( Loading Loading @@ -1154,12 +1158,13 @@ public class ServiceOrderAndServiceRepositories { serviceWithPeeredOrganization.getServiceSpecification(); if (Objects.nonNull(serviceSpecificationRef)) { ServiceSpecificationEntity serviceSpecificationEntity = getServiceSpecificationEntityById(serviceSpecificationRef.getId()); List<RelatedPartyEntity> relatedParties = serviceSpecificationEntity.getRelatedParties(); Set<RelatedPartyDTO> relatedParties = serviceSpecificationService.getRelatedPartyBySpecificationId( serviceSpecificationRef.getId()); String relatedPartyId = CollectionUtils.isNotEmpty(relatedParties) ? relatedParties.get(0).getId() : null; CollectionUtils.isNotEmpty(relatedParties) ? relatedParties.iterator().next().getId() : null; if (Objects.nonNull(relatedPartyId)) { relatedPartyHelper Loading Loading @@ -1308,4 +1313,8 @@ public class ServiceOrderAndServiceRepositories { }); }); } public void persistService(Service service) { serviceHelper.persistService(service); } } src/main/java/org/etsi/osl/hypo/api/tmf/services/common/service/ServiceHelper.java +4 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,10 @@ public class ServiceHelper { return serviceInventoryRepository.findById(serviceID); } public Optional<Service> findServiceByIdWithLockWrite(String serviceID) { return serviceInventoryRepository.findByIdWithLockWrite(serviceID); } public List<Service> findServicesByCriteria( String id, Map<String, String> params, List<String> listOfIDs) { return serviceInventoryRepository.findWithCriteriaQuery(id, params, listOfIDs); Loading Loading
src/main/java/org/etsi/osl/hypo/api/tmf/common/api/helpers/ServiceUtilsHelper.java +2 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ package org.etsi.osl.hypo.api.tmf.common.api.helpers; import java.util.HashSet; import java.util.Set; import java.util.UUID; import org.etsi.osl.hypo.api.tmf.common.schema.Note; import org.etsi.osl.hypo.api.tmf.services.inventory.schema.Service; import org.etsi.osl.hypo.api.tmf.services.order.model.ServiceOrderDTO; Loading @@ -17,6 +18,7 @@ public final class ServiceUtilsHelper { Note note = new Note(); note.setDate(SystemClockHelper.getSystemTimeDate()); note.setText(messageNote); note.setId(UUID.randomUUID().toString()); Set<Note> notes = service.getNote(); if (notes == null) { Set<Note> newNotes = new HashSet<>(); Loading
src/main/java/org/etsi/osl/hypo/api/tmf/common/api/repository/BaseRepository.java +9 −3 Original line number Diff line number Diff line Loading @@ -3,11 +3,13 @@ package org.etsi.osl.hypo.api.tmf.common.api.repository; import static org.etsi.osl.hypo.api.tmf.common.constants.ColumnConstants.ID; import io.quarkus.hibernate.orm.panache.PanacheRepository; import jakarta.persistence.LockModeType; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; public interface BaseRepository<T> extends PanacheRepository<T> { Loading @@ -15,6 +17,10 @@ public interface BaseRepository<T> extends PanacheRepository<T> { return find(ID, id).singleResultOptional(); } default Optional<T> findByIdWithLockWrite(String id) { return find(ID, id).withLock(LockModeType.PESSIMISTIC_WRITE).singleResultOptional(); } default Optional<T> findByName(String name) { return find("name", name).singleResultOptional(); } Loading @@ -25,7 +31,7 @@ public interface BaseRepository<T> extends PanacheRepository<T> { } default Set<T> findByIdsSet(Set<String> ids) { Map<String, Object> params = Map.of("idsList", ids); return find("id in :idsList", params).stream().collect(Collectors.toSet()); ArrayList<String> idsSet = new ArrayList<>(ids); return new HashSet<>(this.findByIdsList(idsSet)); } }
src/main/java/org/etsi/osl/hypo/api/tmf/resources/catalog/api/model/resource/base/BaseDTO.java +1 −2 Original line number Diff line number Diff line package org.etsi.osl.hypo.api.tmf.resources.catalog.api.model.resource.base; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.UUID; import lombok.Data; @Data public class BaseDTO { @JsonProperty("id") private UUID id; private String id; }
src/main/java/org/etsi/osl/hypo/api/tmf/services/common/ServiceOrderAndServiceRepositories.java +28 −19 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import org.apache.commons.lang3.StringUtils; import org.etsi.osl.hypo.api.tmf.common.api.constants.ApiConstants; import org.etsi.osl.hypo.api.tmf.common.api.helpers.ServiceSpecificationHelpers; import org.etsi.osl.hypo.api.tmf.common.api.helpers.ServiceUtilsHelper; import org.etsi.osl.hypo.api.tmf.common.api.model.RelatedPartyDTO; import org.etsi.osl.hypo.api.tmf.common.api.services.UtilService; import org.etsi.osl.hypo.api.tmf.common.exception.DuplicateKeyException; import org.etsi.osl.hypo.api.tmf.common.exception.ServiceNotFoundException; Loading @@ -43,6 +44,7 @@ import org.etsi.osl.hypo.api.tmf.common.schema.RelatedPartyEntity; import org.etsi.osl.hypo.api.tmf.party.organization.schema.Organization; import org.etsi.osl.hypo.api.tmf.resources.inventory.schema.Resource; import org.etsi.osl.hypo.api.tmf.resources.inventory.schema.ResourceType; import org.etsi.osl.hypo.api.tmf.services.catalog.api.services.ServiceSpecificationService; import org.etsi.osl.hypo.api.tmf.services.catalog.schema.CharacteristicSpecificationEntity; import org.etsi.osl.hypo.api.tmf.services.catalog.schema.ServiceSpecRelationshipEntity; import org.etsi.osl.hypo.api.tmf.services.catalog.schema.ServiceSpecificationEntity; Loading @@ -51,7 +53,6 @@ import org.etsi.osl.hypo.api.tmf.services.common.model.ServiceRefOrValue; import org.etsi.osl.hypo.api.tmf.services.common.model.ServiceResponse; import org.etsi.osl.hypo.api.tmf.services.common.resource.ResourceHelper; import org.etsi.osl.hypo.api.tmf.services.common.schema.RelatedServiceOrderItem; import org.etsi.osl.hypo.api.tmf.services.common.schema.ResourceRef; import org.etsi.osl.hypo.api.tmf.services.common.schema.ServiceSpecificationRef; import org.etsi.osl.hypo.api.tmf.services.common.schema.ServiceStateType; import org.etsi.osl.hypo.api.tmf.services.common.service.RelatedPartyHelper; Loading Loading @@ -91,6 +92,7 @@ public class ServiceOrderAndServiceRepositories { private final RelatedPartyHelper relatedPartyHelper; private final ResourceHelper resourceHelper; private final ServiceSpecificationHelpers serviceSpecificationHelpers; private final ServiceSpecificationService serviceSpecificationService; private static final String INVENTORY_WITH_ID = "Service with id "; Loading @@ -101,7 +103,8 @@ public class ServiceOrderAndServiceRepositories { ServiceMapperHelper serviceMapperHelper, RelatedPartyHelper relatedPartyHelper, ResourceHelper resourceHelper, ServiceSpecificationHelpers serviceSpecificationHelpers) { ServiceSpecificationHelpers serviceSpecificationHelpers, ServiceSpecificationService serviceSpecificationService) { this.serviceHelper = serviceHelper; this.serviceOrderMapper = serviceOrderMapper; this.serviceOrderHelper = serviceOrderHelper; Loading @@ -109,6 +112,7 @@ public class ServiceOrderAndServiceRepositories { this.relatedPartyHelper = relatedPartyHelper; this.resourceHelper = resourceHelper; this.serviceSpecificationHelpers = serviceSpecificationHelpers; this.serviceSpecificationService = serviceSpecificationService; } @Transactional Loading Loading @@ -285,11 +289,23 @@ public class ServiceOrderAndServiceRepositories { throw new ServiceNotFoundException("Service with id: " + id + " was not found"); } public Service getServiceByIdWithLockWrite(String id) { Optional<Service> service = serviceHelper.findServiceByIdWithLockWrite(id); if (service.isPresent()) { return service.get(); } throw new ServiceNotFoundException("Service with id: " + id + " was not found"); } @Transactional public Optional<Service> getOptionalServiceById(String id) { return serviceHelper.findServiceById(id); } public Optional<Service> getOptionalServiceByIdWithLockWrite(String id) { return serviceHelper.findServiceByIdWithLockWrite(id); } @Transactional public ServiceResponse getByIdAndCriteria(String id, String fields, Map<String, String> params) { List<Service> services = serviceHelper.findServicesByCriteria(id, params, null); Loading Loading @@ -660,18 +676,6 @@ public class ServiceOrderAndServiceRepositories { id, serviceId); } @Transactional public void deleteResourceRefById(String id) { resourceHelper .getOptionalResourceReferenceById(id) .ifPresent(resourceHelper::deleteResourceReference); } @Transactional public List<ResourceRef> getResourceRefenceById(List<String> ids) { return resourceHelper.getResourceRefListByIds(ids); } public void createServiceReferences(ServiceOrderDTO serviceOrder) { Set<ServiceOrderItem> serviceOrderItemSet = serviceOrder.getServiceOrderItem(); serviceOrderItemSet.forEach( Loading Loading @@ -1154,12 +1158,13 @@ public class ServiceOrderAndServiceRepositories { serviceWithPeeredOrganization.getServiceSpecification(); if (Objects.nonNull(serviceSpecificationRef)) { ServiceSpecificationEntity serviceSpecificationEntity = getServiceSpecificationEntityById(serviceSpecificationRef.getId()); List<RelatedPartyEntity> relatedParties = serviceSpecificationEntity.getRelatedParties(); Set<RelatedPartyDTO> relatedParties = serviceSpecificationService.getRelatedPartyBySpecificationId( serviceSpecificationRef.getId()); String relatedPartyId = CollectionUtils.isNotEmpty(relatedParties) ? relatedParties.get(0).getId() : null; CollectionUtils.isNotEmpty(relatedParties) ? relatedParties.iterator().next().getId() : null; if (Objects.nonNull(relatedPartyId)) { relatedPartyHelper Loading Loading @@ -1308,4 +1313,8 @@ public class ServiceOrderAndServiceRepositories { }); }); } public void persistService(Service service) { serviceHelper.persistService(service); } }
src/main/java/org/etsi/osl/hypo/api/tmf/services/common/service/ServiceHelper.java +4 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,10 @@ public class ServiceHelper { return serviceInventoryRepository.findById(serviceID); } public Optional<Service> findServiceByIdWithLockWrite(String serviceID) { return serviceInventoryRepository.findByIdWithLockWrite(serviceID); } public List<Service> findServicesByCriteria( String id, Map<String, String> params, List<String> listOfIDs) { return serviceInventoryRepository.findWithCriteriaQuery(id, params, listOfIDs); Loading