Skip to content

Commit 188d2d6

Browse files
authored
feat: avoid dependency automatic injection (#200)
* feat: avoid automatic production dependency injection * Load versions from catalog
1 parent 3cf93ea commit 188d2d6

File tree

9 files changed

+108
-131
lines changed

9 files changed

+108
-131
lines changed

DEPENDENCIES

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ maven/mavencentral/javax.mail/mailapi/1.4.3, CDDL-1.0 OR GPL-2.0-only WITH Class
6767
maven/mavencentral/javax.validation/validation-api/1.1.0.Final, Apache-2.0, approved, CQ15114
6868
maven/mavencentral/javax.validation/validation-api/2.0.0.Final, Apache-2.0, approved, CQ15302
6969
maven/mavencentral/joda-time/joda-time/2.9.7, Apache-2.0, approved, CQ11988
70-
maven/mavencentral/net.bytebuddy/byte-buddy-agent/1.14.1, Apache-2.0, approved, #7164
71-
maven/mavencentral/net.bytebuddy/byte-buddy/1.12.10, Apache-2.0 AND BSD-3-Clause, approved, #1811
72-
maven/mavencentral/net.bytebuddy/byte-buddy/1.14.1, Apache-2.0 AND BSD-3-Clause, approved, #7163
70+
maven/mavencentral/net.bytebuddy/byte-buddy-agent/1.14.10, Apache-2.0, approved, #7164
71+
maven/mavencentral/net.bytebuddy/byte-buddy/1.12.21, Apache-2.0 AND BSD-3-Clause, approved, #1811
72+
maven/mavencentral/net.bytebuddy/byte-buddy/1.14.10, Apache-2.0 AND BSD-3-Clause, approved, #7163
7373
maven/mavencentral/net.sf.jopt-simple/jopt-simple/5.0.3, MIT, approved, CQ13174
7474
maven/mavencentral/net.sf.saxon/Saxon-HE/10.6, MPL-2.0 AND W3C, approved, #7945
7575
maven/mavencentral/net.steppschuh.markdowngenerator/markdowngenerator/1.3.1.1, Apache-2.0, approved, clearlydefined
@@ -80,7 +80,7 @@ maven/mavencentral/org.apache.commons/commons-lang3/3.7, Apache-2.0, approved, c
8080
maven/mavencentral/org.apache.httpcomponents/httpclient/4.5.2, Apache-2.0, approved, CQ11713
8181
maven/mavencentral/org.apache.httpcomponents/httpcore/4.4.4, Apache-2.0, approved, CQ11716
8282
maven/mavencentral/org.apiguardian/apiguardian-api/1.1.2, Apache-2.0, approved, clearlydefined
83-
maven/mavencentral/org.assertj/assertj-core/3.23.1, Apache-2.0, approved, clearlydefined
83+
maven/mavencentral/org.assertj/assertj-core/3.24.2, Apache-2.0, approved, #6161
8484
maven/mavencentral/org.checkerframework/checker-compat-qual/2.5.2, GPL-2.0-only with Classpath-Exception-2.0, approved, #11598
8585
maven/mavencentral/org.checkerframework/checker-qual/3.12.0, MIT, approved, clearlydefined
8686
maven/mavencentral/org.codehaus.mojo/animal-sniffer-annotations/1.17, MIT, approved, clearlydefined
@@ -100,16 +100,16 @@ maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib/1.4.20, Apache-2.0, approv
100100
maven/mavencentral/org.jetbrains/annotations/13.0, Apache-2.0, approved, clearlydefined
101101
maven/mavencentral/org.jetbrains/annotations/24.0.1, Apache-2.0, approved, #7417
102102
maven/mavencentral/org.jetbrains/annotations/24.1.0, Apache-2.0, approved, clearlydefined
103-
maven/mavencentral/org.junit.jupiter/junit-jupiter-api/5.9.2, EPL-2.0, approved, #3133
104-
maven/mavencentral/org.junit.jupiter/junit-jupiter-engine/5.9.2, EPL-2.0, approved, #3125
105-
maven/mavencentral/org.junit.jupiter/junit-jupiter-params/5.9.2, EPL-2.0, approved, #3134
106-
maven/mavencentral/org.junit.platform/junit-platform-commons/1.9.2, EPL-2.0, approved, #3130
107-
maven/mavencentral/org.junit.platform/junit-platform-engine/1.9.2, EPL-2.0, approved, #3128
108-
maven/mavencentral/org.junit/junit-bom/5.9.2, EPL-2.0, approved, #4711
109-
maven/mavencentral/org.mockito/mockito-core/5.2.0, MIT AND (Apache-2.0 AND MIT) AND Apache-2.0, approved, #7401
103+
maven/mavencentral/org.junit.jupiter/junit-jupiter-api/5.10.1, EPL-2.0, approved, #9714
104+
maven/mavencentral/org.junit.jupiter/junit-jupiter-engine/5.10.1, EPL-2.0, approved, #9711
105+
maven/mavencentral/org.junit.jupiter/junit-jupiter-params/5.10.1, EPL-2.0, approved, #9708
106+
maven/mavencentral/org.junit.platform/junit-platform-commons/1.10.1, EPL-2.0, approved, #9715
107+
maven/mavencentral/org.junit.platform/junit-platform-engine/1.10.1, EPL-2.0, approved, #9709
108+
maven/mavencentral/org.junit/junit-bom/5.10.1, EPL-2.0, approved, #9844
109+
maven/mavencentral/org.mockito/mockito-core/5.8.0, MIT AND (Apache-2.0 AND MIT) AND Apache-2.0, approved, #11787
110110
maven/mavencentral/org.mozilla/rhino/1.7R4, MPL-2.0 AND BSD-3-Clause AND ISC, approved, CQ16320
111111
maven/mavencentral/org.objenesis/objenesis/3.3, Apache-2.0, approved, clearlydefined
112-
maven/mavencentral/org.opentest4j/opentest4j/1.2.0, Apache-2.0, approved, clearlydefined
112+
maven/mavencentral/org.opentest4j/opentest4j/1.3.0, Apache-2.0, approved, #9713
113113
maven/mavencentral/org.ow2.asm/asm-analysis/9.2, BSD-3-Clause, approved, clearlydefined
114114
maven/mavencentral/org.ow2.asm/asm-commons/9.2, BSD-3-Clause, approved, clearlydefined
115115
maven/mavencentral/org.ow2.asm/asm-tree/9.2, BSD-3-Clause, approved, clearlydefined

build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import java.nio.file.Paths
2+
13
plugins {
24
// Apply the Java Gradle plugin development plugin to add support for developing Gradle plugins
35
checkstyle

buildSrc/build.gradle.kts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import java.nio.file.Files
2+
13
plugins {
24
`java-gradle-plugin`
35
}
@@ -39,10 +41,13 @@ gradlePlugin {
3941
}
4042
}
4143

44+
val generatedSourcesFolder = buildDir.resolve("generated").resolve("sources");
45+
4246
sourceSets {
4347
main {
4448
java {
4549
srcDirs(
50+
generatedSourcesFolder,
4651
"../plugins/autodoc/autodoc-plugin/src/main",
4752
"../plugins/autodoc/autodoc-converters/src/main",
4853
"../plugins/edc-build/src/main",
@@ -53,3 +58,30 @@ sourceSets {
5358
}
5459
}
5560
}
61+
62+
val createVersions = tasks.register("createVersions") {
63+
val folder = generatedSourcesFolder.resolve("java")
64+
.resolve("org").resolve("eclipse").resolve("edc").resolve("plugins")
65+
.resolve("edcbuild")
66+
folder.mkdirs()
67+
68+
versionCatalogs.find("libs")
69+
.ifPresent { catalog ->
70+
val head = "package org.eclipse.edc.plugins.edcbuild;\npublic interface Versions {\n"
71+
val tail = "\n}";
72+
73+
val constants = listOf("jupiter", "mockito", "assertj")
74+
.mapNotNull { name ->
75+
catalog.findVersion(name)
76+
.map { version -> " String %s = \"%s\";".format(name.toUpperCase(), version) }
77+
.orElse(null)
78+
}
79+
.joinToString("\n", head, tail)
80+
81+
Files.writeString(folder.resolve("Versions.java").toPath(), constants)
82+
}
83+
}
84+
85+
tasks.compileJava {
86+
dependsOn(createVersions)
87+
}

docs/developer/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
# Developer Documentation
2+
3+
- [Autodoc](autodoc.md)

gradle/libs.versions.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,24 @@
22
format.version = "1.1"
33

44
[versions]
5+
assertj = "3.24.2"
56
edc = "0.4.2-SNAPSHOT"
67
jackson = "2.16.0"
78
jetbrainsAnnotation = "24.0.1"
9+
jupiter = "5.10.1"
10+
mockito = "5.8.0"
811

912
[libraries]
13+
assertj-core = { module = "org.assertj:assertj-core", version.ref = "assertj" }
1014
edc-runtime-metamodel = { module = "org.eclipse.edc:runtime-metamodel", version.ref = "edc" }
1115
jackson-annotations = { module = "com.fasterxml.jackson.core:jackson-annotations", version.ref = "jackson" }
1216
jackson-core = { module = "com.fasterxml.jackson.core:jackson-core", version.ref = "jackson" }
1317
jackson-databind = { module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson" }
1418
jackson-dataformat-xml = { module = "com.fasterxml.jackson.dataformat:jackson-dataformat-xml", version.ref = "jackson" }
1519
jackson-datatypeJsr310 = { module = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", version.ref = "jackson" }
1620
jetbrains-annotations = { module = "org.jetbrains:annotations", version.ref = "jetbrainsAnnotation" }
21+
jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "jupiter" }
22+
mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockito" }
1723
plugin-checksum = { module = "gradle.plugin.org.gradle.crypto:checksum", version = "1.4.0" }
1824
plugin-nexus-publish = { module = "io.github.gradle-nexus:publish-plugin", version = "1.3.0" }
1925
plugin-openapi-merger = { module = "com.rameshkp:openapi-merger-gradle-plugin", version = "1.0.5" }

plugins/edc-build/build.gradle.kts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,11 @@ gradlePlugin {
4545
}
4646
}
4747
}
48+
49+
sourceSets {
50+
main {
51+
java {
52+
srcDir(rootDir.resolve("buildSrc").resolve("build").resolve("generated").resolve("sources"))
53+
}
54+
}
55+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public static EdcConvention repositories() {
3737
}
3838

3939
public static EdcConvention defaultDependencies() {
40-
return new DefaultDependencyConvention();
40+
return new DefaultTestDependencyConvention();
4141
}
4242

4343
public static EdcConvention mavenPom() {

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

Lines changed: 0 additions & 118 deletions
This file was deleted.
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*
2+
* Copyright (c) 2022 Microsoft Corporation
3+
*
4+
* This program and the accompanying materials are made available under the
5+
* terms of the Apache License, Version 2.0 which is available at
6+
* https://www.apache.org/licenses/LICENSE-2.0
7+
*
8+
* SPDX-License-Identifier: Apache-2.0
9+
*
10+
* Contributors:
11+
* Microsoft Corporation - initial API and implementation
12+
*
13+
*/
14+
15+
package org.eclipse.edc.plugins.edcbuild.conventions;
16+
17+
import org.eclipse.edc.plugins.edcbuild.Versions;
18+
import org.gradle.api.Project;
19+
20+
import static java.lang.String.format;
21+
import static org.gradle.api.plugins.JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME;
22+
import static org.gradle.api.plugins.JavaPlugin.TEST_RUNTIME_ONLY_CONFIGURATION_NAME;
23+
24+
/**
25+
* Applies default test dependencies to all "java-library" projects: JUnit, Mockito and AssertJ in their respective
26+
* configurations.
27+
*/
28+
class DefaultTestDependencyConvention implements EdcConvention {
29+
30+
@Override
31+
public void apply(Project target) {
32+
target.getPluginManager().withPlugin("java-library", plugin -> {
33+
34+
var d = target.getDependencies();
35+
36+
//test classpath dependencies
37+
d.add(TEST_IMPLEMENTATION_CONFIGURATION_NAME, format("org.junit.jupiter:junit-jupiter-api:%s", Versions.JUPITER));
38+
d.add(TEST_IMPLEMENTATION_CONFIGURATION_NAME, format("org.junit.jupiter:junit-jupiter-params:%s", Versions.JUPITER));
39+
d.add(TEST_RUNTIME_ONLY_CONFIGURATION_NAME, format("org.junit.jupiter:junit-jupiter-engine:%s", Versions.JUPITER));
40+
d.add(TEST_IMPLEMENTATION_CONFIGURATION_NAME, format("org.mockito:mockito-core:%s", Versions.MOCKITO));
41+
d.add(TEST_IMPLEMENTATION_CONFIGURATION_NAME, format("org.assertj:assertj-core:%s", Versions.ASSERTJ));
42+
});
43+
}
44+
45+
}

0 commit comments

Comments
 (0)