From 9e4e596ad6fe113eeb576914af578b23ffa2d95f Mon Sep 17 00:00:00 2001 From: Guillaume Le Floch Date: Tue, 17 May 2022 21:49:51 +0200 Subject: [PATCH] Leverage delayed property configuration for Gradle extensiton plugin --- .../gradle/QuarkusExtensionConfiguration.java | 68 +++++++++++-------- .../gradle/QuarkusExtensionPlugin.java | 4 +- .../gradle/tasks/ExtensionDescriptorTask.java | 19 +++--- 3 files changed, 52 insertions(+), 39 deletions(-) diff --git a/devtools/gradle/gradle-extension-plugin/src/main/java/io/quarkus/extension/gradle/QuarkusExtensionConfiguration.java b/devtools/gradle/gradle-extension-plugin/src/main/java/io/quarkus/extension/gradle/QuarkusExtensionConfiguration.java index 219c5afe1479e..e93d892da4479 100644 --- a/devtools/gradle/gradle-extension-plugin/src/main/java/io/quarkus/extension/gradle/QuarkusExtensionConfiguration.java +++ b/devtools/gradle/gradle-extension-plugin/src/main/java/io/quarkus/extension/gradle/QuarkusExtensionConfiguration.java @@ -4,99 +4,113 @@ import org.gradle.api.Action; import org.gradle.api.Project; +import org.gradle.api.provider.ListProperty; +import org.gradle.api.provider.Property; import io.quarkus.extension.gradle.dsl.Capabilities; import io.quarkus.extension.gradle.dsl.Capability; public class QuarkusExtensionConfiguration { - private boolean disableValidation; - private String deploymentArtifact; - private String deploymentModule; - private List excludedArtifacts; - private List parentFirstArtifacts; - private List runnerParentFirstArtifacts; - private List lesserPriorityArtifacts; - private List conditionalDependencies; - private List dependencyCondition; + private Property disableValidation; + private Property deploymentArtifact; + private Property deploymentModule; + private ListProperty excludedArtifacts; + private ListProperty parentFirstArtifacts; + private ListProperty runnerParentFirstArtifacts; + private ListProperty lesserPriorityArtifacts; + private ListProperty conditionalDependencies; + private ListProperty dependencyCondition; private Capabilities capabilities = new Capabilities(); private Project project; public QuarkusExtensionConfiguration(Project project) { this.project = project; + disableValidation = project.getObjects().property(Boolean.class); + disableValidation.convention(false); + deploymentArtifact = project.getObjects().property(String.class); + deploymentModule = project.getObjects().property(String.class); + deploymentModule.convention("deployment"); + + excludedArtifacts = project.getObjects().listProperty(String.class); + parentFirstArtifacts = project.getObjects().listProperty(String.class); + runnerParentFirstArtifacts = project.getObjects().listProperty(String.class); + lesserPriorityArtifacts = project.getObjects().listProperty(String.class); + conditionalDependencies = project.getObjects().listProperty(String.class); + dependencyCondition = project.getObjects().listProperty(String.class); } public void setDisableValidation(boolean disableValidation) { - this.disableValidation = disableValidation; + this.disableValidation.set(disableValidation); } - public boolean isValidationDisabled() { + public Property isValidationDisabled() { return disableValidation; } - public String getDeploymentArtifact() { + public Property getDeploymentArtifact() { return deploymentArtifact; } public void setDeploymentArtifact(String deploymentArtifact) { - this.deploymentArtifact = deploymentArtifact; + this.deploymentArtifact.set(deploymentArtifact); } - public String getDeploymentModule() { + public Property getDeploymentModule() { return deploymentModule; } public void setDeploymentModule(String deploymentModule) { - this.deploymentModule = deploymentModule; + this.deploymentModule.set(deploymentModule); } - public List getExcludedArtifacts() { + public ListProperty getExcludedArtifacts() { return excludedArtifacts; } public void setExcludedArtifacts(List excludedArtifacts) { - this.excludedArtifacts = excludedArtifacts; + this.excludedArtifacts.addAll(excludedArtifacts); } - public List getParentFirstArtifacts() { + public ListProperty getParentFirstArtifacts() { return parentFirstArtifacts; } public void setParentFirstArtifacts(List parentFirstArtifacts) { - this.parentFirstArtifacts = parentFirstArtifacts; + this.parentFirstArtifacts.addAll(parentFirstArtifacts); } - public List getRunnerParentFirstArtifacts() { + public ListProperty getRunnerParentFirstArtifacts() { return runnerParentFirstArtifacts; } public void setRunnerParentFirstArtifacts(List runnerParentFirstArtifacts) { - this.runnerParentFirstArtifacts = runnerParentFirstArtifacts; + this.runnerParentFirstArtifacts.addAll(runnerParentFirstArtifacts); } - public List getLesserPriorityArtifacts() { + public ListProperty getLesserPriorityArtifacts() { return lesserPriorityArtifacts; } public void setLesserPriorityArtifacts(List lesserPriorityArtifacts) { - this.lesserPriorityArtifacts = lesserPriorityArtifacts; + this.lesserPriorityArtifacts.addAll(lesserPriorityArtifacts); } - public List getConditionalDependencies() { + public ListProperty getConditionalDependencies() { return conditionalDependencies; } public void setConditionalDependencies(List conditionalDependencies) { - this.conditionalDependencies = conditionalDependencies; + this.conditionalDependencies.addAll(conditionalDependencies); } - public List getDependencyConditions() { + public ListProperty getDependencyConditions() { return dependencyCondition; } public void setDependencyConditions(List dependencyCondition) { - this.dependencyCondition = dependencyCondition; + this.dependencyCondition.addAll(dependencyCondition); } public List getProvidedCapabilities() { diff --git a/devtools/gradle/gradle-extension-plugin/src/main/java/io/quarkus/extension/gradle/QuarkusExtensionPlugin.java b/devtools/gradle/gradle-extension-plugin/src/main/java/io/quarkus/extension/gradle/QuarkusExtensionPlugin.java index 7752084a678d3..02d8b1627a91f 100644 --- a/devtools/gradle/gradle-extension-plugin/src/main/java/io/quarkus/extension/gradle/QuarkusExtensionPlugin.java +++ b/devtools/gradle/gradle-extension-plugin/src/main/java/io/quarkus/extension/gradle/QuarkusExtensionPlugin.java @@ -61,7 +61,7 @@ private void registerTasks(Project project, QuarkusExtensionConfiguration quarku ValidateExtensionTask.class, task -> { task.setRuntimeModuleClasspath(runtimeModuleClasspath); task.setQuarkusExtensionConfiguration(quarkusExt); - task.onlyIf(t -> !quarkusExt.isValidationDisabled()); + task.onlyIf(t -> !quarkusExt.isValidationDisabled().get()); }); project.getPlugins().withType( @@ -131,7 +131,7 @@ private void addAnnotationProcessorDependency(Project project) { private Project findDeploymentProject(Project project, QuarkusExtensionConfiguration configuration) { - String deploymentProjectName = configuration.getDeploymentModule(); + String deploymentProjectName = configuration.getDeploymentModule().get(); if (deploymentProjectName == null) { deploymentProjectName = DEFAULT_DEPLOYMENT_PROJECT_NAME; } diff --git a/devtools/gradle/gradle-extension-plugin/src/main/java/io/quarkus/extension/gradle/tasks/ExtensionDescriptorTask.java b/devtools/gradle/gradle-extension-plugin/src/main/java/io/quarkus/extension/gradle/tasks/ExtensionDescriptorTask.java index 4532277251b2b..b5237521b330f 100644 --- a/devtools/gradle/gradle-extension-plugin/src/main/java/io/quarkus/extension/gradle/tasks/ExtensionDescriptorTask.java +++ b/devtools/gradle/gradle-extension-plugin/src/main/java/io/quarkus/extension/gradle/tasks/ExtensionDescriptorTask.java @@ -90,13 +90,12 @@ public void generateExtensionDescriptor() throws IOException { private void generateQuarkusExtensionProperties(Path metaInfDir) { final Properties props = new Properties(); - String deploymentArtifact = quarkusExtensionConfiguration.getDeploymentArtifact(); - if (quarkusExtensionConfiguration.getDeploymentArtifact() == null) { - deploymentArtifact = quarkusExtensionConfiguration.getDefaultDeployementArtifactName(); - } + String deploymentArtifact = quarkusExtensionConfiguration.getDeploymentArtifact() + .getOrElse(quarkusExtensionConfiguration.getDefaultDeployementArtifactName()); + props.setProperty(BootstrapConstants.PROP_DEPLOYMENT_ARTIFACT, deploymentArtifact); - List conditionalDependencies = quarkusExtensionConfiguration.getConditionalDependencies(); + List conditionalDependencies = quarkusExtensionConfiguration.getConditionalDependencies().get(); if (conditionalDependencies != null && !conditionalDependencies.isEmpty()) { final StringBuilder buf = new StringBuilder(); int i = 0; @@ -107,7 +106,7 @@ private void generateQuarkusExtensionProperties(Path metaInfDir) { props.setProperty(BootstrapConstants.CONDITIONAL_DEPENDENCIES, buf.toString()); } - List dependencyConditions = quarkusExtensionConfiguration.getDependencyConditions(); + List dependencyConditions = quarkusExtensionConfiguration.getDependencyConditions().get(); if (dependencyConditions != null && !dependencyConditions.isEmpty()) { final StringBuilder buf = new StringBuilder(); int i = 0; @@ -118,25 +117,25 @@ private void generateQuarkusExtensionProperties(Path metaInfDir) { props.setProperty(BootstrapConstants.DEPENDENCY_CONDITION, buf.toString()); } - List parentFirstArtifacts = quarkusExtensionConfiguration.getParentFirstArtifacts(); + List parentFirstArtifacts = quarkusExtensionConfiguration.getParentFirstArtifacts().get(); if (parentFirstArtifacts != null && !parentFirstArtifacts.isEmpty()) { String val = String.join(",", parentFirstArtifacts); props.put(AppModel.PARENT_FIRST_ARTIFACTS, val); } - List runnerParentFirstArtifacts = quarkusExtensionConfiguration.getRunnerParentFirstArtifacts(); + List runnerParentFirstArtifacts = quarkusExtensionConfiguration.getRunnerParentFirstArtifacts().get(); if (runnerParentFirstArtifacts != null && !runnerParentFirstArtifacts.isEmpty()) { String val = String.join(",", runnerParentFirstArtifacts); props.put(AppModel.RUNNER_PARENT_FIRST_ARTIFACTS, val); } - List excludedArtifacts = quarkusExtensionConfiguration.getExcludedArtifacts(); + List excludedArtifacts = quarkusExtensionConfiguration.getExcludedArtifacts().get(); if (excludedArtifacts != null && !excludedArtifacts.isEmpty()) { String val = String.join(",", excludedArtifacts); props.put(AppModel.EXCLUDED_ARTIFACTS, val); } - List lesserPriorityArtifacts = quarkusExtensionConfiguration.getLesserPriorityArtifacts(); + List lesserPriorityArtifacts = quarkusExtensionConfiguration.getLesserPriorityArtifacts().get(); if (lesserPriorityArtifacts != null && !lesserPriorityArtifacts.isEmpty()) { String val = String.join(",", lesserPriorityArtifacts); props.put(AppModel.LESSER_PRIORITY_ARTIFACTS, val);