Skip to content

Commit be9b441

Browse files
fix: supply Jackson Dataformat XML libs alongside azure (#119)
1 parent e053018 commit be9b441

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

gradle/libs.versions.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ fraunhofer-infomodel = { module = "de.fraunhofer.iais.eis.ids.infomodel:java", v
5454
jackson-core = { module = "com.fasterxml.jackson.core:jackson-core", version.ref = "jackson" }
5555
jackson-annotations = { module = "com.fasterxml.jackson.core:jackson-annotations", version.ref = "jackson" }
5656
jackson-databind = { module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson" }
57+
jackson-dataformat-xml = { module = "com.fasterxml.jackson.dataformat:jackson-dataformat-xml", version.ref = "jackson" }
5758
jackson-datatypeJsr310 = { module = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", version.ref = "jackson" }
5859
jakarta-validation = { module = "jakarta.validation:jakarta.validation-api", version.ref = "jakartaValidation" }
5960
jakarta-rsApi = { module = "jakarta.ws.rs:jakarta.ws.rs-api", version.ref = "rsApi" }
@@ -65,7 +66,7 @@ jersey-servlet = { module = "org.glassfish.jersey.containers:jersey-container-se
6566
jersey-servletcore = { module = "org.glassfish.jersey.containers:jersey-container-servlet-core", version.ref = "jersey" }
6667
jersey-jackson = { module = "org.glassfish.jersey.media:jersey-media-json-jackson", version.ref = "jersey" }
6768
jersey-inject = { module = "org.glassfish.jersey.inject:jersey-hk2", version.ref = "jersey" }
68-
jetbrains-annotations = { module = "org.jetbrains:annotations", version.ref = "jetbrainsAnnotation"}
69+
jetbrains-annotations = { module = "org.jetbrains:annotations", version.ref = "jetbrainsAnnotation" }
6970
jetty-websocket = { module = "org.eclipse.jetty.websocket:websocket-jakarta-server", version.ref = "jetty" }
7071
jta = { module = "javax.transaction:javax.transaction-api", version.ref = "jta" }
7172
junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "jupiter" }

plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/DefaultDependencyConvention.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ public void apply(Project target) {
4646
d.add(JavaPlugin.API_CONFIGURATION_NAME, format("com.fasterxml.jackson.core:jackson-core:%s", jacksonVersion));
4747
d.add(JavaPlugin.API_CONFIGURATION_NAME, format("com.fasterxml.jackson.core:jackson-annotations:%s", jacksonVersion));
4848
d.add(JavaPlugin.API_CONFIGURATION_NAME, format("com.fasterxml.jackson.core:jackson-databind:%s", jacksonVersion));
49+
// this is a temporary workaround to compensate for azure libs, that use XmlMapper, but don't correctly list it as a dependency
50+
if (hasAzureDependency(target)) {
51+
d.add(JavaPlugin.RUNTIME_ONLY_CONFIGURATION_NAME, format("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:%s", jacksonVersion));
52+
}
4953
d.add(JavaPlugin.API_CONFIGURATION_NAME, format("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:%s", jacksonVersion));
5054
d.add(JavaPlugin.API_CONFIGURATION_NAME, format("%s:runtime-metamodel:%s", EDC_GROUP_ID, ext.getMetaModel().getOrElse("0.0.1-SNAPSHOT")));
5155

@@ -59,6 +63,11 @@ public void apply(Project target) {
5963
});
6064
}
6165

66+
private boolean hasAzureDependency(Project target) {
67+
return target.getConfigurations().stream().flatMap(c -> c.getDependencies().stream())
68+
.anyMatch(d -> d.getGroup() != null && d.getGroup().contains("azure"));
69+
}
70+
6271
private static class CatalogReader {
6372
private static final String FIELDNAME_CONFIG = "config";
6473
private final Project target;

0 commit comments

Comments
 (0)