From 070229ef06dfbfbd791813af9ae8c22c5a6b03f1 Mon Sep 17 00:00:00 2001 From: ndr_brt Date: Mon, 4 Dec 2023 13:46:13 +0100 Subject: [PATCH] refactor: make Services return Lists and not Streams (#3685) --- .../catalog/DatasetResolverImplTest.java | 2 +- .../service/asset/AssetServiceImpl.java | 23 +++++++++------- .../ContractAgreementServiceImpl.java | 24 ++++++++++------- .../ContractDefinitionServiceImpl.java | 23 ++++++++++------ .../ContractNegotiationServiceImpl.java | 23 ++++++++++------ .../PolicyDefinitionServiceImpl.java | 23 +++++++++------- .../TransferProcessServiceImpl.java | 22 +++++++++------ .../service/asset/AssetServiceImplTest.java | 12 ++++----- .../ContractAgreementServiceImplTest.java | 9 ++++--- .../ContractDefinitionServiceImplTest.java | 27 +++++++++++-------- .../ContractNegotiationServiceImplTest.java | 16 ++++++----- .../PolicyDefinitionServiceImplTest.java | 8 +++--- .../TransferProcessServiceImplTest.java | 20 +++++++++----- .../asset/v3/AssetApiController.java | 14 +++++----- .../asset/v3/AssetApiControllerTest.java | 18 ++++++------- .../ContractAgreementApiController.java | 14 +++++----- .../ContractAgreementApiControllerTest.java | 14 +++++----- .../ContractDefinitionApiController.java | 14 +++++----- .../ContractDefinitionApiControllerTest.java | 11 ++++---- .../ContractNegotiationApiController.java | 14 +++++----- .../ContractNegotiationApiControllerTest.java | 19 +++++++------ .../policy/PolicyDefinitionApiController.java | 12 ++++----- .../PolicyDefinitionApiControllerTest.java | 22 +++++++-------- .../TransferProcessApiController.java | 14 +++++----- .../TransferProcessApiControllerTest.java | 27 ++++++++++--------- .../asset/AssetIndexTestBase.java | 2 +- .../edc/connector/spi/asset/AssetService.java | 16 ++++++++++- .../ContractAgreementService.java | 16 ++++++++++- .../ContractDefinitionService.java | 16 ++++++++++- .../ContractNegotiationService.java | 16 ++++++++++- .../PolicyDefinitionService.java | 17 ++++++++++-- .../TransferProcessService.java | 16 ++++++++++- .../TransferProcessApiEndToEndTest.java | 2 +- 33 files changed, 324 insertions(+), 202 deletions(-) diff --git a/core/control-plane/catalog-core/src/test/java/org/eclipse/edc/connector/catalog/DatasetResolverImplTest.java b/core/control-plane/catalog-core/src/test/java/org/eclipse/edc/connector/catalog/DatasetResolverImplTest.java index 70683cfd3d9..ed4d18192c8 100644 --- a/core/control-plane/catalog-core/src/test/java/org/eclipse/edc/connector/catalog/DatasetResolverImplTest.java +++ b/core/control-plane/catalog-core/src/test/java/org/eclipse/edc/connector/catalog/DatasetResolverImplTest.java @@ -73,7 +73,7 @@ void setUp() { } @Test - void query_shouldReturnOneDatasetPerAsset() { + void search_shouldReturnOneDatasetPerAsset() { var dataService = createDataService(); var contractDefinition = contractDefinitionBuilder("definitionId").contractPolicyId("contractPolicyId").build(); var contractPolicy = Policy.Builder.newInstance().build(); diff --git a/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/asset/AssetServiceImpl.java b/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/asset/AssetServiceImpl.java index e194ce4be29..35d6c60c917 100644 --- a/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/asset/AssetServiceImpl.java +++ b/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/asset/AssetServiceImpl.java @@ -27,7 +27,6 @@ import org.eclipse.edc.validator.spi.DataAddressValidatorRegistry; import java.util.List; -import java.util.stream.Stream; import static java.lang.String.format; @@ -59,14 +58,12 @@ public Asset findById(String assetId) { } @Override - public ServiceResult> query(QuerySpec query) { - var result = queryValidator.validate(query); - - if (result.failed()) { - return ServiceResult.badRequest(result.getFailureMessages()); - } - - return ServiceResult.success(transactionContext.execute(() -> index.queryAssets(query))); + public ServiceResult> search(QuerySpec query) { + return queryValidator.validate(query) + .flatMap(validation -> validation.failed() + ? ServiceResult.badRequest(validation.getFailureMessages()) + : ServiceResult.success(queryAssets(query)) + ); } @Override @@ -128,4 +125,12 @@ public ServiceResult update(Asset asset) { }); } + private List queryAssets(QuerySpec query) { + return transactionContext.execute(() -> { + try (var stream = index.queryAssets(query)) { + return stream.toList(); + } + }); + } + } diff --git a/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/contractagreement/ContractAgreementServiceImpl.java b/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/contractagreement/ContractAgreementServiceImpl.java index fc0754076da..945dca3aa94 100644 --- a/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/contractagreement/ContractAgreementServiceImpl.java +++ b/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/contractagreement/ContractAgreementServiceImpl.java @@ -23,7 +23,7 @@ import org.eclipse.edc.spi.types.domain.agreement.ContractAgreement; import org.eclipse.edc.transaction.spi.TransactionContext; -import java.util.stream.Stream; +import java.util.List; import static java.lang.String.format; import static org.eclipse.edc.spi.query.Criterion.criterion; @@ -45,14 +45,12 @@ public ContractAgreement findById(String contractAgreementId) { } @Override - public ServiceResult> query(QuerySpec query) { - var result = queryValidator.validate(query); - - if (result.failed()) { - return ServiceResult.badRequest(format("Error validating schema: %s", result.getFailureDetail())); - } - - return ServiceResult.success(transactionContext.execute(() -> store.queryAgreements(query))); + public ServiceResult> search(QuerySpec query) { + return queryValidator.validate(query) + .flatMap(validation -> validation.failed() + ? ServiceResult.badRequest(format("Error validating schema: %s", validation.getFailureDetail())) + : ServiceResult.success(queryAgreements(query)) + ); } @Override @@ -61,4 +59,12 @@ public ContractNegotiation findNegotiation(String contractAgreementId) { var query = QuerySpec.Builder.newInstance().filter(criterion).build(); return transactionContext.execute(() -> store.queryNegotiations(query).findFirst().orElse(null)); } + + private List queryAgreements(QuerySpec query) { + return transactionContext.execute(() -> { + try (var stream = store.queryAgreements(query)) { + return stream.toList(); + } + }); + } } diff --git a/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/contractdefinition/ContractDefinitionServiceImpl.java b/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/contractdefinition/ContractDefinitionServiceImpl.java index bdc0e26d227..24dcf1f31ff 100644 --- a/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/contractdefinition/ContractDefinitionServiceImpl.java +++ b/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/contractdefinition/ContractDefinitionServiceImpl.java @@ -23,7 +23,7 @@ import org.eclipse.edc.spi.result.ServiceResult; import org.eclipse.edc.transaction.spi.TransactionContext; -import java.util.stream.Stream; +import java.util.List; import static java.lang.String.format; @@ -46,13 +46,12 @@ public ContractDefinition findById(String contractDefinitionId) { } @Override - public ServiceResult> query(QuerySpec query) { - var result = queryValidator.validate(query); - - if (result.failed()) { - return ServiceResult.badRequest(format("Error validating schema: %s", result.getFailureDetail())); - } - return ServiceResult.success(transactionContext.execute(() -> store.findAll(query))); + public ServiceResult> search(QuerySpec query) { + return queryValidator.validate(query) + .flatMap(validation -> validation.failed() + ? ServiceResult.badRequest(format("Error validating schema: %s", validation.getFailureDetail())) + : ServiceResult.success(queryContractDefinitions(query)) + ); } @Override @@ -88,4 +87,12 @@ public ServiceResult delete(String contractDefinitionId) { return serviceResult; }); } + + private List queryContractDefinitions(QuerySpec query) { + return transactionContext.execute(() -> { + try (var stream = store.findAll(query)) { + return stream.toList(); + } + }); + } } diff --git a/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/contractnegotiation/ContractNegotiationServiceImpl.java b/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/contractnegotiation/ContractNegotiationServiceImpl.java index 99565ab373e..b1aa4c96c4e 100644 --- a/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/contractnegotiation/ContractNegotiationServiceImpl.java +++ b/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/contractnegotiation/ContractNegotiationServiceImpl.java @@ -28,8 +28,8 @@ import org.eclipse.edc.spi.types.domain.agreement.ContractAgreement; import org.eclipse.edc.transaction.spi.TransactionContext; +import java.util.List; import java.util.Optional; -import java.util.stream.Stream; import static java.lang.String.format; import static java.util.Optional.ofNullable; @@ -57,13 +57,12 @@ public ContractNegotiation findbyId(String contractNegotiationId) { } @Override - public ServiceResult> query(QuerySpec query) { - var result = queryValidator.validate(query); - - if (result.failed()) { - return ServiceResult.badRequest(format("Error validating schema: %s", result.getFailureDetail())); - } - return ServiceResult.success(transactionContext.execute(() -> store.queryNegotiations(query))); + public ServiceResult> search(QuerySpec query) { + return queryValidator.validate(query) + .flatMap(validation -> validation.failed() + ? ServiceResult.badRequest(format("Error validating schema: %s", validation.getFailureDetail())) + : ServiceResult.success(queryNegotiations(query)) + ); } @Override @@ -92,4 +91,12 @@ public ServiceResult terminate(TerminateNegotiationCommand command) { return transactionContext.execute(() -> commandHandlerRegistry.execute(command).flatMap(ServiceResult::from)); } + private List queryNegotiations(QuerySpec query) { + return transactionContext.execute(() -> { + try (var stream = store.queryNegotiations(query)) { + return stream.toList(); + } + }); + } + } diff --git a/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/policydefinition/PolicyDefinitionServiceImpl.java b/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/policydefinition/PolicyDefinitionServiceImpl.java index 448b3eee41d..3b61c25ae65 100644 --- a/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/policydefinition/PolicyDefinitionServiceImpl.java +++ b/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/policydefinition/PolicyDefinitionServiceImpl.java @@ -35,7 +35,6 @@ import java.util.List; import java.util.Map; -import java.util.stream.Stream; import static java.lang.String.format; import static org.eclipse.edc.spi.query.Criterion.criterion; @@ -64,16 +63,14 @@ public PolicyDefinition findById(String policyId) { } @Override - public ServiceResult> query(QuerySpec query) { - var result = queryValidator.validate(query); - - if (result.failed()) { - return ServiceResult.badRequest(format("Error validating schema: %s", result.getFailureDetail())); - } - return ServiceResult.success(transactionContext.execute(() -> policyStore.findAll(query))); + public ServiceResult> search(QuerySpec query) { + return queryValidator.validate(query) + .flatMap(validation -> validation.failed() + ? ServiceResult.badRequest(format("Error validating schema: %s", validation.getFailureDetail())) + : ServiceResult.success(queryPolicyDefinitions(query)) + ); } - @Override public @NotNull ServiceResult deleteById(String policyId) { return transactionContext.execute(() -> { @@ -120,6 +117,14 @@ public ServiceResult update(PolicyDefinition policyDefinition) }); } + private List queryPolicyDefinitions(QuerySpec query) { + return transactionContext.execute(() -> { + try (var stream = policyStore.findAll(query)) { + return stream.toList(); + } + }); + } + private Map, List>> getSubtypeMap() { return Map.of( Constraint.class, List.of(MultiplicityConstraint.class, AtomicConstraint.class), diff --git a/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/transferprocess/TransferProcessServiceImpl.java b/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/transferprocess/TransferProcessServiceImpl.java index ea95ce4991e..cfe23ea2491 100644 --- a/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/transferprocess/TransferProcessServiceImpl.java +++ b/core/control-plane/control-plane-aggregate-services/src/main/java/org/eclipse/edc/connector/service/transferprocess/TransferProcessServiceImpl.java @@ -45,7 +45,6 @@ import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.stream.Stream; import static java.lang.String.format; @@ -74,13 +73,12 @@ public TransferProcessServiceImpl(TransferProcessStore transferProcessStore, Tra } @Override - public ServiceResult> query(QuerySpec query) { - var result = queryValidator.validate(query); - - if (result.failed()) { - return ServiceResult.badRequest(format("Error validating schema: %s", result.getFailureDetail())); - } - return ServiceResult.success(transactionContext.execute(() -> transferProcessStore.findAll(query))); + public ServiceResult> search(QuerySpec query) { + return queryValidator.validate(query) + .flatMap(validation -> validation.failed() + ? ServiceResult.badRequest(format("Error validating schema: %s", validation.getFailureDetail())) + : ServiceResult.success(queryTransferProcesses(query)) + ); } @Override @@ -137,6 +135,14 @@ public ServiceResult addProvisionedResource(String transferProcessId, Prov return transactionContext.execute(() -> commandHandlerRegistry.execute(command).flatMap(ServiceResult::from)); } + private List queryTransferProcesses(QuerySpec query) { + return transactionContext.execute(() -> { + try (var stream = transferProcessStore.findAll(query)) { + return stream.toList(); + } + }); + } + private Map, List>> getSubtypes() { return Map.of( ProvisionedResource.class, List.of(ProvisionedDataAddressResource.class), diff --git a/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/asset/AssetServiceImplTest.java b/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/asset/AssetServiceImplTest.java index 72783095094..2d9484d8b99 100644 --- a/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/asset/AssetServiceImplTest.java +++ b/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/asset/AssetServiceImplTest.java @@ -90,11 +90,11 @@ void findById_shouldRelyOnAssetIndex() { } @Test - void query_shouldRelyOnAssetIndex() { + void search_shouldRelyOnAssetIndex() { var asset = createAsset("assetId"); when(index.queryAssets(any(QuerySpec.class))).thenReturn(Stream.of(asset)); - var assets = service.query(QuerySpec.none()); + var assets = service.search(QuerySpec.none()); assertThat(assets.succeeded()).isTrue(); assertThat(assets.getContent()).hasSize(1).first().matches(hasId("assetId")); @@ -102,20 +102,20 @@ void query_shouldRelyOnAssetIndex() { @ParameterizedTest @ValueSource(strings = { Asset.PROPERTY_ID, Asset.PROPERTY_NAME, Asset.PROPERTY_DESCRIPTION, Asset.PROPERTY_VERSION, Asset.PROPERTY_CONTENT_TYPE }) - void query_validFilter(String filter) { + void search_validFilter(String filter) { var query = QuerySpec.Builder.newInstance().filter(criterion(filter, "=", "somevalue")).build(); - service.query(query); + service.search(query); verify(index).queryAssets(query); } @ParameterizedTest @ArgumentsSource(InvalidFilters.class) - void query_invalidFilter(Criterion filter) { + void search_invalidFilter(Criterion filter) { var query = QuerySpec.Builder.newInstance().filter(filter).build(); - var result = service.query(query); + var result = service.search(query); assertThat(result).isFailed().extracting(Failure::getMessages).asList().hasSize(1); } diff --git a/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/contractagreement/ContractAgreementServiceImplTest.java b/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/contractagreement/ContractAgreementServiceImplTest.java index f58bbc02840..b1b38e786e3 100644 --- a/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/contractagreement/ContractAgreementServiceImplTest.java +++ b/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/contractagreement/ContractAgreementServiceImplTest.java @@ -16,6 +16,7 @@ import org.eclipse.edc.connector.contract.spi.negotiation.store.ContractNegotiationStore; import org.eclipse.edc.connector.contract.spi.types.negotiation.ContractNegotiation; +import org.eclipse.edc.connector.spi.contractagreement.ContractAgreementService; import org.eclipse.edc.policy.model.Policy; import org.eclipse.edc.spi.query.QuerySpec; import org.eclipse.edc.spi.types.domain.agreement.ContractAgreement; @@ -40,9 +41,9 @@ class ContractAgreementServiceImplTest { - private final ContractNegotiationStore store = mock(ContractNegotiationStore.class); + private final ContractNegotiationStore store = mock(); private final TransactionContext transactionContext = new NoopTransactionContext(); - private final ContractAgreementServiceImpl service = new ContractAgreementServiceImpl(store, transactionContext); + private final ContractAgreementService service = new ContractAgreementServiceImpl(store, transactionContext); @Test void findById_filtersById() { @@ -64,11 +65,11 @@ void findById_returnsNullIfNotFound() { } @Test - void query_filtersBySpec() { + void search_filtersBySpec() { var agreement = createContractAgreement("agreementId"); when(store.queryAgreements(isA(QuerySpec.class))).thenReturn(Stream.of(agreement)); - var result = service.query(QuerySpec.none()); + var result = service.search(QuerySpec.none()); assertThat(result.succeeded()).isTrue(); assertThat(result.getContent()).hasSize(1).first().matches(it -> it.getId().equals("agreementId")); diff --git a/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/contractdefinition/ContractDefinitionServiceImplTest.java b/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/contractdefinition/ContractDefinitionServiceImplTest.java index 0f2227dd3cc..a1237ec8cc4 100644 --- a/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/contractdefinition/ContractDefinitionServiceImplTest.java +++ b/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/contractdefinition/ContractDefinitionServiceImplTest.java @@ -19,6 +19,7 @@ import org.eclipse.edc.connector.contract.spi.definition.observe.ContractDefinitionObservableImpl; import org.eclipse.edc.connector.contract.spi.offer.store.ContractDefinitionStore; import org.eclipse.edc.connector.contract.spi.types.offer.ContractDefinition; +import org.eclipse.edc.connector.spi.contractdefinition.ContractDefinitionService; import org.eclipse.edc.spi.query.Criterion; import org.eclipse.edc.spi.query.QuerySpec; import org.eclipse.edc.spi.result.StoreResult; @@ -55,12 +56,12 @@ class ContractDefinitionServiceImplTest { - private final ContractDefinitionStore store = mock(ContractDefinitionStore.class); + private final ContractDefinitionStore store = mock(); private final TransactionContext transactionContext = new NoopTransactionContext(); private final ContractDefinitionObservable observable = new ContractDefinitionObservableImpl(); - private final ContractDefinitionListener listener = mock(ContractDefinitionListener.class); + private final ContractDefinitionListener listener = mock(); - private final ContractDefinitionServiceImpl service = new ContractDefinitionServiceImpl(store, transactionContext, observable); + private final ContractDefinitionService service = new ContractDefinitionServiceImpl(store, transactionContext, observable); @BeforeEach void setUp() { @@ -87,33 +88,37 @@ void findById_returnsNullIfNotFound() { } @Test - void query() { + void search() { var definition = createContractDefinition(); when(store.findAll(isA(QuerySpec.class))).thenReturn(Stream.of(definition)); - var result = service.query(QuerySpec.none()); + var result = service.search(QuerySpec.none()); - String id = definition.getId(); assertThat(result.succeeded()).isTrue(); - assertThat(result.getContent()).hasSize(1).first().matches(hasId(id)); + assertThat(result.getContent()).hasSize(1).first().matches(hasId(definition.getId())); } @ParameterizedTest @ArgumentsSource(InvalidFilters.class) - void query_invalidFilter(Criterion invalidFilter) { + void search_invalidFilter(Criterion invalidFilter) { var query = QuerySpec.Builder.newInstance() .filter(invalidFilter) .build(); - assertThat(service.query(query).failed()).isTrue(); + + var result = service.search(query); + + assertThat(result.failed()).isTrue(); } @ParameterizedTest @ArgumentsSource(ValidFilters.class) - void query_validFilter(Criterion validFilter) { + void search_validFilter(Criterion validFilter) { var query = QuerySpec.Builder.newInstance() .filter(validFilter) .build(); - service.query(query); + + service.search(query); + verify(store).findAll(query); } diff --git a/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/contractnegotiation/ContractNegotiationServiceImplTest.java b/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/contractnegotiation/ContractNegotiationServiceImplTest.java index 821b6a0dabf..fc6e354c8ee 100644 --- a/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/contractnegotiation/ContractNegotiationServiceImplTest.java +++ b/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/contractnegotiation/ContractNegotiationServiceImplTest.java @@ -19,6 +19,7 @@ import org.eclipse.edc.connector.contract.spi.types.command.TerminateNegotiationCommand; import org.eclipse.edc.connector.contract.spi.types.negotiation.ContractNegotiation; import org.eclipse.edc.connector.contract.spi.types.negotiation.ContractRequest; +import org.eclipse.edc.connector.spi.contractnegotiation.ContractNegotiationService; import org.eclipse.edc.policy.model.Policy; import org.eclipse.edc.spi.command.CommandHandlerRegistry; import org.eclipse.edc.spi.command.CommandResult; @@ -59,7 +60,8 @@ class ContractNegotiationServiceImplTest { private final ConsumerContractNegotiationManager consumerManager = mock(); private final CommandHandlerRegistry commandHandlerRegistry = mock(); private final TransactionContext transactionContext = new NoopTransactionContext(); - private final ContractNegotiationServiceImpl service = new ContractNegotiationServiceImpl(store, consumerManager, transactionContext, commandHandlerRegistry); + + private final ContractNegotiationService service = new ContractNegotiationServiceImpl(store, consumerManager, transactionContext, commandHandlerRegistry); @Test void findById_filtersById() { @@ -81,11 +83,11 @@ void findById_returnsNullIfNotFound() { } @Test - void query_filtersBySpec() { + void search_filtersBySpec() { var negotiation = createContractNegotiation("negotiationId"); when(store.queryNegotiations(isA(QuerySpec.class))).thenReturn(Stream.of(negotiation)); - var result = service.query(QuerySpec.none()); + var result = service.search(QuerySpec.none()); assertThat(result.succeeded()).isTrue(); assertThat(result.getContent()).hasSize(1).first().matches(it -> it.getId().equals("negotiationId")); @@ -93,24 +95,24 @@ void query_filtersBySpec() { @ParameterizedTest @ArgumentsSource(InvalidFilters.class) - void query_invalidFilter(Criterion invalidFilter) { + void search_invalidFilter(Criterion invalidFilter) { var query = QuerySpec.Builder.newInstance() .filter(invalidFilter) .build(); - var result = service.query(query); + var result = service.search(query); assertThat(result).isFailed(); } @ParameterizedTest @ArgumentsSource(ValidFilters.class) - void query_validFilter(Criterion validFilter) { + void search_validFilter(Criterion validFilter) { var query = QuerySpec.Builder.newInstance() .filter(validFilter) .build(); - var result = service.query(query); + var result = service.search(query); assertThat(result).isSucceeded(); verify(store).queryNegotiations(query); diff --git a/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/policydefinition/PolicyDefinitionServiceImplTest.java b/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/policydefinition/PolicyDefinitionServiceImplTest.java index 28b0c60dd21..a958f36e374 100644 --- a/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/policydefinition/PolicyDefinitionServiceImplTest.java +++ b/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/policydefinition/PolicyDefinitionServiceImplTest.java @@ -69,10 +69,10 @@ void findById_shouldRelyOnPolicyStore() { } @Test - void query_shouldRelyOnPolicyStore() { + void search_shouldRelyOnPolicyStore() { var policy = createPolicy("policyId"); when(policyStore.findAll(any(QuerySpec.class))).thenReturn(Stream.of(policy)); - var policies = policyServiceImpl.query(QuerySpec.none()); + var policies = policyServiceImpl.search(QuerySpec.none()); assertThat(policies.succeeded()).isTrue(); assertThat(policies.getContent()).containsExactly(policy); @@ -80,12 +80,12 @@ void query_shouldRelyOnPolicyStore() { @ParameterizedTest @ArgumentsSource(InvalidFilters.class) - void query_invalidExpression_raiseException(Criterion invalidFilter) { + void search_invalidExpression_raiseException(Criterion invalidFilter) { var query = QuerySpec.Builder.newInstance() .filter(invalidFilter) .build(); - var result = policyServiceImpl.query(query); + var result = policyServiceImpl.search(query); assertThat(result).isFailed(); } diff --git a/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/transferprocess/TransferProcessServiceImplTest.java b/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/transferprocess/TransferProcessServiceImplTest.java index 54f952d1c30..3243e83a6ea 100644 --- a/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/transferprocess/TransferProcessServiceImplTest.java +++ b/core/control-plane/control-plane-aggregate-services/src/test/java/org/eclipse/edc/connector/service/transferprocess/TransferProcessServiceImplTest.java @@ -92,24 +92,32 @@ void findById_whenNotFound() { } @Test - void query() { + void search() { when(store.findAll(query)).thenReturn(Stream.of(process1, process2)); - assertThat(service.query(query).getContent()).containsExactly(process1, process2); + + var result = service.search(query); + + assertThat(result.getContent()).containsExactly(process1, process2); verify(transactionContext).execute(any(TransactionContext.ResultTransactionBlock.class)); } @ParameterizedTest @ArgumentsSource(InvalidFilters.class) - void query_invalidFilter_raiseException(Criterion invalidFilter) { + void search_invalidFilter_raiseException(Criterion invalidFilter) { var spec = QuerySpec.Builder.newInstance().filter(invalidFilter).build(); - assertThat(service.query(spec).failed()).isTrue(); + + var result = service.search(spec); + + assertThat(result.failed()).isTrue(); } @ParameterizedTest @ArgumentsSource(ValidFilters.class) - void query_validFilter(Criterion validFilter) { + void search_validFilter(Criterion validFilter) { var spec = QuerySpec.Builder.newInstance().filter(validFilter).build(); - service.query(spec); + + service.search(spec); + verify(store).findAll(spec); verify(transactionContext).execute(any(TransactionContext.ResultTransactionBlock.class)); } diff --git a/extensions/control-plane/api/management-api/asset-api/src/main/java/org/eclipse/edc/connector/api/management/asset/v3/AssetApiController.java b/extensions/control-plane/api/management-api/asset-api/src/main/java/org/eclipse/edc/connector/api/management/asset/v3/AssetApiController.java index 8227c2dc567..64a7942d1b0 100644 --- a/extensions/control-plane/api/management-api/asset-api/src/main/java/org/eclipse/edc/connector/api/management/asset/v3/AssetApiController.java +++ b/extensions/control-plane/api/management-api/asset-api/src/main/java/org/eclipse/edc/connector/api/management/asset/v3/AssetApiController.java @@ -94,14 +94,12 @@ public JsonArray requestAssets(JsonObject querySpecJson) { .orElseThrow(InvalidRequestException::new); } - try (var assets = service.query(querySpec).orElseThrow(exceptionMapper(QuerySpec.class, null))) { - return assets - .map(it -> transformerRegistry.transform(it, JsonObject.class)) - .peek(r -> r.onFailure(f -> monitor.warning(f.getFailureDetail()))) - .filter(Result::succeeded) - .map(Result::getContent) - .collect(toJsonArray()); - } + return service.search(querySpec).orElseThrow(exceptionMapper(QuerySpec.class, null)).stream() + .map(it -> transformerRegistry.transform(it, JsonObject.class)) + .peek(r -> r.onFailure(f -> monitor.warning(f.getFailureDetail()))) + .filter(Result::succeeded) + .map(Result::getContent) + .collect(toJsonArray()); } @GET diff --git a/extensions/control-plane/api/management-api/asset-api/src/test/java/org/eclipse/edc/connector/api/management/asset/v3/AssetApiControllerTest.java b/extensions/control-plane/api/management-api/asset-api/src/test/java/org/eclipse/edc/connector/api/management/asset/v3/AssetApiControllerTest.java index 783c151a5d6..9ec50e653ad 100644 --- a/extensions/control-plane/api/management-api/asset-api/src/test/java/org/eclipse/edc/connector/api/management/asset/v3/AssetApiControllerTest.java +++ b/extensions/control-plane/api/management-api/asset-api/src/test/java/org/eclipse/edc/connector/api/management/asset/v3/AssetApiControllerTest.java @@ -32,8 +32,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import java.util.List; import java.util.Map; -import java.util.stream.Stream; import static io.restassured.RestAssured.given; import static io.restassured.http.ContentType.JSON; @@ -89,8 +89,8 @@ void setup() { @Test void requestAsset() { - when(service.query(any())) - .thenReturn(ServiceResult.success(Stream.of(Asset.Builder.newInstance().build()))); + when(service.search(any())) + .thenReturn(ServiceResult.success(List.of(Asset.Builder.newInstance().build()))); when(transformerRegistry.transform(isA(Asset.class), eq(JsonObject.class))) .thenReturn(Result.success(createAssetJson().build())); when(transformerRegistry.transform(isA(JsonObject.class), eq(QuerySpec.class))) @@ -106,15 +106,15 @@ void requestAsset() { .statusCode(200) .contentType(JSON) .body("size()", is(1)); - verify(service).query(argThat(s -> s.getOffset() == 10)); + verify(service).search(argThat(s -> s.getOffset() == 10)); verify(transformerRegistry).transform(isA(Asset.class), eq(JsonObject.class)); verify(transformerRegistry).transform(isA(JsonObject.class), eq(QuerySpec.class)); } @Test void requestAsset_filtersOutFailedTransforms() { - when(service.query(any())) - .thenReturn(ServiceResult.success(Stream.of(Asset.Builder.newInstance().build()))); + when(service.search(any())) + .thenReturn(ServiceResult.success(List.of(Asset.Builder.newInstance().build()))); when(transformerRegistry.transform(isA(JsonObject.class), eq(QuerySpec.class))) .thenReturn(Result.success(QuerySpec.Builder.newInstance().offset(10).build())); when(transformerRegistry.transform(isA(Asset.class), eq(JsonObject.class))) @@ -133,7 +133,7 @@ void requestAsset_filtersOutFailedTransforms() { @Test void requestAsset_shouldReturnBadRequest_whenQueryIsInvalid() { when(transformerRegistry.transform(any(JsonObject.class), eq(QuerySpec.class))).thenReturn(Result.success(QuerySpec.Builder.newInstance().build())); - when(service.query(any())).thenReturn(ServiceResult.badRequest("test-message")); + when(service.search(any())).thenReturn(ServiceResult.badRequest("test-message")); when(validator.validate(any(), any())).thenReturn(ValidationResult.success()); baseRequest() @@ -148,7 +148,7 @@ void requestAsset_shouldReturnBadRequest_whenQueryIsInvalid() { void requestAsset_shouldReturnBadRequest_whenQueryTransformFails() { when(transformerRegistry.transform(isA(JsonObject.class), eq(QuerySpec.class))) .thenReturn(Result.failure("error")); - when(service.query(any())).thenReturn(ServiceResult.success()); + when(service.search(any())).thenReturn(ServiceResult.success()); when(validator.validate(any(), any())).thenReturn(ValidationResult.success()); baseRequest() @@ -163,7 +163,7 @@ void requestAsset_shouldReturnBadRequest_whenQueryTransformFails() { void requestAsset_shouldReturnBadRequest_whenServiceReturnsBadRequest() { when(transformerRegistry.transform(isA(JsonObject.class), eq(QuerySpec.class))) .thenReturn(Result.success(QuerySpec.Builder.newInstance().build())); - when(service.query(any())).thenReturn(ServiceResult.badRequest()); + when(service.search(any())).thenReturn(ServiceResult.badRequest()); when(validator.validate(any(), any())).thenReturn(ValidationResult.success()); baseRequest() diff --git a/extensions/control-plane/api/management-api/contract-agreement-api/src/main/java/org/eclipse/edc/connector/api/management/contractagreement/ContractAgreementApiController.java b/extensions/control-plane/api/management-api/contract-agreement-api/src/main/java/org/eclipse/edc/connector/api/management/contractagreement/ContractAgreementApiController.java index 1d39faa06a6..acab4c52ec9 100644 --- a/extensions/control-plane/api/management-api/contract-agreement-api/src/main/java/org/eclipse/edc/connector/api/management/contractagreement/ContractAgreementApiController.java +++ b/extensions/control-plane/api/management-api/contract-agreement-api/src/main/java/org/eclipse/edc/connector/api/management/contractagreement/ContractAgreementApiController.java @@ -71,14 +71,12 @@ public JsonArray queryAllAgreements(JsonObject querySpecJson) { .orElseThrow(InvalidRequestException::new); } - try (var stream = service.query(querySpec).orElseThrow(exceptionMapper(ContractDefinition.class, null))) { - return stream - .map(it -> transformerRegistry.transform(it, JsonObject.class)) - .peek(r -> r.onFailure(f -> monitor.warning(f.getFailureDetail()))) - .filter(Result::succeeded) - .map(Result::getContent) - .collect(toJsonArray()); - } + return service.search(querySpec).orElseThrow(exceptionMapper(ContractDefinition.class, null)).stream() + .map(it -> transformerRegistry.transform(it, JsonObject.class)) + .peek(r -> r.onFailure(f -> monitor.warning(f.getFailureDetail()))) + .filter(Result::succeeded) + .map(Result::getContent) + .collect(toJsonArray()); } @GET diff --git a/extensions/control-plane/api/management-api/contract-agreement-api/src/test/java/org/eclipse/edc/connector/api/management/contractagreement/ContractAgreementApiControllerTest.java b/extensions/control-plane/api/management-api/contract-agreement-api/src/test/java/org/eclipse/edc/connector/api/management/contractagreement/ContractAgreementApiControllerTest.java index d0c1486d752..5cf03912ed1 100644 --- a/extensions/control-plane/api/management-api/contract-agreement-api/src/test/java/org/eclipse/edc/connector/api/management/contractagreement/ContractAgreementApiControllerTest.java +++ b/extensions/control-plane/api/management-api/contract-agreement-api/src/test/java/org/eclipse/edc/connector/api/management/contractagreement/ContractAgreementApiControllerTest.java @@ -35,10 +35,10 @@ import java.util.List; import java.util.UUID; -import java.util.stream.Stream; import static io.restassured.RestAssured.given; import static io.restassured.http.ContentType.JSON; +import static java.util.Collections.emptyList; import static java.util.UUID.randomUUID; import static org.eclipse.edc.spi.query.QuerySpec.EDC_QUERY_SPEC_TYPE; import static org.hamcrest.Matchers.equalTo; @@ -66,7 +66,7 @@ void queryAllAgreements_whenExists() { var expanded = Json.createObjectBuilder().build(); when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); when(transformerRegistry.transform(any(JsonObject.class), eq(QuerySpec.class))).thenReturn(Result.success(QuerySpec.none())); - when(service.query(any(QuerySpec.class))).thenReturn(ServiceResult.success(Stream.of(createContractAgreement("id1"), createContractAgreement("id2")))); + when(service.search(any(QuerySpec.class))).thenReturn(ServiceResult.success(List.of(createContractAgreement("id1"), createContractAgreement("id2")))); when(transformerRegistry.transform(any(ContractAgreement.class), eq(JsonObject.class))).thenReturn(Result.success(expanded)); baseRequest() @@ -79,7 +79,7 @@ void queryAllAgreements_whenExists() { verify(validatorRegistry).validate(eq(EDC_QUERY_SPEC_TYPE), any()); verify(transformerRegistry).transform(any(JsonObject.class), eq(QuerySpec.class)); - verify(service).query(any(QuerySpec.class)); + verify(service).search(any(QuerySpec.class)); verify(transformerRegistry, times(2)).transform(any(ContractAgreement.class), eq(JsonObject.class)); verifyNoMoreInteractions(service, transformerRegistry); } @@ -88,7 +88,7 @@ void queryAllAgreements_whenExists() { void queryAllAgreements_whenNoneExists() { when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); when(transformerRegistry.transform(any(JsonObject.class), eq(QuerySpec.class))).thenReturn(Result.success(QuerySpec.none())); - when(service.query(any(QuerySpec.class))).thenReturn(ServiceResult.success(Stream.of())); + when(service.search(any(QuerySpec.class))).thenReturn(ServiceResult.success(emptyList())); baseRequest() .contentType(JSON) @@ -99,7 +99,7 @@ void queryAllAgreements_whenNoneExists() { .body("size()", equalTo(0)); verify(transformerRegistry).transform(any(JsonObject.class), eq(QuerySpec.class)); - verify(service).query(any(QuerySpec.class)); + verify(service).search(any(QuerySpec.class)); verify(transformerRegistry, never()).transform(any(ContractAgreement.class), eq(JsonObject.class)); verifyNoMoreInteractions(service, transformerRegistry); } @@ -122,7 +122,7 @@ void queryAllAgreements_shouldReturnBadRequest_whenValidationFails() { void queryAllAgreements_whenTransformationFails() { when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); when(transformerRegistry.transform(any(JsonObject.class), eq(QuerySpec.class))).thenReturn(Result.success(QuerySpec.none())); - when(service.query(any(QuerySpec.class))).thenReturn(ServiceResult.success(Stream.of(createContractAgreement("id1"), createContractAgreement("id2")))); + when(service.search(any(QuerySpec.class))).thenReturn(ServiceResult.success(List.of(createContractAgreement("id1"), createContractAgreement("id2")))); when(transformerRegistry.transform(any(ContractAgreement.class), eq(JsonObject.class))).thenReturn(Result.failure("test-failure")); baseRequest() @@ -134,7 +134,7 @@ void queryAllAgreements_whenTransformationFails() { .body("size()", equalTo(0)); verify(transformerRegistry).transform(any(JsonObject.class), eq(QuerySpec.class)); - verify(service).query(any(QuerySpec.class)); + verify(service).search(any(QuerySpec.class)); verify(transformerRegistry, times(2)).transform(any(ContractAgreement.class), eq(JsonObject.class)); verify(monitor, times(2)).warning(eq("test-failure")); verifyNoMoreInteractions(service, transformerRegistry); diff --git a/extensions/control-plane/api/management-api/contract-definition-api/src/main/java/org/eclipse/edc/connector/api/management/contractdefinition/ContractDefinitionApiController.java b/extensions/control-plane/api/management-api/contract-definition-api/src/main/java/org/eclipse/edc/connector/api/management/contractdefinition/ContractDefinitionApiController.java index d74767480db..6c04868d682 100644 --- a/extensions/control-plane/api/management-api/contract-definition-api/src/main/java/org/eclipse/edc/connector/api/management/contractdefinition/ContractDefinitionApiController.java +++ b/extensions/control-plane/api/management-api/contract-definition-api/src/main/java/org/eclipse/edc/connector/api/management/contractdefinition/ContractDefinitionApiController.java @@ -75,14 +75,12 @@ public JsonArray queryAllContractDefinitions(JsonObject querySpecJson) { .orElseThrow(InvalidRequestException::new); } - try (var stream = service.query(querySpec).orElseThrow(exceptionMapper(ContractDefinition.class))) { - return stream - .map(contractDefinition -> transformerRegistry.transform(contractDefinition, JsonObject.class)) - .peek(r -> r.onFailure(f -> monitor.warning(f.getFailureDetail()))) - .filter(Result::succeeded) - .map(Result::getContent) - .collect(toJsonArray()); - } + return service.search(querySpec).orElseThrow(exceptionMapper(ContractDefinition.class)).stream() + .map(contractDefinition -> transformerRegistry.transform(contractDefinition, JsonObject.class)) + .peek(r -> r.onFailure(f -> monitor.warning(f.getFailureDetail()))) + .filter(Result::succeeded) + .map(Result::getContent) + .collect(toJsonArray()); } @GET diff --git a/extensions/control-plane/api/management-api/contract-definition-api/src/test/java/org/eclipse/edc/connector/api/management/contractdefinition/ContractDefinitionApiControllerTest.java b/extensions/control-plane/api/management-api/contract-definition-api/src/test/java/org/eclipse/edc/connector/api/management/contractdefinition/ContractDefinitionApiControllerTest.java index 0d24c68a767..35efa3f2c86 100644 --- a/extensions/control-plane/api/management-api/contract-definition-api/src/test/java/org/eclipse/edc/connector/api/management/contractdefinition/ContractDefinitionApiControllerTest.java +++ b/extensions/control-plane/api/management-api/contract-definition-api/src/test/java/org/eclipse/edc/connector/api/management/contractdefinition/ContractDefinitionApiControllerTest.java @@ -37,7 +37,6 @@ import org.junit.jupiter.params.provider.ValueSource; import java.util.List; -import java.util.stream.Stream; import static io.restassured.RestAssured.given; import static io.restassured.http.ContentType.JSON; @@ -73,7 +72,7 @@ class ContractDefinitionApiControllerTest extends RestControllerTestBase { @ValueSource(strings = { "", "{}" }) void queryAllContractDefinitions(String body) { when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); - when(service.query(any())).thenReturn(ServiceResult.success(Stream.of(createContractDefinition().build()))); + when(service.search(any())).thenReturn(ServiceResult.success(List.of(createContractDefinition().build()))); when(transformerRegistry.transform(any(JsonObject.class), eq(QuerySpec.class))).thenReturn(Result.success(QuerySpec.Builder.newInstance().build())); when(transformerRegistry.transform(any(ContractDefinition.class), eq(JsonObject.class))).thenReturn(Result.success(createExpandedJsonObject())); @@ -85,7 +84,7 @@ void queryAllContractDefinitions(String body) { .statusCode(200) .body("size()", greaterThan(0)); - verify(service).query(eq(QuerySpec.Builder.newInstance().build())); + verify(service).search(eq(QuerySpec.Builder.newInstance().build())); if (!body.isEmpty()) { verify(validatorRegistry).validate(eq(EDC_QUERY_SPEC_TYPE), any()); } @@ -109,7 +108,7 @@ void queryAll_shouldReturnBadRequest_whenValidationFails() { void queryAll_queryTransformationFails() { when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); when(transformerRegistry.transform(any(JsonObject.class), eq(QuerySpec.class))).thenReturn(Result.failure("test-failure")); - when(service.query(any())).thenReturn(ServiceResult.success(Stream.of(createContractDefinition().build()))); + when(service.search(any())).thenReturn(ServiceResult.success(List.of(createContractDefinition().build()))); baseRequest() .contentType(JSON) @@ -126,7 +125,7 @@ void queryAll_queryTransformationFails() { void queryAll_serviceBadRequest() { when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); when(transformerRegistry.transform(any(JsonObject.class), eq(QuerySpec.class))).thenReturn(Result.success(QuerySpec.Builder.newInstance().build())); - when(service.query(any())).thenReturn(ServiceResult.badRequest("test-message")); + when(service.search(any())).thenReturn(ServiceResult.badRequest("test-message")); var error = baseRequest() .contentType(JSON) @@ -141,7 +140,7 @@ void queryAll_serviceBadRequest() { assertThat(error.getMessage()).contains("test-message"); verify(transformerRegistry).transform(any(JsonObject.class), eq(QuerySpec.class)); - verify(service).query(eq(QuerySpec.Builder.newInstance().build())); + verify(service).search(eq(QuerySpec.Builder.newInstance().build())); verifyNoMoreInteractions(transformerRegistry); } diff --git a/extensions/control-plane/api/management-api/contract-negotiation-api/src/main/java/org/eclipse/edc/connector/api/management/contractnegotiation/ContractNegotiationApiController.java b/extensions/control-plane/api/management-api/contract-negotiation-api/src/main/java/org/eclipse/edc/connector/api/management/contractnegotiation/ContractNegotiationApiController.java index 21062203d52..3038fc02b9f 100644 --- a/extensions/control-plane/api/management-api/contract-negotiation-api/src/main/java/org/eclipse/edc/connector/api/management/contractnegotiation/ContractNegotiationApiController.java +++ b/extensions/control-plane/api/management-api/contract-negotiation-api/src/main/java/org/eclipse/edc/connector/api/management/contractnegotiation/ContractNegotiationApiController.java @@ -82,14 +82,12 @@ public JsonArray queryNegotiations(JsonObject querySpecJson) { .orElseThrow(InvalidRequestException::new); } - try (var stream = service.query(querySpec).orElseThrow(exceptionMapper(ContractNegotiation.class, null))) { - return stream - .map(it -> transformerRegistry.transform(it, JsonObject.class)) - .peek(this::logIfError) - .filter(Result::succeeded) - .map(Result::getContent) - .collect(toJsonArray()); - } + return service.search(querySpec).orElseThrow(exceptionMapper(ContractNegotiation.class, null)).stream() + .map(it -> transformerRegistry.transform(it, JsonObject.class)) + .peek(this::logIfError) + .filter(Result::succeeded) + .map(Result::getContent) + .collect(toJsonArray()); } @GET diff --git a/extensions/control-plane/api/management-api/contract-negotiation-api/src/test/java/org/eclipse/edc/connector/api/management/contractnegotiation/ContractNegotiationApiControllerTest.java b/extensions/control-plane/api/management-api/contract-negotiation-api/src/test/java/org/eclipse/edc/connector/api/management/contractnegotiation/ContractNegotiationApiControllerTest.java index 02fe385fafb..f566d077e85 100644 --- a/extensions/control-plane/api/management-api/contract-negotiation-api/src/test/java/org/eclipse/edc/connector/api/management/contractnegotiation/ContractNegotiationApiControllerTest.java +++ b/extensions/control-plane/api/management-api/contract-negotiation-api/src/test/java/org/eclipse/edc/connector/api/management/contractnegotiation/ContractNegotiationApiControllerTest.java @@ -40,7 +40,6 @@ import org.junit.jupiter.api.Test; import java.util.List; -import java.util.stream.Stream; import static io.restassured.RestAssured.given; import static io.restassured.http.ContentType.JSON; @@ -76,7 +75,7 @@ class ContractNegotiationApiControllerTest extends RestControllerTestBase { @Test void getAll() { - when(service.query(any(QuerySpec.class))).thenReturn(ServiceResult.success(Stream.of( + when(service.search(any(QuerySpec.class))).thenReturn(ServiceResult.success(List.of( createContractNegotiation("cn1"), createContractNegotiation("cn2") ))); @@ -94,7 +93,7 @@ void getAll() { .body("size()", is(2)); verifyNoInteractions(validatorRegistry); - verify(service).query(any(QuerySpec.class)); + verify(service).search(any(QuerySpec.class)); verify(transformerRegistry, times(2)).transform(any(ContractNegotiation.class), eq(JsonObject.class)); } @@ -116,7 +115,7 @@ void getAll_shouldReturnBadRequest_whenValidationFails() { @Test void getAll_queryTransformationFails() { when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); - when(service.query(any(QuerySpec.class))).thenReturn(ServiceResult.success(Stream.of( + when(service.search(any(QuerySpec.class))).thenReturn(ServiceResult.success(List.of( createContractNegotiation("cn1"), createContractNegotiation("cn2") ))); @@ -138,7 +137,7 @@ void getAll_queryTransformationFails() { @Test void getAll_dtoTransformationFails() { when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); - when(service.query(any(QuerySpec.class))).thenReturn(ServiceResult.success(Stream.of( + when(service.search(any(QuerySpec.class))).thenReturn(ServiceResult.success(List.of( createContractNegotiation("cn1"), createContractNegotiation("cn2") ))); @@ -153,12 +152,12 @@ void getAll_dtoTransformationFails() { .contentType(JSON) .body("size()", is(0)); - verify(service).query(any(QuerySpec.class)); + verify(service).search(any(QuerySpec.class)); } @Test void getAll_singleFailure_shouldLogError() { - when(service.query(any(QuerySpec.class))).thenReturn(ServiceResult.success(Stream.of( + when(service.search(any(QuerySpec.class))).thenReturn(ServiceResult.success(List.of( createContractNegotiation("cn1"), createContractNegotiation("cn2") ))); @@ -174,7 +173,7 @@ void getAll_singleFailure_shouldLogError() { .contentType(JSON) .body("size()", is(1)); - verify(service).query(any(QuerySpec.class)); + verify(service).search(any(QuerySpec.class)); verify(transformerRegistry, times(2)).transform(any(ContractNegotiation.class), eq(JsonObject.class)); verify(monitor).warning(contains("test-failure")); } @@ -182,7 +181,7 @@ void getAll_singleFailure_shouldLogError() { @Test void getAll_jsonObjectTransformationFails() { when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); - when(service.query(any(QuerySpec.class))).thenReturn(ServiceResult.success(Stream.of( + when(service.search(any(QuerySpec.class))).thenReturn(ServiceResult.success(List.of( createContractNegotiation("cn1"), createContractNegotiation("cn2") ))); @@ -200,7 +199,7 @@ void getAll_jsonObjectTransformationFails() { .contentType(JSON) .body("size()", is(0)); - verify(service).query(any(QuerySpec.class)); + verify(service).search(any(QuerySpec.class)); verify(transformerRegistry).transform(any(JsonObject.class), eq(QuerySpec.class)); verify(transformerRegistry, times(2)).transform(any(ContractNegotiation.class), eq(JsonObject.class)); } diff --git a/extensions/control-plane/api/management-api/policy-definition-api/src/main/java/org/eclipse/edc/connector/api/management/policy/PolicyDefinitionApiController.java b/extensions/control-plane/api/management-api/policy-definition-api/src/main/java/org/eclipse/edc/connector/api/management/policy/PolicyDefinitionApiController.java index 8cbde51da10..ddb97d21d0b 100644 --- a/extensions/control-plane/api/management-api/policy-definition-api/src/main/java/org/eclipse/edc/connector/api/management/policy/PolicyDefinitionApiController.java +++ b/extensions/control-plane/api/management-api/policy-definition-api/src/main/java/org/eclipse/edc/connector/api/management/policy/PolicyDefinitionApiController.java @@ -76,13 +76,11 @@ public JsonArray queryPolicyDefinitions(JsonObject querySpecJson) { .orElseThrow(InvalidRequestException::new); } - try (var stream = service.query(querySpec).orElseThrow(exceptionMapper(PolicyDefinition.class))) { - return stream - .map(policyDefinition -> transformerRegistry.transform(policyDefinition, JsonObject.class)) - .filter(Result::succeeded) - .map(Result::getContent) - .collect(toJsonArray()); - } + return service.search(querySpec).orElseThrow(exceptionMapper(PolicyDefinition.class)).stream() + .map(policyDefinition -> transformerRegistry.transform(policyDefinition, JsonObject.class)) + .filter(Result::succeeded) + .map(Result::getContent) + .collect(toJsonArray()); } @GET diff --git a/extensions/control-plane/api/management-api/policy-definition-api/src/test/java/org/eclipse/edc/connector/api/management/policy/PolicyDefinitionApiControllerTest.java b/extensions/control-plane/api/management-api/policy-definition-api/src/test/java/org/eclipse/edc/connector/api/management/policy/PolicyDefinitionApiControllerTest.java index 4c0aef11835..fc2ea375836 100644 --- a/extensions/control-plane/api/management-api/policy-definition-api/src/test/java/org/eclipse/edc/connector/api/management/policy/PolicyDefinitionApiControllerTest.java +++ b/extensions/control-plane/api/management-api/policy-definition-api/src/test/java/org/eclipse/edc/connector/api/management/policy/PolicyDefinitionApiControllerTest.java @@ -31,7 +31,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; -import java.util.stream.Stream; +import java.util.List; import static io.restassured.RestAssured.given; import static io.restassured.http.ContentType.JSON; @@ -319,13 +319,13 @@ void get_shouldReturnNotFound_whenTransformFails() { } @Test - void query_shouldReturnQueriedPolicyDefinitions() { + void search_shouldReturnQueriedPolicyDefinitions() { var querySpec = QuerySpec.none(); var policyDefinition = createPolicyDefinition().id("id").build(); var expandedResponseBody = Json.createObjectBuilder().add("id", "id").add("createdAt", 1234).build(); when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); when(transformerRegistry.transform(any(), eq(QuerySpec.class))).thenReturn(Result.success(querySpec)); - when(service.query(any())).thenReturn(ServiceResult.success(Stream.of(policyDefinition))); + when(service.search(any())).thenReturn(ServiceResult.success(List.of(policyDefinition))); when(transformerRegistry.transform(any(), eq(JsonObject.class))).thenReturn(Result.success(expandedResponseBody)); var requestBody = Json.createObjectBuilder().build(); @@ -343,12 +343,12 @@ void query_shouldReturnQueriedPolicyDefinitions() { verify(validatorRegistry).validate(eq(EDC_QUERY_SPEC_TYPE), any()); verify(transformerRegistry).transform(isA(JsonObject.class), eq(QuerySpec.class)); - verify(service).query(querySpec); + verify(service).search(querySpec); verify(transformerRegistry).transform(policyDefinition, JsonObject.class); } @Test - void query_shouldBadRequest_whenValidationFails() { + void search_shouldBadRequest_whenValidationFails() { when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.failure(violation("failure", "failure path"))); var requestBody = Json.createObjectBuilder().build(); @@ -365,7 +365,7 @@ void query_shouldBadRequest_whenValidationFails() { } @Test - void query_shouldReturn400_whenInvalidQuery() { + void search_shouldReturn400_whenInvalidQuery() { var requestBody = Json.createObjectBuilder() .add("offset", -1) .build(); @@ -387,7 +387,7 @@ void query_shouldReturn400_whenInvalidQuery() { } @Test - void query_shouldReturnBadRequest_whenQuerySpecTransformFails() { + void search_shouldReturnBadRequest_whenQuerySpecTransformFails() { var requestBody = Json.createObjectBuilder().build(); when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); when(transformerRegistry.transform(any(), eq(QuerySpec.class))).thenReturn(Result.failure("error")); @@ -404,11 +404,11 @@ void query_shouldReturnBadRequest_whenQuerySpecTransformFails() { } @Test - void query_shouldReturnBadRequest_whenServiceReturnsBadRequest() { + void search_shouldReturnBadRequest_whenServiceReturnsBadRequest() { var querySpec = QuerySpec.none(); when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); when(transformerRegistry.transform(any(), eq(QuerySpec.class))).thenReturn(Result.success(querySpec)); - when(service.query(any())).thenReturn(ServiceResult.badRequest("error")); + when(service.search(any())).thenReturn(ServiceResult.badRequest("error")); var requestBody = Json.createObjectBuilder().build(); given() @@ -422,12 +422,12 @@ void query_shouldReturnBadRequest_whenServiceReturnsBadRequest() { } @Test - void query_shouldFilterOutResults_whenTransformFails() { + void search_shouldFilterOutResults_whenTransformFails() { var querySpec = QuerySpec.none(); var policyDefinition = createPolicyDefinition().id("id").build(); when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); when(transformerRegistry.transform(any(), eq(QuerySpec.class))).thenReturn(Result.success(querySpec)); - when(service.query(any())).thenReturn(ServiceResult.success(Stream.of(policyDefinition))); + when(service.search(any())).thenReturn(ServiceResult.success(List.of(policyDefinition))); when(transformerRegistry.transform(any(), eq(JsonObject.class))).thenReturn(Result.failure("error")); var requestBody = Json.createObjectBuilder().build(); diff --git a/extensions/control-plane/api/management-api/transfer-process-api/src/main/java/org/eclipse/edc/connector/api/management/transferprocess/TransferProcessApiController.java b/extensions/control-plane/api/management-api/transfer-process-api/src/main/java/org/eclipse/edc/connector/api/management/transferprocess/TransferProcessApiController.java index 1ca1a30bbba..6cfe339ec91 100644 --- a/extensions/control-plane/api/management-api/transfer-process-api/src/main/java/org/eclipse/edc/connector/api/management/transferprocess/TransferProcessApiController.java +++ b/extensions/control-plane/api/management-api/transfer-process-api/src/main/java/org/eclipse/edc/connector/api/management/transferprocess/TransferProcessApiController.java @@ -82,14 +82,12 @@ public JsonArray queryTransferProcesses(JsonObject querySpecJson) { .orElseThrow(InvalidRequestException::new); } - try (var stream = service.query(querySpec).orElseThrow(exceptionMapper(TransferProcess.class))) { - return stream - .map(transferProcess -> transformerRegistry.transform(transferProcess, JsonObject.class) - .onFailure(f -> monitor.warning(f.getFailureDetail()))) - .filter(Result::succeeded) - .map(Result::getContent) - .collect(toJsonArray()); - } + return service.search(querySpec).orElseThrow(exceptionMapper(TransferProcess.class)).stream() + .map(transferProcess -> transformerRegistry.transform(transferProcess, JsonObject.class) + .onFailure(f -> monitor.warning(f.getFailureDetail()))) + .filter(Result::succeeded) + .map(Result::getContent) + .collect(toJsonArray()); } @GET diff --git a/extensions/control-plane/api/management-api/transfer-process-api/src/test/java/org/eclipse/edc/connector/api/management/transferprocess/TransferProcessApiControllerTest.java b/extensions/control-plane/api/management-api/transfer-process-api/src/test/java/org/eclipse/edc/connector/api/management/transferprocess/TransferProcessApiControllerTest.java index 0e18b76cacf..d226e8bd353 100644 --- a/extensions/control-plane/api/management-api/transfer-process-api/src/test/java/org/eclipse/edc/connector/api/management/transferprocess/TransferProcessApiControllerTest.java +++ b/extensions/control-plane/api/management-api/transfer-process-api/src/test/java/org/eclipse/edc/connector/api/management/transferprocess/TransferProcessApiControllerTest.java @@ -33,11 +33,12 @@ import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; +import java.util.List; import java.util.UUID; -import java.util.stream.Stream; import static io.restassured.RestAssured.given; import static io.restassured.http.ContentType.JSON; +import static java.util.Collections.emptyList; import static org.eclipse.edc.connector.api.management.transferprocess.model.TerminateTransfer.TERMINATE_TRANSFER_TYPE; import static org.eclipse.edc.connector.transfer.spi.types.TransferRequest.TRANSFER_REQUEST_TYPE; import static org.eclipse.edc.jsonld.spi.JsonLdKeywords.ID; @@ -133,14 +134,14 @@ void getState_shouldReturnNotFound_whenTransferProcessIsNotFound() { } @Test - void query_shouldReturnQueriedTransferProcesses() { + void search_shouldReturnQueriedTransferProcesses() { var querySpec = QuerySpec.none(); var expandedRequestBody = Json.createObjectBuilder().build(); var transferProcess = createTransferProcess().id("id").build(); var expandedResponseBody = Json.createObjectBuilder().add("id", "id").add("createdAt", 1234).build(); when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); when(transformerRegistry.transform(any(), eq(QuerySpec.class))).thenReturn(Result.success(querySpec)); - when(service.query(any())).thenReturn(ServiceResult.success(Stream.of(transferProcess))); + when(service.search(any())).thenReturn(ServiceResult.success(List.of(transferProcess))); when(transformerRegistry.transform(any(), eq(JsonObject.class))).thenReturn(Result.success(expandedResponseBody)); var requestBody = Json.createObjectBuilder().build(); @@ -156,14 +157,14 @@ void query_shouldReturnQueriedTransferProcesses() { .body("[0].id", is("id")) .body("[0].createdAt", is(1234)); verify(transformerRegistry).transform(expandedRequestBody, QuerySpec.class); - verify(service).query(querySpec); + verify(service).search(querySpec); verify(transformerRegistry).transform(transferProcess, JsonObject.class); } @Test - void query_shouldNotReturnError_whenEmptyBody() { + void search_shouldNotReturnError_whenEmptyBody() { var querySpec = QuerySpec.none(); - when(service.query(any())).thenReturn(ServiceResult.success(Stream.empty())); + when(service.search(any())).thenReturn(ServiceResult.success(emptyList())); given() .port(port) @@ -174,12 +175,12 @@ void query_shouldNotReturnError_whenEmptyBody() { .contentType(JSON) .body("size()", is(0)); - verify(service).query(querySpec); + verify(service).search(querySpec); verifyNoInteractions(validatorRegistry, transformerRegistry); } @Test - void query_shouldReturnBadRequest_whenValidationFails() { + void search_shouldReturnBadRequest_whenValidationFails() { when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.failure(violation("error", "path"))); var requestBody = Json.createObjectBuilder().build(); @@ -196,7 +197,7 @@ void query_shouldReturnBadRequest_whenValidationFails() { } @Test - void query_shouldReturn400_whenQuerySpecTransformFails() { + void search_shouldReturn400_whenQuerySpecTransformFails() { when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); when(transformerRegistry.transform(any(), eq(QuerySpec.class))).thenReturn(Result.failure("error")); var requestBody = Json.createObjectBuilder().build(); @@ -212,11 +213,11 @@ void query_shouldReturn400_whenQuerySpecTransformFails() { } @Test - void query_shouldReturnBadRequest_whenServiceReturnsBadRequest() { + void search_shouldReturnBadRequest_whenServiceReturnsBadRequest() { var querySpec = QuerySpec.none(); when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); when(transformerRegistry.transform(any(), eq(QuerySpec.class))).thenReturn(Result.success(querySpec)); - when(service.query(any())).thenReturn(ServiceResult.badRequest("error")); + when(service.search(any())).thenReturn(ServiceResult.badRequest("error")); var requestBody = Json.createObjectBuilder().build(); given() @@ -230,12 +231,12 @@ void query_shouldReturnBadRequest_whenServiceReturnsBadRequest() { } @Test - void query_shouldFilterOutResults_whenTransformFails() { + void search_shouldFilterOutResults_whenTransformFails() { var querySpec = QuerySpec.none(); var transferProcess = createTransferProcess().id("id").build(); when(validatorRegistry.validate(any(), any())).thenReturn(ValidationResult.success()); when(transformerRegistry.transform(any(), eq(QuerySpec.class))).thenReturn(Result.success(querySpec)); - when(service.query(any())).thenReturn(ServiceResult.success(Stream.of(transferProcess))); + when(service.search(any())).thenReturn(ServiceResult.success(List.of(transferProcess))); when(transformerRegistry.transform(any(), eq(JsonObject.class))).thenReturn(Result.failure("error")); var requestBody = Json.createObjectBuilder().build(); diff --git a/spi/common/core-spi/src/testFixtures/java/org/eclipse/edc/spi/testfixtures/asset/AssetIndexTestBase.java b/spi/common/core-spi/src/testFixtures/java/org/eclipse/edc/spi/testfixtures/asset/AssetIndexTestBase.java index 3af0790076e..4abb9f1e50e 100644 --- a/spi/common/core-spi/src/testFixtures/java/org/eclipse/edc/spi/testfixtures/asset/AssetIndexTestBase.java +++ b/spi/common/core-spi/src/testFixtures/java/org/eclipse/edc/spi/testfixtures/asset/AssetIndexTestBase.java @@ -318,7 +318,7 @@ void shouldFilterByNestedProperty() { @Test @DisplayName("Verify an asset query based on an Asset property, where the property value is actually a complex object") - void query_assetPropertyAsObject() { + void assetPropertyAsObject() { var nested = Map.of("text", "test123", "number", 42, "bool", false); var dataAddress = createDataAddress(); var asset = createAssetBuilder("id1") diff --git a/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/asset/AssetService.java b/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/asset/AssetService.java index d6b4246b505..7108adac17c 100644 --- a/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/asset/AssetService.java +++ b/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/asset/AssetService.java @@ -18,6 +18,8 @@ import org.eclipse.edc.spi.result.ServiceResult; import org.eclipse.edc.spi.types.domain.asset.Asset; +import java.util.Collection; +import java.util.List; import java.util.stream.Stream; public interface AssetService { @@ -30,13 +32,25 @@ public interface AssetService { */ Asset findById(String assetId); + /** + * Search Assets + * + * @param query the query + * @return the collection of assets that matches the query + */ + ServiceResult> search(QuerySpec query); + /** * Query assets * * @param query request * @return the collection of assets that matches the query + * @deprecated please use {@link #search(QuerySpec)} */ - ServiceResult> query(QuerySpec query); + @Deprecated(since = "0.4.1") + default ServiceResult> query(QuerySpec query) { + return search(query).map(Collection::stream); + } /** * Create an asset diff --git a/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/contractagreement/ContractAgreementService.java b/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/contractagreement/ContractAgreementService.java index 15d3917c7b0..926919f6267 100644 --- a/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/contractagreement/ContractAgreementService.java +++ b/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/contractagreement/ContractAgreementService.java @@ -19,6 +19,8 @@ import org.eclipse.edc.spi.result.ServiceResult; import org.eclipse.edc.spi.types.domain.agreement.ContractAgreement; +import java.util.Collection; +import java.util.List; import java.util.stream.Stream; /** @@ -34,13 +36,25 @@ public interface ContractAgreementService { */ ContractAgreement findById(String contractAgreementId); + /** + * Search contract agreements + * + * @param query request + * @return the collection of contract agreements that match the query + */ + ServiceResult> search(QuerySpec query); + /** * Query contract agreements * * @param query request * @return the collection of contract agreements that match the query + * @deprecated please use {{@link #search(QuerySpec)}} */ - ServiceResult> query(QuerySpec query); + @Deprecated(since = "0.4.1") + default ServiceResult> query(QuerySpec query) { + return search(query).map(Collection::stream); + } /** * Returns a contract negotiation by the agreement id. diff --git a/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/contractdefinition/ContractDefinitionService.java b/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/contractdefinition/ContractDefinitionService.java index bc8027b4ff0..aff4f56f302 100644 --- a/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/contractdefinition/ContractDefinitionService.java +++ b/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/contractdefinition/ContractDefinitionService.java @@ -18,6 +18,8 @@ import org.eclipse.edc.spi.query.QuerySpec; import org.eclipse.edc.spi.result.ServiceResult; +import java.util.Collection; +import java.util.List; import java.util.stream.Stream; /** @@ -33,13 +35,25 @@ public interface ContractDefinitionService { */ ContractDefinition findById(String contractDefinitionId); + /** + * Search contract definitions + * + * @param query request + * @return the collection of contract definitions that match the query + */ + ServiceResult> search(QuerySpec query); + /** * Query contract definitions * * @param query request * @return the collection of contract definitions that match the query + * @deprecated please use {@link #search(QuerySpec)} */ - ServiceResult> query(QuerySpec query); + @Deprecated(since = "0.4.1") + default ServiceResult> query(QuerySpec query) { + return search(query).map(Collection::stream); + } /** * Create a contract definition with its related data address. If a definition with the same id exists, returns diff --git a/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/contractnegotiation/ContractNegotiationService.java b/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/contractnegotiation/ContractNegotiationService.java index 461dd1e129a..f3540af1936 100644 --- a/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/contractnegotiation/ContractNegotiationService.java +++ b/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/contractnegotiation/ContractNegotiationService.java @@ -21,6 +21,8 @@ import org.eclipse.edc.spi.result.ServiceResult; import org.eclipse.edc.spi.types.domain.agreement.ContractAgreement; +import java.util.Collection; +import java.util.List; import java.util.stream.Stream; public interface ContractNegotiationService { @@ -33,13 +35,25 @@ public interface ContractNegotiationService { */ ContractNegotiation findbyId(String contractNegotiationId); + /** + * Search contract negotiations + * + * @param query request + * @return the collection of contract negotiations that match the query + */ + ServiceResult> search(QuerySpec query); + /** * Query contract negotiations * * @param query request * @return the collection of contract negotiations that match the query + * @deprecated please use {@link #search(QuerySpec)} */ - ServiceResult> query(QuerySpec query); + @Deprecated(since = "0.4.1") + default ServiceResult> query(QuerySpec query) { + return search(query).map(Collection::stream); + } /** * Get negotiation state diff --git a/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/policydefinition/PolicyDefinitionService.java b/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/policydefinition/PolicyDefinitionService.java index f38e90949e0..9a6ab17ef32 100644 --- a/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/policydefinition/PolicyDefinitionService.java +++ b/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/policydefinition/PolicyDefinitionService.java @@ -20,6 +20,8 @@ import org.eclipse.edc.spi.result.ServiceResult; import org.jetbrains.annotations.NotNull; +import java.util.Collection; +import java.util.List; import java.util.stream.Stream; /** @@ -38,13 +40,24 @@ public interface PolicyDefinitionService { PolicyDefinition findById(String policyId); /** - * Query policies + * Search policies * * @param query request * @return the stream of policies that match the query */ + ServiceResult> search(QuerySpec query); - ServiceResult> query(QuerySpec query); + /** + * Query policies + * + * @param query request + * @return the stream of policies that match the query + * @deprecated please use {@link #search(QuerySpec)} + */ + @Deprecated(since = "0.4.1") + default ServiceResult> query(QuerySpec query) { + return search(query).map(Collection::stream); + } /** * Delete a policy diff --git a/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/transferprocess/TransferProcessService.java b/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/transferprocess/TransferProcessService.java index b7205af33bc..3794cd5bf8e 100644 --- a/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/transferprocess/TransferProcessService.java +++ b/spi/control-plane/control-plane-spi/src/main/java/org/eclipse/edc/connector/spi/transferprocess/TransferProcessService.java @@ -25,6 +25,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.Collection; +import java.util.List; import java.util.stream.Stream; /** @@ -41,13 +43,25 @@ public interface TransferProcessService { @Nullable TransferProcess findById(String transferProcessId); + /** + * Search transferProcess. + * + * @param query request + * @return the collection of transferProcesses that match the query + */ + ServiceResult> search(QuerySpec query); + /** * Query transferProcess. * * @param query request * @return the collection of transferProcesses that match the query + * @deprecated please use {@link #search(QuerySpec)} */ - ServiceResult> query(QuerySpec query); + @Deprecated(since = "0.4.1") + default ServiceResult> query(QuerySpec query) { + return search(query).map(Collection::stream); + } /** * Returns the state of a transferProcess by its id. diff --git a/system-tests/management-api/management-api-test-runner/src/test/java/org/eclipse/edc/test/e2e/managementapi/TransferProcessApiEndToEndTest.java b/system-tests/management-api/management-api-test-runner/src/test/java/org/eclipse/edc/test/e2e/managementapi/TransferProcessApiEndToEndTest.java index c7cedd290f6..47d94e3c9e2 100644 --- a/system-tests/management-api/management-api-test-runner/src/test/java/org/eclipse/edc/test/e2e/managementapi/TransferProcessApiEndToEndTest.java +++ b/system-tests/management-api/management-api-test-runner/src/test/java/org/eclipse/edc/test/e2e/managementapi/TransferProcessApiEndToEndTest.java @@ -158,7 +158,7 @@ void terminate() { } @Test - void query_byState() throws JsonProcessingException { + void request_byState() throws JsonProcessingException { var state = DEPROVISIONED; var tp = createTransferProcessBuilder("test-tp")