From ed000a6789ddb6aff13b4430a86ce59692b27c36 Mon Sep 17 00:00:00 2001 From: Joselee2908 Date: Thu, 4 Jun 2026 17:02:45 +0200 Subject: [PATCH 1/2] fix(external-marketplace-service): replaced marketplace endpoint call from catalog/getProjectComponentById to provision/getProjectComponentProvisionStatusById --- .../project/facade/ComponentsFacade.java | 4 ++-- .../project/mapper/MarketplaceMapper.java | 4 ++-- .../project/facade/ComponentsFacadeTest.java | 6 ++---- .../project/util/TestObjectsBuilder.java | 6 +++--- external-service-marketplace/pom.xml | 2 +- .../service/CatalogItemOperations.java | 4 ++-- .../service/MarketplaceService.java | 6 +++--- .../service/impl/MarketplaceServiceImpl.java | 12 ++++++------ .../service/CatalogItemOperationsTest.java | 18 +++++++++--------- .../service/MarketplaceServiceImplTest.java | 8 ++++---- 10 files changed, 34 insertions(+), 36 deletions(-) diff --git a/api-project-component-v0/src/main/java/org/opendevstack/apiservice/project/facade/ComponentsFacade.java b/api-project-component-v0/src/main/java/org/opendevstack/apiservice/project/facade/ComponentsFacade.java index 57eeb7f..80bce52 100644 --- a/api-project-component-v0/src/main/java/org/opendevstack/apiservice/project/facade/ComponentsFacade.java +++ b/api-project-component-v0/src/main/java/org/opendevstack/apiservice/project/facade/ComponentsFacade.java @@ -4,7 +4,7 @@ import lombok.extern.slf4j.Slf4j; import org.opendevstack.apiservice.externalservice.marketplace.exception.MarketplaceException; import org.opendevstack.apiservice.externalservice.marketplace.client.model.CatalogItem; -import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentExtendedInfo; +import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentProvisionStatus; import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProvisionActionParameter; import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProvisioningStatusUpdateRequestAllOfParameters; import org.opendevstack.apiservice.externalservice.marketplace.service.CatalogItemOperations; @@ -43,7 +43,7 @@ public class ComponentsFacade { public Component getProjectComponent(String projectId, String componentId) { try { - ProjectComponentExtendedInfo marketplaceComponent = marketplaceExternalService.getProjectComponent(projectId, componentId); + ProjectComponentProvisionStatus marketplaceComponent = marketplaceExternalService.getProjectComponent(projectId, componentId); if (marketplaceComponent == null) { log.info("Marketplace component with id {} not found", componentId); throw new ComponentNotFoundException( diff --git a/api-project-component-v0/src/main/java/org/opendevstack/apiservice/project/mapper/MarketplaceMapper.java b/api-project-component-v0/src/main/java/org/opendevstack/apiservice/project/mapper/MarketplaceMapper.java index 19887f0..718a939 100644 --- a/api-project-component-v0/src/main/java/org/opendevstack/apiservice/project/mapper/MarketplaceMapper.java +++ b/api-project-component-v0/src/main/java/org/opendevstack/apiservice/project/mapper/MarketplaceMapper.java @@ -5,7 +5,7 @@ import org.opendevstack.apiservice.externalservice.marketplace.client.model.CatalogItem; import org.opendevstack.apiservice.externalservice.marketplace.client.model.CatalogItemUserAction; import org.opendevstack.apiservice.externalservice.marketplace.client.model.CatalogItemUserActionParameter; -import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentExtendedInfo; +import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentProvisionStatus; import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProvisionActionParameter; import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProvisioningStatusUpdateRequestAllOfParameters; import org.opendevstack.apiservice.project.model.Component; @@ -22,7 +22,7 @@ public interface MarketplaceMapper { String DEFAULT_PARAMETER_TYPE = "string"; - default Component mapMarketplaceComponentToV0Component(ProjectComponentExtendedInfo source, CatalogItem catalogItem) throws MarketplaceException { + default Component mapMarketplaceComponentToV0Component(ProjectComponentProvisionStatus source, CatalogItem catalogItem) throws MarketplaceException { Component component = new Component(); component.setId(source.getComponentId()); component.setEnvironment(EnvironmentsDTO.DEV); // Env is always DEV so we hardcode it as such diff --git a/api-project-component-v0/src/test/java/org/opendevstack/apiservice/project/facade/ComponentsFacadeTest.java b/api-project-component-v0/src/test/java/org/opendevstack/apiservice/project/facade/ComponentsFacadeTest.java index 78e8f70..3af0405 100644 --- a/api-project-component-v0/src/test/java/org/opendevstack/apiservice/project/facade/ComponentsFacadeTest.java +++ b/api-project-component-v0/src/test/java/org/opendevstack/apiservice/project/facade/ComponentsFacadeTest.java @@ -8,7 +8,7 @@ import org.mockito.junit.jupiter.MockitoExtension; import org.opendevstack.apiservice.externalservice.marketplace.exception.MarketplaceException; import org.opendevstack.apiservice.externalservice.marketplace.client.model.CatalogItem; -import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentExtendedInfo; +import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentProvisionStatus; import org.opendevstack.apiservice.externalservice.marketplace.service.MarketplaceService; import org.opendevstack.apiservice.project.config.ProjectComponentsCreateProperties; import org.opendevstack.apiservice.project.exception.ComponentAlreadyExistsException; @@ -17,7 +17,6 @@ import org.opendevstack.apiservice.project.exception.ComponentNotFoundException; import org.opendevstack.apiservice.project.exception.ComponentRegistrationException; import org.opendevstack.apiservice.project.exception.ComponentReservedParamException; -import org.opendevstack.apiservice.project.exception.ComponentReservedParamException; import org.opendevstack.apiservice.project.mapper.MarketplaceMapper; import org.opendevstack.apiservice.project.model.Component; import org.opendevstack.apiservice.project.model.ComponentsStatusDTO; @@ -30,7 +29,6 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.ArgumentMatchers.anyList; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; @@ -63,7 +61,7 @@ void setup() { @Test void get_project_component_returns_mapped_component_when_marketplace_returns_data() throws MarketplaceException { - ProjectComponentExtendedInfo marketplaceComponent = buildTestMarketplaceComponent(); + ProjectComponentProvisionStatus marketplaceComponent = buildTestMarketplaceComponent(); CatalogItem testCatalogItem = buildTestCatalogItem(); when(marketplaceExternalService.getProjectComponent("testProject", "testComponent")) diff --git a/api-project-component-v0/src/test/java/org/opendevstack/apiservice/project/util/TestObjectsBuilder.java b/api-project-component-v0/src/test/java/org/opendevstack/apiservice/project/util/TestObjectsBuilder.java index b40d908..b0ed351 100644 --- a/api-project-component-v0/src/test/java/org/opendevstack/apiservice/project/util/TestObjectsBuilder.java +++ b/api-project-component-v0/src/test/java/org/opendevstack/apiservice/project/util/TestObjectsBuilder.java @@ -1,7 +1,7 @@ package org.opendevstack.apiservice.project.util; import org.opendevstack.apiservice.externalservice.marketplace.client.model.CatalogItem; -import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentExtendedInfo; +import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentProvisionStatus; import org.opendevstack.apiservice.project.model.Component; import org.opendevstack.apiservice.project.model.ComponentsStatusDTO; import org.opendevstack.apiservice.project.model.CreateComponentRequest; @@ -26,8 +26,8 @@ public static Component buildTestComponent() { return component; } - public static ProjectComponentExtendedInfo buildTestMarketplaceComponent() { - ProjectComponentExtendedInfo component = new ProjectComponentExtendedInfo(); + public static ProjectComponentProvisionStatus buildTestMarketplaceComponent() { + ProjectComponentProvisionStatus component = new ProjectComponentProvisionStatus(); component.setComponentId(UUID.randomUUID().toString()); component.setStatus("CREATING"); component.setComponentUrl("http://test.component.url"); diff --git a/external-service-marketplace/pom.xml b/external-service-marketplace/pom.xml index 061eceb..e9d9fb5 100644 --- a/external-service-marketplace/pom.xml +++ b/external-service-marketplace/pom.xml @@ -186,7 +186,7 @@ generate - FILTER=operationId:triggerProvisionAction|notifyProvisioningStatusUpdate|deleteProjectComponent|getProvisionerHealth + FILTER=operationId:triggerProvisionAction|notifyProvisioningStatusUpdate|deleteProjectComponent|getProjectComponentProvisionStatusById|getProvisionerHealth java ${project.basedir}/target/generated-sources/openapi resttemplate diff --git a/external-service-marketplace/src/main/java/org/opendevstack/apiservice/externalservice/marketplace/service/CatalogItemOperations.java b/external-service-marketplace/src/main/java/org/opendevstack/apiservice/externalservice/marketplace/service/CatalogItemOperations.java index f962ed8..d4d14e9 100644 --- a/external-service-marketplace/src/main/java/org/opendevstack/apiservice/externalservice/marketplace/service/CatalogItemOperations.java +++ b/external-service-marketplace/src/main/java/org/opendevstack/apiservice/externalservice/marketplace/service/CatalogItemOperations.java @@ -1,6 +1,6 @@ package org.opendevstack.apiservice.externalservice.marketplace.service; -import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentExtendedInfo; +import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentProvisionStatus; import java.nio.charset.StandardCharsets; import java.util.Base64; @@ -18,7 +18,7 @@ public static byte[] decodeId(String id) { return Base64.getUrlDecoder().decode(id); } - public static String buildCatalogItemId(ProjectComponentExtendedInfo component) { + public static String buildCatalogItemId(ProjectComponentProvisionStatus component) { if (component == null || component.getCatalogItemId() == null || component.getCatalogItemRef() == null) { return null; } diff --git a/external-service-marketplace/src/main/java/org/opendevstack/apiservice/externalservice/marketplace/service/MarketplaceService.java b/external-service-marketplace/src/main/java/org/opendevstack/apiservice/externalservice/marketplace/service/MarketplaceService.java index 30155e8..98fc934 100644 --- a/external-service-marketplace/src/main/java/org/opendevstack/apiservice/externalservice/marketplace/service/MarketplaceService.java +++ b/external-service-marketplace/src/main/java/org/opendevstack/apiservice/externalservice/marketplace/service/MarketplaceService.java @@ -3,7 +3,7 @@ import org.opendevstack.apiservice.externalservice.api.ExternalService; import org.opendevstack.apiservice.externalservice.marketplace.exception.MarketplaceException; import org.opendevstack.apiservice.externalservice.marketplace.client.model.CatalogItem; -import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentExtendedInfo; +import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentProvisionStatus; import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProvisionActionParameter; import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProvisioningStatusUpdateRequestAllOfParameters; @@ -18,9 +18,9 @@ public interface MarketplaceService extends ExternalService { String getDefaultInstance() throws MarketplaceException; - ProjectComponentExtendedInfo getProjectComponent(String projectId, String componentId) throws MarketplaceException; + ProjectComponentProvisionStatus getProjectComponent(String projectId, String componentId) throws MarketplaceException; - ProjectComponentExtendedInfo getProjectComponent(String instanceName, String projectId, String componentId) throws MarketplaceException; + ProjectComponentProvisionStatus getProjectComponent(String instanceName, String projectId, String componentId) throws MarketplaceException; CatalogItem getCatalogItem(String catalogItemId) throws MarketplaceException; diff --git a/external-service-marketplace/src/main/java/org/opendevstack/apiservice/externalservice/marketplace/service/impl/MarketplaceServiceImpl.java b/external-service-marketplace/src/main/java/org/opendevstack/apiservice/externalservice/marketplace/service/impl/MarketplaceServiceImpl.java index 40badb8..87b4122 100644 --- a/external-service-marketplace/src/main/java/org/opendevstack/apiservice/externalservice/marketplace/service/impl/MarketplaceServiceImpl.java +++ b/external-service-marketplace/src/main/java/org/opendevstack/apiservice/externalservice/marketplace/service/impl/MarketplaceServiceImpl.java @@ -10,14 +10,14 @@ import org.opendevstack.apiservice.externalservice.marketplace.client.ApiClient; import org.opendevstack.apiservice.externalservice.marketplace.client.api.CatalogHealthApi; import org.opendevstack.apiservice.externalservice.marketplace.client.api.CatalogItemsApi; -import org.opendevstack.apiservice.externalservice.marketplace.client.api.ProjectComponentsApi; +import org.opendevstack.apiservice.externalservice.marketplace.client.api.ProjectComponentsWithProvisionStatusApi; import org.opendevstack.apiservice.externalservice.marketplace.client.api.ProvisionResultsApi; import org.opendevstack.apiservice.externalservice.marketplace.client.api.ProvisionerActionsApi; import org.opendevstack.apiservice.externalservice.marketplace.client.api.ProvisionerHealthApi; import org.opendevstack.apiservice.externalservice.marketplace.client.model.CatalogItem; import org.opendevstack.apiservice.externalservice.marketplace.client.model.GetCatalogHealth200Response; import org.opendevstack.apiservice.externalservice.marketplace.client.model.GetProvisionerHealth200Response; -import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentExtendedInfo; +import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentProvisionStatus; import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProvisionAction; import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProvisionActionParameter; import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProvisionActionResponse; @@ -107,19 +107,19 @@ public CatalogItem getCatalogItemBySlug(String instanceName, String slug) throws } @Override - public ProjectComponentExtendedInfo getProjectComponent(String projectId, String componentId) throws MarketplaceException { + public ProjectComponentProvisionStatus getProjectComponent(String projectId, String componentId) throws MarketplaceException { return getProjectComponent(getDefaultInstance(), projectId, componentId); } @Override - public ProjectComponentExtendedInfo getProjectComponent(String instanceName, String projectId, String componentId) throws MarketplaceException { + public ProjectComponentProvisionStatus getProjectComponent(String instanceName, String projectId, String componentId) throws MarketplaceException { log.debug("Marketplace service GET component with id {} for project {} in instance {} ", componentId, projectId, instanceName); try { MarketplaceApiClient marketplaceClient = getOboAuthenticatedClient(instanceName); ApiClient apiClient = marketplaceClient.getApiClient(); - ProjectComponentsApi projectComponentsApi = new ProjectComponentsApi(apiClient); + ProjectComponentsWithProvisionStatusApi projectComponentsApi = new ProjectComponentsWithProvisionStatusApi(apiClient); apiClient.setBasePath(marketplaceClient.getConfig().getProjectComponentsBaseUrl()); - return projectComponentsApi.getProjectComponentById(projectId, componentId); + return projectComponentsApi.getProjectComponentProvisionStatusById(projectId, componentId); } catch (HttpClientErrorException.NotFound e) { log.debug("Component with id '{}' not found in Marketplace instance '{}' for project '{}'", componentId, instanceName, projectId); diff --git a/external-service-marketplace/src/test/java/org/opendevstack/apiservice/externalservice/marketplace/service/CatalogItemOperationsTest.java b/external-service-marketplace/src/test/java/org/opendevstack/apiservice/externalservice/marketplace/service/CatalogItemOperationsTest.java index c019dbf..54b849a 100644 --- a/external-service-marketplace/src/test/java/org/opendevstack/apiservice/externalservice/marketplace/service/CatalogItemOperationsTest.java +++ b/external-service-marketplace/src/test/java/org/opendevstack/apiservice/externalservice/marketplace/service/CatalogItemOperationsTest.java @@ -1,7 +1,7 @@ package org.opendevstack.apiservice.externalservice.marketplace.service; import org.junit.jupiter.api.Test; -import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentExtendedInfo; +import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentProvisionStatus; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -17,21 +17,21 @@ void testBuildCatalogItemId_whenNullComponent_ReturnNull() { @Test void testBuildCatalogItemId_whenNullValues_ReturnNull() { - ProjectComponentExtendedInfo testComponentExtendedInfo = new ProjectComponentExtendedInfo(); - testComponentExtendedInfo.setCatalogItemId(null); - testComponentExtendedInfo.setCatalogItemRef(null); + ProjectComponentProvisionStatus testComponentProvisionStatus = new ProjectComponentProvisionStatus(); + testComponentProvisionStatus.setCatalogItemId(null); + testComponentProvisionStatus.setCatalogItemRef(null); - String catalogItemId = CatalogItemOperations.buildCatalogItemId(testComponentExtendedInfo); + String catalogItemId = CatalogItemOperations.buildCatalogItemId(testComponentProvisionStatus); assertNull(catalogItemId); } @Test void testBuildCatalogItemId_whenCorrectValues_ReturnCorrectlyBuiltId() { - ProjectComponentExtendedInfo testComponentExtendedInfo = new ProjectComponentExtendedInfo(); - testComponentExtendedInfo.setCatalogItemId("cHJvamVjdHMvVEVTVC9yZXBvcy9DYXRhbG9nSXRlbS55YW1s"); - testComponentExtendedInfo.setCatalogItemRef("P2F0PXJlZnMvaGVhZHMvbWFzdGVy"); + ProjectComponentProvisionStatus testComponentProvisionStatus = new ProjectComponentProvisionStatus(); + testComponentProvisionStatus.setCatalogItemId("cHJvamVjdHMvVEVTVC9yZXBvcy9DYXRhbG9nSXRlbS55YW1s"); + testComponentProvisionStatus.setCatalogItemRef("P2F0PXJlZnMvaGVhZHMvbWFzdGVy"); - String catalogItemId = CatalogItemOperations.buildCatalogItemId(testComponentExtendedInfo); + String catalogItemId = CatalogItemOperations.buildCatalogItemId(testComponentProvisionStatus); assertNotNull(catalogItemId); assertEquals("cHJvamVjdHMvVEVTVC9yZXBvcy9DYXRhbG9nSXRlbS55YW1sP2F0PXJlZnMvaGVhZHMvbWFzdGVy", catalogItemId); } diff --git a/external-service-marketplace/src/test/java/org/opendevstack/apiservice/externalservice/marketplace/service/MarketplaceServiceImplTest.java b/external-service-marketplace/src/test/java/org/opendevstack/apiservice/externalservice/marketplace/service/MarketplaceServiceImplTest.java index adb5573..69a5e0a 100644 --- a/external-service-marketplace/src/test/java/org/opendevstack/apiservice/externalservice/marketplace/service/MarketplaceServiceImplTest.java +++ b/external-service-marketplace/src/test/java/org/opendevstack/apiservice/externalservice/marketplace/service/MarketplaceServiceImplTest.java @@ -16,7 +16,7 @@ import org.opendevstack.apiservice.externalservice.marketplace.exception.MarketplaceException; import org.opendevstack.apiservice.externalservice.marketplace.client.ApiClient; import org.opendevstack.apiservice.externalservice.marketplace.client.model.CatalogItem; -import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentExtendedInfo; +import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProjectComponentProvisionStatus; import org.opendevstack.apiservice.externalservice.marketplace.client.model.ProvisionActionResponse; import org.opendevstack.apiservice.externalservice.marketplace.service.impl.MarketplaceServiceImpl; import org.springframework.core.ParameterizedTypeReference; @@ -199,7 +199,7 @@ void testGetProjectComponent_NotFound_ReturnsNull() throws MarketplaceException when(marketplaceApiClient.getConfig()).thenReturn(instanceConfig); // Act - ProjectComponentExtendedInfo result = marketplaceService.getProjectComponent(instanceName, projectKey, componentId); + ProjectComponentProvisionStatus result = marketplaceService.getProjectComponent(instanceName, projectKey, componentId); // Assert assertNull(result); @@ -348,7 +348,7 @@ void testGetProjectComponent_NoInstanceArg_UsesDefaultClient() throws Marketplac whenInvokeAPI(PATH_PROJECT_COMPONENT, HttpMethod.GET).thenReturn(ResponseEntity.ok(null)); when(marketplaceApiClient.getConfig()).thenReturn(instanceConfig); - ProjectComponentExtendedInfo result = marketplaceService.getProjectComponent(projectKey, componentId); + ProjectComponentProvisionStatus result = marketplaceService.getProjectComponent(projectKey, componentId); assertNull(result); verify(clientFactory).getClient("default"); @@ -402,7 +402,7 @@ void testGetProjectComponent_NoInstanceArg_NotFound_ReturnsFalse() throws Market whenInvokeAPI(PATH_PROJECT_COMPONENT, HttpMethod.GET).thenThrow(notFoundEx); when(marketplaceApiClient.getConfig()).thenReturn(instanceConfig); - ProjectComponentExtendedInfo result = marketplaceService.getProjectComponent(projectKey, componentId); + ProjectComponentProvisionStatus result = marketplaceService.getProjectComponent(projectKey, componentId); assertNull(result); } From 6300a88c03c6181739d50d2afcab9f46c042ad7a Mon Sep 17 00:00:00 2001 From: Joselee2908 Date: Fri, 5 Jun 2026 12:49:16 +0200 Subject: [PATCH 2/2] removed openapi unnecessary generation-sources --- external-service-marketplace/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external-service-marketplace/pom.xml b/external-service-marketplace/pom.xml index e9d9fb5..d3b1991 100644 --- a/external-service-marketplace/pom.xml +++ b/external-service-marketplace/pom.xml @@ -150,7 +150,7 @@ generate - FILTER=operationId:getProjectComponents|getProjectComponentById|getCatalogItemById|getCatalogItemBySlug|getCatalogHealth + FILTER=operationId:getCatalogItemById|getCatalogItemBySlug|getCatalogHealth java ${project.basedir}/target/generated-sources/openapi resttemplate