Skip to content

Commit 8d631fa

Browse files
authored
feat: Update EDC version to 0.11.0 (#1764)
* Bump edc to 0.11.0. * Try fix header in tests. * Try fix header in tests. * Update enrichManagementRequest field in TractusxParticipantBase. * Update participant enrichManagementRequest. * Fix edr api failing tests. * Update CredentialFormat from JWT to VC1_0_JWT. * Update dependencies file. * Update dependencies file. * Update dependencies file. * Update dependencies file. * Update dependencies file. * Update dependencies file. * Update dependencies file. * Update dependencies file. * Update dependencies file. * Update dependencies file.
1 parent a92af54 commit 8d631fa

File tree

11 files changed

+288
-285
lines changed

11 files changed

+288
-285
lines changed

DEPENDENCIES

Lines changed: 259 additions & 257 deletions
Large diffs are not rendered by default.

edc-extensions/bdrs-client/src/test/java/org/eclipse/tractusx/edc/identity/mapper/BdrsClientImplComponentTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ void setup() throws JOSEException, IOException, ParseException {
165165
void resolve_withInvalidCredential(String token) {
166166
// prime STS and CS
167167
when(csMock.requestPresentation(anyString(), anyString(), anyList()))
168-
.thenReturn(Result.success(List.of(new VerifiablePresentationContainer(token, CredentialFormat.JWT, VerifiablePresentation.Builder.newInstance().type("VerifiableCredential").build()))));
168+
.thenReturn(Result.success(List.of(new VerifiablePresentationContainer(token, CredentialFormat.VC1_0_JWT, VerifiablePresentation.Builder.newInstance().type("VerifiableCredential").build()))));
169169

170170
assertThatThrownBy(() -> client.resolve("BPN1")).isInstanceOf(EdcException.class)
171171
.hasMessageContaining("code: 401, message: Unauthorized");
@@ -182,7 +182,7 @@ void resolve_withSpoofedCredential() throws JOSEException {
182182
var presentation = createJwt(vpHolderKey, HOLDER_DID, null, "bdrs-server-audience", Map.of("vp", asMap(VP_CONTENT_EXAMPLE.formatted(HOLDER_DID, "\"" + membershipCredential + "\""))));
183183

184184
when(csMock.requestPresentation(anyString(), anyString(), anyList()))
185-
.thenReturn(Result.success(List.of(new VerifiablePresentationContainer(presentation, CredentialFormat.JWT, null))));
185+
.thenReturn(Result.success(List.of(new VerifiablePresentationContainer(presentation, CredentialFormat.VC1_0_JWT, null))));
186186

187187
assertThatThrownBy(() -> client.resolve("BPN1"))
188188
.isInstanceOf(EdcException.class)
@@ -200,7 +200,7 @@ void resolve_withSpoofedPresentation() throws JOSEException {
200200
var presentation = createJwt(spoofedKey, HOLDER_DID, null, "bdrs-server-audience", Map.of("vp", asMap(VP_CONTENT_EXAMPLE.formatted(HOLDER_DID, "\"" + membershipCredential + "\""))));
201201

202202
when(csMock.requestPresentation(anyString(), anyString(), anyList()))
203-
.thenReturn(Result.success(List.of(new VerifiablePresentationContainer(presentation, CredentialFormat.JWT, null))));
203+
.thenReturn(Result.success(List.of(new VerifiablePresentationContainer(presentation, CredentialFormat.VC1_0_JWT, null))));
204204

205205
assertThatThrownBy(() -> client.resolve("BPN1"))
206206
.isInstanceOf(EdcException.class)
@@ -217,7 +217,7 @@ void resolve_withValidCredential() {
217217
var presentation = createJwt(vpHolderKey, HOLDER_DID, null, "bdrs-server-audience", Map.of("vp", asMap(VP_CONTENT_EXAMPLE.formatted(HOLDER_DID, "\"" + membershipCredential + "\""))));
218218

219219
when(csMock.requestPresentation(anyString(), anyString(), anyList()))
220-
.thenReturn(Result.success(List.of(new VerifiablePresentationContainer(presentation, CredentialFormat.JWT, null))));
220+
.thenReturn(Result.success(List.of(new VerifiablePresentationContainer(presentation, CredentialFormat.VC1_0_JWT, null))));
221221

222222
assertThatNoException().describedAs(BDRS_SERVER_CONTAINER::getLogs)
223223
.isThrownBy(() -> client.resolve("BPN1"));
@@ -234,7 +234,7 @@ void resolve_withExpiredMembership() {
234234
var presentation = createJwt(vpHolderKey, HOLDER_DID, null, "bdrs-server-audience", Map.of("vp", asMap(VP_CONTENT_EXAMPLE.formatted(HOLDER_DID, "\"" + membershipCredential + "\""))));
235235

236236
when(csMock.requestPresentation(anyString(), anyString(), anyList()))
237-
.thenReturn(Result.success(List.of(new VerifiablePresentationContainer(presentation, CredentialFormat.JWT, null))));
237+
.thenReturn(Result.success(List.of(new VerifiablePresentationContainer(presentation, CredentialFormat.VC1_0_JWT, null))));
238238

239239
assertThatThrownBy(() -> client.resolve("BPN1"))
240240
.isInstanceOf(EdcException.class)

edc-extensions/bdrs-client/src/test/java/org/eclipse/tractusx/edc/identity/mapper/BdrsClientImplTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ void setup() {
9797
// prime STS and CS
9898
when(stsMock.createToken(anyMap(), notNull())).thenReturn(Result.success(TokenRepresentation.Builder.newInstance().token("my-fancy-sitoken").build()));
9999
when(csMock.requestPresentation(anyString(), anyString(), anyList()))
100-
.thenReturn(Result.success(List.of(new VerifiablePresentationContainer(TEST_VP_CONTENT, CredentialFormat.JWT, VerifiablePresentation.Builder.newInstance().type("VerifiableCredential").build()))));
100+
.thenReturn(Result.success(List.of(new VerifiablePresentationContainer(TEST_VP_CONTENT, CredentialFormat.VC1_0_JWT, VerifiablePresentation.Builder.newInstance().type("VerifiableCredential").build()))));
101101

102102
}
103103

@@ -178,8 +178,8 @@ void getData_whenPresentationQueryFails() {
178178
@Test
179179
void getData_whenPresentationQueryReturnsTooManyVps() {
180180
var presentations = List.of(
181-
new VerifiablePresentationContainer(TEST_VP_CONTENT, CredentialFormat.JWT, VerifiablePresentation.Builder.newInstance().type("VerifiableCredential").build()),
182-
new VerifiablePresentationContainer("test-raw-vp-2", CredentialFormat.JWT, VerifiablePresentation.Builder.newInstance().type("VerifiableCredential").build()));
181+
new VerifiablePresentationContainer(TEST_VP_CONTENT, CredentialFormat.VC1_0_JWT, VerifiablePresentation.Builder.newInstance().type("VerifiableCredential").build()),
182+
new VerifiablePresentationContainer("test-raw-vp-2", CredentialFormat.VC1_0_JWT, VerifiablePresentation.Builder.newInstance().type("VerifiableCredential").build()));
183183

184184
when(csMock.requestPresentation(anyString(), anyString(), anyList())).thenReturn(Result.success(presentations));
185185

edc-tests/e2e-fixtures/src/testFixtures/java/org/eclipse/tractusx/edc/tests/ParticipantEdrApi.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,9 @@ public String negotiateEdr(TransferParticipant other, String assetId, JsonArray
122122
.add(ODRL_ASSIGNER_ATTRIBUTE, createObjectBuilder().add(ID, other.getBpn()))
123123
.build();
124124

125-
var requestBody = createEdrNegotiationRequest(other.getProtocolEndpoint().getUrl().toString(), policy, callbacks);
125+
var connectorAddress = other.getConfiguration().get("edc.dsp.callback.address");
126+
127+
var requestBody = createEdrNegotiationRequest(connectorAddress, policy, callbacks);
126128

127129

128130
var response = baseEdrRequest()
@@ -229,6 +231,6 @@ private String createQuery(String leftOp, String op, String rightOp) {
229231
}
230232

231233
private RequestSpecification baseEdrRequest() {
232-
return participant.getManagementEndpoint().baseRequest().contentType(JSON);
234+
return participant.baseManagementRequest().contentType(JSON);
233235
}
234236
}

edc-tests/e2e-fixtures/src/testFixtures/java/org/eclipse/tractusx/edc/tests/participant/TractusxIatpParticipantBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public B trustedIssuer(String trustedIssuer) {
8888
}
8989

9090
@Override
91-
public TractusxIatpParticipantBase build() {
91+
public P build() {
9292
super.build();
9393
Objects.requireNonNull(participant.stsUri, "STS URI should not be null");
9494
Objects.requireNonNull(participant.trustedIssuer, "Trusted issuer cannot be null");

edc-tests/e2e-fixtures/src/testFixtures/java/org/eclipse/tractusx/edc/tests/participant/TractusxParticipantBase.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ public abstract class TractusxParticipantBase extends IdentityParticipant {
6262
public static final Duration ASYNC_TIMEOUT = ofSeconds(120);
6363
public static final Duration ASYNC_POLL_INTERVAL = ofSeconds(1);
6464
private static final String CONSUMER_PROXY_API_KEY = "consumerProxyKey";
65+
private static final String API_KEY_HEADER_NAME = "x-api-key";
6566
protected final URI dataPlaneProxy = URI.create("http://localhost:" + getFreePort());
6667
private final URI controlPlaneDefault = URI.create("http://localhost:" + getFreePort());
6768
private final URI controlPlaneControl = URI.create("http://localhost:" + getFreePort() + "/control");
@@ -91,17 +92,17 @@ public Map<String, String> getConfiguration() {
9192
put("edc.participant.id", id);
9293
put("web.http.port", String.valueOf(controlPlaneDefault.getPort()));
9394
put("web.http.path", "/api");
94-
put("web.http.protocol.port", String.valueOf(protocolEndpoint.getUrl().getPort()));
95-
put("web.http.protocol.path", protocolEndpoint.getUrl().getPath());
96-
put("web.http.management.port", String.valueOf(managementEndpoint.getUrl().getPort()));
97-
put("web.http.management.path", managementEndpoint.getUrl().getPath());
95+
put("web.http.protocol.port", String.valueOf(controlPlaneProtocol.get().getPort()));
96+
put("web.http.protocol.path", controlPlaneProtocol.get().getPath());
97+
put("web.http.management.port", String.valueOf(controlPlaneManagement.get().getPort()));
98+
put("web.http.management.path", controlPlaneManagement.get().getPath());
9899
put("web.http.control.port", String.valueOf(controlPlaneControl.getPort()));
99100
put("web.http.control.path", controlPlaneControl.getPath());
100101
put("web.http.catalog.port", String.valueOf(federatedCatalog.getUrl().getPort()));
101102
put("web.http.catalog.path", federatedCatalog.getUrl().getPath());
102103
put("web.http.catalog.auth.type", "tokenbased");
103104
put("web.http.catalog.auth.key", MANAGEMENT_API_KEY);
104-
put("edc.dsp.callback.address", protocolEndpoint.getUrl().toString());
105+
put("edc.dsp.callback.address", controlPlaneProtocol.get().toString());
105106
put("edc.api.auth.key", MANAGEMENT_API_KEY);
106107
put("web.http.public.path", "/api/public");
107108
put("web.http.public.port", String.valueOf(dataPlanePublic.getPort()));
@@ -160,7 +161,7 @@ public void storeBusinessPartner(String bpn, String... groups) {
160161
.add(ID, bpn)
161162
.add(TX_NAMESPACE + "groups", Json.createArrayBuilder(Arrays.asList(groups)))
162163
.build();
163-
managementEndpoint.baseRequest()
164+
baseManagementRequest()
164165
.contentType(JSON)
165166
.body(body)
166167
.when()
@@ -175,7 +176,7 @@ public ValidatableResponse retireProviderAgreement(String agreementId) {
175176
.add(AR_ENTRY_AGREEMENT_ID, agreementId)
176177
.add(AR_ENTRY_REASON, "long-reason")
177178
.build();
178-
return managementEndpoint.baseRequest()
179+
return baseManagementRequest()
179180
.contentType(JSON)
180181
.body(body)
181182
.when()
@@ -243,7 +244,6 @@ public ValidatableResponse getFederatedCatalog() {
243244
}
244245

245246
public static class Builder<P extends TractusxParticipantBase, B extends Builder<P, B>> extends Participant.Builder<P, B> {
246-
247247
protected Builder(P participant) {
248248
super(participant);
249249
}
@@ -254,14 +254,13 @@ public B did(String did) {
254254
}
255255

256256
@Override
257-
public TractusxParticipantBase build() {
257+
public P build() {
258258
if (participant.did == null) {
259259
participant.did = "did:web:" + participant.name.toLowerCase();
260260
}
261261

262262
participant.federatedCatalog = new Endpoint(URI.create("http://localhost:" + getFreePort() + "/api/catalog"), Map.of("x-api-key", MANAGEMENT_API_KEY));
263-
super.managementEndpoint(new Endpoint(URI.create("http://localhost:" + getFreePort() + "/api/management"), Map.of("x-api-key", MANAGEMENT_API_KEY)));
264-
super.protocolEndpoint(new Endpoint(URI.create("http://localhost:" + getFreePort() + "/protocol")));
263+
participant.enrichManagementRequest = requestSpecification -> requestSpecification.headers(Map.of(API_KEY_HEADER_NAME, MANAGEMENT_API_KEY));
265264
super.timeout(ASYNC_TIMEOUT);
266265
super.build();
267266

edc-tests/edc-controlplane/catalog-tests/src/test/java/org/eclipse/tractusx/edc/tests/catalog/FederatedCatalogTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ static class TestTargetNodeDirectory implements TargetNodeDirectory {
9898
@Override
9999
public List<TargetNode> getAll() {
100100
return participants.stream()
101-
.map(p -> new TargetNode(p.getDid(), p.getBpn(), p.getProtocolEndpoint().getUrl().toString(), List.of("dataspace-protocol-http")))
101+
.map(p -> new TargetNode(p.getDid(), p.getBpn(), p.getConfiguration().get("edc.dsp.callback.address"), List.of("dataspace-protocol-http")))
102102
.collect(Collectors.toList());
103103
}
104104

edc-tests/edc-controlplane/iatp-tests/src/test/java/org/eclipse/tractusx/edc/tests/transfer/AbstractIatpConsumerPullTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ void catalogRequest_whenCredentialExpired() {
236236
.issuerId(DATASPACE_ISSUER_PARTICIPANT.didUrl())
237237
.participantId(did)
238238
.holderId(bpn)
239-
.credential(new VerifiableCredentialContainer(newVcString, CredentialFormat.JWT, newCred))
239+
.credential(new VerifiableCredentialContainer(newVcString, CredentialFormat.VC1_0_JWT, newCred))
240240
.build())
241241
.orElseThrow(f -> new RuntimeException(f.getFailureDetail()));
242242

@@ -297,7 +297,7 @@ void catalogRequest_whenCredentialRevoked() {
297297
.issuerId(DATASPACE_ISSUER_PARTICIPANT.didUrl())
298298
.participantId(did)
299299
.holderId(bpn)
300-
.credential(new VerifiableCredentialContainer(newVcString, CredentialFormat.JWT, newCred))
300+
.credential(new VerifiableCredentialContainer(newVcString, CredentialFormat.VC1_0_JWT, newCred))
301301
.build())
302302
.orElseThrow(f -> new RuntimeException(f.getFailureDetail()));
303303

edc-tests/edc-controlplane/iatp-tests/src/test/java/org/eclipse/tractusx/edc/tests/transfer/iatp/harness/DataspaceIssuer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public VerifiableCredentialResource issueCredential(String did, String bpn, Json
103103
.issuerId(didUrl())
104104
.participantId(did)
105105
.holderId(bpn)
106-
.credential(new VerifiableCredentialContainer(rawVc, CredentialFormat.JWT, credential))
106+
.credential(new VerifiableCredentialContainer(rawVc, CredentialFormat.VC1_0_JWT, credential))
107107
.build();
108108

109109
}

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
format.version = "1.1"
33

44
[versions]
5-
edc = "0.11.0-20250110-SNAPSHOT"
5+
edc = "0.11.0"
66
assertj = "3.27.3"
77
awaitility = "4.2.2"
88
aws = "2.30.11"

0 commit comments

Comments
 (0)