Skip to content

Commit

Permalink
feat: migrate to Eclipse EDC 0.2.1 (#298)
Browse files Browse the repository at this point in the history
Co-authored-by: Jan Ridderbusch <[email protected]>
  • Loading branch information
richardtreier and jridderbusch authored Nov 17, 2023
1 parent 4827ded commit babb796
Show file tree
Hide file tree
Showing 92 changed files with 1,784 additions and 1,199 deletions.
15 changes: 12 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

#### Major

- Migrated to Eclipse EDC 0.2.1
- Migrated to edc-extensions 5.0.0
- Migrated Assets to JSON-LD

#### Minor

- New Filter: Organization Name
- Search now hits Organization Name

#### Patch

### Deployment Migration Notes

- All connectors need to be re-crawled for detailed asset metadata and participant IDs to work

## [v1.2.0] - 2023-10-30

### Overview
Expand Down Expand Up @@ -85,7 +94,7 @@ Bugfix release for the asset properties issue. Also contains the connector delet
--url 'http://localhost:11002/backend/api/v1/management/wrapper/broker/connectors?adminApiKey=DefaultBrokerServerAdminApiKey' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: ApiKeyDefaultValue' \
--data '["https://some-connector-to-delete/api/v1/ids/data", "https://some-other-connector-to-delete/api/v1/ids/data"]'
--data '["https://some-connector-to-delete/api/dsp", "https://some-other-connector-to-delete/api/dsp"]'
```

#### Compatible Versions
Expand Down Expand Up @@ -201,7 +210,7 @@ Bugfix / Feature Release for the Broker MvP with MS8: Connectors can now be adde
--url 'http://localhost:11002/backend/api/v1/management/wrapper/broker/connectors?adminApiKey=DefaultBrokerServerAdminApiKey' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: ApiKeyDefaultValue' \
--data '["https://some-new-connector/api/v1/ids/data", "https://some-other-new-connector/api/v1/ids/data"]'
--data '["https://some-new-connector/api/dsp", "https://some-other-new-connector/api/dsp"]'
```
#### Compatible Versions
Expand Down Expand Up @@ -248,7 +257,7 @@ Broker MvP using Core EDC MS8.
1. There are new **required** configuration properties:
```yaml
# List of Data Space Names for special Connectors (default: '')
EDC_BROKER_SERVER_KNOWN_DATASPACE_CONNECTORS: "Mobilithek=https://some-connector/ids/data,OtherDataspace=https://some-other-connector/ids/data"
EDC_BROKER_SERVER_KNOWN_DATASPACE_CONNECTORS: "Mobilithek=https://some-connector/api/dsp,OtherDataspace=https://some-other-connector/api/dsp"
```
2. There are new **optional** configuration properties available for overriding:
```yaml
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,10 @@ MY_EDC_JDBC_USER: edc
MY_EDC_JDBC_PASSWORD: edc

# Required: List of EDCs to fetch
EDC_BROKER_SERVER_KNOWN_CONNECTORS: "https://connector-a/ids/data,https://connector-b/ids/data"
EDC_BROKER_SERVER_KNOWN_CONNECTORS: "https://connector-a/api/dsp,https://connector-b/api/dsp"

# List of Data Space Names for special Connectors (default: '')
EDC_BROKER_SERVER_KNOWN_DATASPACE_CONNECTORS: "Mobilithek=https://some-connector/ids/data,OtherDataspace=https://some-other-connector/ids/data"
EDC_BROKER_SERVER_KNOWN_DATASPACE_CONNECTORS: "Mobilithek=https://some-connector/api/dsp,OtherDataspace=https://some-other-connector/api/dsp"

# Required: DAPS credentials
EDC_OAUTH_TOKEN_URL: 'https://daps.test.mobility-dataspace.eu/token'
Expand Down Expand Up @@ -162,7 +162,7 @@ curl --request PUT \
--url 'http://localhost:11002/backend/api/v1/management/wrapper/broker/connectors?adminApiKey=DefaultBrokerServerAdminApiKey' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: ApiKeyDefaultValue' \
--data '["https://some-new-connector/api/v1/ids/data", "https://some-other-new-connector/api/v1/ids/data"]'
--data '["https://some-new-connector/api/dsp", "https://some-other-new-connector/api/dsp"]'
```

#### Removing Connectors at runtime
Expand All @@ -175,7 +175,7 @@ curl --request DELETE \
--url 'http://localhost:11002/backend/api/v1/management/wrapper/broker/connectors?adminApiKey=DefaultBrokerServerAdminApiKey' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: ApiKeyDefaultValue' \
--data '["https://some-connector-to-be-removed/api/v1/ids/data", "https://some-other-connector-to-be-removed/api/v1/ids/data"]'
--data '["https://some-connector-to-be-removed/api/dsp", "https://some-other-connector-to-be-removed/api/dsp"]'
```

<p align="right">(<a href="#readme-top">back to top</a>)</p>
Expand Down
9 changes: 8 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.gradle.api.tasks.testing.logging.TestLogEvent

plugins {
id("java")
id("checkstyle")
Expand Down Expand Up @@ -26,8 +29,12 @@ allprojects {
tasks.getByName<Test>("test") {
useJUnitPlatform()
testLogging {
events("passed", "skipped", "failed")
events = setOf(TestLogEvent.FAILED)
exceptionFormat = TestExceptionFormat.FULL
showExceptions = true
showCauses = true
}
failFast = true
}

checkstyle {
Expand Down
2 changes: 1 addition & 1 deletion connector/.env
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ EDC_BROKER_SERVER_KNOWN_CONNECTORS=
EDC_BROKER_SERVER_DEFAULT_DATASPACE=MDS

# List of Data Space Names for special Connectors
# e.g. Mobilithek=https://my-connector1/ids/data,SomeOtherDataspace=https://my-connector2/ids/data
# e.g. Mobilithek=https://my-connector1/api/dsp,SomeOtherDataspace=https://my-connector2/api/dsp
EDC_BROKER_SERVER_KNOWN_DATASPACE_CONNECTORS=

# CRON interval for crawling ONLINE connectors
Expand Down
3 changes: 2 additions & 1 deletion connector/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ dependencies {
implementation("${edcGroup}:configuration-filesystem:${edcVersion}")
implementation("${edcGroup}:control-plane-aggregate-services:${edcVersion}")
implementation("${edcGroup}:http:${edcVersion}")
implementation("${edcGroup}:ids:${edcVersion}")
implementation("${edcGroup}:dsp:${edcVersion}")
implementation("${edcGroup}:json-ld:${edcVersion}")

// JDK Logger
implementation("${edcGroup}:monitor-jdk-logger:${edcVersion}")
Expand Down
6 changes: 3 additions & 3 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ services:
MY_EDC_JDBC_URL: jdbc:postgresql://broker-postgresql:5432/edc
MY_EDC_JDBC_USER: edc
MY_EDC_JDBC_PASSWORD: edc
EDC_BROKER_SERVER_KNOWN_CONNECTORS: "http://connector:11003/api/v1/ids/data"
EDC_BROKER_SERVER_KNOWN_DATASPACE_CONNECTORS: "Mobilithek=https://some-other-connector/ids/data"
EDC_BROKER_SERVER_KNOWN_CONNECTORS: "http://connector:11003/api/dsp"
EDC_BROKER_SERVER_KNOWN_DATASPACE_CONNECTORS: "Mobilithek=https://some-other-connector/api/dsp"

# Local Dev / Docker-Compose Config
MY_EDC_PROTOCOL: "http://" # We don't have TLS in the docker container
Expand All @@ -44,7 +44,7 @@ services:
POSTGRESQL_PASSWORD: edc
POSTGRESQL_DATABASE: edc
ports:
- '54321:5432'
- '54321:5432'
volumes:
- 'broker-postgresql:/bitnami/postgresql'
connector-ui:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public interface BrokerServerResource {
@Path("connector-detail-page")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Operation(description = "Query a Known Connector's Detail Page")
@Operation(description = "Query a known Connector's Detail Page")
ConnectorDetailPageResult connectorDetailPage(ConnectorDetailPageQuery query);

@PUT
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

package de.sovity.edc.ext.brokerserver.api.model;

import de.sovity.edc.ext.wrapper.api.common.model.PolicyDto;
import de.sovity.edc.ext.wrapper.api.common.model.UiPolicy;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Getter;
Expand All @@ -41,6 +41,6 @@ public class CatalogContractOffer {
private OffsetDateTime updatedAt;

@Schema(description = "Contract Policy", requiredMode = Schema.RequiredMode.REQUIRED)
private PolicyDto contractPolicy;
private UiPolicy contractPolicy;
}

Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

package de.sovity.edc.ext.brokerserver.api.model;

import de.sovity.edc.ext.wrapper.api.common.model.UiAsset;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Getter;
Expand All @@ -23,7 +24,6 @@

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

@Getter
@Setter
Expand All @@ -35,7 +35,7 @@ public class CatalogDataOffer {
@Schema(description = "ID of asset", requiredMode = Schema.RequiredMode.REQUIRED)
private String assetId;

@Schema(description = "Connector Endpoint", example = "https://my-test.connector/control/ids/data", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "Connector Endpoint", example = "https://my-test.connector/api/dsp", requiredMode = Schema.RequiredMode.REQUIRED)
private String connectorEndpoint;

@Schema(description = "Connector Online Status", requiredMode = Schema.RequiredMode.REQUIRED)
Expand All @@ -51,7 +51,7 @@ public class CatalogDataOffer {
private OffsetDateTime updatedAt;

@Schema(description = "Asset properties", requiredMode = Schema.RequiredMode.REQUIRED)
private Map<String, String> properties;
private UiAsset asset;

@Schema(description = "Available Contract Offers", requiredMode = Schema.RequiredMode.REQUIRED)
private List<CatalogContractOffer> contractOffers;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@
@AllArgsConstructor
@Schema(description = "Connector Detail Page Data")
public class ConnectorDetailPageResult {
@Schema(description = "Connector ID", example = "https://my-test.connector", requiredMode = Schema.RequiredMode.REQUIRED)
private String id;
@Schema(description = "Connector Participant ID", example = "https://my-test.connector", requiredMode = Schema.RequiredMode.REQUIRED)
private String participantId;

@Schema(description = "Connector Endpoint", example = "https://my-test.connector/control/ids/data", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "Connector Endpoint", example = "https://my-test.connector/api/dsp", requiredMode = Schema.RequiredMode.REQUIRED)
private String endpoint;

@Schema(description = "Creation date in Broker", requiredMode = Schema.RequiredMode.REQUIRED)
Expand All @@ -49,7 +49,7 @@ public class ConnectorDetailPageResult {
private ConnectorOnlineStatus onlineStatus;

@Schema(description = "Number of known data offerings")
private Integer numContractOffers;
private Integer numDataOffers;

@Schema(description = "Average time to crawl the connector")
private Long connectorCrawlingTimeAvg;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@
@AllArgsConstructor
@Schema(description = "A Contract Offer's Connector Status")
public class ConnectorListEntry {
@Schema(description = "Connector ID", example = "https://my-test.connector", requiredMode = Schema.RequiredMode.REQUIRED)
private String id;
@Schema(description = "Connector Participant ID", example = "my-test-connector", requiredMode = Schema.RequiredMode.REQUIRED)
private String participantId;

@Schema(description = "Connector Endpoint", example = "https://my-test.connector/control/ids/data", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "Connector Endpoint", example = "https://my-test.connector/api/dsp", requiredMode = Schema.RequiredMode.REQUIRED)
private String endpoint;

@Schema(description = "Creation date in Broker", requiredMode = Schema.RequiredMode.REQUIRED)
Expand All @@ -49,6 +49,6 @@ public class ConnectorListEntry {
private ConnectorOnlineStatus onlineStatus;

@Schema(description = "Number of known data offerings")
private Integer numContractOffers;
private Integer numDataOffers;
}

Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

package de.sovity.edc.ext.brokerserver.api.model;

import de.sovity.edc.ext.wrapper.api.common.model.PolicyDto;
import de.sovity.edc.ext.wrapper.api.common.model.UiPolicy;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Getter;
Expand All @@ -41,6 +41,6 @@ public class DataOfferDetailContractOffer {
private OffsetDateTime updatedAt;

@Schema(description = "Contract Policy", requiredMode = Schema.RequiredMode.REQUIRED)
private PolicyDto contractPolicy;
private UiPolicy contractPolicy;
}

Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

package de.sovity.edc.ext.brokerserver.api.model;

import de.sovity.edc.ext.wrapper.api.common.model.UiAsset;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Getter;
Expand All @@ -23,7 +24,6 @@

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

@Getter
@Setter
Expand All @@ -35,7 +35,7 @@ public class DataOfferDetailPageResult {
@Schema(description = "ID of asset", requiredMode = Schema.RequiredMode.REQUIRED)
private String assetId;

@Schema(description = "Connector Endpoint", example = "https://my-test.connector/control/ids/data", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "Connector Endpoint", example = "https://my-test.connector/api/dsp", requiredMode = Schema.RequiredMode.REQUIRED)
private String connectorEndpoint;

@Schema(description = "Connector Online Status", requiredMode = Schema.RequiredMode.REQUIRED)
Expand All @@ -51,7 +51,7 @@ public class DataOfferDetailPageResult {
private OffsetDateTime updatedAt;

@Schema(description = "Asset properties", requiredMode = Schema.RequiredMode.REQUIRED)
private Map<String, String> properties;
private UiAsset asset;

@Schema(description = "Available Contract Offers", requiredMode = Schema.RequiredMode.REQUIRED)
private List<DataOfferDetailContractOffer> contractOffers;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,8 @@ dependencies {
implementation("org.apache.commons:commons-lang3:3.13.0")

implementation("${edcGroup}:core-spi:${edcVersion}")
implementation("${edcGroup}:sql-core:${edcVersion}")

// Adds Database-Related EDC-Extensions (EDC-SQL-Stores, JDBC-Driver, Pool and Transactions)
implementation("${edcGroup}:control-plane-sql:${edcVersion}")
implementation("${edcGroup}:data-plane-instance-store-sql:${edcVersion}")
implementation("${edcGroup}:sql-pool-apache-commons:${edcVersion}")
implementation("${edcGroup}:transaction-local:${edcVersion}")
implementation("org.postgresql:postgresql:${postgresVersion}")

api("org.flywaydb:flyway-core:${flywayVersion}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@

package de.sovity.edc.ext.brokerserver.db;

import org.eclipse.edc.connector.dataplane.selector.store.sql.schema.DataPlaneInstanceStatements;
import org.eclipse.edc.connector.dataplane.selector.store.sql.schema.postgres.PostgresDataPlaneInstanceStatements;
import org.eclipse.edc.runtime.metamodel.annotation.Provider;
import org.eclipse.edc.runtime.metamodel.annotation.Setting;
import org.eclipse.edc.spi.system.ServiceExtension;
import org.eclipse.edc.spi.system.ServiceExtensionContext;
Expand All @@ -39,11 +36,6 @@ public class PostgresFlywayExtension implements ServiceExtension {
@Setting
public static final String DB_CONNECTION_TIMEOUT_IN_MS = "edc.broker.server.db.connection.timeout.in.ms";

@Provider
public DataPlaneInstanceStatements dataPlaneInstanceStatements() {
return new PostgresDataPlaneInstanceStatements();
}

@Override
public String name() {
return "Postgres Flyway Extension (Broker Server)";
Expand Down
Loading

0 comments on commit babb796

Please sign in to comment.