Skip to content

Commit

Permalink
feat: inline dataloading (#1846)
Browse files Browse the repository at this point in the history
refactor: inline dataloading
  • Loading branch information
ndr-brt authored Aug 22, 2022
1 parent 483efc1 commit b2d488d
Show file tree
Hide file tree
Showing 72 changed files with 89 additions and 1,532 deletions.
2 changes: 0 additions & 2 deletions CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ styleguide.md @paullatzelsperger
/extensions/data-plane/ @bscholtes1A @jimmarino
/extensions/data-plane-selector/ @paullatzelsperger
/extensions/data-plane-transfer/ @bscholtes1A
/extensions/dataloading/ @paullatzelsperger
/extensions/events/ @ndr-brt
/extensions/filesystem/ @jimmarino @paullatzelsperger
/extensions/http/ @paullatzelsperger
Expand All @@ -65,7 +64,6 @@ styleguide.md @paullatzelsperger
/extensions/sql/ @bcronin90 @denisneuling @paullatzelsperger
/extensions/transaction/ @jimmarino

/launchers/data-loader-cli/ @paullatzelsperger @ronjaquensel
/launchers/data-plane-server/ @bscholtes1A
/launchers/dpf-selector/ @paullatzelsperger
/launchers/ids-connector/ @ronjaquensel
Expand Down
1 change: 0 additions & 1 deletion core/common/base/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ dependencies {
api(project(":spi:common:transaction-spi"))
implementation(project(":common:util"))
implementation(project(":core:common:policy-engine"))
implementation(project(":extensions:dataloading"))

api("com.squareup.okhttp3:okhttp:${okHttpVersion}")
api("dev.failsafe:failsafe:${failsafeVersion}")
Expand Down
1 change: 0 additions & 1 deletion core/control-plane/control-plane-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ dependencies {
api(project(":core:control-plane:contract"))
api(project(":core:control-plane:transfer"))
implementation(project(":common:util"))
implementation(project(":extensions:dataloading"))
}

publishing {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@
import org.eclipse.dataspaceconnector.core.controlplane.defaults.negotiationstore.InMemoryContractNegotiationStore;
import org.eclipse.dataspaceconnector.core.controlplane.defaults.policystore.InMemoryPolicyDefinitionStore;
import org.eclipse.dataspaceconnector.core.controlplane.defaults.transferprocessstore.InMemoryTransferProcessStore;
import org.eclipse.dataspaceconnector.dataloading.AssetLoader;
import org.eclipse.dataspaceconnector.dataloading.ContractDefinitionLoader;
import org.eclipse.dataspaceconnector.spi.asset.AssetIndex;
import org.eclipse.dataspaceconnector.spi.asset.AssetLoader;
import org.eclipse.dataspaceconnector.spi.asset.DataAddressResolver;
import org.eclipse.dataspaceconnector.spi.contract.negotiation.store.ContractNegotiationStore;
import org.eclipse.dataspaceconnector.spi.contract.offer.store.ContractDefinitionLoader;
import org.eclipse.dataspaceconnector.spi.contract.offer.store.ContractDefinitionStore;
import org.eclipse.dataspaceconnector.spi.policy.store.PolicyDefinitionStore;
import org.eclipse.dataspaceconnector.spi.system.Provider;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,13 @@
package org.eclipse.dataspaceconnector.core.controlplane.defaults.assetindex;

import org.eclipse.dataspaceconnector.common.collection.CollectionUtil;
import org.eclipse.dataspaceconnector.dataloading.AssetEntry;
import org.eclipse.dataspaceconnector.dataloading.AssetLoader;
import org.eclipse.dataspaceconnector.spi.asset.AssetIndex;
import org.eclipse.dataspaceconnector.spi.asset.AssetSelectorExpression;
import org.eclipse.dataspaceconnector.spi.asset.DataAddressResolver;
import org.eclipse.dataspaceconnector.spi.query.QuerySpec;
import org.eclipse.dataspaceconnector.spi.query.SortOrder;
import org.eclipse.dataspaceconnector.spi.types.domain.DataAddress;
import org.eclipse.dataspaceconnector.spi.types.domain.asset.Asset;
import org.eclipse.dataspaceconnector.spi.types.domain.asset.AssetEntry;
import org.jetbrains.annotations.Nullable;

import java.util.Collections;
Expand All @@ -41,7 +39,7 @@
/**
* An ephemeral asset index, that is also a DataAddressResolver and an AssetLoader
*/
public class InMemoryAssetIndex implements AssetIndex, DataAddressResolver, AssetLoader {
public class InMemoryAssetIndex implements AssetIndex {
private final Map<String, Asset> cache = new ConcurrentHashMap<>();
private final Map<String, DataAddress> dataAddresses = new ConcurrentHashMap<>();
private final AssetPredicateConverter predicateFactory;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@

package org.eclipse.dataspaceconnector.core.controlplane.defaults.assetindex;

import org.eclipse.dataspaceconnector.dataloading.AssetEntry;
import org.eclipse.dataspaceconnector.dataloading.AssetLoader;
import org.eclipse.dataspaceconnector.spi.asset.AssetLoader;
import org.eclipse.dataspaceconnector.spi.types.domain.DataAddress;
import org.eclipse.dataspaceconnector.spi.types.domain.asset.Asset;
import org.eclipse.dataspaceconnector.spi.types.domain.asset.AssetEntry;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@
import org.eclipse.dataspaceconnector.policy.model.Permission;
import org.eclipse.dataspaceconnector.policy.model.Policy;
import org.eclipse.dataspaceconnector.policy.model.PolicyType;
import org.eclipse.dataspaceconnector.spi.asset.AssetIndex;
import org.eclipse.dataspaceconnector.spi.asset.AssetSelectorExpression;
import org.eclipse.dataspaceconnector.spi.contract.negotiation.ContractNegotiationManager;
import org.eclipse.dataspaceconnector.spi.contract.offer.ContractOfferQuery;
import org.eclipse.dataspaceconnector.spi.contract.offer.ContractOfferService;
Expand All @@ -49,50 +47,24 @@
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Stream;

import static java.util.Collections.emptyList;

@Provides({ RemoteMessageDispatcherRegistry.class, AssetIndex.class, TransferProcessStore.class, ContractDefinitionStore.class, IdentityService.class, ContractNegotiationManager.class, FederatedCacheNodeDirectory.class })
@Provides({ RemoteMessageDispatcherRegistry.class, TransferProcessStore.class, ContractDefinitionStore.class, IdentityService.class, ContractNegotiationManager.class, FederatedCacheNodeDirectory.class })
public class FccTestExtension implements ServiceExtension {

@Override
public void initialize(ServiceExtensionContext context) {
List<Asset> assets = Collections.emptyList();
context.registerService(TransferProcessStore.class, new FakeTransferProcessStore());
context.registerService(RemoteMessageDispatcherRegistry.class, new FakeRemoteMessageDispatcherRegistry());
context.registerService(AssetIndex.class, new FakeAssetIndex(assets));
context.registerService(ContractOfferService.class, new FakeContractOfferService(assets));
context.registerService(ContractDefinitionStore.class, new FakeContractDefinitionStore());
context.registerService(FederatedCacheNodeDirectory.class, new InMemoryNodeDirectory());
}

private static class FakeAssetIndex implements AssetIndex {
private final List<Asset> assets;

private FakeAssetIndex(List<Asset> assets) {
this.assets = Objects.requireNonNull(assets);
}

@Override
public Stream<Asset> queryAssets(AssetSelectorExpression expression) {
return assets.stream();
}

@Override
public Stream<Asset> queryAssets(QuerySpec querySpec) {
throw new UnsupportedOperationException("Filtering/Paging not supported");
}

@Override
public Asset findById(String assetId) {
return assets.stream().filter(a -> a.getId().equals(assetId)).findFirst().orElse(null);
}

}

private static class FakeContractOfferService implements ContractOfferService {
private final List<Asset> assets;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,9 @@
import org.eclipse.dataspaceconnector.spi.system.ServiceExtension;
import org.eclipse.dataspaceconnector.spi.system.ServiceExtensionContext;
import org.eclipse.dataspaceconnector.spi.transfer.store.TransferProcessStore;
import org.eclipse.dataspaceconnector.spi.types.domain.DataAddress;
import org.eclipse.dataspaceconnector.spi.types.domain.asset.Asset;
import org.eclipse.dataspaceconnector.spi.types.domain.asset.AssetEntry;
import org.eclipse.dataspaceconnector.spi.types.domain.contract.agreement.ContractAgreement;
import org.eclipse.dataspaceconnector.spi.types.domain.contract.negotiation.ContractNegotiation;
import org.eclipse.dataspaceconnector.spi.types.domain.contract.negotiation.ContractNegotiationStates;
Expand Down Expand Up @@ -148,6 +150,20 @@ public Asset findById(String assetId) {
return assets.stream().filter(a -> a.getId().equals(assetId)).findFirst().orElse(null);
}

@Override
public void accept(AssetEntry item) {

}

@Override
public Asset deleteById(String assetId) {
return null;
}

@Override
public DataAddress resolveForAsset(String assetId) {
return null;
}
}

private static class FakeContractOfferService implements ContractOfferService {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import org.eclipse.dataspaceconnector.spi.transfer.store.TransferProcessStore;
import org.eclipse.dataspaceconnector.spi.types.domain.DataAddress;
import org.eclipse.dataspaceconnector.spi.types.domain.asset.Asset;
import org.eclipse.dataspaceconnector.spi.types.domain.asset.AssetEntry;
import org.eclipse.dataspaceconnector.spi.types.domain.contract.agreement.ContractAgreement;
import org.eclipse.dataspaceconnector.spi.types.domain.contract.offer.ContractDefinition;
import org.eclipse.dataspaceconnector.spi.types.domain.contract.offer.ContractOffer;
Expand Down Expand Up @@ -103,7 +104,7 @@ public Result<ClaimToken> verifyJwtToken(TokenRepresentation tokenRepresentation
}
}

private static class FakeAssetIndex implements AssetIndex, DataAddressResolver {
private static class FakeAssetIndex implements AssetIndex {
private final List<Asset> assets;

private FakeAssetIndex(List<Asset> assets) {
Expand Down Expand Up @@ -133,6 +134,16 @@ public DataAddress resolveForAsset(String assetId) {
}
return DataAddress.Builder.newInstance().type("test").build();
}

@Override
public Asset deleteById(String assetId) {
return null;
}

@Override
public void accept(AssetEntry item) {

}
}

private static class FakeTransferProcessStore implements TransferProcessStore {
Expand Down Expand Up @@ -220,6 +231,11 @@ public ContractDefinition deleteById(String id) {
public void reload() {
throw new NotImplementedError();
}

@Override
public void accept(ContractDefinition item) {

}
}

private static class FakeContractValidationService implements ContractValidationService {
Expand Down
2 changes: 0 additions & 2 deletions docs/developer/modules.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ org.eclipse.dataspaceconnector:common-util:0.0.1-SNAPSHOT
org.eclipse.dataspaceconnector:ids:0.0.1-SNAPSHOT
org.eclipse.dataspaceconnector:aws-s3:0.0.1-SNAPSHOT
org.eclipse.dataspaceconnector:data-plane-transfer:0.0.1-SNAPSHOT
org.eclipse.dataspaceconnector:dataloading:0.0.1-SNAPSHOT
org.eclipse.dataspaceconnector:hashicorp-vault:0.0.1-SNAPSHOT
org.eclipse.dataspaceconnector:http:0.0.1-SNAPSHOT
org.eclipse.dataspaceconnector:http-provisioner:0.0.1-SNAPSHOT
Expand All @@ -15,7 +14,6 @@ org.eclipse.dataspaceconnector:jdk-logger-monitor:0.0.1-SNAPSHOT
org.eclipse.dataspaceconnector:junit:0.0.1-SNAPSHOT
org.eclipse.dataspaceconnector:core-micrometer:0.0.1-SNAPSHOT
org.eclipse.dataspaceconnector:sql:0.0.1-SNAPSHOT
org.eclipse.dataspaceconnector:dataloader-cli:0.0.1-SNAPSHOT
org.eclipse.dataspaceconnector:data-plane-server:0.0.1-SNAPSHOT
org.eclipse.dataspaceconnector:module-domain:0.0.1-SNAPSHOT
org.eclipse.dataspaceconnector:module-processor:0.0.1-SNAPSHOT
Expand Down
5 changes: 0 additions & 5 deletions docs/overview/extensions.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
| :extensions:data-plane | Covers the Data Plane Framework (DPF), which is the entity in charge of performing the actual data transfer between consumer and provider. |
| :extensions:data-plane-selector | |
| :extensions:data-plane-transfer | Provides resources used to delegate data transfer to the Data Plane, or to use the Data Plane as a proxy for querying the data. |
| :extensions:dataloading | |
| :extensions:events | Provides a way to register endpoints where the domain events will be sent as soon as they occur. |
| :extensions:filesystem | |
| :extensions:http | |
Expand Down Expand Up @@ -88,10 +87,6 @@
| :data-plane-transfer-spi | | [link]({{extensions}}data-plane-transfer/data-plane-transfer-spi) |
| :data-plane-transfer-sync | | [link]({{extensions}}data-plane-transfer/data-plane-transfer-sync) |

## :extensions:dataloading

No submodules

## :extensions:events

| Module | Description | Details
Expand Down
11 changes: 5 additions & 6 deletions docs/overview/launchers.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# Launchers

| Module | Description | Details
| :----- | :---------- | :------ |
| :launchers:data-loader-cli | Demonstrates how the data loading extension can be used to load data from JSON files. | [link]({{launchers}}data-loader-cli) |
| :launchers:data-plane-server | | [link]({{launchers}}data-plane-server) |
| :launchers:dpf-selector | | [link]({{launchers}}dpf-selector) |
| :launchers:ids-connector | Includes all extensions that are required for an IDS Connector deployment. | [link]({{launchers}}ids-connector) |
| Module | Description | Details |
|:-----------------------------|:---------------------------------------------------------------------------|:---------------------------------------|
| :launchers:data-plane-server | | [link]({{launchers}}data-plane-server) |
| :launchers:dpf-selector | | [link]({{launchers}}dpf-selector) |
| :launchers:ids-connector | Includes all extensions that are required for an IDS Connector deployment. | [link]({{launchers}}ids-connector) |
2 changes: 1 addition & 1 deletion extensions/api/data-management/asset/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ plugins {
}

dependencies {
api(project(":spi:control-plane:control-plane-spi"))
api(project(":spi:common:transaction-spi"))
implementation(project(":extensions:api:api-core"))
implementation(project(":spi:common:auth-spi"))
implementation(project(":extensions:api:data-management:api-configuration"))
implementation(project(":extensions:dataloading"))

implementation("jakarta.ws.rs:jakarta.ws.rs-api:${rsApi}")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@
import org.eclipse.dataspaceconnector.api.datamanagement.asset.transform.DataAddressDtoToDataAddressTransformer;
import org.eclipse.dataspaceconnector.api.datamanagement.configuration.DataManagementApiConfiguration;
import org.eclipse.dataspaceconnector.api.transformer.DtoTransformerRegistry;
import org.eclipse.dataspaceconnector.dataloading.AssetLoader;
import org.eclipse.dataspaceconnector.spi.WebService;
import org.eclipse.dataspaceconnector.spi.asset.AssetIndex;
import org.eclipse.dataspaceconnector.spi.asset.AssetLoader;
import org.eclipse.dataspaceconnector.spi.contract.negotiation.store.ContractNegotiationStore;
import org.eclipse.dataspaceconnector.spi.event.EventRouter;
import org.eclipse.dataspaceconnector.spi.observe.asset.AssetObservableImpl;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
package org.eclipse.dataspaceconnector.api.datamanagement.asset.service;

import org.eclipse.dataspaceconnector.api.result.ServiceResult;
import org.eclipse.dataspaceconnector.dataloading.AssetLoader;
import org.eclipse.dataspaceconnector.spi.asset.AssetIndex;
import org.eclipse.dataspaceconnector.spi.asset.AssetLoader;
import org.eclipse.dataspaceconnector.spi.contract.negotiation.store.ContractNegotiationStore;
import org.eclipse.dataspaceconnector.spi.observe.asset.AssetObservable;
import org.eclipse.dataspaceconnector.spi.query.Criterion;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@
import org.eclipse.dataspaceconnector.api.datamanagement.asset.model.AssetEntryDto;
import org.eclipse.dataspaceconnector.api.datamanagement.asset.model.AssetRequestDto;
import org.eclipse.dataspaceconnector.api.datamanagement.asset.model.DataAddressDto;
import org.eclipse.dataspaceconnector.dataloading.AssetLoader;
import org.eclipse.dataspaceconnector.junit.extensions.EdcExtension;
import org.eclipse.dataspaceconnector.policy.model.Policy;
import org.eclipse.dataspaceconnector.spi.asset.AssetIndex;
import org.eclipse.dataspaceconnector.spi.asset.AssetLoader;
import org.eclipse.dataspaceconnector.spi.contract.negotiation.store.ContractNegotiationStore;
import org.eclipse.dataspaceconnector.spi.types.domain.DataAddress;
import org.eclipse.dataspaceconnector.spi.types.domain.asset.Asset;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@

package org.eclipse.dataspaceconnector.api.datamanagement.asset.service;

import org.eclipse.dataspaceconnector.dataloading.AssetLoader;
import org.eclipse.dataspaceconnector.policy.model.Policy;
import org.eclipse.dataspaceconnector.spi.asset.AssetIndex;
import org.eclipse.dataspaceconnector.spi.asset.AssetLoader;
import org.eclipse.dataspaceconnector.spi.contract.negotiation.store.ContractNegotiationStore;
import org.eclipse.dataspaceconnector.spi.observe.asset.AssetObservable;
import org.eclipse.dataspaceconnector.spi.query.QuerySpec;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ plugins {
}

dependencies {
api(project(":spi:control-plane:control-plane-spi"))
api(project(":spi:common:transaction-spi"))
implementation(project(":extensions:api:api-core"))
implementation(project(":spi:common:auth-spi"))
implementation(project(":extensions:api:data-management:api-configuration"))
implementation(project(":extensions:dataloading"))

implementation("jakarta.ws.rs:jakarta.ws.rs-api:${rsApi}")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
import org.eclipse.dataspaceconnector.api.datamanagement.contractdefinition.transform.ContractDefinitionRequestDtoToContractDefinitionTransformer;
import org.eclipse.dataspaceconnector.api.datamanagement.contractdefinition.transform.ContractDefinitionToContractDefinitionResponseDtoTransformer;
import org.eclipse.dataspaceconnector.api.transformer.DtoTransformerRegistry;
import org.eclipse.dataspaceconnector.dataloading.ContractDefinitionLoader;
import org.eclipse.dataspaceconnector.spi.WebService;
import org.eclipse.dataspaceconnector.spi.contract.definition.observe.ContractDefinitionObservableImpl;
import org.eclipse.dataspaceconnector.spi.contract.offer.store.ContractDefinitionLoader;
import org.eclipse.dataspaceconnector.spi.contract.offer.store.ContractDefinitionStore;
import org.eclipse.dataspaceconnector.spi.event.EventRouter;
import org.eclipse.dataspaceconnector.spi.system.Inject;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
package org.eclipse.dataspaceconnector.api.datamanagement.contractdefinition.service;

import org.eclipse.dataspaceconnector.api.result.ServiceResult;
import org.eclipse.dataspaceconnector.dataloading.ContractDefinitionLoader;
import org.eclipse.dataspaceconnector.spi.contract.definition.observe.ContractDefinitionObservable;
import org.eclipse.dataspaceconnector.spi.contract.offer.store.ContractDefinitionLoader;
import org.eclipse.dataspaceconnector.spi.contract.offer.store.ContractDefinitionStore;
import org.eclipse.dataspaceconnector.spi.query.QuerySpec;
import org.eclipse.dataspaceconnector.spi.query.QueryValidator;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@

import io.restassured.specification.RequestSpecification;
import org.eclipse.dataspaceconnector.api.datamanagement.contractdefinition.model.ContractDefinitionResponseDto;
import org.eclipse.dataspaceconnector.dataloading.ContractDefinitionLoader;
import org.eclipse.dataspaceconnector.junit.extensions.EdcExtension;
import org.eclipse.dataspaceconnector.spi.asset.AssetSelectorExpression;
import org.eclipse.dataspaceconnector.spi.contract.offer.store.ContractDefinitionLoader;
import org.eclipse.dataspaceconnector.spi.contract.offer.store.ContractDefinitionStore;
import org.eclipse.dataspaceconnector.spi.query.QuerySpec;
import org.eclipse.dataspaceconnector.spi.types.domain.contract.offer.ContractDefinition;
Expand Down
Loading

0 comments on commit b2d488d

Please sign in to comment.