From 88bfd6658b461f0c6da25798f783344de80cbe57 Mon Sep 17 00:00:00 2001 From: Roberto Cortez Date: Tue, 28 Oct 2025 00:00:06 +0000 Subject: [PATCH] Do not copy `quarkus` configuration to Gradle plugin forced properties --- .../gradle/actions/BeforeTestAction.java | 1 - .../tasks/AbstractQuarkusExtension.java | 81 ------------------- .../gradle/tasks/EffectiveConfigProvider.java | 11 +-- .../gradle/tasks/QuarkusBuildTask.java | 23 +++--- .../tasks/QuarkusTaskWithExtensionView.java | 1 - 5 files changed, 13 insertions(+), 104 deletions(-) diff --git a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/actions/BeforeTestAction.java b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/actions/BeforeTestAction.java index 66f49ce49a420..1aa29327a25dc 100644 --- a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/actions/BeforeTestAction.java +++ b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/actions/BeforeTestAction.java @@ -105,7 +105,6 @@ private EffectiveConfigProvider effectiveProvider() { extensionView.getForcedProperties(), extensionView.getProjectProperties(), extensionView.getQuarkusBuildProperties(), - extensionView.getQuarkusRelevantProjectProperties(), manifestAttributes, manifestSections, extensionView.getNativeBuild(), diff --git a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/AbstractQuarkusExtension.java b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/AbstractQuarkusExtension.java index c099fcc0bdb5f..59432357ed075 100644 --- a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/AbstractQuarkusExtension.java +++ b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/AbstractQuarkusExtension.java @@ -1,17 +1,12 @@ package io.quarkus.gradle.tasks; import static io.quarkus.gradle.tasks.QuarkusGradleUtils.getSourceSet; -import static io.smallrye.common.expression.Expression.Flag.DOUBLE_COLON; -import static io.smallrye.common.expression.Expression.Flag.LENIENT_SYNTAX; -import static io.smallrye.common.expression.Expression.Flag.NO_SMART_BRACES; -import static io.smallrye.common.expression.Expression.Flag.NO_TRIM; import static java.util.Collections.emptyList; import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -32,7 +27,6 @@ import io.quarkus.deployment.pkg.PackageConfig; import io.quarkus.gradle.dsl.Manifest; import io.quarkus.maven.dependency.ResolvedDependency; -import io.smallrye.common.expression.Expression; /** * This base class exists to hide internal properties, make those only available in the {@link io.quarkus.gradle.tasks} @@ -81,15 +75,7 @@ private BaseConfig buildBaseConfig() { Set resourcesDirs = getSourceSet(project, SourceSet.MAIN_SOURCE_SET_NAME).getResources().getSourceDirectories() .getFiles(); - // Used to handle the (deprecated) buildNative and testNative tasks. - project.getExtensions().getExtraProperties().getProperties().forEach((k, v) -> { - if (k.startsWith("quarkus.") || k.startsWith("platform.quarkus.")) { - forcedPropertiesProperty.put(k, v.toString()); - } - }); - EffectiveConfig effectiveConfig = EffectiveConfig.builder() - .withForcedProperties(forcedPropertiesProperty.get()) .withTaskProperties(Collections.emptyMap()) .withBuildProperties(quarkusBuildProperties.get()) .withProjectProperties(project.getProperties()) @@ -145,13 +131,6 @@ protected EffectiveConfig buildEffectiveConfiguration(ApplicationModel appModel) Set resourcesDirs = getSourceSet(project, SourceSet.MAIN_SOURCE_SET_NAME).getResources().getSourceDirectories() .getFiles(); - // Used to handle the (deprecated) buildNative and testNative tasks. - project.getExtensions().getExtraProperties().getProperties().forEach((k, v) -> { - if (k.startsWith("quarkus.") || k.startsWith("platform.quarkus.")) { - forcedPropertiesProperty.put(k, v.toString()); - } - }); - Map defaultProperties = new HashMap<>(); String userIgnoredEntries = String.join(",", ignoredEntries.get()); if (!userIgnoredEntries.isEmpty()) { @@ -162,7 +141,6 @@ protected EffectiveConfig buildEffectiveConfiguration(ApplicationModel appModel) return EffectiveConfig.builder() .withPlatformProperties(appModel.getPlatformProperties()) - .withForcedProperties(forcedPropertiesProperty.get()) .withTaskProperties(properties) .withBuildProperties(quarkusBuildProperties.get()) .withProjectProperties(project.getProperties()) @@ -172,65 +150,6 @@ protected EffectiveConfig buildEffectiveConfiguration(ApplicationModel appModel) .build(); } - /** - * Filters resolved Gradle configuration for properties in the Quarkus namespace - * (as in start with quarkus.). This avoids exposing configuration that may contain secrets or - * passwords not related to Quarkus (for instance environment variables storing sensitive data for other systems). - * - * @param appArtifact the application dependency to retrive the quarkus application name and version. - * @return a filtered view of the configuration only with quarkus. names. - */ - protected Map buildSystemProperties(ResolvedDependency appArtifact, Map quarkusProperties) { - Map buildSystemProperties = new HashMap<>(); - buildSystemProperties.putIfAbsent("quarkus.application.name", appArtifact.getArtifactId()); - buildSystemProperties.putIfAbsent("quarkus.application.version", appArtifact.getVersion()); - - for (Map.Entry entry : forcedPropertiesProperty.get().entrySet()) { - if (entry.getKey().startsWith("quarkus.") || entry.getKey().startsWith("platform.quarkus.")) { - buildSystemProperties.put(entry.getKey(), entry.getValue()); - } - } - for (Map.Entry entry : quarkusBuildProperties.get().entrySet()) { - if (entry.getKey().startsWith("quarkus.") || entry.getKey().startsWith("platform.quarkus.")) { - buildSystemProperties.put(entry.getKey(), entry.getValue()); - } - } - for (Map.Entry entry : project.getProperties().entrySet()) { - if ((entry.getKey().startsWith("quarkus.") || entry.getKey().startsWith("platform.quarkus.")) - && entry.getValue() != null) { - buildSystemProperties.put(entry.getKey(), entry.getValue().toString()); - } - } - - Set quarkusValues = new HashSet<>(); - quarkusValues.addAll(quarkusProperties.values()); - quarkusValues.addAll(buildSystemProperties.values()); - - for (String value : quarkusValues) { - Expression expression = Expression.compile(value, LENIENT_SYNTAX, NO_TRIM, NO_SMART_BRACES, DOUBLE_COLON); - for (String reference : expression.getReferencedStrings()) { - String expanded = forcedPropertiesProperty.get().get(reference); - if (expanded != null) { - buildSystemProperties.put(reference, expanded); - continue; - } - - expanded = quarkusBuildProperties.get().get(reference); - if (expanded != null) { - buildSystemProperties.put(reference, expanded); - continue; - } - - expanded = (String) project.getProperties().get(reference); - if (expanded != null) { - buildSystemProperties.put(reference, expanded); - } - } - } - - return buildSystemProperties; - } - private String quarkusProfile() { String profile = System.getProperty(QUARKUS_PROFILE); if (profile == null) { diff --git a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/EffectiveConfigProvider.java b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/EffectiveConfigProvider.java index bfed014fcee82..7c4a00b33f30a 100644 --- a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/EffectiveConfigProvider.java +++ b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/EffectiveConfigProvider.java @@ -24,7 +24,6 @@ public class EffectiveConfigProvider { final MapProperty forcedProperties; final MapProperty projectProperties; final MapProperty quarkusBuildProperties; - final MapProperty quarkusRelevantProjectProperties; final MapProperty manifestAttributes; final MapProperty manifestSections; final Property nativeBuild; @@ -36,7 +35,6 @@ public EffectiveConfigProvider(ListProperty ignoredEntries, MapProperty forcedProperties, MapProperty projectProperties, MapProperty quarkusBuildProperties, - MapProperty quarkusRelevantProjectProperties, MapProperty manifestAttributes, MapProperty manifestSections, Property nativeBuild, @@ -47,7 +45,6 @@ public EffectiveConfigProvider(ListProperty ignoredEntries, this.forcedProperties = forcedProperties; this.projectProperties = projectProperties; this.quarkusBuildProperties = quarkusBuildProperties; - this.quarkusRelevantProjectProperties = quarkusRelevantProjectProperties; this.manifestAttributes = manifestAttributes; this.manifestSections = manifestSections; this.nativeBuild = nativeBuild; @@ -72,10 +69,6 @@ public EffectiveConfig buildEffectiveConfiguration(ApplicationModel appModel, defaultProperties.putIfAbsent("quarkus.application.version", appArtifact.getVersion()); Map forced = new HashMap<>(forcedProperties.get()); - projectProperties.get().forEach((k, v) -> { - forced.put(k, v.toString()); - - }); additionalForcedProperties.forEach((k, v) -> { forced.put(k, v.toString()); }); @@ -87,7 +80,7 @@ public EffectiveConfig buildEffectiveConfiguration(ApplicationModel appModel, .withForcedProperties(forced) .withTaskProperties(properties) .withBuildProperties(quarkusBuildProperties.get()) - .withProjectProperties(quarkusRelevantProjectProperties.get()) + .withProjectProperties(projectProperties.get()) .withDefaultProperties(defaultProperties) .withSourceDirectories(resourcesDirs) .withProfile(getQuarkusProfile()) @@ -117,7 +110,7 @@ private String getQuarkusProfile() { profile = quarkusBuildProperties.get().get(QUARKUS_PROFILE); } if (profile == null) { - Object p = quarkusRelevantProjectProperties.get().get(QUARKUS_PROFILE); + Object p = projectProperties.get().get(QUARKUS_PROFILE); if (p != null) { profile = p.toString(); } diff --git a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusBuildTask.java b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusBuildTask.java index b82e4570c07a4..d28fa5b52d63d 100644 --- a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusBuildTask.java +++ b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusBuildTask.java @@ -380,7 +380,15 @@ protected static void deleteFileIfExists(Path file) { } } - private Map buildSystemProperties(ResolvedDependency appArtifact, Map quarkusProperties) { + /** + * Filters resolved Gradle configuration for properties in the Quarkus namespace + * (as in start with quarkus.). This avoids exposing configuration that may contain secrets or + * passwords not related to Quarkus (for instance environment variables storing sensitive data for other systems). + * + * @param appArtifact the application dependency to retrive the quarkus application name and version. + * @return a filtered view of the configuration only with quarkus. names. + */ + protected Map buildSystemProperties(ResolvedDependency appArtifact, Map quarkusProperties) { Map buildSystemProperties = new HashMap<>(); buildSystemProperties.putIfAbsent("quarkus.application.name", appArtifact.getArtifactId()); buildSystemProperties.putIfAbsent("quarkus.application.version", appArtifact.getVersion()); @@ -390,11 +398,6 @@ private Map buildSystemProperties(ResolvedDependency appArtifact buildSystemProperties.putIfAbsent("quarkus.package.output-timestamp", "1970-01-02T00:00:00Z"); } - for (Map.Entry entry : getExtensionView().getForcedProperties().get().entrySet()) { - if (entry.getKey().startsWith("quarkus.") || entry.getKey().startsWith("platform.quarkus.")) { - buildSystemProperties.put(entry.getKey(), entry.getValue()); - } - } for (Map.Entry entry : getExtensionView().getQuarkusBuildProperties().get().entrySet()) { if (entry.getKey().startsWith("quarkus.") || entry.getKey().startsWith("platform.quarkus.")) { buildSystemProperties.put(entry.getKey(), entry.getValue()); @@ -414,23 +417,19 @@ private Map buildSystemProperties(ResolvedDependency appArtifact for (String value : quarkusValues) { Expression expression = Expression.compile(value, LENIENT_SYNTAX, NO_TRIM, NO_SMART_BRACES, DOUBLE_COLON); for (String reference : expression.getReferencedStrings()) { - String expanded = getExtensionView().getForcedProperties().get().get(reference); + String expanded = getExtensionView().getQuarkusBuildProperties().get().get(reference); if (expanded != null) { buildSystemProperties.put(reference, expanded); continue; } - expanded = getExtensionView().getQuarkusBuildProperties().get().get(reference); - if (expanded != null) { - buildSystemProperties.put(reference, expanded); - continue; - } expanded = (String) getExtensionView().getProjectProperties().get().get(reference); if (expanded != null) { buildSystemProperties.put(reference, expanded); } } } + return buildSystemProperties; } } diff --git a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusTaskWithExtensionView.java b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusTaskWithExtensionView.java index 776f94e723b8a..a9663b27eb69e 100644 --- a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusTaskWithExtensionView.java +++ b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusTaskWithExtensionView.java @@ -45,7 +45,6 @@ public EffectiveConfigProvider effectiveProvider() { getExtensionView().getForcedProperties(), getExtensionView().getProjectProperties(), getExtensionView().getQuarkusBuildProperties(), - getExtensionView().getQuarkusRelevantProjectProperties(), getManifestAttributes(), getManifestSections(), getExtensionView().getNativeBuild(),