From d955fab713951d16e6e7d69a2f33c31dc3eb8c83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 12:04:13 +0000 Subject: [PATCH 1/2] build(deps): bump edc from 0.15.1 to 0.16.0 Bumps `edc` from 0.15.1 to 0.16.0. Updates `org.eclipse.edc:boot` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:controlplane-base-bom` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:dataplane-base-bom` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:configuration-filesystem` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:connector-core` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:control-api-configuration` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:control-plane-api-client` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:control-plane-api` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:control-plane-core` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:control-plane-spi` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:data-plane-signaling-api` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:data-plane-signaling-client` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc.aws:data-plane-aws-s3` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Technology-Aws/releases) - [Commits](https://github.com/eclipse-edc/Technology-Aws/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc.azure:data-plane-azure-storage` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Technology-Azure/releases) - [Commits](https://github.com/eclipse-edc/Technology-Azure/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:data-plane-core` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:data-plane-http` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:data-plane-iam` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:data-plane-kafka` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:data-plane-selector-api` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:data-plane-selector-core` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:data-plane-self-registration` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:data-plane-spi` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:dsp` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:edr-cache-api` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:edr-store-core` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:edr-store-receiver` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:federatedcatalog-base-bom` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/FederatedCatalog/releases) - [Commits](https://github.com/eclipse-edc/FederatedCatalog/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:crawler-spi` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/FederatedCatalog/releases) - [Commits](https://github.com/eclipse-edc/FederatedCatalog/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:http` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:iam-mock` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:json-ld-lib` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:json-ld-spi` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:junit` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:management-api` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:participant-context-single-core` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:management-api-test-fixtures` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:monitor-jdk-logger` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:runtime-core` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:token-core` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:transfer-data-plane-signaling` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:vault-hashicorp` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:validator-data-address-http-data` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) Updates `org.eclipse.edc:web-spi` from 0.15.1 to 0.16.0 - [Release notes](https://github.com/eclipse-edc/Connector/releases) - [Commits](https://github.com/eclipse-edc/Connector/compare/v0.15.1...v0.16.0) --- updated-dependencies: - dependency-name: org.eclipse.edc:boot dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:controlplane-base-bom dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:dataplane-base-bom dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:configuration-filesystem dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:connector-core dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:control-api-configuration dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:control-plane-api-client dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:control-plane-api dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:control-plane-core dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:control-plane-spi dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:data-plane-signaling-api dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:data-plane-signaling-client dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc.aws:data-plane-aws-s3 dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc.azure:data-plane-azure-storage dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:data-plane-core dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:data-plane-http dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:data-plane-iam dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:data-plane-kafka dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:data-plane-selector-api dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:data-plane-selector-core dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:data-plane-self-registration dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:data-plane-spi dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:dsp dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:edr-cache-api dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:edr-store-core dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:edr-store-receiver dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:federatedcatalog-base-bom dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:crawler-spi dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:http dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:iam-mock dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:json-ld-lib dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:json-ld-spi dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:junit dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:management-api dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:participant-context-single-core dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:management-api-test-fixtures dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:monitor-jdk-logger dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:runtime-core dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:token-core dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:transfer-data-plane-signaling dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:vault-hashicorp dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:validator-data-address-http-data dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.eclipse.edc:web-spi dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 86ab1b27..d3ff8c99 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.15.1" +edc = "0.16.0" okhttp-mockwebserver = "5.3.2" restAssured = "6.0.0" rsApi = "4.0.0" From a77f8838ba987e22025f1d5a712671b260996eb8 Mon Sep 17 00:00:00 2001 From: ndr_brt Date: Tue, 5 May 2026 15:05:59 +0200 Subject: [PATCH 2/2] fix compilation and adapt transfer-04 --- .../fc-connector/config.properties | 1 - .../standalone-fc/config.properties | 2 - gradle/libs.versions.toml | 3 - .../build.gradle.kts | 12 +--- .../config.properties | 5 +- .../build.gradle.kts | 12 +--- .../config.properties | 5 +- settings.gradle.kts | 9 +-- system-tests/build.gradle.kts | 3 +- .../transfer/StreamingParticipant.java | 14 ++-- .../transfer/Transfer04eventConsumerTest.java | 4 +- .../Transfer05fileTransferCloudTest.java | 6 +- .../resources/policy/config-eu.properties | 1 - .../resources/policy/config-us.properties | 1 - .../connector/build.gradle.kts | 16 +---- .../consumer-configuration.properties | 2 - .../provider-configuration.properties | 2 - .../configuration/provider.properties | 2 - transfer/transfer-04-event-consumer/README.md | 60 ++++++++--------- .../consumer-with-listener/build.gradle.kts | 66 ------------------- .../consumer-with-subscriber/build.gradle.kts | 54 +++++++++++++++ .../TransferProcessStartedSubscriber.java | 34 ++++++++++ ...ferProcessStartedSubscriberExtension.java} | 15 +++-- ...rg.eclipse.edc.spi.system.ServiceExtension | 1 + .../listener/build.gradle.kts | 23 ------- .../TransferProcessStartedListener.java | 39 ----------- ...rg.eclipse.edc.spi.system.ServiceExtension | 1 - .../kafka-runtime/build.gradle.kts | 4 +- .../kafka-runtime/consumer.properties | 2 - .../kafka-runtime/provider.properties | 3 - .../edc/samples/streaming/KafkaExtension.java | 14 ++-- .../KafkaToKafkaDataFlowController.java | 21 +++++- 32 files changed, 177 insertions(+), 260 deletions(-) delete mode 100644 transfer/transfer-04-event-consumer/consumer-with-listener/build.gradle.kts create mode 100644 transfer/transfer-04-event-consumer/consumer-with-subscriber/build.gradle.kts create mode 100644 transfer/transfer-04-event-consumer/consumer-with-subscriber/src/main/java/org/eclipse/edc/sample/extension/TransferProcessStartedSubscriber.java rename transfer/transfer-04-event-consumer/{listener/src/main/java/org/eclipse/edc/sample/extension/listener/TransferProcessStartedListenerExtension.java => consumer-with-subscriber/src/main/java/org/eclipse/edc/sample/extension/TransferProcessStartedSubscriberExtension.java} (56%) create mode 100644 transfer/transfer-04-event-consumer/consumer-with-subscriber/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension delete mode 100644 transfer/transfer-04-event-consumer/listener/build.gradle.kts delete mode 100644 transfer/transfer-04-event-consumer/listener/src/main/java/org/eclipse/edc/sample/extension/listener/TransferProcessStartedListener.java delete mode 100644 transfer/transfer-04-event-consumer/listener/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension diff --git a/federated-catalog/fc-01-embedded/fc-connector/config.properties b/federated-catalog/fc-01-embedded/fc-connector/config.properties index 0f3ea1dd..a93667f9 100644 --- a/federated-catalog/fc-01-embedded/fc-connector/config.properties +++ b/federated-catalog/fc-01-embedded/fc-connector/config.properties @@ -16,7 +16,6 @@ edc.dataplane.api.public.baseurl=http://localhost:29291/public web.http.management.auth.key=password -edc.ids.id=urn:connector:provider edc.mock.region=us diff --git a/federated-catalog/fc-02-standalone/standalone-fc/config.properties b/federated-catalog/fc-02-standalone/standalone-fc/config.properties index 5dad7105..4155f2f5 100644 --- a/federated-catalog/fc-02-standalone/standalone-fc/config.properties +++ b/federated-catalog/fc-02-standalone/standalone-fc/config.properties @@ -2,8 +2,6 @@ edc.participant.id=consumer web.http.port=39191 web.http.path=/api -web.http.version.port=49191 -web.http.version.path=/version web.http.catalog.path=/api/catalog web.http.catalog.port=39195 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d3ff8c99..68dddf33 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -16,9 +16,7 @@ edc-bom-controlplane-base = { module = "org.eclipse.edc:controlplane-base-bom", edc-bom-dataplane-base = { module = "org.eclipse.edc:dataplane-base-bom", version.ref = "edc" } edc-configuration-filesystem = { module = "org.eclipse.edc:configuration-filesystem", version.ref = "edc" } edc-connector-core = { module = "org.eclipse.edc:connector-core", version.ref = "edc" } -edc-control-api-configuration = { module = "org.eclipse.edc:control-api-configuration", version.ref = "edc" } edc-control-plane-api-client = { module = "org.eclipse.edc:control-plane-api-client", version.ref = "edc" } -edc-control-plane-api = { module = "org.eclipse.edc:control-plane-api", version.ref = "edc" } edc-control-plane-core = { module = "org.eclipse.edc:control-plane-core", version.ref = "edc" } 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" } @@ -29,7 +27,6 @@ edc-data-plane-core = { module = "org.eclipse.edc:data-plane-core", version.ref edc-data-plane-http = { module = "org.eclipse.edc:data-plane-http", version.ref = "edc" } edc-data-plane-iam = { module = "org.eclipse.edc:data-plane-iam", version.ref = "edc" } edc-data-plane-kafka = { module = "org.eclipse.edc:data-plane-kafka", version.ref = "edc" } -edc-data-plane-selector-api = { module = "org.eclipse.edc:data-plane-selector-api", version.ref = "edc" } edc-data-plane-selector-core = { module = "org.eclipse.edc:data-plane-selector-core", version.ref = "edc" } edc-data-plane-self-registration = { module = "org.eclipse.edc:data-plane-self-registration", version.ref = "edc" } edc-data-plane-spi = { module = "org.eclipse.edc:data-plane-spi", 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 4b8b404a..2f6ec0b4 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 @@ -19,16 +19,8 @@ plugins { } dependencies { - implementation(libs.edc.runtime.core) - implementation(libs.edc.connector.core) - implementation(libs.edc.control.plane.core) - implementation(libs.edc.edr.store.core) - 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) + runtimeOnly(libs.edc.bom.controlplane.base) + runtimeOnly(libs.edc.iam.mock) } application { diff --git a/policy/policy-01-policy-enforcement/policy-enforcement-consumer/config.properties b/policy/policy-01-policy-enforcement/policy-enforcement-consumer/config.properties index 4e771a6c..b8b1f366 100644 --- a/policy/policy-01-policy-enforcement/policy-enforcement-consumer/config.properties +++ b/policy/policy-01-policy-enforcement/policy-enforcement-consumer/config.properties @@ -4,11 +4,10 @@ web.http.management.port=29193 web.http.management.path=/management web.http.protocol.port=29194 web.http.protocol.path=/protocol -web.http.version.port=29195 -web.http.version.path=/version +web.http.config.port=29195 +web.http.config.path=/config web.http.management.auth.key=password edc.dsp.callback.address=http://localhost:29194/protocol edc.participant.id=consumer -edc.ids.id=urn:connector:consumer edc.mock.region=us 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 fab005d9..6222eb63 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 @@ -20,16 +20,8 @@ plugins { dependencies { - implementation(libs.edc.runtime.core) - implementation(libs.edc.connector.core) - implementation(libs.edc.control.plane.core) - implementation(libs.edc.edr.store.core) - 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) + runtimeOnly(libs.edc.bom.controlplane.base) + runtimeOnly(libs.edc.iam.mock) implementation(project(":policy:policy-01-policy-enforcement:policy-functions")) } diff --git a/policy/policy-01-policy-enforcement/policy-enforcement-provider/config.properties b/policy/policy-01-policy-enforcement/policy-enforcement-provider/config.properties index ba70fc6d..ffa976f5 100644 --- a/policy/policy-01-policy-enforcement/policy-enforcement-provider/config.properties +++ b/policy/policy-01-policy-enforcement/policy-enforcement-provider/config.properties @@ -4,10 +4,9 @@ web.http.management.port=19193 web.http.management.path=/management web.http.protocol.port=19194 web.http.protocol.path=/protocol -web.http.version.port=19195 -web.http.version.path=/version +web.http.control.port=19195 +web.http.control.path=/control web.http.management.auth.key=password edc.dsp.callback.address=http://localhost:19194/protocol edc.participant.id=provider -edc.ids.id=urn:connector:provider diff --git a/settings.gradle.kts b/settings.gradle.kts index ea66209c..265acc11 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -33,16 +33,11 @@ include(":basic:basic-02-health-endpoint") include(":basic:basic-03-configuration") include(":transfer:transfer-00-prerequisites:connector") - -include(":transfer:transfer-04-event-consumer:consumer-with-listener") -include(":transfer:transfer-04-event-consumer:listener") - +include(":transfer:transfer-03-consumer-pull:provider-proxy-data-plane") +include(":transfer:transfer-04-event-consumer:consumer-with-subscriber") include(":transfer:transfer-05-file-transfer-cloud:cloud-transfer-consumer") include(":transfer:transfer-05-file-transfer-cloud:cloud-transfer-provider") include(":transfer:transfer-05-file-transfer-cloud:transfer-file-cloud") - -include(":transfer:transfer-03-consumer-pull:provider-proxy-data-plane") - include(":transfer:transfer-06-kafka-broker:kafka-runtime") include(":advanced:advanced-01-open-telemetry:open-telemetry-runtime") diff --git a/system-tests/build.gradle.kts b/system-tests/build.gradle.kts index ff530279..58823382 100644 --- a/system-tests/build.gradle.kts +++ b/system-tests/build.gradle.kts @@ -43,8 +43,7 @@ dependencies { 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-04-event-consumer:consumer-with-subscriber")) 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")) 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 7845f042..f9f588e8 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 @@ -39,7 +39,7 @@ public String createAsset(String requestBody) { .body(requestBody) .when() .header("x-api-key", "bau") - .post("/v3/assets") + .post("/assets") .then() .log().ifValidationFails() .statusCode(200) @@ -52,7 +52,7 @@ public String createPolicyDefinition(String requestBody) { .contentType(JSON) .body(requestBody) .when() - .post("/v3/policydefinitions") + .post("/policydefinitions") .then() .statusCode(200) .contentType(JSON) @@ -64,7 +64,7 @@ public String createContractDefinition(String requestBody) { .contentType(JSON) .body(requestBody) .when() - .post("/v3/contractdefinitions") + .post("/contractdefinitions") .then() .statusCode(200) .extract().jsonPath().getString(ID); @@ -75,7 +75,7 @@ public String fetchDatasetFromCatalog(String requestBody) { .contentType(JSON) .body(requestBody) .when() - .post("/v3/catalog/dataset/request") + .post("/catalog/dataset/request") .then() .statusCode(200) .contentType(JSON) @@ -87,7 +87,7 @@ public String negotiateContract(String requestBody) { .contentType(JSON) .body(requestBody) .when() - .post("/v3/contractnegotiations/") + .post("/contractnegotiations/") .then() .statusCode(200) .contentType(JSON) @@ -98,7 +98,7 @@ public String getContractAgreementId(String contractNegotiationId) { return baseManagementRequest() .contentType(JSON) .when() - .get("/v3/contractnegotiations/" + contractNegotiationId) + .get("/contractnegotiations/" + contractNegotiationId) .then() .statusCode(200) .contentType(JSON) @@ -110,7 +110,7 @@ public String startTransfer(String requestBody) { .contentType(JSON) .body(requestBody) .when() - .post("/v3/transferprocesses") + .post("/transferprocesses") .then() .statusCode(200) .contentType(JSON) diff --git a/system-tests/src/test/java/org/eclipse/edc/samples/transfer/Transfer04eventConsumerTest.java b/system-tests/src/test/java/org/eclipse/edc/samples/transfer/Transfer04eventConsumerTest.java index 473c8b77..5671d5ff 100644 --- a/system-tests/src/test/java/org/eclipse/edc/samples/transfer/Transfer04eventConsumerTest.java +++ b/system-tests/src/test/java/org/eclipse/edc/samples/transfer/Transfer04eventConsumerTest.java @@ -37,7 +37,7 @@ @EndToEndTest public class Transfer04eventConsumerTest { - private static final String CONSUMER_WITH_LISTENER_MODULE_PATH = ":transfer:transfer-04-event-consumer:consumer-with-listener"; + private static final String CONSUMER_WITH_LISTENER_MODULE_PATH = ":transfer:transfer-04-event-consumer:consumer-with-subscriber"; private static final String START_TRANSFER_FILE_PATH = "transfer/transfer-02-provider-push/resources/start-transfer.json"; @RegisterExtension @@ -63,6 +63,6 @@ void runSampleSteps() { var transferProcessId = startTransfer(requestBody, contractAgreementId); checkTransferStatus(transferProcessId, TransferProcessStates.STARTED); var standardOutput = standardOutputStream.toString(); - assertThat(standardOutput).contains("TransferProcessStartedListener received STARTED event"); + assertThat(standardOutput).contains("TransferProcessStarted event has been emitted."); } } diff --git a/system-tests/src/test/java/org/eclipse/edc/samples/transfer/Transfer05fileTransferCloudTest.java b/system-tests/src/test/java/org/eclipse/edc/samples/transfer/Transfer05fileTransferCloudTest.java index 289b1f4f..b1f07cd9 100644 --- a/system-tests/src/test/java/org/eclipse/edc/samples/transfer/Transfer05fileTransferCloudTest.java +++ b/system-tests/src/test/java/org/eclipse/edc/samples/transfer/Transfer05fileTransferCloudTest.java @@ -77,7 +77,7 @@ public class Transfer05fileTransferCloudTest { private static final String MINIO_BUCKET_NAME = "src-bucket"; private static final int MINIO_PORT = 9000; - private static final String VAULT_IMAGE_NAME = "hashicorp/vault:latest"; + private static final String VAULT_IMAGE_NAME = "hashicorp/vault:1.21"; private static final String VAULT_TOKEN = ""; private static final int VAULT_PORT = 8200; @@ -90,7 +90,7 @@ public class Transfer05fileTransferCloudTest { "kv put secret/secretAccessKey content=" + MINIO_ACCOUNT_KEY, "kv put secret/provider-key content=" + AZURITE_ACCOUNT_KEY ) - .withLogConsumer((OutputFrame outputFrame) -> System.out.print(outputFrame.getUtf8String())); + .withLogConsumer((OutputFrame frame) -> System.out.print(frame.getUtf8String())); @Container protected static MinIOContainer minioContainer = new MinIOContainer(DockerImageName.parse(MINIO_IMAGE_NAME)) @@ -123,8 +123,6 @@ public class Transfer05fileTransferCloudTest { entry("web.http.management.path", "/management"), entry("web.http.protocol.port", "19194"), entry("web.http.protocol.path", "/protocol"), - entry("web.http.version.port", "19195"), - entry("web.http.version.path", "/version"), entry("web.http.management.auth.key", "password"), entry("edc.transfer.proxy.token.signer.privatekey.alias", "private-key"), entry("edc.transfer.proxy.token.verifier.publickey.alias", "public-key"), diff --git a/system-tests/src/test/resources/policy/config-eu.properties b/system-tests/src/test/resources/policy/config-eu.properties index ab317045..c12c9324 100644 --- a/system-tests/src/test/resources/policy/config-eu.properties +++ b/system-tests/src/test/resources/policy/config-eu.properties @@ -8,5 +8,4 @@ web.http.protocol.path=/protocol web.http.management.auth.key=password edc.dsp.callback.address=http://localhost:29194/protocol edc.participant.id=consumer -edc.ids.id=urn:connector:consumer edc.mock.region=eu diff --git a/system-tests/src/test/resources/policy/config-us.properties b/system-tests/src/test/resources/policy/config-us.properties index 4af9885b..2fa2b037 100644 --- a/system-tests/src/test/resources/policy/config-us.properties +++ b/system-tests/src/test/resources/policy/config-us.properties @@ -8,5 +8,4 @@ web.http.protocol.path=/protocol web.http.management.auth.key=password edc.dsp.callback.address=http://localhost:29194/protocol edc.participant.id=consumer -edc.ids.id=urn:connector:consumer edc.mock.region=us diff --git a/transfer/transfer-00-prerequisites/connector/build.gradle.kts b/transfer/transfer-00-prerequisites/connector/build.gradle.kts index 21f4820c..8d668bec 100644 --- a/transfer/transfer-00-prerequisites/connector/build.gradle.kts +++ b/transfer/transfer-00-prerequisites/connector/build.gradle.kts @@ -19,19 +19,9 @@ plugins { } dependencies { - implementation(libs.edc.runtime.core) - implementation(libs.edc.connector.core) - implementation(libs.edc.control.api.configuration) + runtimeOnly(libs.edc.bom.controlplane.base) implementation(libs.edc.control.plane.api.client) - implementation(libs.edc.control.plane.api) - 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) - implementation(libs.edc.management.api) implementation(libs.edc.transfer.data.plane.signaling) implementation(libs.edc.validator.data.address.http.data) @@ -39,11 +29,9 @@ dependencies { implementation(libs.edc.edr.store.core) implementation(libs.edc.edr.store.receiver) - 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.signaling.client) implementation(libs.edc.data.plane.core) implementation(libs.edc.data.plane.http) implementation(libs.edc.data.plane.iam) diff --git a/transfer/transfer-00-prerequisites/resources/configuration/consumer-configuration.properties b/transfer/transfer-00-prerequisites/resources/configuration/consumer-configuration.properties index 37e27eed..5b2059ad 100644 --- a/transfer/transfer-00-prerequisites/resources/configuration/consumer-configuration.properties +++ b/transfer/transfer-00-prerequisites/resources/configuration/consumer-configuration.properties @@ -12,5 +12,3 @@ web.http.public.port=29291 web.http.public.path=/public web.http.control.port=29192 web.http.control.path=/control -web.http.version.port=29195 -web.http.version.path=/version diff --git a/transfer/transfer-00-prerequisites/resources/configuration/provider-configuration.properties b/transfer/transfer-00-prerequisites/resources/configuration/provider-configuration.properties index 7f0dffd5..733d735a 100644 --- a/transfer/transfer-00-prerequisites/resources/configuration/provider-configuration.properties +++ b/transfer/transfer-00-prerequisites/resources/configuration/provider-configuration.properties @@ -12,6 +12,4 @@ web.http.public.port=19291 web.http.public.path=/public web.http.control.port=19192 web.http.control.path=/control -web.http.version.port=19195 -web.http.version.path=/version edc.dataplane.api.public.baseurl=http://localhost:19291/public diff --git a/transfer/transfer-03-consumer-pull/resources/configuration/provider.properties b/transfer/transfer-03-consumer-pull/resources/configuration/provider.properties index b74ec8e0..f0c69646 100644 --- a/transfer/transfer-03-consumer-pull/resources/configuration/provider.properties +++ b/transfer/transfer-03-consumer-pull/resources/configuration/provider.properties @@ -12,6 +12,4 @@ web.http.public.port=19291 web.http.public.path=/public web.http.control.port=19192 web.http.control.path=/control -web.http.version.port=19195 -web.http.version.path=/version edc.dataplane.proxy.public.endpoint=http://localhost:19291/public diff --git a/transfer/transfer-04-event-consumer/README.md b/transfer/transfer-04-event-consumer/README.md index afb4da62..2f173350 100644 --- a/transfer/transfer-04-event-consumer/README.md +++ b/transfer/transfer-04-event-consumer/README.md @@ -1,49 +1,42 @@ # Implement a simple event consumer -In this sample, we build upon the [Provider push](../transfer-02-provider-push/README.md) chapter to add functionality -to react to transfer completion on the consumer connector side. +In this sample, we build upon the [Provider push](../transfer-02-provider-push/README.md) sample to add functionality +to react to transfer startup on the consumer connector side. -Also, in order to keep things organized, the code in this example has been separated into several Java modules: +The relevant code in this example has been put into this module +- `consumer-with-subscriber`: the consumer connector which an extension that subscribe to events. -- `consumer-with-listener`: the consumer connector which will be extended by the event consumer -- `listener`: contains the `TransferProcessListener` implementation which will consume an event - -## Inspect the listener - -A `TransferProcessListener` may define methods that are invoked after a transfer changes state, for example, to notify an -external application on the consumer side after data has been produced (i.e. the transfer moves to the completed state). +## Subscribe to events +The `EventRouter` service is the gateway for all the EDC domain events, so we can register an `EventSubscriber` on a +particular event implementation: ```java -// in TransferListenerExtension.java - @Override - public void initialize(ServiceExtensionContext context) { - // ... - var transferProcessObservable = context.getService(TransferProcessObservable.class); - transferProcessObservable.registerListener(new MarkerFileCreator(monitor)); - } +eventRouter.register(TransferProcessStarted.class, new TransferProcessStartedSubscriber(monitor)); ``` -The `TransferProcessStartedListener` implements the `TransferProcessListener` interface. -It will consume the transfer `STARTED` event and write a log message. +By doing this, every time a `TransferProcessStarted` gets published, the `TransferProcessStartedSubscriber` gets invoked. -```java -public class TransferProcessStartedListener implements TransferProcessListener { +> NOTE: `register` register an async subscriber. To register a sync subscriber that execs logic in the same transaction +> boundary of the code that emitted the event, `registerSync` can be used instead. + +> NOTE: the hierarchy of the `Event` class can be used to subscribe to multiple events, e.g. by using `Event`, the subscriber +> will receive all the events. +The `TransferProcessStartedSubscriber` implements the `EventSubscriber` interface. +The method `on` will be triggered when a `TransferProcessStarted` event gets published. + +```java +class TransferProcessStartedSubscriber implements EventSubscriber { private final Monitor monitor; - public TransferProcessStartedListener(Monitor monitor) { + public TransferProcessStartedSubscriber(Monitor monitor) { this.monitor = monitor; } - /** - * Callback invoked by the EDC framework when a transfer is about to be completed. - * - * @param process the transfer process that is about to be completed. - */ @Override - public void preStarted(final TransferProcess process) { - monitor.debug("TransferProcessStartedListener received STARTED event"); - // do something meaningful before transfer start + public void on(EventEnvelope event) { + monitor.info("TransferProcessStarted event has been emitted."); + // do something after transfer has been started } } ``` @@ -64,7 +57,8 @@ Run this to build and launch the consumer with listener extension: ```bash ./gradlew transfer:transfer-04-event-consumer:consumer-with-listener:build -java -Dedc.fs.config=transfer/transfer-00-prerequisites/resources/configuration/consumer-configuration.properties -jar transfer/transfer-04-event-consumer/consumer-with-listener/build/libs/connector.jar +java -Dedc.fs.config=transfer/transfer-00-prerequisites/resources/configuration/consumer-configuration.properties -jar \ + transfer/transfer-04-event-consumer/consumer-with-subscriber/build/libs/connector.jar ```` ### 2. Negotiate a new contract @@ -111,10 +105,10 @@ curl -X POST "http://localhost:29193/management/v3/transferprocesses" \ The consumer should spew out logs similar to: ```bash -INFO 2023-10-16T09:29:46.271592 TransferProcessStartedListener received STARTED event <---------------------------- +INFO 2023-10-16T09:29:46.271592 TransferProcessStarted event has been emitted. <---------------------------- ``` -If you see the `TransferProcessStartedListener received STARTED event` log message, it means that your event consumer has been +If you see the `TransferProcessStarted event has been emitted.` log message, it means that your event consumer has been configured successfully. [Next Chapter](../transfer-05-file-transfer-cloud/README.md) 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 deleted file mode 100644 index a4271651..00000000 --- a/transfer/transfer-04-event-consumer/consumer-with-listener/build.gradle.kts +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2022 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - * - * 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: - * Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - initial API and implementation - * - */ - -plugins { - `java-library` - id("application") - alias(libs.plugins.shadow) -} - -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.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) - implementation(libs.edc.management.api) - implementation(libs.edc.transfer.data.plane.signaling) - implementation(libs.edc.validator.data.address.http.data) - - implementation(libs.edc.edr.cache.api) - implementation(libs.edc.edr.store.core) - implementation(libs.edc.edr.store.receiver) - - 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.core) - implementation(libs.edc.data.plane.http) - implementation(libs.edc.data.plane.iam) - - implementation(project(":transfer:transfer-04-event-consumer:listener")) -} - -application { - mainClass.set("$group.boot.system.runtime.BaseRuntime") -} - -var distTar = tasks.getByName("distTar") -var distZip = tasks.getByName("distZip") - -tasks.shadowJar { - mergeServiceFiles() - archiveFileName.set("connector.jar") - dependsOn(distTar, distZip) - duplicatesStrategy = DuplicatesStrategy.INCLUDE -} diff --git a/transfer/transfer-04-event-consumer/consumer-with-subscriber/build.gradle.kts b/transfer/transfer-04-event-consumer/consumer-with-subscriber/build.gradle.kts new file mode 100644 index 00000000..f917a8f5 --- /dev/null +++ b/transfer/transfer-04-event-consumer/consumer-with-subscriber/build.gradle.kts @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2022 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + * + * 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: + * Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - initial API and implementation + * + */ + +plugins { + `java-library` + id("application") + alias(libs.plugins.shadow) +} + +dependencies { + runtimeOnly(libs.edc.bom.controlplane.base) + implementation(libs.edc.control.plane.api.client) + runtimeOnly(libs.edc.participant.context.single.core) + runtimeOnly(libs.edc.iam.mock) + runtimeOnly(libs.edc.transfer.data.plane.signaling) + runtimeOnly(libs.edc.validator.data.address.http.data) + + runtimeOnly(libs.edc.edr.cache.api) + runtimeOnly(libs.edc.edr.store.core) + runtimeOnly(libs.edc.edr.store.receiver) + + 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) + runtimeOnly(libs.edc.data.plane.iam) + + implementation(libs.edc.control.plane.spi) +} + +application { + mainClass.set("$group.boot.system.runtime.BaseRuntime") +} + +var distTar = tasks.getByName("distTar") +var distZip = tasks.getByName("distZip") + +tasks.shadowJar { + mergeServiceFiles() + archiveFileName.set("connector.jar") + dependsOn(distTar, distZip) + duplicatesStrategy = DuplicatesStrategy.INCLUDE +} diff --git a/transfer/transfer-04-event-consumer/consumer-with-subscriber/src/main/java/org/eclipse/edc/sample/extension/TransferProcessStartedSubscriber.java b/transfer/transfer-04-event-consumer/consumer-with-subscriber/src/main/java/org/eclipse/edc/sample/extension/TransferProcessStartedSubscriber.java new file mode 100644 index 00000000..7515d0bf --- /dev/null +++ b/transfer/transfer-04-event-consumer/consumer-with-subscriber/src/main/java/org/eclipse/edc/sample/extension/TransferProcessStartedSubscriber.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2026 Think-it GmbH + * + * 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: + * Think-it GmbH - initial API and implementation + * + */ + +package org.eclipse.edc.sample.extension; + +import org.eclipse.edc.spi.event.Event; +import org.eclipse.edc.spi.event.EventEnvelope; +import org.eclipse.edc.spi.event.EventSubscriber; +import org.eclipse.edc.spi.monitor.Monitor; + +class TransferProcessStartedSubscriber implements EventSubscriber { + private final Monitor monitor; + + TransferProcessStartedSubscriber(Monitor monitor) { + this.monitor = monitor; + } + + @Override + public void on(EventEnvelope event) { + monitor.info("TransferProcessStarted event has been emitted."); + // do something after transfer has been started + } +} diff --git a/transfer/transfer-04-event-consumer/listener/src/main/java/org/eclipse/edc/sample/extension/listener/TransferProcessStartedListenerExtension.java b/transfer/transfer-04-event-consumer/consumer-with-subscriber/src/main/java/org/eclipse/edc/sample/extension/TransferProcessStartedSubscriberExtension.java similarity index 56% rename from transfer/transfer-04-event-consumer/listener/src/main/java/org/eclipse/edc/sample/extension/listener/TransferProcessStartedListenerExtension.java rename to transfer/transfer-04-event-consumer/consumer-with-subscriber/src/main/java/org/eclipse/edc/sample/extension/TransferProcessStartedSubscriberExtension.java index 96ab60d1..b1b8149f 100644 --- a/transfer/transfer-04-event-consumer/listener/src/main/java/org/eclipse/edc/sample/extension/listener/TransferProcessStartedListenerExtension.java +++ b/transfer/transfer-04-event-consumer/consumer-with-subscriber/src/main/java/org/eclipse/edc/sample/extension/TransferProcessStartedSubscriberExtension.java @@ -12,19 +12,24 @@ * */ -package org.eclipse.edc.sample.extension.listener; +package org.eclipse.edc.sample.extension; -import org.eclipse.edc.connector.controlplane.transfer.spi.observe.TransferProcessObservable; +import org.eclipse.edc.connector.controlplane.transfer.spi.event.TransferProcessStarted; +import org.eclipse.edc.runtime.metamodel.annotation.Inject; +import org.eclipse.edc.spi.event.EventRouter; import org.eclipse.edc.spi.system.ServiceExtension; import org.eclipse.edc.spi.system.ServiceExtensionContext; -public class TransferProcessStartedListenerExtension implements ServiceExtension { +public class TransferProcessStartedSubscriberExtension implements ServiceExtension { + + @Inject + private EventRouter eventRouter; @Override public void initialize(ServiceExtensionContext context) { - var transferProcessObservable = context.getService(TransferProcessObservable.class); var monitor = context.getMonitor(); - transferProcessObservable.registerListener(new TransferProcessStartedListener(monitor)); + + eventRouter.register(TransferProcessStarted.class, new TransferProcessStartedSubscriber(monitor)); } } diff --git a/transfer/transfer-04-event-consumer/consumer-with-subscriber/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension b/transfer/transfer-04-event-consumer/consumer-with-subscriber/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension new file mode 100644 index 00000000..4511e283 --- /dev/null +++ b/transfer/transfer-04-event-consumer/consumer-with-subscriber/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension @@ -0,0 +1 @@ +org.eclipse.edc.sample.extension.TransferProcessStartedSubscriberExtension \ No newline at end of file diff --git a/transfer/transfer-04-event-consumer/listener/build.gradle.kts b/transfer/transfer-04-event-consumer/listener/build.gradle.kts deleted file mode 100644 index dde5219e..00000000 --- a/transfer/transfer-04-event-consumer/listener/build.gradle.kts +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2020, 2021 Microsoft Corporation - * - * 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: - * Microsoft Corporation - initial API and implementation - * - */ - -plugins { - `java-library` - id("application") -} - -dependencies { - api(libs.edc.control.plane.spi) - implementation(libs.edc.http) -} diff --git a/transfer/transfer-04-event-consumer/listener/src/main/java/org/eclipse/edc/sample/extension/listener/TransferProcessStartedListener.java b/transfer/transfer-04-event-consumer/listener/src/main/java/org/eclipse/edc/sample/extension/listener/TransferProcessStartedListener.java deleted file mode 100644 index d9c33c74..00000000 --- a/transfer/transfer-04-event-consumer/listener/src/main/java/org/eclipse/edc/sample/extension/listener/TransferProcessStartedListener.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2021 Microsoft Corporation - * - * 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: - * Microsoft Corporation - Initial implementation - * - */ - -package org.eclipse.edc.sample.extension.listener; - -import org.eclipse.edc.connector.controlplane.transfer.spi.observe.TransferProcessListener; -import org.eclipse.edc.connector.controlplane.transfer.spi.types.TransferProcess; -import org.eclipse.edc.spi.monitor.Monitor; - -public class TransferProcessStartedListener implements TransferProcessListener { - - private final Monitor monitor; - - public TransferProcessStartedListener(Monitor monitor) { - this.monitor = monitor; - } - - /** - * Callback invoked by the EDC framework when a transfer is about to be completed. - * - * @param process the transfer process that is about to be completed. - */ - @Override - public void preStarted(final TransferProcess process) { - monitor.info("TransferProcessStartedListener received STARTED event"); - // do something meaningful before transfer start - } -} diff --git a/transfer/transfer-04-event-consumer/listener/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension b/transfer/transfer-04-event-consumer/listener/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension deleted file mode 100644 index b53afdfc..00000000 --- a/transfer/transfer-04-event-consumer/listener/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension +++ /dev/null @@ -1 +0,0 @@ -org.eclipse.edc.sample.extension.listener.TransferProcessStartedListenerExtension \ No newline at end of file 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 98bc20b9..7b478fd7 100644 --- a/transfer/transfer-06-kafka-broker/kafka-runtime/build.gradle.kts +++ b/transfer/transfer-06-kafka-broker/kafka-runtime/build.gradle.kts @@ -19,7 +19,9 @@ plugins { } dependencies { - implementation(libs.edc.bom.controlplane.base) + implementation(libs.edc.bom.controlplane.base) { + exclude("org.eclipse.edc", "transfer-data-plane-signaling") + } implementation(libs.edc.control.plane.api.client) implementation(libs.edc.iam.mock) diff --git a/transfer/transfer-06-kafka-broker/kafka-runtime/consumer.properties b/transfer/transfer-06-kafka-broker/kafka-runtime/consumer.properties index c8013132..da471ae1 100644 --- a/transfer/transfer-06-kafka-broker/kafka-runtime/consumer.properties +++ b/transfer/transfer-06-kafka-broker/kafka-runtime/consumer.properties @@ -6,8 +6,6 @@ web.http.protocol.port=28182 web.http.protocol.path=/protocol web.http.control.port=28183 web.http.control.path=/control -web.http.version.port=28184 -web.http.version.path=/version edc.dsp.callback.address=http://localhost:28182/protocol edc.participant.id=consumer edc.receiver.http.dynamic.endpoint=http://localhost:4000/receiver diff --git a/transfer/transfer-06-kafka-broker/kafka-runtime/provider.properties b/transfer/transfer-06-kafka-broker/kafka-runtime/provider.properties index 706fe3a5..b227cf20 100644 --- a/transfer/transfer-06-kafka-broker/kafka-runtime/provider.properties +++ b/transfer/transfer-06-kafka-broker/kafka-runtime/provider.properties @@ -6,10 +6,7 @@ web.http.protocol.port=18182 web.http.protocol.path=/protocol web.http.control.port=18183 web.http.control.path=/control -web.http.version.port=18184 -web.http.version.path=/version edc.dsp.callback.address=http://localhost:18182/protocol edc.participant.id=provider -edc.ids.id=urn:connector:provider edc.dataplane.http.sink.partition.size=1 edc.receiver.http.dynamic.endpoint=http://localhost/not/used/in/this/sample diff --git a/transfer/transfer-06-kafka-broker/kafka-runtime/src/main/java/org/eclipse/edc/samples/streaming/KafkaExtension.java b/transfer/transfer-06-kafka-broker/kafka-runtime/src/main/java/org/eclipse/edc/samples/streaming/KafkaExtension.java index 4a93b703..6f13afee 100644 --- a/transfer/transfer-06-kafka-broker/kafka-runtime/src/main/java/org/eclipse/edc/samples/streaming/KafkaExtension.java +++ b/transfer/transfer-06-kafka-broker/kafka-runtime/src/main/java/org/eclipse/edc/samples/streaming/KafkaExtension.java @@ -14,10 +14,9 @@ package org.eclipse.edc.samples.streaming; -import org.eclipse.edc.connector.controlplane.transfer.spi.flow.DataFlowManager; -import org.eclipse.edc.runtime.metamodel.annotation.Inject; +import org.eclipse.edc.connector.controlplane.transfer.spi.flow.DataFlowController; +import org.eclipse.edc.runtime.metamodel.annotation.Provider; import org.eclipse.edc.spi.system.ServiceExtension; -import org.eclipse.edc.spi.system.ServiceExtensionContext; /** * Kafka Broker flow extension @@ -29,12 +28,9 @@ public String name() { return "Kafka stream extension"; } - @Inject - private DataFlowManager dataFlowManager; - - @Override - public void initialize(ServiceExtensionContext context) { - dataFlowManager.register(10, new KafkaToKafkaDataFlowController()); + @Provider + public DataFlowController kafkaDataFlowController() { + return new KafkaToKafkaDataFlowController(); } } 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 8744ad31..fcee4e58 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 @@ -39,7 +39,7 @@ public boolean canHandle(TransferProcess transferProcess) { @Override public StatusResult prepare(TransferProcess transferProcess, Policy policy) { // here the flow can be provisioned, not something covered in this sample - return StatusResult.success(null); + return StatusResult.success(DataFlowResponse.Builder.newInstance().build()); } @Override @@ -74,9 +74,26 @@ public StatusResult terminate(TransferProcess transferProcess) { return StatusResult.success(); } + @Override + public StatusResult started(TransferProcess transferProcess) { + // data flow started notification + return StatusResult.success(); + } + + @Override + public StatusResult completed(TransferProcess transferProcess) { + // data flow completed notification + return StatusResult.success(); + } + @Override public Set transferTypesFor(Asset asset) { - return Set.of("Kafka-PULL"); + return Set.of("KafkaBroker-PULL"); + } + + @Override + public Set transferTypesFor(String assetId) { + return Set.of("KafkaBroker-PULL"); } }