christophd commented on code in PR #14806:
URL: https://github.com/apache/camel/pull/14806#discussion_r1677425477


##########
dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java:
##########
@@ -141,46 +136,52 @@ public Integer export() throws Exception {
             runtime = RuntimeType.quarkus;
         }
 
-        List<String> exportDependencies = 
Optional.ofNullable(dependencies).map(Arrays::asList).orElseGet(ArrayList::new);
-        exportDependencies.add("camel:cli-connector");
-        exportDependencies.add("io.quarkus:quarkus-kubernetes");
-        // TODO: make configurable to support builders other than 
quarkus-container-image-jib
-        exportDependencies.add("io.quarkus:quarkus-container-image-jib");
-
-        // TODO: remove when fixed kubernetes-client version is part of the 
Quarkus platform
-        // pin kubernetes-client to this version because of 
https://github.com/fabric8io/kubernetes-client/issues/6059
-        exportDependencies.add("io.fabric8:kubernetes-client:6.13.1");
-
-        if (super.dependencies != null) {
-            super.dependencies += "," + String.join(",", exportDependencies);
-        } else {
-            super.dependencies = String.join(",", exportDependencies);
-        }
-
-        additionalProperties = 
Optional.ofNullable(additionalProperties).orElse("");
-
         Map<String, String> exportProps = new HashMap<>();
-
         String resolvedImageRegistry = resolveImageRegistry();
-        if (resolvedImageRegistry != null) {
-            exportProps.put("quarkus.container-image.registry", 
resolvedImageRegistry);
 
-            if (resolvedImageRegistry.startsWith("localhost")) {
-                exportProps.put("quarkus.container-image.insecure", "true");
-            }
-        }
+        // TODO: remove when fixed kubernetes-client version is part of the 
Quarkus platform
+        // pin kubernetes-client to this version because of 
https://github.com/fabric8io/kubernetes-client/issues/6059
+        addDependencies("camel:cli-connector", 
"io.fabric8:kubernetes-client:6.13.1");

Review Comment:
   nitpick: consider to separate these dependencies into two calls to 
`addDependencies()` as the TODO comment above only refers to 
`io.fabric8:kubernetes-client:6.13.1` dependency.



##########
dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java:
##########
@@ -307,6 +307,28 @@ protected Integer runSilently(boolean ignoreLoadingError) 
throws Exception {
         return run.runExport(ignoreLoadingError);
     }
 
+    // [TODO] Remove when we ditch --deps

Review Comment:
   I'd prefer to wait for the dependent issue to be solved and then remove the 
TODOs from this PR. It may be unclear for others what needs to be removed once 
the dependent changes are present in code.



##########
dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java:
##########
@@ -141,46 +136,52 @@ public Integer export() throws Exception {
             runtime = RuntimeType.quarkus;
         }
 
-        List<String> exportDependencies = 
Optional.ofNullable(dependencies).map(Arrays::asList).orElseGet(ArrayList::new);
-        exportDependencies.add("camel:cli-connector");
-        exportDependencies.add("io.quarkus:quarkus-kubernetes");
-        // TODO: make configurable to support builders other than 
quarkus-container-image-jib
-        exportDependencies.add("io.quarkus:quarkus-container-image-jib");
-
-        // TODO: remove when fixed kubernetes-client version is part of the 
Quarkus platform
-        // pin kubernetes-client to this version because of 
https://github.com/fabric8io/kubernetes-client/issues/6059
-        exportDependencies.add("io.fabric8:kubernetes-client:6.13.1");
-
-        if (super.dependencies != null) {
-            super.dependencies += "," + String.join(",", exportDependencies);
-        } else {
-            super.dependencies = String.join(",", exportDependencies);
-        }
-
-        additionalProperties = 
Optional.ofNullable(additionalProperties).orElse("");
-
         Map<String, String> exportProps = new HashMap<>();
-
         String resolvedImageRegistry = resolveImageRegistry();
-        if (resolvedImageRegistry != null) {
-            exportProps.put("quarkus.container-image.registry", 
resolvedImageRegistry);
 
-            if (resolvedImageRegistry.startsWith("localhost")) {
-                exportProps.put("quarkus.container-image.insecure", "true");
-            }
-        }
+        // TODO: remove when fixed kubernetes-client version is part of the 
Quarkus platform
+        // pin kubernetes-client to this version because of 
https://github.com/fabric8io/kubernetes-client/issues/6059
+        addDependencies("camel:cli-connector", 
"io.fabric8:kubernetes-client:6.13.1");
 
         String resolvedImageGroup = null;
         if (image != null) {
             resolvedImageGroup = extractImageGroup(image);
         } else if (imageGroup != null) {
             resolvedImageGroup = imageGroup;
+        } else if (gav != null) {
+            var groupId = parseMavenGav(gav).getGroupId();
+            var dotToks = groupId.split("\\.");
+            resolvedImageGroup = dotToks[dotToks.length - 1];
         }
 
-        if (resolvedImageGroup != null) {
-            exportProps.put("quarkus.container-image.group", 
resolvedImageGroup);
+        if (runtime == RuntimeType.quarkus) {
+
+            // Quarkus specific dependencies
+            addDependencies("io.quarkus:quarkus-kubernetes");
+
+            // Mutually exclusive image build plugins - use Jib by default
+            if 
(!getDependenciesList().contains("io.quarkus:quarkus-container-image-docker")) {
+                addDependencies("io.quarkus:quarkus-container-image-jib");
+            }
+
+            // Quarkus specific properties
+            exportProps.put("quarkus.container-image.build", "true");
+
+            if (resolvedImageRegistry != null) {
+                exportProps.put("quarkus.container-image.registry", 
resolvedImageRegistry);
+                if (resolvedImageRegistry.startsWith("localhost")) {
+                    exportProps.put("quarkus.container-image.insecure", 
"true");
+                }
+            }
+
+            if (resolvedImageGroup != null) {
+                exportProps.put("quarkus.container-image.group", 
resolvedImageGroup);
+            }
+        } else {
+            printer().println("Kubernetes export for runtime '" + runtime + "' 
not supported");

Review Comment:
   Maybe we should exit here with return code 1 to stop the export command



##########
dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java:
##########
@@ -307,6 +307,28 @@ protected Integer runSilently(boolean ignoreLoadingError) 
throws Exception {
         return run.runExport(ignoreLoadingError);
     }
 
+    // [TODO] Remove when we ditch --deps

Review Comment:
   just saw that this is a DRAFt PR so you may have the same idea in mind 
already, thx



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@camel.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to