This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-4.10.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-4.10.x by this push:
new b77b559026b CAMEL-22057: camel-jbang - Dependency command does not
handle version
b77b559026b is described below
commit b77b559026be9120a2d0290e97d60c4c0161aeda
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon May 12 15:43:20 2025 +0200
CAMEL-22057: camel-jbang - Dependency command does not handle version
---
.../dsl/jbang/core/commands/DependencyList.java | 2 +-
.../dsl/jbang/core/commands/DependencyUpdate.java | 2 +-
.../camel/dsl/jbang/core/commands/Export.java | 4 +-
.../jbang/core/commands/CamelCommandBaseTest.java | 2 +-
.../jbang/core/commands/DependencyListTest.java | 97 ++++++++++++++++++++++
.../jbang/core/commands/plugin/PluginAddTest.java | 2 +-
.../core/commands/plugin/PluginDeleteTest.java | 2 +-
.../jbang/core/commands/plugin/PluginGetTest.java | 2 +-
8 files changed, 106 insertions(+), 7 deletions(-)
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyList.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyList.java
index c2c8a3d4ae6..88ea5b7efe0 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyList.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyList.java
@@ -92,7 +92,7 @@ public class DependencyList extends Export {
// must be child at <project/dependencyManagement> or
<project/dependencies>
String p = node.getParentNode().getNodeName();
String p2 =
node.getParentNode().getParentNode().getNodeName();
- boolean accept = "project".equals(p2) &&
(p.equals("dependencyManagement") || p.equals("dependencies"));
+ boolean accept = ("dependencyManagement".equals(p2) ||
"project".equals(p2)) && (p.equals("dependencies"));
if (!accept) {
continue;
}
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyUpdate.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyUpdate.java
index 9557f21abe0..08ee70f79dd 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyUpdate.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyUpdate.java
@@ -174,7 +174,7 @@ public class DependencyUpdate extends DependencyList {
// must be child at <project/dependencyManagement> or
<project/dependencies>
String p = node.getParentNode().getNodeName();
String p2 = node.getParentNode().getParentNode().getNodeName();
- boolean accept = "project".equals(p2) &&
(p.equals("dependencyManagement") || p.equals("dependencies"));
+ boolean accept = ("dependencyManagement".equals(p2) ||
"project".equals(p2)) && (p.equals("dependencies"));
if (!accept) {
continue;
}
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 c7a8578886a..e109a9ea7a1 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
@@ -248,8 +248,10 @@ public class Export extends ExportBaseCommand {
case "org.apache.camel.springboot" -> {
String a1 = o1.getArtifactId();
// main/core/engine first
- if ("camel-spring-boot-engine-starter".equals(a1)) {
+ if ("camel-spring-boot-starter".equals(a1)) {
return 21;
+ } else if
("camel-spring-boot-engine-starter".equals(a1)) {
+ return 22;
}
return 20;
}
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/CamelCommandBaseTest.java
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/CamelCommandBaseTest.java
index 44670f8b73c..81b2521b784 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/CamelCommandBaseTest.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/CamelCommandBaseTest.java
@@ -25,7 +25,7 @@ public class CamelCommandBaseTest {
protected StringPrinter printer;
@BeforeEach
- public void setup() {
+ public void setup() throws Exception {
printer = new StringPrinter();
}
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/DependencyListTest.java
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/DependencyListTest.java
new file mode 100644
index 00000000000..385a6952eed
--- /dev/null
+++
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/DependencyListTest.java
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.dsl.jbang.core.commands;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Stream;
+
+import org.apache.camel.dsl.jbang.core.common.RuntimeType;
+import org.apache.camel.util.FileUtil;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+import picocli.CommandLine;
+
+class DependencyListTest extends CamelCommandBaseTest {
+
+ private File workingDir;
+
+ @BeforeEach
+ public void setup() throws Exception {
+ super.setup();
+ Path base = Paths.get("target");
+ workingDir = Files.createTempDirectory(base, "camel-export").toFile();
+ }
+
+ @AfterEach
+ public void end() throws IOException {
+ // force removing, since deleteOnExit is not removing.
+ FileUtil.removeDir(workingDir);
+ }
+
+ @ParameterizedTest
+ @MethodSource("runtimeProvider")
+ public void shouldDependencyList(RuntimeType rt) throws Exception {
+ Export command = createCommand(rt, new String[] {
"classpath:route.yaml" },
+ "--gav=examples:route:1.0.0", "--dir=" + workingDir,
"--quiet", "--camel-version=4.11.0",
+ "--quarkus-version=3.22.2", "--spring-boot-version=3.4.5");
+ int exit = command.doCall();
+ Assertions.assertEquals(0, exit);
+
+ List<String> lines = printer.getLines();
+ System.out.println(lines);
+
+ Assertions.assertTrue(lines.size() >= 5);
+ if (rt == RuntimeType.quarkus) {
+
Assertions.assertEquals("org.apache.camel.quarkus:camel-quarkus-core:3.22.2",
lines.get(0));
+ } else if (rt == RuntimeType.springBoot) {
+
Assertions.assertEquals("org.springframework.boot:spring-boot-starter-actuator:3.4.5",
lines.get(0));
+
Assertions.assertEquals("org.apache.camel.springboot:camel-spring-boot-starter:4.11.0",
lines.get(1));
+ } else {
+ Assertions.assertEquals("org.apache.camel:camel-main:4.11.0",
lines.get(0));
+ }
+ }
+
+ private Export createCommand(RuntimeType rt, String[] files, String...
args) {
+ DependencyList command = new DependencyList(new
CamelJBangMain().withPrinter(printer));
+ ;
+ CommandLine.populateCommand(command, "--gav=examples:route:1.0.0",
"--dir=" + workingDir, "--quiet",
+ "--runtime=%s".formatted(rt.runtime()));
+ if (args != null) {
+ CommandLine.populateCommand(command, args);
+ }
+ command.files = Arrays.asList(files);
+ return command;
+ }
+
+ private static Stream<Arguments> runtimeProvider() {
+ return Stream.of(
+ Arguments.of(RuntimeType.quarkus),
+ Arguments.of(RuntimeType.springBoot),
+ Arguments.of(RuntimeType.main));
+ }
+
+}
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginAddTest.java
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginAddTest.java
index 8bda6c617ba..a20e0fb37f1 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginAddTest.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginAddTest.java
@@ -28,7 +28,7 @@ import org.junit.jupiter.api.Test;
class PluginAddTest extends CamelCommandBaseTest {
@BeforeEach
- public void setup() {
+ public void setup() throws Exception {
super.setup();
CommandLineHelper.useHomeDir("target");
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginDeleteTest.java
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginDeleteTest.java
index c4776057888..05643890033 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginDeleteTest.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginDeleteTest.java
@@ -28,7 +28,7 @@ import org.junit.jupiter.api.Test;
class PluginDeleteTest extends CamelCommandBaseTest {
@BeforeEach
- public void setup() {
+ public void setup() throws Exception {
super.setup();
CommandLineHelper.useHomeDir("target");
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginGetTest.java
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginGetTest.java
index 498bb5e7921..182614d9257 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginGetTest.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginGetTest.java
@@ -31,7 +31,7 @@ import org.junit.jupiter.api.Test;
class PluginGetTest extends CamelCommandBaseTest {
@BeforeEach
- public void setup() {
+ public void setup() throws Exception {
super.setup();
CommandLineHelper.useHomeDir("target");