diff --git a/advanced/advanced-01-open-telemetry/open-telemetry-runtime/build.gradle.kts b/advanced/advanced-01-open-telemetry/open-telemetry-runtime/build.gradle.kts index d114107c..1d7b2189 100644 --- a/advanced/advanced-01-open-telemetry/open-telemetry-runtime/build.gradle.kts +++ b/advanced/advanced-01-open-telemetry/open-telemetry-runtime/build.gradle.kts @@ -27,7 +27,7 @@ dependencies { runtimeOnly(libs.edc.bom.dataplane.base) implementation(libs.edc.iam.mock) - implementation(libs.edc.data.plane.public.api) + implementation(libs.edc.data.plane.spi) implementation(libs.opentelemetry.exporter.otlp) runtimeOnly(libs.edc.monitor.jdk.logger) } @@ -36,7 +36,7 @@ application { mainClass.set("org.eclipse.edc.boot.system.runtime.BaseRuntime") } -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("connector.jar") duplicatesStrategy = DuplicatesStrategy.INCLUDE diff --git a/advanced/advanced-01-open-telemetry/open-telemetry-runtime/src/main/java/org/eclipse/edc/sample/runtime/DummyEndpointGeneratorFunctionExtension.java b/advanced/advanced-01-open-telemetry/open-telemetry-runtime/src/main/java/org/eclipse/edc/sample/runtime/DummyEndpointGeneratorFunctionExtension.java new file mode 100644 index 00000000..6a8a3011 --- /dev/null +++ b/advanced/advanced-01-open-telemetry/open-telemetry-runtime/src/main/java/org/eclipse/edc/sample/runtime/DummyEndpointGeneratorFunctionExtension.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2026 Cofinity-X + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0 + * + * SPDX-License-Identifier: Apache-2.0 + * + * Contributors: + * Cofinity-X - initial API and implementation + * + */ + +package org.eclipse.edc.sample.runtime; + +import org.eclipse.edc.connector.dataplane.spi.Endpoint; +import org.eclipse.edc.connector.dataplane.spi.iam.PublicEndpointGeneratorService; +import org.eclipse.edc.runtime.metamodel.annotation.Inject; +import org.eclipse.edc.spi.system.ServiceExtension; +import org.eclipse.edc.spi.system.ServiceExtensionContext; + +public class DummyEndpointGeneratorFunctionExtension implements ServiceExtension { + + @Inject + private PublicEndpointGeneratorService publicEndpointGeneratorService; + + @Override + public void initialize(ServiceExtensionContext context) { + publicEndpointGeneratorService.addGeneratorFunction("HttpData", e -> Endpoint.url("http://localhost/dummy")); + } +} diff --git a/advanced/advanced-01-open-telemetry/open-telemetry-runtime/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension b/advanced/advanced-01-open-telemetry/open-telemetry-runtime/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension index eaca6845..cd44bda7 100644 --- a/advanced/advanced-01-open-telemetry/open-telemetry-runtime/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension +++ b/advanced/advanced-01-open-telemetry/open-telemetry-runtime/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension @@ -1 +1,2 @@ +org.eclipse.edc.sample.runtime.DummyEndpointGeneratorFunctionExtension org.eclipse.edc.sample.runtime.SeedVaultExtension diff --git a/advanced/advanced-02-custom-runtime/build.gradle.kts b/advanced/advanced-02-custom-runtime/build.gradle.kts index 74a5f84f..e8362f44 100644 --- a/advanced/advanced-02-custom-runtime/build.gradle.kts +++ b/advanced/advanced-02-custom-runtime/build.gradle.kts @@ -33,7 +33,7 @@ application { var distTar = tasks.getByName("distTar") var distZip = tasks.getByName("distZip") -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("custom-runtime.jar") dependsOn(distTar, distZip) diff --git a/basic/basic-01-basic-connector/build.gradle.kts b/basic/basic-01-basic-connector/build.gradle.kts index 8a5658d5..5842c8c0 100644 --- a/basic/basic-01-basic-connector/build.gradle.kts +++ b/basic/basic-01-basic-connector/build.gradle.kts @@ -30,7 +30,7 @@ application { mainClass.set("org.eclipse.edc.boot.system.runtime.BaseRuntime") } -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("basic-connector.jar") duplicatesStrategy = DuplicatesStrategy.INCLUDE diff --git a/basic/basic-02-health-endpoint/build.gradle.kts b/basic/basic-02-health-endpoint/build.gradle.kts index 3aac2ee8..7e7c3b35 100644 --- a/basic/basic-02-health-endpoint/build.gradle.kts +++ b/basic/basic-02-health-endpoint/build.gradle.kts @@ -33,7 +33,7 @@ application { mainClass.set("org.eclipse.edc.boot.system.runtime.BaseRuntime") } -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("connector-health.jar") duplicatesStrategy = DuplicatesStrategy.INCLUDE diff --git a/basic/basic-03-configuration/build.gradle.kts b/basic/basic-03-configuration/build.gradle.kts index 3220188f..f85889ba 100644 --- a/basic/basic-03-configuration/build.gradle.kts +++ b/basic/basic-03-configuration/build.gradle.kts @@ -36,7 +36,7 @@ application { mainClass.set("org.eclipse.edc.boot.system.runtime.BaseRuntime") } -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("filesystem-config-connector.jar") duplicatesStrategy = DuplicatesStrategy.INCLUDE diff --git a/federated-catalog/fc-00-basic/README.md b/federated-catalog/fc-00-basic/README.md index 8dca991d..95eecf0e 100644 --- a/federated-catalog/fc-00-basic/README.md +++ b/federated-catalog/fc-00-basic/README.md @@ -17,9 +17,7 @@ essential for FC, without any additional functionality. ```shell ... dependencies { - implementation(libs.edc.fc.spi.crawler) - runtimeOnly(libs.fc.core) - runtimeOnly(libs.fc.ext.api) + runtimeOnly(libs.edc.federatedcatalog.base.bom) } ... ``` diff --git a/federated-catalog/fc-00-basic/fixed-node-resolver/src/main/java/org/eclipse/edc/sample/extension/fc/CatalogNodeDirectory.java b/federated-catalog/fc-00-basic/fixed-node-resolver/src/main/java/org/eclipse/edc/sample/extension/fc/CatalogNodeDirectory.java index 944226db..0423cedc 100644 --- a/federated-catalog/fc-00-basic/fixed-node-resolver/src/main/java/org/eclipse/edc/sample/extension/fc/CatalogNodeDirectory.java +++ b/federated-catalog/fc-00-basic/fixed-node-resolver/src/main/java/org/eclipse/edc/sample/extension/fc/CatalogNodeDirectory.java @@ -25,7 +25,7 @@ public class CatalogNodeDirectory implements TargetNodeDirectory { public List getAll() { var participantNode = new TargetNode("https://w3id.org/edc/v0.0.1/ns/", "provider", - "http://localhost:19194/protocol", List.of("dataspace-protocol-http")); + "http://localhost:19194/protocol/2025-1", List.of("dataspace-protocol-http:2025-1")); return List.of(participantNode); } diff --git a/federated-catalog/fc-01-embedded/fc-connector/build.gradle.kts b/federated-catalog/fc-01-embedded/fc-connector/build.gradle.kts index aebacd1b..6c3bf318 100644 --- a/federated-catalog/fc-01-embedded/fc-connector/build.gradle.kts +++ b/federated-catalog/fc-01-embedded/fc-connector/build.gradle.kts @@ -19,18 +19,11 @@ plugins { } dependencies { - runtimeOnly(project(":federated-catalog:fc-00-basic:federated-catalog-base")) - runtimeOnly(project(":federated-catalog:fc-00-basic:fixed-node-resolver")) + implementation(project(":federated-catalog:fc-00-basic:federated-catalog-base")) + implementation(project(":federated-catalog:fc-00-basic:fixed-node-resolver")) - implementation(libs.edc.runtime.core) - implementation(libs.edc.connector.core) - implementation(libs.edc.control.plane.core) - implementation(libs.edc.configuration.filesystem) - implementation(libs.edc.management.api) - implementation(libs.edc.dsp) - implementation(libs.edc.iam.mock) - implementation(libs.edc.http) - implementation(libs.edc.edr.store.core) + runtimeOnly(libs.edc.bom.controlplane.base) + runtimeOnly(libs.edc.iam.mock) } @@ -41,7 +34,7 @@ application { var distTar = tasks.getByName("distTar") var distZip = tasks.getByName("distZip") -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("fc-connector.jar") dependsOn(distTar, distZip) diff --git a/federated-catalog/fc-02-standalone/standalone-fc/build.gradle.kts b/federated-catalog/fc-02-standalone/standalone-fc/build.gradle.kts index 4f078db8..27260184 100644 --- a/federated-catalog/fc-02-standalone/standalone-fc/build.gradle.kts +++ b/federated-catalog/fc-02-standalone/standalone-fc/build.gradle.kts @@ -22,14 +22,6 @@ dependencies { runtimeOnly(project(":federated-catalog:fc-00-basic:federated-catalog-base")) runtimeOnly(project(":federated-catalog:fc-00-basic:fixed-node-resolver")) - implementation(libs.edc.runtime.core) - implementation(libs.edc.connector.core) - runtimeOnly(libs.edc.boot) - runtimeOnly(libs.edc.control.plane.core) - implementation(libs.edc.configuration.filesystem) - runtimeOnly(libs.edc.token.core) - implementation(libs.edc.http) - runtimeOnly(libs.edc.dsp) implementation(libs.edc.iam.mock) } @@ -41,7 +33,7 @@ application { var distTar = tasks.getByName("distTar") var distZip = tasks.getByName("distZip") -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("standalone-fc.jar") dependsOn(distTar, distZip) diff --git a/federated-catalog/fc-02-standalone/standalone-fc/config.properties b/federated-catalog/fc-02-standalone/standalone-fc/config.properties index c25f1949..5dad7105 100644 --- a/federated-catalog/fc-02-standalone/standalone-fc/config.properties +++ b/federated-catalog/fc-02-standalone/standalone-fc/config.properties @@ -1,3 +1,5 @@ +edc.participant.id=consumer + web.http.port=39191 web.http.path=/api web.http.version.port=49191 diff --git a/federated-catalog/fc-03-static-node-directory/embedded-fc-with-node-resolver/build.gradle.kts b/federated-catalog/fc-03-static-node-directory/embedded-fc-with-node-resolver/build.gradle.kts index eb8b2faa..63449cb5 100644 --- a/federated-catalog/fc-03-static-node-directory/embedded-fc-with-node-resolver/build.gradle.kts +++ b/federated-catalog/fc-03-static-node-directory/embedded-fc-with-node-resolver/build.gradle.kts @@ -28,6 +28,7 @@ dependencies { implementation(libs.edc.configuration.filesystem) implementation(libs.edc.management.api) implementation(libs.edc.dsp) + implementation(libs.edc.participant.context.single.core) implementation(libs.edc.iam.mock) implementation(libs.edc.http) implementation(libs.edc.edr.store.core) @@ -41,7 +42,7 @@ application { var distTar = tasks.getByName("distTar") var distZip = tasks.getByName("distZip") -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("fc-connector-with-node-resolver.jar") dependsOn(distTar, distZip) diff --git a/federated-catalog/fc-03-static-node-directory/standalone-fc-with-node-resolver/build.gradle.kts b/federated-catalog/fc-03-static-node-directory/standalone-fc-with-node-resolver/build.gradle.kts index 0b2f2486..58e17a0e 100644 --- a/federated-catalog/fc-03-static-node-directory/standalone-fc-with-node-resolver/build.gradle.kts +++ b/federated-catalog/fc-03-static-node-directory/standalone-fc-with-node-resolver/build.gradle.kts @@ -30,6 +30,7 @@ dependencies { runtimeOnly(libs.edc.token.core) implementation(libs.edc.http) runtimeOnly(libs.edc.dsp) + runtimeOnly(libs.edc.participant.context.single.core) implementation(libs.edc.iam.mock) } @@ -42,7 +43,7 @@ application { var distTar = tasks.getByName("distTar") var distZip = tasks.getByName("distZip") -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("standalone-fc-with-node-resolver.jar") dependsOn(distTar, distZip) diff --git a/federated-catalog/fc-03-static-node-directory/target-node-resolver/src/main/resources/participants.json b/federated-catalog/fc-03-static-node-directory/target-node-resolver/src/main/resources/participants.json index a8afb3b5..96f034c5 100644 --- a/federated-catalog/fc-03-static-node-directory/target-node-resolver/src/main/resources/participants.json +++ b/federated-catalog/fc-03-static-node-directory/target-node-resolver/src/main/resources/participants.json @@ -2,7 +2,7 @@ { "name": "https://w3id.org/edc/v0.0.1/ns/", "id": "provider", - "url": "http://localhost:19194/protocol", - "supportedProtocols": ["dataspace-protocol-http"] + "url": "http://localhost:19194/protocol/2025-1", + "supportedProtocols": ["dataspace-protocol-http:2025-1"] } -] \ No newline at end of file +] diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2da9201c..5bda1a0c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,7 +3,7 @@ format.version = "1.1" [versions] awaitility = "4.2.2" -edc = "0.14.1" +edc = "0.15.1" okhttp-mockwebserver = "5.3.2" restAssured = "6.0.0" rsApi = "4.0.0" @@ -23,7 +23,6 @@ edc-control-plane-core = { module = "org.eclipse.edc:control-plane-core", versio edc-control-plane-spi = { module = "org.eclipse.edc:control-plane-spi", version.ref = "edc" } edc-data-plane-signaling-api = { module = "org.eclipse.edc:data-plane-signaling-api", version.ref = "edc" } edc-data-plane-signaling-client = { module = "org.eclipse.edc:data-plane-signaling-client", version.ref = "edc" } -edc-data-plane-public-api = { module = "org.eclipse.edc:data-plane-public-api-v2", version.ref = "edc" } edc-data-plane-aws-s3 = { module = "org.eclipse.edc.aws:data-plane-aws-s3", version.ref = "edc" } edc-data-plane-azure-storage = { module = "org.eclipse.edc.azure:data-plane-azure-storage", version.ref = "edc" } edc-data-plane-core = { module = "org.eclipse.edc:data-plane-core", version.ref = "edc" } @@ -46,6 +45,7 @@ edc-json-ld-lib = { module = "org.eclipse.edc:json-ld-lib", version.ref = "edc" edc-json-ld-spi = { module = "org.eclipse.edc:json-ld-spi", version.ref = "edc" } edc-junit = { module = "org.eclipse.edc:junit", version.ref = "edc" } edc-management-api = { module = "org.eclipse.edc:management-api", version.ref = "edc" } +edc-participant-context-single-core = { module = "org.eclipse.edc:participant-context-single-core", version.ref = "edc" } edc-management-api-test-fixtures = { module = "org.eclipse.edc:management-api-test-fixtures", version.ref = "edc" } edc-monitor-jdk-logger = { module = "org.eclipse.edc:monitor-jdk-logger", version.ref = "edc" } edc-runtime-core = { module = "org.eclipse.edc:runtime-core", version.ref = "edc" } diff --git a/policy/policy-01-policy-enforcement/policy-enforcement-consumer/build.gradle.kts b/policy/policy-01-policy-enforcement/policy-enforcement-consumer/build.gradle.kts index 0d6dd038..4b8b404a 100644 --- a/policy/policy-01-policy-enforcement/policy-enforcement-consumer/build.gradle.kts +++ b/policy/policy-01-policy-enforcement/policy-enforcement-consumer/build.gradle.kts @@ -26,6 +26,7 @@ dependencies { implementation(libs.edc.configuration.filesystem) implementation(libs.edc.management.api) implementation(libs.edc.dsp) + implementation(libs.edc.participant.context.single.core) implementation(libs.edc.iam.mock) implementation(libs.edc.http) } @@ -34,7 +35,7 @@ application { mainClass.set("org.eclipse.edc.boot.system.runtime.BaseRuntime") } -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("consumer.jar") duplicatesStrategy = DuplicatesStrategy.INCLUDE diff --git a/policy/policy-01-policy-enforcement/policy-enforcement-provider/build.gradle.kts b/policy/policy-01-policy-enforcement/policy-enforcement-provider/build.gradle.kts index bfd9cfbf..fab005d9 100644 --- a/policy/policy-01-policy-enforcement/policy-enforcement-provider/build.gradle.kts +++ b/policy/policy-01-policy-enforcement/policy-enforcement-provider/build.gradle.kts @@ -27,6 +27,7 @@ dependencies { implementation(libs.edc.configuration.filesystem) implementation(libs.edc.management.api) implementation(libs.edc.dsp) + implementation(libs.edc.participant.context.single.core) implementation(libs.edc.iam.mock) implementation(libs.edc.http) @@ -37,7 +38,7 @@ application { mainClass.set("org.eclipse.edc.boot.system.runtime.BaseRuntime") } -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("provider.jar") duplicatesStrategy = DuplicatesStrategy.INCLUDE diff --git a/system-tests/build.gradle.kts b/system-tests/build.gradle.kts index d45180c4..ff530279 100644 --- a/system-tests/build.gradle.kts +++ b/system-tests/build.gradle.kts @@ -42,8 +42,12 @@ dependencies { testCompileOnly(project(":basic:basic-03-configuration")) testCompileOnly(project(":transfer:transfer-00-prerequisites:connector")) + testCompileOnly(project(":transfer:transfer-03-consumer-pull:provider-proxy-data-plane")) testCompileOnly(project(":transfer:transfer-04-event-consumer:consumer-with-listener")) testCompileOnly(project(":transfer:transfer-04-event-consumer:listener")) + testCompileOnly(project(":transfer:transfer-05-file-transfer-cloud:cloud-transfer-consumer")) + testCompileOnly(project(":transfer:transfer-05-file-transfer-cloud:cloud-transfer-provider")) + testCompileOnly(project(":transfer:transfer-05-file-transfer-cloud:transfer-file-cloud")) testCompileOnly(project(":transfer:transfer-06-kafka-broker:kafka-runtime")) testCompileOnly(project(":advanced:advanced-01-open-telemetry:open-telemetry-runtime")) @@ -52,12 +56,6 @@ dependencies { testCompileOnly(project(":policy:policy-01-policy-enforcement:policy-enforcement-consumer")) testCompileOnly(project(":policy:policy-01-policy-enforcement:policy-functions")) - testCompileOnly(project(":transfer:transfer-05-file-transfer-cloud:cloud-transfer-provider")) - testCompileOnly(project(":transfer:transfer-05-file-transfer-cloud:cloud-transfer-consumer")) - testCompileOnly(project(":transfer:transfer-05-file-transfer-cloud:transfer-file-cloud")) - - testCompileOnly(project(":transfer:transfer-03-consumer-pull:provider-proxy-data-plane")) - testCompileOnly(project(":federated-catalog:fc-00-basic:fixed-node-resolver")) testCompileOnly(project(":federated-catalog:fc-01-embedded:fc-connector")) testCompileOnly(project(":federated-catalog:fc-02-standalone:standalone-fc")) diff --git a/system-tests/src/test/java/org/eclipse/edc/samples/advanced/Advanced01openTelemetryTest.java b/system-tests/src/test/java/org/eclipse/edc/samples/advanced/Advanced01openTelemetryTest.java index c6528572..5f9d73ad 100644 --- a/system-tests/src/test/java/org/eclipse/edc/samples/advanced/Advanced01openTelemetryTest.java +++ b/system-tests/src/test/java/org/eclipse/edc/samples/advanced/Advanced01openTelemetryTest.java @@ -48,7 +48,8 @@ public class Advanced01openTelemetryTest { @Container public ComposeContainer environment = new ComposeContainer(getFileFromRelativePath(DOCKER_COMPOSE_YAML)) - .withLocalCompose(true) + .withLogConsumer("consumer", l -> System.out.print("[consumer] " + l.getUtf8String())) + .withLogConsumer("provider", l -> System.out.print("[provider] " + l.getUtf8String())) .waitingFor("provider", Wait.forLogMessage(".*Runtime.*ready.*", 1)); @Test diff --git a/system-tests/src/test/java/org/eclipse/edc/samples/common/FederatedCatalogCommon.java b/system-tests/src/test/java/org/eclipse/edc/samples/common/FederatedCatalogCommon.java index d43539a1..4d281d12 100644 --- a/system-tests/src/test/java/org/eclipse/edc/samples/common/FederatedCatalogCommon.java +++ b/system-tests/src/test/java/org/eclipse/edc/samples/common/FederatedCatalogCommon.java @@ -16,6 +16,7 @@ import com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.http.HttpStatus; import io.restassured.http.ContentType; +import io.restassured.path.json.JsonPath; import org.eclipse.edc.junit.extensions.EmbeddedRuntime; import org.eclipse.edc.junit.extensions.RuntimeExtension; import org.eclipse.edc.junit.extensions.RuntimePerClassExtension; @@ -24,6 +25,7 @@ import java.util.Map; import static io.restassured.RestAssured.given; +import static org.eclipse.edc.jsonld.spi.JsonLdKeywords.ID; import static org.eclipse.edc.samples.common.FileTransferCommon.getFileContentFromRelativePath; import static org.eclipse.edc.samples.common.PrerequisitesCommon.API_KEY_HEADER_KEY; import static org.eclipse.edc.samples.common.PrerequisitesCommon.API_KEY_HEADER_VALUE; @@ -36,7 +38,6 @@ public class FederatedCatalogCommon { private static final String CREATE_ASSET_FILE_PATH = "transfer/transfer-01-negotiation/resources/create-asset.json"; private static final String V3_ASSETS_PATH = "/v3/assets"; - private static final String ASSET_ID = "@id"; private static final String STANDALONE_FC = "standalone-fc"; private static final String EMBEDDED_FC = "fc-connector"; @@ -44,17 +45,16 @@ public class FederatedCatalogCommon { private static final String FC_CONNECTOR_CONFIG_PROPERTIES_FILE_PATH = "federated-catalog/fc-01-embedded/fc-connector/config.properties"; private static final String CRAWLER_EXECUTION_DELAY = "edc.catalog.cache.execution.delay.seconds"; - public static final int CRAWLER_EXECUTION_DELAY_VALUE = 5; + public static final int CRAWLER_EXECUTION_DELAY_VALUE = 1; private static final String CRAWLER_EXECUTION_PERIOD = "edc.catalog.cache.execution.period.seconds"; - public static final int CRAWLER_EXECUTION_PERIOD_VALUE = 40; + public static final int CRAWLER_EXECUTION_PERIOD_VALUE = 5; public static final int TIMEOUT = 5 * CRAWLER_EXECUTION_PERIOD_VALUE; public static final String EMBEDDED_FC_CATALOG_API_ENDPOINT = "http://localhost:29195/api/catalog/v1alpha/catalog/query"; public static final String STANDALONE_FC_CATALOG_API_ENDPOINT = "http://localhost:39195/api/catalog/v1alpha/catalog/query"; public static final String EMPTY_QUERY_FILE_PATH = "federated-catalog/fc-01-embedded/resources/empty-query.json"; public static final String TYPE = "[0].@type"; - public static final String CATALOG = "dcat:Catalog"; - public static final String DATASET_ASSET_ID = "[0].'dcat:dataset'.@id"; + public static final String DATASET_ASSET_ID = "[0].dataset[0].@id"; public static RuntimeExtension getFcEmbeddedConnector(String modulePath) { return getRuntime(modulePath, EMBEDDED_FC, FC_CONNECTOR_CONFIG_PROPERTIES_FILE_PATH); @@ -81,10 +81,10 @@ private static RuntimeExtension getRuntime( public static String createAsset() { return post(PrerequisitesCommon.PROVIDER_MANAGEMENT_URL + V3_ASSETS_PATH, getFileContentFromRelativePath(CREATE_ASSET_FILE_PATH), - ASSET_ID); + ID); } - public static String postAndAssertType(String url, String requestBody, String jsonPath) { + public static JsonPath postAndAssertType(String url, String requestBody) { return given() .headers(API_KEY_HEADER_KEY, API_KEY_HEADER_VALUE) .contentType(ContentType.JSON) @@ -92,13 +92,12 @@ public static String postAndAssertType(String url, String requestBody, String js .when() .post(url) .then() - .log().ifError() + .log().ifValidationFails() .statusCode(HttpStatus.SC_OK) .body(TYPE, not(emptyString())) - .body(TYPE, is(CATALOG)) + .body(TYPE, is("Catalog")) .extract() - .jsonPath() - .get(jsonPath); + .jsonPath(); } } diff --git a/system-tests/src/test/java/org/eclipse/edc/samples/federated/catalog/FederatedCatalog01embeddedTest.java b/system-tests/src/test/java/org/eclipse/edc/samples/federated/catalog/FederatedCatalog01embeddedTest.java index 22b48fb8..4350cbed 100644 --- a/system-tests/src/test/java/org/eclipse/edc/samples/federated/catalog/FederatedCatalog01embeddedTest.java +++ b/system-tests/src/test/java/org/eclipse/edc/samples/federated/catalog/FederatedCatalog01embeddedTest.java @@ -19,7 +19,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; -import java.time.Clock; import java.time.Duration; import static org.assertj.core.api.Assertions.assertThat; @@ -46,15 +45,9 @@ public class FederatedCatalog01embeddedTest { @RegisterExtension static final RuntimeExtension FC_CONNECTOR = getFcEmbeddedConnector(":federated-catalog:fc-01-embedded:fc-connector"); - @Test - void shouldStartConnector() { - assertThat(PARTICIPANT_CONNECTOR.getService(Clock.class)).isNotNull(); - assertThat(FC_CONNECTOR.getService(Clock.class)).isNotNull(); - } - @Test void runSampleSteps() { - String assetId = createAsset(); + var assetId = createAsset(); createPolicy(); createContractDefinition(); @@ -62,8 +55,11 @@ void runSampleSteps() { .atMost(Duration.ofSeconds(TIMEOUT)) .pollDelay(Duration.ofSeconds(CRAWLER_EXECUTION_DELAY_VALUE)) .ignoreExceptions() - .until(() -> postAndAssertType(EMBEDDED_FC_CATALOG_API_ENDPOINT, getFileContentFromRelativePath(EMPTY_QUERY_FILE_PATH), DATASET_ASSET_ID), - id -> id.equals(assetId)); + .untilAsserted(() -> { + var datasetId = postAndAssertType(EMBEDDED_FC_CATALOG_API_ENDPOINT, getFileContentFromRelativePath(EMPTY_QUERY_FILE_PATH)) + .get(DATASET_ASSET_ID); + assertThat(datasetId).isEqualTo(assetId); + }); } } diff --git a/system-tests/src/test/java/org/eclipse/edc/samples/federated/catalog/FederatedCatalog02standaloneTest.java b/system-tests/src/test/java/org/eclipse/edc/samples/federated/catalog/FederatedCatalog02standaloneTest.java index 072af756..e37d76ce 100644 --- a/system-tests/src/test/java/org/eclipse/edc/samples/federated/catalog/FederatedCatalog02standaloneTest.java +++ b/system-tests/src/test/java/org/eclipse/edc/samples/federated/catalog/FederatedCatalog02standaloneTest.java @@ -19,7 +19,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; -import java.time.Clock; import java.time.Duration; import static org.assertj.core.api.Assertions.assertThat; @@ -45,15 +44,9 @@ public class FederatedCatalog02standaloneTest { @RegisterExtension static final RuntimeExtension STANDALONE_FC_RUNTIME = getStandaloneFc(":federated-catalog:fc-02-standalone:standalone-fc"); - @Test - void shouldStartRuntimes() { - assertThat(PARTICIPANT_CONNECTOR.getService(Clock.class)).isNotNull(); - assertThat(STANDALONE_FC_RUNTIME.getService(Clock.class)).isNotNull(); - } - @Test void runSampleSteps() { - String assetId = createAsset(); + var assetId = createAsset(); createPolicy(); createContractDefinition(); @@ -61,8 +54,10 @@ void runSampleSteps() { .atMost(Duration.ofSeconds(TIMEOUT)) .pollDelay(Duration.ofSeconds(CRAWLER_EXECUTION_DELAY_VALUE)) .ignoreExceptions() - .until(() -> postAndAssertType(STANDALONE_FC_CATALOG_API_ENDPOINT, getFileContentFromRelativePath(EMPTY_QUERY_FILE_PATH), DATASET_ASSET_ID), - id -> id.equals(assetId)); + .untilAsserted(() -> { + var datasetId = postAndAssertType(STANDALONE_FC_CATALOG_API_ENDPOINT, getFileContentFromRelativePath(EMPTY_QUERY_FILE_PATH)).get(DATASET_ASSET_ID); + assertThat(datasetId).isEqualTo(assetId); + }); } } diff --git a/system-tests/src/test/java/org/eclipse/edc/samples/federated/catalog/FederatedCatalog03staticNodeResolverTest.java b/system-tests/src/test/java/org/eclipse/edc/samples/federated/catalog/FederatedCatalog03staticNodeResolverTest.java index c64977c1..152e8fce 100644 --- a/system-tests/src/test/java/org/eclipse/edc/samples/federated/catalog/FederatedCatalog03staticNodeResolverTest.java +++ b/system-tests/src/test/java/org/eclipse/edc/samples/federated/catalog/FederatedCatalog03staticNodeResolverTest.java @@ -19,10 +19,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; -import java.time.Clock; import java.time.Duration; -import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; import static org.eclipse.edc.samples.common.FederatedCatalogCommon.CRAWLER_EXECUTION_DELAY_VALUE; import static org.eclipse.edc.samples.common.FederatedCatalogCommon.DATASET_ASSET_ID; @@ -51,16 +49,9 @@ public class FederatedCatalog03staticNodeResolverTest { @RegisterExtension static final RuntimeExtension FC_CONNECTOR = getFcEmbeddedConnector(":federated-catalog:fc-03-static-node-directory:embedded-fc-with-node-resolver"); - @Test - void shouldStartRuntimes() { - assertThat(PARTICIPANT_CONNECTOR.getService(Clock.class)).isNotNull(); - assertThat(STANDALONE_FC_RUNTIME.getService(Clock.class)).isNotNull(); - assertThat(FC_CONNECTOR.getService(Clock.class)).isNotNull(); - } - @Test void runSampleSteps() { - String assetId = createAsset(); + var assetId = createAsset(); createPolicy(); createContractDefinition(); @@ -69,7 +60,7 @@ void runSampleSteps() { .atMost(Duration.ofSeconds(TIMEOUT)) .pollDelay(Duration.ofSeconds(CRAWLER_EXECUTION_DELAY_VALUE)) .ignoreExceptions() - .until(() -> postAndAssertType(STANDALONE_FC_CATALOG_API_ENDPOINT, getFileContentFromRelativePath(EMPTY_QUERY_FILE_PATH), DATASET_ASSET_ID), + .until(() -> postAndAssertType(STANDALONE_FC_CATALOG_API_ENDPOINT, getFileContentFromRelativePath(EMPTY_QUERY_FILE_PATH)).get(DATASET_ASSET_ID), id -> id.equals(assetId)); // call catalog API from embedded FC @@ -77,7 +68,7 @@ void runSampleSteps() { .atMost(Duration.ofSeconds(TIMEOUT)) .pollDelay(Duration.ofSeconds(CRAWLER_EXECUTION_DELAY_VALUE)) .ignoreExceptions() - .until(() -> postAndAssertType(EMBEDDED_FC_CATALOG_API_ENDPOINT, getFileContentFromRelativePath(EMPTY_QUERY_FILE_PATH), DATASET_ASSET_ID), + .until(() -> postAndAssertType(EMBEDDED_FC_CATALOG_API_ENDPOINT, getFileContentFromRelativePath(EMPTY_QUERY_FILE_PATH)).get(DATASET_ASSET_ID), id -> id.equals(assetId)); } } diff --git a/system-tests/src/test/java/org/eclipse/edc/samples/transfer/StreamingParticipant.java b/system-tests/src/test/java/org/eclipse/edc/samples/transfer/StreamingParticipant.java index 1f68db5c..d364abe2 100644 --- a/system-tests/src/test/java/org/eclipse/edc/samples/transfer/StreamingParticipant.java +++ b/system-tests/src/test/java/org/eclipse/edc/samples/transfer/StreamingParticipant.java @@ -14,8 +14,8 @@ package org.eclipse.edc.samples.transfer; -import org.eclipse.edc.connector.controlplane.test.system.utils.LazySupplier; import org.eclipse.edc.connector.controlplane.test.system.utils.Participant; +import org.eclipse.edc.junit.utils.LazySupplier; import java.net.URI; diff --git a/system-tests/src/test/java/org/eclipse/edc/samples/transfer/Transfer06KafkaBrokerTest.java b/system-tests/src/test/java/org/eclipse/edc/samples/transfer/Transfer06KafkaBrokerTest.java index 40613fba..5521cb35 100644 --- a/system-tests/src/test/java/org/eclipse/edc/samples/transfer/Transfer06KafkaBrokerTest.java +++ b/system-tests/src/test/java/org/eclipse/edc/samples/transfer/Transfer06KafkaBrokerTest.java @@ -37,11 +37,11 @@ import org.apache.kafka.common.resource.ResourceType; import org.apache.kafka.common.serialization.StringDeserializer; import org.apache.kafka.common.serialization.StringSerializer; -import org.eclipse.edc.connector.controlplane.test.system.utils.LazySupplier; import org.eclipse.edc.junit.annotations.EndToEndTest; import org.eclipse.edc.junit.extensions.EmbeddedRuntime; import org.eclipse.edc.junit.extensions.RuntimeExtension; import org.eclipse.edc.junit.extensions.RuntimePerClassExtension; +import org.eclipse.edc.junit.utils.LazySupplier; import org.eclipse.edc.spi.types.domain.DataAddress; import org.eclipse.edc.util.io.Ports; import org.jetbrains.annotations.NotNull; diff --git a/transfer/transfer-00-prerequisites/connector/build.gradle.kts b/transfer/transfer-00-prerequisites/connector/build.gradle.kts index ad2fc1e5..21f4820c 100644 --- a/transfer/transfer-00-prerequisites/connector/build.gradle.kts +++ b/transfer/transfer-00-prerequisites/connector/build.gradle.kts @@ -27,6 +27,7 @@ dependencies { implementation(libs.edc.control.plane.core) implementation(libs.edc.token.core) implementation(libs.edc.dsp) + implementation(libs.edc.participant.context.single.core) implementation(libs.edc.http) implementation(libs.edc.configuration.filesystem) implementation(libs.edc.iam.mock) @@ -55,7 +56,7 @@ application { var distTar = tasks.getByName("distTar") var distZip = tasks.getByName("distZip") -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("connector.jar") dependsOn(distTar, distZip) diff --git a/transfer/transfer-03-consumer-pull/README.md b/transfer/transfer-03-consumer-pull/README.md index 0c321a16..56874051 100644 --- a/transfer/transfer-03-consumer-pull/README.md +++ b/transfer/transfer-03-consumer-pull/README.md @@ -22,13 +22,10 @@ that will be used for the "consumer" instance. ## Implement a simple Http Proxy data plane -In the [provider-proxy-data-plane](provider-proxy-data-plane) there's a connector based on the [basic one](../transfer-00-prerequisites/connector) -but with the `data-plane-api-v2` module excluded, because that one has been deprecated: +In the [provider-proxy-data-plane](provider-proxy-data-plane) there's a connector based on the [basic one](../transfer-00-prerequisites/connector): ```kotlin - runtimeOnly(project(":transfer:transfer-00-prerequisites:connector")) { - exclude("org.eclipse.edc", "data-plane-public-api-v2") - } + runtimeOnly(project(":transfer:transfer-00-prerequisites:connector")) ``` The proxy implementation provided in this runtime is really bare-bone and it supports only `GET`. Needless to say, it is diff --git a/transfer/transfer-03-consumer-pull/provider-proxy-data-plane/build.gradle.kts b/transfer/transfer-03-consumer-pull/provider-proxy-data-plane/build.gradle.kts index e5fa5f73..4e20f324 100644 --- a/transfer/transfer-03-consumer-pull/provider-proxy-data-plane/build.gradle.kts +++ b/transfer/transfer-03-consumer-pull/provider-proxy-data-plane/build.gradle.kts @@ -37,7 +37,7 @@ tasks.withType { dependsOn(":transfer:transfer-00-prerequisites:connector:shadowJar") } -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("connector.jar") dependsOn(distTar, distZip) diff --git a/transfer/transfer-03-consumer-pull/provider-proxy-data-plane/src/main/java/org/eclipse/edc/sample/extension/proxy/CustomProxyDataPlaneExtension.java b/transfer/transfer-03-consumer-pull/provider-proxy-data-plane/src/main/java/org/eclipse/edc/sample/extension/proxy/CustomProxyDataPlaneExtension.java index 81cb8ca8..cb20d046 100644 --- a/transfer/transfer-03-consumer-pull/provider-proxy-data-plane/src/main/java/org/eclipse/edc/sample/extension/proxy/CustomProxyDataPlaneExtension.java +++ b/transfer/transfer-03-consumer-pull/provider-proxy-data-plane/src/main/java/org/eclipse/edc/sample/extension/proxy/CustomProxyDataPlaneExtension.java @@ -27,8 +27,6 @@ import org.eclipse.edc.web.spi.configuration.PortMapping; import org.eclipse.edc.web.spi.configuration.PortMappingRegistry; -import static org.eclipse.edc.web.spi.configuration.ApiContext.PUBLIC; - public class CustomProxyDataPlaneExtension implements ServiceExtension { private static final int DEFAULT_PUBLIC_PORT = 8185; @@ -51,18 +49,18 @@ public class CustomProxyDataPlaneExtension implements ServiceExtension { @Override public void initialize(ServiceExtensionContext context) { - portMappingRegistry.register(new PortMapping(PUBLIC, apiConfiguration.port(), apiConfiguration.path())); + portMappingRegistry.register(new PortMapping("public", apiConfiguration.port(), apiConfiguration.path())); generatorService.addGeneratorFunction("HttpData", dataAddress -> Endpoint.url(proxyPublicEndpoint)); - webService.registerResource(PUBLIC, new ProxyController(authorizationService)); + webService.registerResource("public", new ProxyController(authorizationService)); } @Settings record PublicApiConfiguration( - @Setting(key = "web.http." + PUBLIC + ".port", description = "Port for " + PUBLIC + " api context", defaultValue = DEFAULT_PUBLIC_PORT + "") + @Setting(key = "web.http.public.port", description = "Port for public api context", defaultValue = DEFAULT_PUBLIC_PORT + "") int port, - @Setting(key = "web.http." + PUBLIC + ".path", description = "Path for " + PUBLIC + " api context", defaultValue = DEFAULT_PUBLIC_PATH) + @Setting(key = "web.http.public.path", description = "Path for public api context", defaultValue = DEFAULT_PUBLIC_PATH) String path ) { diff --git a/transfer/transfer-04-event-consumer/consumer-with-listener/build.gradle.kts b/transfer/transfer-04-event-consumer/consumer-with-listener/build.gradle.kts index aaf633bf..a4271651 100644 --- a/transfer/transfer-04-event-consumer/consumer-with-listener/build.gradle.kts +++ b/transfer/transfer-04-event-consumer/consumer-with-listener/build.gradle.kts @@ -27,6 +27,7 @@ dependencies { implementation(libs.edc.control.plane.core) implementation(libs.edc.token.core) implementation(libs.edc.dsp) + implementation(libs.edc.participant.context.single.core) implementation(libs.edc.http) implementation(libs.edc.configuration.filesystem) implementation(libs.edc.iam.mock) @@ -43,7 +44,6 @@ dependencies { implementation(libs.edc.data.plane.self.registration) implementation(libs.edc.data.plane.signaling.api) - implementation(libs.edc.data.plane.public.api) implementation(libs.edc.data.plane.core) implementation(libs.edc.data.plane.http) implementation(libs.edc.data.plane.iam) @@ -58,7 +58,7 @@ application { var distTar = tasks.getByName("distTar") var distZip = tasks.getByName("distZip") -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("connector.jar") dependsOn(distTar, distZip) diff --git a/transfer/transfer-05-file-transfer-cloud/cloud-transfer-consumer/build.gradle.kts b/transfer/transfer-05-file-transfer-cloud/cloud-transfer-consumer/build.gradle.kts index 3d57fa73..dcb5a642 100644 --- a/transfer/transfer-05-file-transfer-cloud/cloud-transfer-consumer/build.gradle.kts +++ b/transfer/transfer-05-file-transfer-cloud/cloud-transfer-consumer/build.gradle.kts @@ -21,29 +21,16 @@ plugins { } dependencies { - implementation(libs.edc.runtime.core) - implementation(libs.edc.connector.core) - implementation(libs.edc.control.api.configuration) - implementation(libs.edc.control.plane.api.client) - implementation(libs.edc.control.plane.api) - implementation(libs.edc.control.plane.core) - implementation(libs.edc.dsp) - implementation(libs.edc.http) - implementation(libs.edc.configuration.filesystem) - implementation(libs.edc.iam.mock) - implementation(libs.edc.management.api) - implementation(libs.edc.edr.store.core) - implementation(libs.edc.transfer.data.plane.signaling) - implementation(libs.edc.validator.data.address.http.data) + runtimeOnly(libs.edc.bom.controlplane.base) + runtimeOnly(libs.edc.iam.mock) + runtimeOnly(libs.edc.transfer.data.plane.signaling) + runtimeOnly(libs.edc.control.plane.api.client) + runtimeOnly(libs.edc.validator.data.address.http.data) - implementation(libs.edc.data.plane.selector.api) - implementation(libs.edc.data.plane.selector.core) - - implementation(libs.edc.data.plane.self.registration) - implementation(libs.edc.data.plane.signaling.api) - implementation(libs.edc.data.plane.public.api) - implementation(libs.edc.data.plane.core) - implementation(libs.edc.data.plane.http) + runtimeOnly(libs.edc.data.plane.self.registration) + runtimeOnly(libs.edc.data.plane.signaling.api) + runtimeOnly(libs.edc.data.plane.core) + runtimeOnly(libs.edc.data.plane.http) } @@ -51,7 +38,7 @@ application { mainClass.set("org.eclipse.edc.boot.system.runtime.BaseRuntime") } -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("consumer.jar") duplicatesStrategy = DuplicatesStrategy.INCLUDE diff --git a/transfer/transfer-05-file-transfer-cloud/cloud-transfer-provider/build.gradle.kts b/transfer/transfer-05-file-transfer-cloud/cloud-transfer-provider/build.gradle.kts index 4c18f16b..043200c4 100644 --- a/transfer/transfer-05-file-transfer-cloud/cloud-transfer-provider/build.gradle.kts +++ b/transfer/transfer-05-file-transfer-cloud/cloud-transfer-provider/build.gradle.kts @@ -23,38 +23,24 @@ plugins { dependencies { implementation(project(":transfer:transfer-05-file-transfer-cloud:transfer-file-cloud")) - implementation(libs.edc.runtime.core) - implementation(libs.edc.connector.core) - implementation(libs.edc.control.api.configuration) - implementation(libs.edc.control.plane.api.client) - implementation(libs.edc.control.plane.api) - implementation(libs.edc.control.plane.core) - implementation(libs.edc.dsp) - implementation(libs.edc.http) - implementation(libs.edc.configuration.filesystem) - implementation(libs.edc.iam.mock) - implementation(libs.edc.management.api) - implementation(libs.edc.edr.store.core) - implementation(libs.edc.transfer.data.plane.signaling) - implementation(libs.edc.validator.data.address.http.data) + runtimeOnly(libs.edc.bom.controlplane.base) + runtimeOnly(libs.edc.iam.mock) + runtimeOnly(libs.edc.validator.data.address.http.data) + runtimeOnly(libs.edc.control.plane.api.client) - implementation(libs.edc.data.plane.selector.api) - implementation(libs.edc.data.plane.selector.core) + runtimeOnly(libs.edc.data.plane.self.registration) + runtimeOnly(libs.edc.data.plane.signaling.api) + runtimeOnly(libs.edc.data.plane.core) + runtimeOnly(libs.edc.data.plane.http) - implementation(libs.edc.data.plane.self.registration) - implementation(libs.edc.data.plane.signaling.api) - implementation(libs.edc.data.plane.public.api) - implementation(libs.edc.data.plane.core) - implementation(libs.edc.data.plane.http) - - implementation(libs.edc.vault.hashicorp) + runtimeOnly(libs.edc.vault.hashicorp) } application { mainClass.set("org.eclipse.edc.boot.system.runtime.BaseRuntime") } -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("provider.jar") duplicatesStrategy = DuplicatesStrategy.INCLUDE diff --git a/transfer/transfer-05-file-transfer-cloud/transfer-file-cloud/build.gradle.kts b/transfer/transfer-05-file-transfer-cloud/transfer-file-cloud/build.gradle.kts index 6f260ee4..9e196dcf 100644 --- a/transfer/transfer-05-file-transfer-cloud/transfer-file-cloud/build.gradle.kts +++ b/transfer/transfer-05-file-transfer-cloud/transfer-file-cloud/build.gradle.kts @@ -18,7 +18,6 @@ plugins { dependencies { implementation(libs.edc.control.plane.core) - implementation(libs.edc.control.plane.api.client) implementation(libs.edc.data.plane.core) implementation(libs.edc.data.plane.azure.storage) implementation(libs.edc.data.plane.aws.s3) diff --git a/transfer/transfer-05-file-transfer-cloud/transfer-file-cloud/src/main/java/org/eclipse/edc/sample/extension/transfer/CloudTransferExtension.java b/transfer/transfer-05-file-transfer-cloud/transfer-file-cloud/src/main/java/org/eclipse/edc/sample/extension/transfer/CloudTransferExtension.java index 663baca5..cb251014 100644 --- a/transfer/transfer-05-file-transfer-cloud/transfer-file-cloud/src/main/java/org/eclipse/edc/sample/extension/transfer/CloudTransferExtension.java +++ b/transfer/transfer-05-file-transfer-cloud/transfer-file-cloud/src/main/java/org/eclipse/edc/sample/extension/transfer/CloudTransferExtension.java @@ -20,6 +20,7 @@ import org.eclipse.edc.connector.controlplane.contract.spi.types.offer.ContractDefinition; import org.eclipse.edc.connector.controlplane.policy.spi.PolicyDefinition; import org.eclipse.edc.connector.controlplane.policy.spi.store.PolicyDefinitionStore; +import org.eclipse.edc.participantcontext.single.spi.SingleParticipantContextSupplier; import org.eclipse.edc.policy.model.Action; import org.eclipse.edc.policy.model.Permission; import org.eclipse.edc.policy.model.Policy; @@ -37,6 +38,8 @@ public class CloudTransferExtension implements ServiceExtension { private PolicyDefinitionStore policyDefinitionStore; @Inject private ContractDefinitionStore contractDefinitionStore; + @Inject + private SingleParticipantContextSupplier participantContextSupplier; @Override public String name() { @@ -45,14 +48,17 @@ public String name() { @Override public void initialize(ServiceExtensionContext context) { - var policy = createPolicy(); + var participantContextId = participantContextSupplier.get().getContent().getParticipantContextId(); + var policy = createPolicy() + .participantContextId(participantContextId) + .build(); policyDefinitionStore.create(policy); - registerDataEntries(); - registerContractDefinition(policy.getId()); + registerDataEntries(participantContextId); + registerContractDefinition(policy.getId(), participantContextId); } - public void registerDataEntries() { + public void registerDataEntries(String participantContextId) { var dataAddress = DataAddress.Builder.newInstance() .type("AzureStorage") .property("@type", "DataAddress") @@ -61,7 +67,8 @@ public void registerDataEntries() { .property("blobName", "test-document.txt") .keyName("provider-key") .build(); - var asset = Asset.Builder.newInstance().id("1").dataAddress(dataAddress).build(); + var asset = Asset.Builder.newInstance().id("1").dataAddress(dataAddress) + .participantContextId(participantContextId).build(); assetIndex.create(asset); var dataAddress2 = DataAddress.Builder.newInstance() @@ -72,13 +79,15 @@ public void registerDataEntries() { .property("blobName", "test-document.txt") .keyName("provider-key") .build(); - var asset2 = Asset.Builder.newInstance().id("2").dataAddress(dataAddress2).build(); + var asset2 = Asset.Builder.newInstance().id("2").dataAddress(dataAddress2) + .participantContextId(participantContextId).build(); assetIndex.create(asset2); } - public void registerContractDefinition(String policyId) { + public void registerContractDefinition(String policyId, String participantContextId) { var contractDefinition1 = ContractDefinition.Builder.newInstance() .id("1") + .participantContextId(participantContextId) .accessPolicyId(policyId) .contractPolicyId(policyId) .assetsSelectorCriterion(criterion(Asset.PROPERTY_ID, "=", "1")) @@ -86,6 +95,7 @@ public void registerContractDefinition(String policyId) { var contractDefinition2 = ContractDefinition.Builder.newInstance() .id("2") + .participantContextId(participantContextId) .accessPolicyId(policyId) .contractPolicyId(policyId) .assetsSelectorCriterion(criterion(Asset.PROPERTY_ID, "=", "2")) @@ -95,7 +105,7 @@ public void registerContractDefinition(String policyId) { contractDefinitionStore.save(contractDefinition2); } - private PolicyDefinition createPolicy() { + private PolicyDefinition.Builder createPolicy() { var usePermission = Permission.Builder.newInstance() .action(Action.Builder.newInstance().type("USE").build()) .build(); @@ -103,7 +113,6 @@ private PolicyDefinition createPolicy() { return PolicyDefinition.Builder.newInstance() .policy(Policy.Builder.newInstance() .permission(usePermission) - .build()) - .build(); + .build()); } } diff --git a/transfer/transfer-06-kafka-broker/kafka-runtime/build.gradle.kts b/transfer/transfer-06-kafka-broker/kafka-runtime/build.gradle.kts index 7d48d2fd..98bc20b9 100644 --- a/transfer/transfer-06-kafka-broker/kafka-runtime/build.gradle.kts +++ b/transfer/transfer-06-kafka-broker/kafka-runtime/build.gradle.kts @@ -33,7 +33,7 @@ application { mainClass.set("org.eclipse.edc.boot.system.runtime.BaseRuntime") } -tasks.withType { +tasks.shadowJar { mergeServiceFiles() archiveFileName.set("connector.jar") duplicatesStrategy = DuplicatesStrategy.INCLUDE diff --git a/transfer/transfer-06-kafka-broker/kafka-runtime/src/main/java/org/eclipse/edc/samples/streaming/KafkaToKafkaDataFlowController.java b/transfer/transfer-06-kafka-broker/kafka-runtime/src/main/java/org/eclipse/edc/samples/streaming/KafkaToKafkaDataFlowController.java index ae5261a0..8744ad31 100644 --- a/transfer/transfer-06-kafka-broker/kafka-runtime/src/main/java/org/eclipse/edc/samples/streaming/KafkaToKafkaDataFlowController.java +++ b/transfer/transfer-06-kafka-broker/kafka-runtime/src/main/java/org/eclipse/edc/samples/streaming/KafkaToKafkaDataFlowController.java @@ -37,7 +37,7 @@ public boolean canHandle(TransferProcess transferProcess) { } @Override - public StatusResult provision(TransferProcess transferProcess, Policy policy) { + public StatusResult prepare(TransferProcess transferProcess, Policy policy) { // here the flow can be provisioned, not something covered in this sample return StatusResult.success(null); }