Skip to content

Commit

Permalink
fix: Fix compilation with EDC version 0.1.3 (#162)
Browse files Browse the repository at this point in the history
Fix compilation with EDC version 0.1.3
  • Loading branch information
bscholtes1A authored Jul 7, 2023
1 parent 27470f4 commit d02cfe4
Show file tree
Hide file tree
Showing 6 changed files with 99 additions and 46 deletions.
8 changes: 4 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
version=0.1.2
version=0.1.3
group=org.eclipse.edc
edcGradlePluginsVersion=0.1.2
annotationProcessorVersion=0.1.2
metaModelVersion=0.1.2
edcGradlePluginsVersion=0.1.3
annotationProcessorVersion=0.1.3
metaModelVersion=0.1.3
37 changes: 17 additions & 20 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@
format.version = "1.1"

[versions]
edc = "0.1.2"
identityHub = "0.1.3"
federatedCatalog = "0.1.2"
registrationService = "0.1.3"
edc = "0.1.3"

assertj = "3.24.2"
awaitility = "4.2.0"
Expand Down Expand Up @@ -50,24 +47,24 @@ edc-ext-dpf-selector-client = { module = "org.eclipse.edc:data-plane-selector-cl
edc-ext-dpf-selector-api = { module = "org.eclipse.edc:data-plane-selector-api", version.ref = "edc" }
edc-ext-transfer-dpf = { module = "org.eclipse.edc:transfer-data-plane", version.ref = "edc" }
#
ih-spi-core = { module = "org.eclipse.edc:identity-hub-spi", version.ref = "identityHub" }
ih-core = { module = "org.eclipse.edc:identity-hub", version.ref = "identityHub" }
ih-core-client = { module = "org.eclipse.edc:identity-hub-client", version.ref = "identityHub" }
ih-core-verifier = { module = "org.eclipse.edc:identity-hub-credentials-verifier", version.ref = "identityHub" }
ih-ext-api = { module = "org.eclipse.edc:identity-hub-api", version.ref = "identityHub" }
ih-ext-verifier-jwt = { module = "org.eclipse.edc:identity-hub-verifier-jwt", version.ref = "identityHub" }
ih-ext-credentials-jwt = { module = "org.eclipse.edc:identity-hub-credentials-jwt", version.ref = "identityHub" }
ih-ext-api-selfdescription = { module = "org.eclipse.edc:self-description-api", version.ref = "identityHub" }
ih-spi-core = { module = "org.eclipse.edc:identity-hub-spi", version.ref = "edc" }
ih-core = { module = "org.eclipse.edc:identity-hub", version.ref = "edc" }
ih-core-client = { module = "org.eclipse.edc:identity-hub-client", version.ref = "edc" }
ih-core-verifier = { module = "org.eclipse.edc:identity-hub-credentials-verifier", version.ref = "edc" }
ih-ext-api = { module = "org.eclipse.edc:identity-hub-api", version.ref = "edc" }
ih-ext-verifier-jwt = { module = "org.eclipse.edc:identity-hub-verifier-jwt", version.ref = "edc" }
ih-ext-credentials-jwt = { module = "org.eclipse.edc:identity-hub-credentials-jwt", version.ref = "edc" }
ih-ext-api-selfdescription = { module = "org.eclipse.edc:self-description-api", version.ref = "edc" }
#
fc-spi-core = { module = "org.eclipse.edc:federated-catalog-spi", version.ref = "federatedCatalog" }
fc-core = { module = "org.eclipse.edc:federated-catalog-core", version.ref = "federatedCatalog" }
fc-ext-api = { module = "org.eclipse.edc:federated-catalog-api", version.ref = "federatedCatalog" }
fc-spi-core = { module = "org.eclipse.edc:federated-catalog-spi", version.ref = "edc" }
fc-core = { module = "org.eclipse.edc:federated-catalog-core", version.ref = "edc" }
fc-ext-api = { module = "org.eclipse.edc:federated-catalog-api", version.ref = "edc" }
#
rs-spi-core = { module = "org.eclipse.edc:registration-service-spi", version.ref = "registrationService" }
rs-core = { module = "org.eclipse.edc:registration-service", version.ref = "registrationService" }
rs-core-credential-service = { module = "org.eclipse.edc:registration-service-credential-service", version.ref = "registrationService" }
rs-core-client = { module = "org.eclipse.edc:registration-service-client", version.ref = "registrationService" }
rs-ext-api = { module = "org.eclipse.edc:registration-service-api", version.ref = "registrationService" }
rs-spi-core = { module = "org.eclipse.edc:registration-service-spi", version.ref = "edc" }
rs-core = { module = "org.eclipse.edc:registration-service", version.ref = "edc" }
rs-core-credential-service = { module = "org.eclipse.edc:registration-service-credential-service", version.ref = "edc" }
rs-core-client = { module = "org.eclipse.edc:registration-service-client", version.ref = "edc" }
rs-ext-api = { module = "org.eclipse.edc:registration-service-api", version.ref = "edc" }

assertj = { module = "org.assertj:assertj-core", version.ref = "assertj" }
awaitility = { module = "org.awaitility:awaitility", version.ref = "awaitility" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,38 +14,87 @@

package org.eclipse.edc.system.tests.catalog;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import io.restassured.http.ContentType;
import jakarta.json.Json;
import jakarta.json.JsonBuilderFactory;
import org.eclipse.edc.catalog.spi.Catalog;
import org.eclipse.edc.catalog.spi.model.FederatedCatalogCacheQuery;
import org.eclipse.edc.connector.core.transform.TypeTransformerRegistryImpl;
import org.eclipse.edc.jsonld.TitaniumJsonLd;
import org.eclipse.edc.jsonld.spi.JsonLd;
import org.eclipse.edc.jsonld.transformer.from.JsonObjectFromCatalogTransformer;
import org.eclipse.edc.jsonld.transformer.from.JsonObjectFromDataServiceTransformer;
import org.eclipse.edc.jsonld.transformer.from.JsonObjectFromDatasetTransformer;
import org.eclipse.edc.jsonld.transformer.from.JsonObjectFromDistributionTransformer;
import org.eclipse.edc.jsonld.transformer.from.JsonObjectFromPolicyTransformer;
import org.eclipse.edc.jsonld.transformer.to.JsonObjectToActionTransformer;
import org.eclipse.edc.jsonld.transformer.to.JsonObjectToCatalogTransformer;
import org.eclipse.edc.jsonld.transformer.to.JsonObjectToConstraintTransformer;
import org.eclipse.edc.jsonld.transformer.to.JsonObjectToDataServiceTransformer;
import org.eclipse.edc.jsonld.transformer.to.JsonObjectToDatasetTransformer;
import org.eclipse.edc.jsonld.transformer.to.JsonObjectToDistributionTransformer;
import org.eclipse.edc.jsonld.transformer.to.JsonObjectToOperatorTransformer;
import org.eclipse.edc.jsonld.transformer.to.JsonObjectToPermissionTransformer;
import org.eclipse.edc.jsonld.transformer.to.JsonObjectToPolicyTransformer;
import org.eclipse.edc.jsonld.transformer.to.JsonValueToGenericTypeTransformer;
import org.eclipse.edc.jsonld.util.JacksonJsonLd;
import org.eclipse.edc.junit.annotations.EndToEndTest;
import org.eclipse.edc.policy.model.PolicyRegistrationTypes;
import org.eclipse.edc.spi.types.TypeManager;
import org.eclipse.edc.spi.monitor.Monitor;
import org.eclipse.edc.spi.types.domain.asset.Asset;
import org.junit.jupiter.api.BeforeAll;
import org.eclipse.edc.transform.spi.TypeTransformerRegistry;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import java.time.Duration;
import java.util.List;
import java.util.Map;

import static io.restassured.RestAssured.given;
import static org.assertj.core.api.Assertions.assertThat;
import static org.awaitility.Awaitility.await;
import static org.eclipse.edc.system.tests.utils.TestUtils.requiredPropOrEnv;
import static org.mockito.Mockito.mock;

@EndToEndTest
class CatalogClientTest {

private static final String CONSUMER_EU_CATALOG_URL = requiredPropOrEnv("CONSUMER_EU_CATALOG_URL", "http://localhost:9192/api/management/federatedcatalog");
private static final String CONSUMER_US_CATALOG_URL = requiredPropOrEnv("CONSUMER_US_CATALOG_URL", "http://localhost:9193/api/management/federatedcatalog");
private static final String API_MANAGEMENT_AUTH_HEADER_KEY = "X-Api-Key";
private static final String API_MANAGEMENT_AUTH_HEADER_CODE = "ApiKeyDefaultValue";
private static final String NON_RESTRICTED_ASSET_PREFIX = "test-document_";
private static final String RESTRICTED_ASSET_PREFIX = "test-document-2_";
private static final Duration TEST_POLL_INTERVAL = Duration.ofMillis(250);
private static final Duration TEST_TIMEOUT = Duration.ofSeconds(20);

private static final TypeManager TYPE_MANAGER = new TypeManager();
private final TypeTransformerRegistry typeTransformerRegistry = new TypeTransformerRegistryImpl();
private final ObjectMapper mapper = JacksonJsonLd.createObjectMapper();
private final JsonLd jsonLd = new TitaniumJsonLd(mock(Monitor.class));

@BeforeAll
static void setUp() {
PolicyRegistrationTypes.TYPES.forEach(TYPE_MANAGER::registerTypes);
@BeforeEach
public void setUp() {
//needed for ZonedDateTime
mapper.registerModule(new JavaTimeModule());
JsonBuilderFactory factory = Json.createBuilderFactory(Map.of());
typeTransformerRegistry.register(new JsonObjectFromCatalogTransformer(factory, mapper));
typeTransformerRegistry.register(new JsonObjectFromDatasetTransformer(factory, mapper));
typeTransformerRegistry.register(new JsonObjectFromDataServiceTransformer(factory));
typeTransformerRegistry.register(new JsonObjectFromPolicyTransformer(factory));
typeTransformerRegistry.register(new JsonObjectFromDistributionTransformer(factory));
typeTransformerRegistry.register(new JsonObjectToCatalogTransformer());
typeTransformerRegistry.register(new JsonObjectToDatasetTransformer());
typeTransformerRegistry.register(new JsonObjectToDataServiceTransformer());
typeTransformerRegistry.register(new JsonObjectToPolicyTransformer());
typeTransformerRegistry.register(new JsonObjectToPermissionTransformer());
typeTransformerRegistry.register(new JsonObjectToConstraintTransformer());
typeTransformerRegistry.register(new JsonObjectToOperatorTransformer());
typeTransformerRegistry.register(new JsonObjectToActionTransformer());
typeTransformerRegistry.register(new JsonObjectToDistributionTransformer());
typeTransformerRegistry.register(new JsonValueToGenericTypeTransformer(mapper));
}

@Test
Expand All @@ -56,6 +105,7 @@ void containsOnlyNonRestrictedAsset() {
var datasets = getFederatedCatalog(CONSUMER_US_CATALOG_URL).stream()
.flatMap(catalog -> catalog.getDatasets().stream())
.toList();

assertThat(datasets)
.isNotEmpty()
.allSatisfy(dataset -> assertThat(dataset.getProperty(Asset.PROPERTY_ID))
Expand Down Expand Up @@ -84,16 +134,27 @@ void containsAllAssets() {
}

private List<Catalog> getFederatedCatalog(String consumerCatalogUrl) {
var typeReference = new TypeReference<List<Map<String, Object>>>() {
};

var nodesJson = given()
.contentType("application/json")
.header("X-Api-Key", "ApiKeyDefaultValue")
.contentType(ContentType.JSON)
.header(API_MANAGEMENT_AUTH_HEADER_KEY, API_MANAGEMENT_AUTH_HEADER_CODE)
.body(FederatedCatalogCacheQuery.Builder.newInstance().build())
.when()
.post(consumerCatalogUrl)
.then()
.statusCode(200)
.extract().body().asString();
return TYPE_MANAGER.readValue(nodesJson, new TypeReference<>() {
});

try {
var list = mapper.readValue(nodesJson, typeReference);
return list.stream().map(m -> {
var jsonObj = jsonLd.expand(Json.createObjectBuilder(m).build()).getContent();
return typeTransformerRegistry.transform(jsonObj, Catalog.class).getContent();
}).toList();
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import static org.eclipse.edc.jsonld.spi.JsonLdKeywords.TYPE;
import static org.eclipse.edc.spi.CoreConstants.EDC_NAMESPACE;
import static org.eclipse.edc.spi.CoreConstants.EDC_PREFIX;
import static org.eclipse.edc.system.tests.local.TransferLocalSimulation.PROVIDER_ID;


public class BlobTransferRequestFactory implements TransferRequestFactory {
Expand Down Expand Up @@ -52,7 +53,8 @@ public String apply(TransferInitiationData transferInitiationData) {
"protocol", "dataspace-protocol-http",
"assetId", transferInitiationData.getAssetId(),
"contractId", transferInitiationData.getContractAgreementId(),
"connectorAddress", transferInitiationData.getProviderDspUrl()
"connectorAddress", transferInitiationData.getProviderDspUrl(),
"connectorId", PROVIDER_ID
);

return new TypeManager().writeValueAsString(request);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,11 @@ public class TransferInitiationData {
private final String providerDspUrl;
private final String assetId;
private final String contractAgreementId;
private final String connectorAddress;

TransferInitiationData(String providerDspUrl, String assetId, String contractAgreementId, String connectorAddress) {
TransferInitiationData(String providerDspUrl, String assetId, String contractAgreementId) {
this.providerDspUrl = providerDspUrl;
this.assetId = assetId;
this.contractAgreementId = contractAgreementId;
this.connectorAddress = connectorAddress;
}

public String getProviderDspUrl() {
Expand All @@ -38,8 +36,4 @@ public String getAssetId() {
public String getContractAgreementId() {
return contractAgreementId;
}

public String getConnectorAddress() {
return connectorAddress;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public abstract class TransferSimulationUtils {
public static final String TRANSFER_SUCCESSFUL = "Transfer successful";

// Related to Postman seed data
public static final ContractId CONTRACT_DEFINITION_ID = ContractId.parse("def-test-document_company1:test-document_company1:80b11cb8-dafa-4152-be41-e51461dffa7a");
public static final ContractId CONTRACT_DEFINITION_ID = ContractId.create("def-test-document_company1", "test-document_company1");

private TransferSimulationUtils() {
}
Expand Down Expand Up @@ -134,8 +134,7 @@ private static HttpRequestActionBuilder initiateTransfer(TransferRequestFactory
.body(StringBody(session -> requestFactory.apply(new TransferInitiationData(
providerDspUrl,
CONTRACT_DEFINITION_ID.assetIdPart(),
session.getString(CONTRACT_AGREEMENT_ID),
providerDspUrl))))
session.getString(CONTRACT_AGREEMENT_ID)))))
.asJson()
.check(status().is(200))
.check(jsonPath("$.@id")
Expand Down

0 comments on commit d02cfe4

Please sign in to comment.