summaryrefslogtreecommitdiffstats
path: root/subprojects
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2024-07-10 19:11:53 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2024-07-10 19:11:53 +0200
commit3943d64bb73e6863ecb9b5d921bc05b0c3fe4ad9 (patch)
treeec54d2123a32cafbf75e00c23fef0b03ed4cdf9e /subprojects
parentfeat: generator facade timeout and non-existent objects (diff)
downloadrefinery-3943d64bb73e6863ecb9b5d921bc05b0c3fe4ad9.tar.gz
refinery-3943d64bb73e6863ecb9b5d921bc05b0c3fe4ad9.tar.zst
refinery-3943d64bb73e6863ecb9b5d921bc05b0c3fe4ad9.zip
build: pin transitive dependencies
Make sure we don't duplicate dependency versions. org.ow2.asm:asm is still duplicated, because Xtext needs 9.7 but JaCoCo needs 9.6 instead. This only affects the jacocoAnt configuration of our Java projects.
Diffstat (limited to 'subprojects')
-rw-r--r--subprojects/gradle-plugins/src/main/java/tools/refinery/gradle/plugins/RefineryJavaPlugin.java18
-rw-r--r--subprojects/gradle-plugins/src/main/java/tools/refinery/gradle/plugins/internal/RefineryPluginUtils.java6
-rw-r--r--subprojects/versions/build.gradle.kts2
3 files changed, 13 insertions, 13 deletions
diff --git a/subprojects/gradle-plugins/src/main/java/tools/refinery/gradle/plugins/RefineryJavaPlugin.java b/subprojects/gradle-plugins/src/main/java/tools/refinery/gradle/plugins/RefineryJavaPlugin.java
index 434010d5..4107695e 100644
--- a/subprojects/gradle-plugins/src/main/java/tools/refinery/gradle/plugins/RefineryJavaPlugin.java
+++ b/subprojects/gradle-plugins/src/main/java/tools/refinery/gradle/plugins/RefineryJavaPlugin.java
@@ -7,6 +7,7 @@ package tools.refinery.gradle.plugins;
7 7
8import org.gradle.api.Plugin; 8import org.gradle.api.Plugin;
9import org.gradle.api.Project; 9import org.gradle.api.Project;
10import org.gradle.api.artifacts.Configuration;
10import org.gradle.api.component.AdhocComponentWithVariants; 11import org.gradle.api.component.AdhocComponentWithVariants;
11import org.gradle.api.component.ConfigurationVariantDetails; 12import org.gradle.api.component.ConfigurationVariantDetails;
12import org.gradle.api.internal.tasks.JvmConstants; 13import org.gradle.api.internal.tasks.JvmConstants;
@@ -24,6 +25,7 @@ import tools.refinery.gradle.plugins.internal.Versions;
24 25
25import java.lang.reflect.InvocationTargetException; 26import java.lang.reflect.InvocationTargetException;
26import java.lang.reflect.Method; 27import java.lang.reflect.Method;
28import java.util.Map;
27 29
28public class RefineryJavaPlugin implements Plugin<Project> { 30public class RefineryJavaPlugin implements Plugin<Project> {
29 private static final String JUNIT_API = "org.junit.jupiter:junit-jupiter-api"; 31 private static final String JUNIT_API = "org.junit.jupiter:junit-jupiter-api";
@@ -97,15 +99,17 @@ public class RefineryJavaPlugin implements Plugin<Project> {
97 dependencies.enforcedPlatform(artifact) : dependencies.platform(artifact); 99 dependencies.enforcedPlatform(artifact) : dependencies.platform(artifact);
98 })); 100 }));
99 101
102 RefineryPluginUtils.addConditionalDependency(dependencies, JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME,
103 SLF4J_LOG4J, extension.getUseSlf4JLog4J());
100 RefineryPluginUtils.addConditionalDependency(dependencies, JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME, 104 RefineryPluginUtils.addConditionalDependency(dependencies, JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME,
101 SLF4J_LOG4J, extension.getUseSlf4JLog4J()); 105 SLF4J_LOG4J, extension.getUseSlf4JLog4J());
102 RefineryPluginUtils.addConditionalDependency(dependencies, JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME, 106 RefineryPluginUtils.addConditionalDependency(dependencies, JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME,
103 SLF4J_LOG4J, extension.getUseSlf4JLog4J().map(value -> 107 SLF4J_LOG4J, extension.getUseSlf4JLog4J().map(value ->
104 Boolean.TRUE.equals(value) && target.getPlugins().hasPlugin(ApplicationPlugin.class))); 108 Boolean.TRUE.equals(value) && target.getPlugins().hasPlugin(ApplicationPlugin.class)));
105 109
106 RefineryPluginUtils.addConditionalDependency(dependencies, JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME, 110 RefineryPluginUtils.addConditionalDependency(dependencies, JavaPlugin.TEST_RUNTIME_ONLY_CONFIGURATION_NAME,
107 SLF4J_SIMPLE, extension.getUseSlf4JSimple()); 111 SLF4J_SIMPLE, extension.getUseSlf4JSimple());
108 RefineryPluginUtils.addConditionalDependency(dependencies, JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME, 112 RefineryPluginUtils.addConditionalDependency(dependencies, JavaPlugin.RUNTIME_ONLY_CONFIGURATION_NAME,
109 SLF4J_SIMPLE, extension.getUseSlf4JSimple().map(value -> 113 SLF4J_SIMPLE, extension.getUseSlf4JSimple().map(value ->
110 Boolean.TRUE.equals(value) && target.getPlugins().hasPlugin(ApplicationPlugin.class))); 114 Boolean.TRUE.equals(value) && target.getPlugins().hasPlugin(ApplicationPlugin.class)));
111 115
@@ -197,10 +201,12 @@ public class RefineryJavaPlugin implements Plugin<Project> {
197 } 201 }
198 202
199 private static void excludeLog4J(Project project) { 203 private static void excludeLog4J(Project project) {
200 RefineryPluginUtils.excludeLog4J(project, JavaPlugin.TEST_RUNTIME_CLASSPATH_CONFIGURATION_NAME); 204 project.getConfigurations().withType(Configuration.class, configuration -> {
201 if (project.getPlugins().hasPlugin(ApplicationPlugin.class)) { 205 if (configuration.getName().endsWith("Classpath")) {
202 RefineryPluginUtils.excludeLog4J(project, JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME); 206 configuration.exclude(Map.of("group", "log4j", "module", "log4j"));
203 } 207 configuration.exclude(Map.of("group", "ch.qos.reload4j", "module", "reload4j"));
208 }
209 });
204 } 210 }
205 211
206 private static void configureJunitPlatform(Project project) { 212 private static void configureJunitPlatform(Project project) {
diff --git a/subprojects/gradle-plugins/src/main/java/tools/refinery/gradle/plugins/internal/RefineryPluginUtils.java b/subprojects/gradle-plugins/src/main/java/tools/refinery/gradle/plugins/internal/RefineryPluginUtils.java
index 35ebdae4..0004f249 100644
--- a/subprojects/gradle-plugins/src/main/java/tools/refinery/gradle/plugins/internal/RefineryPluginUtils.java
+++ b/subprojects/gradle-plugins/src/main/java/tools/refinery/gradle/plugins/internal/RefineryPluginUtils.java
@@ -12,7 +12,6 @@ import org.gradle.api.artifacts.dsl.DependencyHandler;
12import org.gradle.api.provider.Provider; 12import org.gradle.api.provider.Provider;
13 13
14import java.util.List; 14import java.util.List;
15import java.util.Map;
16 15
17public final class RefineryPluginUtils { 16public final class RefineryPluginUtils {
18 public static final String VERSION_PROPERTY = "tools.refinery.version"; 17 public static final String VERSION_PROPERTY = "tools.refinery.version";
@@ -26,11 +25,6 @@ public final class RefineryPluginUtils {
26 throw new IllegalArgumentException("This is a static utility class and should not be instantiated directly."); 25 throw new IllegalArgumentException("This is a static utility class and should not be instantiated directly.");
27 } 26 }
28 27
29 public static void excludeLog4J(Project project, String configurationName) {
30 var testRuntimeClasspath = project.getConfigurations().getByName(configurationName);
31 testRuntimeClasspath.exclude(Map.of("group", "log4j", "module", "log4j"));
32 }
33
34 public static void withShadowPlugin(Project project, Action<? super Project> action) { 28 public static void withShadowPlugin(Project project, Action<? super Project> action) {
35 // Method parameter in Gradle API uses raw type. 29 // Method parameter in Gradle API uses raw type.
36 @SuppressWarnings("rawtypes") 30 @SuppressWarnings("rawtypes")
diff --git a/subprojects/versions/build.gradle.kts b/subprojects/versions/build.gradle.kts
index 8137a32d..054158cb 100644
--- a/subprojects/versions/build.gradle.kts
+++ b/subprojects/versions/build.gradle.kts
@@ -17,7 +17,7 @@ mavenArtifact {
17} 17}
18 18
19val refineryVersion = "refinery" 19val refineryVersion = "refinery"
20val interpreterVersion = "refineryInterpreter" 20val interpreterVersion = "refinery-interpreter"
21val interpreterGroup = property("tools.refinery.interpreter.group").toString() 21val interpreterGroup = property("tools.refinery.interpreter.group").toString()
22val shadowVersion = "shadow" 22val shadowVersion = "shadow"
23 23