From b993e1de95f6dd0bc81f3f51fa533a077f724162 Mon Sep 17 00:00:00 2001 From: Stuart Douglas Date: Mon, 27 Sep 2021 08:26:18 +1000 Subject: [PATCH] Fix intermittent gradle failures --- .../src/main/java/io/quarkus/gradle/QuarkusPlugin.java | 6 +++--- .../ApplicationDeploymentClasspathBuilder.java | 9 ++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/QuarkusPlugin.java b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/QuarkusPlugin.java index 1dc5149b41b738..1274a414b4f709 100644 --- a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/QuarkusPlugin.java +++ b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/QuarkusPlugin.java @@ -242,19 +242,19 @@ private void registerConditionalDependencies(Project project) { Set implementationExtensions = conditionalDependenciesEnabler .declareConditionalDependencies(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME); deploymentClasspathBuilder.createBuildClasspath(implementationExtensions, - JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME, true); + JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME); }); project.getConfigurations().getByName(DEV_MODE_CONFIGURATION_NAME).getIncoming().beforeResolve((devDependencies) -> { Set devModeExtensions = conditionalDependenciesEnabler .declareConditionalDependencies(DEV_MODE_CONFIGURATION_NAME); - deploymentClasspathBuilder.createBuildClasspath(devModeExtensions, DEV_MODE_CONFIGURATION_NAME, false); + deploymentClasspathBuilder.createBuildClasspath(devModeExtensions, DEV_MODE_CONFIGURATION_NAME); }); project.getConfigurations().getByName(JavaPlugin.TEST_COMPILE_CLASSPATH_CONFIGURATION_NAME).getIncoming() .beforeResolve((testDependencies) -> { Set testExtensions = conditionalDependenciesEnabler .declareConditionalDependencies(JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME); deploymentClasspathBuilder.createBuildClasspath(testExtensions, - JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME, false); + JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME); }); } diff --git a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/dependency/ApplicationDeploymentClasspathBuilder.java b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/dependency/ApplicationDeploymentClasspathBuilder.java index 6d9332c6d743d3..f89844403117bb 100644 --- a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/dependency/ApplicationDeploymentClasspathBuilder.java +++ b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/dependency/ApplicationDeploymentClasspathBuilder.java @@ -12,7 +12,7 @@ public class ApplicationDeploymentClasspathBuilder { private static final String DEPLOYMENT_CONFIGURATION_SUFFIX = "Deployment"; private final Project project; - private final Set commonExtensions = new HashSet<>(); + private final Set alreadyProcessed = new HashSet<>(); public ApplicationDeploymentClasspathBuilder(Project project) { this.project = project; @@ -22,17 +22,16 @@ public static String toDeploymentConfigurationName(String baseConfigurationName) return baseConfigurationName + DEPLOYMENT_CONFIGURATION_SUFFIX; } - public void createBuildClasspath(Set extensions, String baseConfigurationName, boolean common) { + public synchronized void createBuildClasspath(Set extensions, String baseConfigurationName) { String deploymentConfigurationName = toDeploymentConfigurationName(baseConfigurationName); project.getConfigurations().create(deploymentConfigurationName); DependencyHandler dependencies = project.getDependencies(); for (ExtensionDependency extension : extensions) { - if (common) { - commonExtensions.add(extension); - } else if (commonExtensions.contains(extension)) { + if (alreadyProcessed.contains(extension)) { continue; } + alreadyProcessed.add(extension); extension.createDeploymentVariant(dependencies); requireDeploymentDependency(deploymentConfigurationName, extension, dependencies); }