This is an automated email from the ASF dual-hosted git repository.

cdeppisch pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new f767828900c [CAMEL-21016] camel-jbang: Add support for multiple build 
properties
f767828900c is described below

commit f767828900c2a54c5707867f784dab9d16ca09c0
Author: Thomas Diesler <tdies...@redhat.com>
AuthorDate: Thu Jul 25 16:04:04 2024 +0200

    [CAMEL-21016] camel-jbang: Add support for multiple build properties
---
 .../camel/dsl/jbang/core/commands/Export.java      |  4 +-
 .../dsl/jbang/core/commands/ExportBaseCommand.java | 48 +++++++++++++---------
 .../dsl/jbang/core/commands/ExportCamelMain.java   | 18 +-------
 .../dsl/jbang/core/commands/ExportQuarkus.java     | 16 +-------
 .../dsl/jbang/core/commands/ExportSpringBoot.java  | 19 +--------
 .../apache/camel/dsl/jbang/core/commands/Run.java  | 18 +++-----
 .../camel/dsl/jbang/core/common/RuntimeUtil.java   |  3 +-
 .../resources/templates/main-kubernetes-pom.tmpl   |  2 +-
 .../src/main/resources/templates/main-pom.tmpl     |  2 +-
 .../src/main/resources/templates/quarkus-pom.tmpl  |  2 +-
 .../templates/spring-boot-kubernetes-pom.tmpl      |  2 +-
 .../main/resources/templates/spring-boot-pom.tmpl  |  2 +-
 .../core/commands/kubernetes/KubernetesExport.java | 47 ++++++---------------
 13 files changed, 60 insertions(+), 123 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
index 89efb841b1e..19f2d48d6b5 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
@@ -113,7 +113,7 @@ public class Export extends ExportBaseCommand {
         // copy properties from this to cmd
         cmd.files = this.files;
         cmd.repos = this.repos;
-        cmd.addDependencies(this.dependencies);
+        cmd.dependencies = this.dependencies;
         cmd.runtime = this.runtime;
         cmd.gav = this.gav;
         cmd.mavenSettings = this.mavenSettings;
@@ -140,7 +140,7 @@ public class Export extends ExportBaseCommand {
         cmd.gradleWrapper = this.gradleWrapper;
         cmd.buildTool = this.buildTool;
         cmd.quiet = this.quiet;
-        cmd.additionalProperties = this.additionalProperties;
+        cmd.buildProperties = this.buildProperties;
         cmd.openapi = this.openapi;
         cmd.packageName = this.packageName;
         cmd.exclude = this.exclude;
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
index 51977cc4886..dbf8d95dc40 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
@@ -94,7 +94,7 @@ public abstract class ExportBaseCommand extends CamelCommand {
     protected String repos;
 
     @CommandLine.Option(names = { "--dep", "--dependency" }, arity = "*", 
description = "Add additional dependencies")
-    protected String[] dependencies;
+    protected List<String> dependencies = new ArrayList<>();
 
     @CommandLine.Option(names = { "--runtime" },
                         completionCandidates = 
RuntimeCompletionCandidates.class,
@@ -204,9 +204,9 @@ public abstract class ExportBaseCommand extends 
CamelCommand {
                         description = "Whether to allow automatic downloading 
JAR dependencies (over the internet)")
     protected boolean download = true;
 
-    @CommandLine.Option(names = { "--additional-properties" },
-                        description = "Additional maven properties, ex. 
--additional-properties=prop1=foo,prop2=bar")
-    protected String additionalProperties;
+    @CommandLine.Option(names = { "--build-property" }, arity = "*",
+                        description = "Maven/Gradle build properties, ex. 
--build-property=prop1=foo")
+    protected List<String> buildProperties = new ArrayList<>();
 
     @CommandLine.Option(names = { "--logging" }, defaultValue = "false",
                         description = "Can be used to turn on logging (logs to 
file in <user home>/.camel directory)")
@@ -295,7 +295,7 @@ public abstract class ExportBaseCommand extends 
CamelCommand {
     protected Integer runSilently(boolean ignoreLoadingError) throws Exception 
{
         Run run = new Run(getMain());
         // need to declare the profile to use for run
-        run.addDependencies(dependencies);
+        run.dependencies = dependencies;
         run.files = files;
         run.exclude = exclude;
         run.openapi = openapi;
@@ -310,14 +310,24 @@ public abstract class ExportBaseCommand extends 
CamelCommand {
 
     protected void addDependencies(String... deps) {
         var depsArray = Optional.ofNullable(deps).orElse(new String[0]);
-        var depsList = new ArrayList<>(getDependenciesList());
-        depsList.addAll(Arrays.asList(depsArray));
-        dependencies = depsList.toArray(new String[0]);
-    }
-
-    protected List<String> getDependenciesList() {
-        var depsArray = Optional.ofNullable(dependencies).orElse(new 
String[0]);
-        return Arrays.asList(depsArray);
+        dependencies.addAll(Arrays.asList(depsArray));
+    }
+
+    protected String replaceBuildProperties(String context) {
+        String properties = buildProperties.stream()
+                .filter(item -> !item.isEmpty())
+                .map(item -> {
+                    String[] keyValueProperty = item.split("=");
+                    return String.format("        <%s>%s</%s>", 
keyValueProperty[0], keyValueProperty[1],
+                            keyValueProperty[0]);
+                })
+                .collect(Collectors.joining(System.lineSeparator()));
+        if (!properties.isEmpty()) {
+            context = context.replaceFirst(Pattern.quote("{{ .BuildProperties 
}}"), Matcher.quoteReplacement(properties));
+        } else {
+            context = context.replaceFirst(Pattern.quote("{{ .BuildProperties 
}}"), "");
+        }
+        return context;
     }
 
     protected Set<String> resolveDependencies(File settings, File profile) 
throws Exception {
@@ -338,7 +348,7 @@ public abstract class ExportBaseCommand extends 
CamelCommand {
         }
 
         // custom dependencies
-        for (String d : getDependenciesList()) {
+        for (String d : dependencies) {
             answer.add(normalizeDependency(d));
         }
 
@@ -619,12 +629,10 @@ public abstract class ExportBaseCommand extends 
CamelCommand {
         // noop
     }
 
-    protected Properties mapToProperties(Map<String, Object> map) {
-        var result = new Properties();
-        if (map != null) {
-            map.forEach((key, value) -> result.setProperty(key, 
value.toString()));
-        }
-        return result;
+    protected Properties mapBuildProperties() {
+        var answer = new Properties();
+        buildProperties.stream().map(item -> item.split("=")).forEach(toks -> 
answer.setProperty(toks[0], toks[1]));
+        return answer;
     }
 
     protected void copyMavenWrapper() throws Exception {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
index b3652ba384e..c662979ef1e 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
@@ -20,13 +20,9 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Properties;
 import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
 
 import org.apache.camel.catalog.CamelCatalog;
 import org.apache.camel.catalog.DefaultCamelCatalog;
@@ -185,19 +181,7 @@ class ExportCamelMain extends Export {
         RuntimeUtil.loadProperties(prop, settings);
         String repos = getMavenRepos(settings, prop, camelVersion);
 
-        if (additionalProperties != null) {
-            String properties = Arrays.stream(additionalProperties.split(","))
-                    .filter(item -> !item.isEmpty())
-                    .map(item -> {
-                        String[] keyValueProperty = item.split("=");
-                        return String.format("        <%s>%s</%s>", 
keyValueProperty[0], keyValueProperty[1],
-                                keyValueProperty[0]);
-                    })
-                    .collect(Collectors.joining(System.lineSeparator()));
-            context = context.replaceFirst(Pattern.quote("{{ 
.AdditionalProperties }}"), Matcher.quoteReplacement(properties));
-        } else {
-            context = context.replaceFirst(Pattern.quote("{{ 
.AdditionalProperties }}"), "");
-        }
+        context = replaceBuildProperties(context);
 
         if (repos == null || repos.isEmpty()) {
             context = context.replaceFirst("\\{\\{ \\.MavenRepositories }}", 
"");
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
index 42d73db4e49..6e2cdf57b5b 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
@@ -26,8 +26,6 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 import java.util.StringJoiner;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 import org.apache.camel.catalog.CamelCatalog;
@@ -375,19 +373,7 @@ class ExportQuarkus extends Export {
         context = context.replaceFirst("\\{\\{ \\.JavaVersion }}", 
javaVersion);
         context = context.replaceFirst("\\{\\{ \\.CamelVersion }}", 
camelVersion);
 
-        if (additionalProperties != null && !additionalProperties.isEmpty()) {
-            String properties = Arrays.stream(additionalProperties.split(","))
-                    .filter(item -> !item.isEmpty())
-                    .map(item -> {
-                        String[] keyValueProperty = item.split("=");
-                        return String.format("        <%s>%s</%s>", 
keyValueProperty[0], keyValueProperty[1],
-                                keyValueProperty[0]);
-                    })
-                    .collect(Collectors.joining(System.lineSeparator()));
-            context = context.replaceFirst(Pattern.quote("{{ 
.AdditionalProperties }}"), Matcher.quoteReplacement(properties));
-        } else {
-            context = context.replaceFirst(Pattern.quote("{{ 
.AdditionalProperties }}"), "");
-        }
+        context = replaceBuildProperties(context);
 
         if (repos == null || repos.isEmpty()) {
             context = context.replaceFirst("\\{\\{ \\.MavenRepositories }}", 
"");
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
index 07b2eac1a7f..4c1b006cc88 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
@@ -22,13 +22,9 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Properties;
 import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
 
 import org.apache.camel.catalog.CamelCatalog;
 import org.apache.camel.dsl.jbang.core.common.CatalogLoader;
@@ -186,19 +182,8 @@ class ExportSpringBoot extends Export {
         } else {
             context = context.replaceAll("\\{\\{ \\.CamelSpringBootVersion 
}}", camelVersion);
         }
-        if (additionalProperties != null && !additionalProperties.isEmpty()) {
-            String properties = Arrays.stream(additionalProperties.split(","))
-                    .filter(item -> !item.isEmpty())
-                    .map(item -> {
-                        String[] keyValueProperty = item.split("=");
-                        return String.format("        <%s>%s</%s>", 
keyValueProperty[0], keyValueProperty[1],
-                                keyValueProperty[0]);
-                    })
-                    .collect(Collectors.joining(System.lineSeparator()));
-            context = context.replaceFirst(Pattern.quote("{{ 
.AdditionalProperties }}"), Matcher.quoteReplacement(properties));
-        } else {
-            context = context.replaceFirst(Pattern.quote("{{ 
.AdditionalProperties }}"), "");
-        }
+
+        context = replaceBuildProperties(context);
 
         if (repos == null || repos.isEmpty()) {
             context = context.replaceFirst("\\{\\{ \\.MavenRepositories }}", 
"");
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
index 570892479e4..36e9c6d0adf 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
@@ -153,7 +153,7 @@ public class Run extends CamelCommand {
     String profile = "dev";
 
     @Option(names = { "--dep", "--dependency" }, arity = "*", description = 
"Add additional dependencies")
-    String[] dependencies;
+    List<String> dependencies = new ArrayList<>();
 
     @Option(names = { "--repos" },
             description = "Additional maven repositories for download 
on-demand (Use commas to separate multiple repositories)")
@@ -808,7 +808,7 @@ public class Run extends CamelCommand {
 
         // merge existing dependencies with --deps
         addDependencies(RuntimeUtil.getDependenciesAsArray(profileProperties));
-        if (dependencies.length > 0) {
+        if (!dependencies.isEmpty()) {
             var joined = String.join(",", dependencies);
             main.addInitialProperty("camel.jbang.dependencies", joined);
             writeSettings("camel.jbang.dependencies", joined);
@@ -857,14 +857,8 @@ public class Run extends CamelCommand {
 
     protected void addDependencies(String... deps) {
         var depsArray = Optional.ofNullable(deps).orElse(new String[0]);
-        var depsList = new ArrayList<>(getDependenciesList());
-        depsList.addAll(Arrays.asList(depsArray));
-        dependencies = depsList.toArray(new String[0]);
-    }
-
-    protected List<String> getDependenciesList() {
-        var depsArray = Optional.ofNullable(dependencies).orElse(new 
String[0]);
-        return Arrays.asList(depsArray);
+        var depsList = Arrays.stream(depsArray).filter(tok -> 
!tok.isEmpty()).toList();
+        dependencies.addAll(depsList);
     }
 
     protected int runQuarkus() throws Exception {
@@ -890,7 +884,7 @@ public class Run extends CamelCommand {
         if (eq.gav == null) {
             eq.gav = "org.example.project:jbang-run-dummy:1.0-SNAPSHOT";
         }
-        eq.addDependencies(this.dependencies);
+        eq.dependencies = this.dependencies;
         eq.addDependencies("camel:cli-connector");
         eq.fresh = this.fresh;
         eq.download = this.download;
@@ -954,7 +948,7 @@ public class Run extends CamelCommand {
         if (eq.gav == null) {
             eq.gav = "org.example.project:jbang-run-dummy:1.0-SNAPSHOT";
         }
-        eq.addDependencies(dependencies);
+        eq.dependencies.addAll(dependencies);
         eq.addDependencies("camel:cli-connector");
         if (this.dev) {
             // hot-reload of spring-boot
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeUtil.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeUtil.java
index da04fb58059..739f8166263 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeUtil.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeUtil.java
@@ -184,7 +184,8 @@ public final class RuntimeUtil {
     }
 
     public static String[] getDependenciesAsArray(Properties properties) {
-        return getDependencies(properties).split(",");
+        String deps = getDependencies(properties);
+        return deps.isEmpty() ? new String[0] : deps.split(",");
     }
 
     public static String getPid() {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-kubernetes-pom.tmpl
 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-kubernetes-pom.tmpl
index ab7a3647f50..4d0e44bc1ed 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-kubernetes-pom.tmpl
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-kubernetes-pom.tmpl
@@ -9,7 +9,7 @@
 
     <properties>
         <java.version>{{ .JavaVersion }}</java.version>
-{{ .AdditionalProperties }}
+{{ .BuildProperties }}
     </properties>
 
     <dependencyManagement>
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl
index 1d837b06d60..08f5eebc89c 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl
@@ -9,7 +9,7 @@
 
     <properties>
         <java.version>{{ .JavaVersion }}</java.version>
-{{ .AdditionalProperties }}
+{{ .BuildProperties }}
     </properties>
 
     <dependencyManagement>
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-pom.tmpl
 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-pom.tmpl
index 83927859b0d..cd3a7c49082 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-pom.tmpl
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-pom.tmpl
@@ -17,7 +17,7 @@
         <quarkus.platform.group-id>{{ .QuarkusGroupId 
}}</quarkus.platform.group-id>
         <quarkus.platform.artifact-id>{{ .QuarkusArtifactId 
}}</quarkus.platform.artifact-id>
         <quarkus.platform.version>{{ .QuarkusVersion 
}}</quarkus.platform.version>
-{{ .AdditionalProperties }}
+{{ .BuildProperties }}
         <skipITs>true</skipITs>
         <surefire-plugin.version>3.1.2</surefire-plugin.version>
     </properties>
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-kubernetes-pom.tmpl
 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-kubernetes-pom.tmpl
index 894051b0701..916f0de418e 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-kubernetes-pom.tmpl
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-kubernetes-pom.tmpl
@@ -16,7 +16,7 @@
 
     <properties>
         <java.version>{{ .JavaVersion }}</java.version>
-{{ .AdditionalProperties }}
+{{ .BuildProperties }}
     </properties>
 
     <dependencyManagement>
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
index c079cb37c1a..a212213ac6b 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
@@ -16,7 +16,7 @@
 
     <properties>
         <java.version>{{ .JavaVersion }}</java.version>
-{{ .AdditionalProperties }}
+{{ .BuildProperties }}
     </properties>
 
     <dependencyManagement>
diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
 
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
index 57b89707985..320ffa67bf3 100644
--- 
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
@@ -24,11 +24,8 @@ import java.nio.file.Files;
 import java.nio.file.StandardOpenOption;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.Optional;
-import java.util.Properties;
 import java.util.stream.Collectors;
 
 import org.apache.camel.catalog.CamelCatalog;
@@ -151,17 +148,6 @@ public class KubernetesExport extends Export {
             printer().printf("--build-tool=%s is not yet supported%n", 
buildTool);
         }
 
-        // Init export properties
-        Map<String, Object> exportProps = new LinkedHashMap<>();
-        if (additionalProperties != null) {
-            Arrays.stream(additionalProperties.split(","))
-                    .filter(item -> !item.isEmpty())
-                    .forEach(item -> {
-                        String[] keyValue = item.split("=");
-                        exportProps.put(keyValue[0], keyValue[1]);
-                    });
-        }
-
         String propPrefix;
         if (runtime == RuntimeType.springBoot) {
             propPrefix = "camel.springboot";
@@ -186,13 +172,13 @@ public class KubernetesExport extends Export {
         String resolvedImageRegistry = resolveImageRegistry();
 
         if (resolvedImageGroup != null) {
-            exportProps.put("%s.container-image.group".formatted(propPrefix), 
resolvedImageGroup);
+            
buildProperties.add("%s.container-image.group=%s".formatted(propPrefix, 
resolvedImageGroup));
         }
 
         if (resolvedImageRegistry != null) {
             var allowInsecure = resolvedImageRegistry.startsWith("localhost");
-            
exportProps.put("%s.container-image.registry".formatted(propPrefix), 
resolvedImageRegistry);
-            
exportProps.put("%s.container-image.insecure".formatted(propPrefix), 
"%b".formatted(allowInsecure));
+            
buildProperties.add("%s.container-image.registry=%s".formatted(propPrefix, 
resolvedImageRegistry));
+            
buildProperties.add("%s.container-image.insecure=%b".formatted(propPrefix, 
allowInsecure));
         }
 
         String projectName = getProjectName();
@@ -250,14 +236,14 @@ public class KubernetesExport extends Export {
 
         Container container = traitsSpec.getContainer();
 
-        exportProps.put("%s.kubernetes.image-name".formatted(propPrefix), 
container.getImage());
-        
exportProps.put("%s.kubernetes.ports.%s.container-port".formatted(propPrefix,
-                
Optional.ofNullable(container.getPortName()).orElse(ContainerTrait.DEFAULT_CONTAINER_PORT_NAME)),
-                
Optional.ofNullable(container.getPort()).orElse(ContainerTrait.DEFAULT_CONTAINER_PORT));
+        
buildProperties.add("%s.kubernetes.image-name=%s".formatted(propPrefix, 
container.getImage()));
+        
buildProperties.add("%s.kubernetes.ports.%s.container-port=%d".formatted(propPrefix,
+                
Optional.ofNullable(container.getPortName()).orElse(ContainerTrait.DEFAULT_CONTAINER_PORT_NAME),
+                
Optional.ofNullable(container.getPort()).orElse(ContainerTrait.DEFAULT_CONTAINER_PORT)));
 
         // Need to set quarkus.container properties, otherwise these settings 
get overwritten by Quarkus
         if (container.getName() != null && 
!container.getName().equals(projectName)) {
-            
exportProps.put("%s.kubernetes.container-name".formatted(propPrefix), 
container.getName());
+            
buildProperties.add("%s.kubernetes.container-name=%s".formatted(propPrefix, 
container.getName()));
         }
 
         if (container.getImagePullPolicy() != null) {
@@ -265,7 +251,7 @@ public class KubernetesExport extends Export {
             if (runtime == RuntimeType.quarkus) {
                 imagePullPolicy = 
StringHelper.camelCaseToDash(imagePullPolicy);
             }
-            
exportProps.put("%s.kubernetes.image-pull-policy".formatted(propPrefix), 
imagePullPolicy);
+            
buildProperties.add("%s.kubernetes.image-pull-policy=%s".formatted(propPrefix, 
imagePullPolicy));
         }
 
         // Quarkus Runtime specific
@@ -279,28 +265,21 @@ public class KubernetesExport extends Export {
             addDependencies("io.fabric8:kubernetes-client:6.13.1");
 
             // Mutually exclusive image build plugins - use Jib by default
-            if 
(!getDependenciesList().contains("io.quarkus:quarkus-container-image-docker")) {
+            if 
(!dependencies.contains("io.quarkus:quarkus-container-image-docker")) {
                 addDependencies("io.quarkus:quarkus-container-image-jib");
             }
 
             // Quarkus specific properties
-            exportProps.put("quarkus.container-image.build", "true");
+            buildProperties.add("quarkus.container-image.build=true");
         }
 
         // SpringBoot Runtime specific
         if (runtime == RuntimeType.springBoot || runtime == RuntimeType.main) {
-            Properties props = mapToProperties(exportProps);
             File settings = new File(CommandLineHelper.getWorkDir(), 
Run.RUN_SETTINGS_FILE);
-
-            var jkubeVersion = jkubeMavenPluginVersion(settings, props);
-            exportProps.put("%s.jkube.version".formatted(propPrefix), 
jkubeVersion);
+            var jkubeVersion = jkubeMavenPluginVersion(settings, 
mapBuildProperties());
+            buildProperties.add("%s.jkube.version=%s".formatted(propPrefix, 
jkubeVersion));
         }
 
-        // Setup additional properties
-        additionalProperties = exportProps.entrySet().stream()
-                .map(entry -> "%s=%s".formatted(entry.getKey(), 
entry.getValue()))
-                .collect(Collectors.joining(","));
-
         // Run export
         int exit = super.export();
         if (exit != 0) {

Reply via email to