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 7830ceee727 chore(camel-jbang): Do not use single character shortcut options 7830ceee727 is described below commit 7830ceee72716bf07459df7dad852e4252856373 Author: Christoph Deppisch <cdeppi...@redhat.com> AuthorDate: Wed Jul 10 12:31:09 2024 +0200 chore(camel-jbang): Do not use single character shortcut options --- .../modules/ROOT/pages/camel-jbang-k.adoc | 22 +++++++------- .../modules/ROOT/pages/camel-jbang-kubernetes.adoc | 2 +- .../modules/ROOT/pages/camel-jbang.adoc | 1 - .../dsl/jbang/core/commands/plugin/PluginAdd.java | 12 ++++---- .../dsl/jbang/core/commands/plugin/PluginGet.java | 2 +- .../camel/dsl/jbang/core/common/PluginHelper.java | 2 +- .../camel/camel-jbang-plugin/camel-jbang-plugin-k | 2 +- .../camel/dsl/jbang/core/commands/k/Bind.java | 4 +-- .../k/{KubeCommand.java => CamelKCommand.java} | 4 +-- .../k/{KubePlugin.java => CamelKPlugin.java} | 4 +-- .../dsl/jbang/core/commands/k/IntegrationLogs.java | 4 +-- .../dsl/jbang/core/commands/k/IntegrationRun.java | 31 +++++++++---------- .../camel/dsl/jbang/core/commands/k/BindTest.java | 6 ++-- .../k/{KubeBaseTest.java => CamelKBaseTest.java} | 6 ++-- ...CommandMainTest.java => CamelKCommandTest.java} | 15 +++++----- .../core/commands/k/IntegrationDeleteTest.java | 2 +- .../jbang/core/commands/k/IntegrationGetTest.java | 2 +- .../jbang/core/commands/k/IntegrationLogsTest.java | 4 +-- .../jbang/core/commands/k/IntegrationRunTest.java | 6 ++-- .../commands/kubernetes/KubernetesBaseTest.java | 8 +++++ .../commands/kubernetes/KubernetesCommandTest.java | 35 ++++++++++++++++++++++ .../commands/kubernetes/KubernetesRunTest.java | 7 ----- 22 files changed, 108 insertions(+), 73 deletions(-) diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-k.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-k.adoc index ec7a2b7252d..f817955a4d2 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-jbang-k.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-k.adoc @@ -72,7 +72,7 @@ The run command offers a lot more options that you may use to configure the Came |--image |An image built externally (for instance via CI/CD). Enabling it will skip the integration build phase. -|--kit, -k +|--kit |The kit used to run the integration. |--trait-profile @@ -87,10 +87,10 @@ The run command offers a lot more options that you may use to configure the Came |--operator-id |Operator id selected to manage this integration. (default=camel-k) -|--dependency, -d +|--dependency |Adds dependency that should be included, use "camel:" prefix for a Camel component, "mvn:org.my:app:1.0" for a Maven dependency. -|--property, -p +|--property |Add a runtime property or properties file from a path, a config map or a secret (syntax: [my-key=my-value,file:/path/to/my-conf.properties,[configmap,secret]:name]). |--build-property @@ -105,13 +105,13 @@ The run command offers a lot more options that you may use to configure the Came |--open-api |Add an OpenAPI spec (syntax: [configmap,file]:name). -|--env, -e +|--env |Set an environment variable in the integration container, for instance "-e MY_VAR=my-value". -|--volume, -v +|--volume |Mount a volume into the integration container, for instance "-v pvcname:/container/path". -|--connect, -c +|--connect |A Service that the integration should bind to, specified as [[apigroup/]version:]kind:[namespace/]name. |--source @@ -126,7 +126,7 @@ The run command offers a lot more options that you may use to configure the Came |--label |Add a label to the integration. Use name values pairs like "--label my.company=hello". -|--traits, -t +|--trait |Add a trait configuration to the integration. Use name values pairs like "--trait trait.name.config=hello". |--use-flows @@ -135,13 +135,13 @@ The run command offers a lot more options that you may use to configure the Came |--compression |Enable storage of sources and resources as a compressed binary blobs. -|--wait, -w +|--wait |Wait for the integration to become ready. -|--logs, -l +|--logs |Print logs after integration has been started. -|--output, -o +|--output |Just output the generated integration custom resource (supports: yaml or json or k8s). |======================================================================= @@ -226,7 +226,7 @@ The Camel K bind command supports the following options: |--connect |A Service that the integration should bind to, specified as [[apigroup/]version:]kind:[namespace/]name. -|--traits +|--trait |Add a trait configuration to the integration. Use name values pairs like "--trait trait.name.config=hello". |--wait diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-kubernetes.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-kubernetes.adoc index e66a4d66714..fc777fae17a 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-jbang-kubernetes.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-kubernetes.adoc @@ -130,7 +130,7 @@ The Camel JBang Kubernetes export command provides several options to customize |--label |Add a label to the integration. Use name values pairs like "--label my.company=hello". -|--traits +|--trait |Add a trait configuration to the integration. Use name values pairs like "--trait trait.name.config=hello". |--image diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc index 9c9ec8bf09f..052cc67b0da 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc @@ -3821,7 +3821,6 @@ camel config set camel-version=4.0.1 camel run * --camel-version=4.3.0 ---- - === Set and unset configuration Every Camel JBang option is added to the user configuration. For example, to export a simple project such as diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginAdd.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginAdd.java index 33442baa802..ebea3686e75 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginAdd.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginAdd.java @@ -33,29 +33,29 @@ public class PluginAdd extends PluginBaseCommand { paramLabel = "<name>") String name; - @CommandLine.Option(names = { "--command", "-c" }, + @CommandLine.Option(names = { "--command" }, description = "The command that the plugin uses.") String command; - @CommandLine.Option(names = { "--description", "-d" }, + @CommandLine.Option(names = { "--description" }, description = "A short description of the plugin.") String description; - @CommandLine.Option(names = { "--artifactId", "-a" }, + @CommandLine.Option(names = { "--artifactId" }, description = "Maven artifactId.") String artifactId; - @CommandLine.Option(names = { "--groupId", "-g" }, + @CommandLine.Option(names = { "--groupId" }, defaultValue = "org.apache.camel", description = "Maven groupId.") String groupId = "org.apache.camel"; - @CommandLine.Option(names = { "--version", "-v" }, + @CommandLine.Option(names = { "--version" }, defaultValue = "${camel-version}", description = "Maven artifact version.") String version; - @CommandLine.Option(names = { "--first-version", "-fv" }, + @CommandLine.Option(names = { "--first-version" }, defaultValue = "${camel-version}", description = "First version of this plugin.") String firstVersion; diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginGet.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginGet.java index 8769323b56f..9a254f8bf60 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginGet.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginGet.java @@ -33,7 +33,7 @@ import picocli.CommandLine; description = "Display available plugins.") public class PluginGet extends PluginBaseCommand { - @CommandLine.Option(names = { "--all", "-a" }, defaultValue = "false", description = "Display all available plugins.") + @CommandLine.Option(names = { "--all" }, defaultValue = "false", description = "Display all available plugins.") public boolean all; public PluginGet(CamelJBangMain main) { diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginHelper.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginHelper.java index d087c75d7fe..fbe0af60b29 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginHelper.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginHelper.java @@ -90,7 +90,7 @@ public final class PluginHelper { } // check if plugin version can be loaded (cannot if we use an older camel version than the plugin) - if (!firstVersion.isBlank()) { + if (!version.isBlank() && !firstVersion.isBlank()) { versionCheck(main, version, firstVersion, command); } diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/generated/resources/META-INF/services/org/apache/camel/camel-jbang-plugin/camel-jbang-plugin-k b/dsl/camel-jbang/camel-jbang-plugin-k/src/generated/resources/META-INF/services/org/apache/camel/camel-jbang-plugin/camel-jbang-plugin-k index 5a3ee5c3e1b..810192416b6 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-k/src/generated/resources/META-INF/services/org/apache/camel/camel-jbang-plugin/camel-jbang-plugin-k +++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/generated/resources/META-INF/services/org/apache/camel/camel-jbang-plugin/camel-jbang-plugin-k @@ -1,2 +1,2 @@ # Generated by camel build tools - do NOT edit this file! -class=org.apache.camel.dsl.jbang.core.commands.k.KubePlugin +class=org.apache.camel.dsl.jbang.core.commands.k.CamelKPlugin diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/Bind.java b/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/Bind.java index 3bfa1d9534a..82007dc2868 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/Bind.java +++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/Bind.java @@ -133,10 +133,10 @@ public class Bind extends KubernetesBaseCommand { // --operator-id={id} is a syntax sugar for '--annotation camel.apache.org/operator.id={id}' if (annotations == null) { - annotations = new String[] { "%s=%s".formatted(KubeCommand.OPERATOR_ID_LABEL, operatorId) }; + annotations = new String[] { "%s=%s".formatted(CamelKCommand.OPERATOR_ID_LABEL, operatorId) }; } else { annotations = Arrays.copyOf(annotations, annotations.length + 1); - annotations[annotations.length - 1] = "%s=%s".formatted(KubeCommand.OPERATOR_ID_LABEL, operatorId); + annotations[annotations.length - 1] = "%s=%s".formatted(CamelKCommand.OPERATOR_ID_LABEL, operatorId); } String annotationsContext = ""; diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/KubeCommand.java b/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/CamelKCommand.java similarity index 94% rename from dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/KubeCommand.java rename to dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/CamelKCommand.java index f54e9e21ebe..840b9d23202 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/KubeCommand.java +++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/CamelKCommand.java @@ -22,7 +22,7 @@ import picocli.CommandLine; @CommandLine.Command(name = "k", description = "Manage Camel integrations on Kubernetes (use k --help to see sub commands)") -public class KubeCommand extends KubernetesBaseCommand { +public class CamelKCommand extends KubernetesBaseCommand { static final String OPERATOR_ID_LABEL = "camel.apache.org/operator.id"; static final String INTEGRATION_LABEL = "camel.apache.org/integration"; @@ -31,7 +31,7 @@ public class KubeCommand extends KubernetesBaseCommand { public static final String INTEGRATION_PROFILE_ANNOTATION = "camel.apache.org/integration-profile.id"; public static final String INTEGRATION_PROFILE_NAMESPACE_ANNOTATION = "camel.apache.org/integration-profile.namespace"; - public KubeCommand(CamelJBangMain main) { + public CamelKCommand(CamelJBangMain main) { super(main); } diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/KubePlugin.java b/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/CamelKPlugin.java similarity index 94% rename from dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/KubePlugin.java rename to dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/CamelKPlugin.java index be96054d481..39b5f2a22f0 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/KubePlugin.java +++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/CamelKPlugin.java @@ -22,11 +22,11 @@ import org.apache.camel.dsl.jbang.core.common.Plugin; import picocli.CommandLine; @CamelJBangPlugin(name = "camel-jbang-plugin-k", firstVersion = "4.4.0") -public class KubePlugin implements Plugin { +public class CamelKPlugin implements Plugin { @Override public void customize(CommandLine commandLine, CamelJBangMain main) { - var cmd = new picocli.CommandLine(new KubeCommand(main)) + var cmd = new picocli.CommandLine(new CamelKCommand(main)) .addSubcommand(Agent.ID, new picocli.CommandLine(new Agent(main))) .addSubcommand("get", new picocli.CommandLine(new IntegrationGet(main))) .addSubcommand("run", new picocli.CommandLine(new IntegrationRun(main))) diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationLogs.java b/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationLogs.java index 4e50a802830..ed750868baa 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationLogs.java +++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationLogs.java @@ -43,8 +43,8 @@ public class IntegrationLogs extends PodLogs { return 1; } - label = "%s=%s".formatted(KubeCommand.INTEGRATION_LABEL, integrationName); - container = KubeCommand.INTEGRATION_CONTAINER_NAME; + label = "%s=%s".formatted(CamelKCommand.INTEGRATION_LABEL, integrationName); + container = CamelKCommand.INTEGRATION_CONTAINER_NAME; return super.doCall(); } diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationRun.java b/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationRun.java index 004aa65c338..80a7b5d4f15 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationRun.java +++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationRun.java @@ -70,7 +70,7 @@ public class IntegrationRun extends KubernetesBaseCommand { description = "An image built externally (for instance via CI/CD). Enabling it will skip the integration build phase.") String image; - @CommandLine.Option(names = { "--kit", "-k" }, description = "The kit used to run the integration.") + @CommandLine.Option(names = { "--kit" }, description = "The kit used to run the integration.") String kit; @CommandLine.Option(names = { "--trait-profile" }, description = "The trait profile to use for the deployment.") @@ -86,15 +86,15 @@ public class IntegrationRun extends KubernetesBaseCommand { description = "The path of the YAML file containing a PodSpec template to be used for the integration pods.") String podTemplate; - @CommandLine.Option(names = { "--operator-id", "-x" }, defaultValue = "camel-k", + @CommandLine.Option(names = { "--operator-id" }, defaultValue = "camel-k", description = "Operator id selected to manage this integration.") String operatorId = "camel-k"; - @CommandLine.Option(names = { "--dependency", "-d" }, + @CommandLine.Option(names = { "--dependency" }, description = "Adds dependency that should be included, use \"camel:\" prefix for a Camel component, \"mvn:org.my:app:1.0\" for a Maven dependency.") String[] dependencies; - @CommandLine.Option(names = { "--property", "-p" }, + @CommandLine.Option(names = { "--property" }, description = "Add a runtime property or properties file from a path, a config map or a secret (syntax: [my-key=my-value|file:/path/to/my-conf.properties|[configmap|secret]:name]).") String[] properties; @@ -113,15 +113,15 @@ public class IntegrationRun extends KubernetesBaseCommand { @CommandLine.Option(names = { "--open-api" }, description = "Add an OpenAPI spec (syntax: [configmap|file]:name).") String[] openApis; - @CommandLine.Option(names = { "--env", "-e" }, + @CommandLine.Option(names = { "--env" }, description = "Set an environment variable in the integration container, for instance \"-e MY_VAR=my-value\".") String[] envVars; - @CommandLine.Option(names = { "--volume", "-v" }, + @CommandLine.Option(names = { "--volume" }, description = "Mount a volume into the integration container, for instance \"-v pvcname:/container/path\".") String[] volumes; - @CommandLine.Option(names = { "--connect", "-c" }, + @CommandLine.Option(names = { "--connect" }, description = "A Service that the integration should bind to, specified as [[apigroup/]version:]kind:[namespace/]name.") String[] connects; @@ -140,7 +140,7 @@ public class IntegrationRun extends KubernetesBaseCommand { description = "Add a label to the integration. Use name values pairs like \"--label my.company=hello\".") String[] labels; - @CommandLine.Option(names = { "--traits", "-t" }, + @CommandLine.Option(names = { "--trait" }, description = "Add a trait configuration to the integration. Use name values pairs like \"--trait trait.name.config=hello\".") String[] traits; @@ -152,13 +152,13 @@ public class IntegrationRun extends KubernetesBaseCommand { description = "Enable storage of sources and resources as a compressed binary blobs.") boolean compression; - @CommandLine.Option(names = { "--wait", "-w" }, description = "Wait for the integration to become ready.") + @CommandLine.Option(names = { "--wait" }, description = "Wait for the integration to become ready.") boolean wait; - @CommandLine.Option(names = { "--logs", "-l" }, description = "Print logs after integration has been started.") + @CommandLine.Option(names = { "--logs" }, description = "Print logs after integration has been started.") boolean logs; - @CommandLine.Option(names = { "--output", "-o" }, + @CommandLine.Option(names = { "--output" }, description = "Just output the generated integration custom resource (supports: yaml or json).") String output; @@ -221,17 +221,18 @@ public class IntegrationRun extends KubernetesBaseCommand { } // --operator-id={id} is a syntax sugar for '--annotation camel.apache.org/operator.id={id}' - integration.getMetadata().getAnnotations().put(KubeCommand.OPERATOR_ID_LABEL, operatorId); + integration.getMetadata().getAnnotations().put(CamelKCommand.OPERATOR_ID_LABEL, operatorId); // --integration-profile={id} is a syntax sugar for '--annotation camel.apache.org/integration-profile.id={id}' if (integrationProfile != null) { if (integrationProfile.contains("/")) { String[] namespacedName = integrationProfile.split("/", 2); - integration.getMetadata().getAnnotations().put(KubeCommand.INTEGRATION_PROFILE_NAMESPACE_ANNOTATION, + integration.getMetadata().getAnnotations().put(CamelKCommand.INTEGRATION_PROFILE_NAMESPACE_ANNOTATION, namespacedName[0]); - integration.getMetadata().getAnnotations().put(KubeCommand.INTEGRATION_PROFILE_ANNOTATION, namespacedName[1]); + integration.getMetadata().getAnnotations().put(CamelKCommand.INTEGRATION_PROFILE_ANNOTATION, namespacedName[1]); } else { - integration.getMetadata().getAnnotations().put(KubeCommand.INTEGRATION_PROFILE_ANNOTATION, integrationProfile); + integration.getMetadata().getAnnotations().put(CamelKCommand.INTEGRATION_PROFILE_ANNOTATION, + integrationProfile); } } diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/BindTest.java b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/BindTest.java index 0701e7a5d10..1a9405cd574 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/BindTest.java +++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/BindTest.java @@ -23,7 +23,7 @@ import org.apache.camel.v1.Pipe; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -class BindTest extends KubeBaseTest { +class BindTest extends CamelKBaseTest { @Test public void shouldCreatePipe() throws Exception { @@ -34,7 +34,7 @@ class BindTest extends KubeBaseTest { Assertions.assertEquals("Pipe timer-to-http created", printer.getOutput()); Pipe created = kubernetesClient.resources(Pipe.class).withName("timer-to-http").get(); - Assertions.assertEquals("camel-k", created.getMetadata().getAnnotations().get(KubeCommand.OPERATOR_ID_LABEL)); + Assertions.assertEquals("camel-k", created.getMetadata().getAnnotations().get(CamelKCommand.OPERATOR_ID_LABEL)); } @Test @@ -53,7 +53,7 @@ class BindTest extends KubeBaseTest { Assertions.assertEquals("Pipe timer-to-log updated", printer.getOutput()); Pipe created = kubernetesClient.resources(Pipe.class).withName("timer-to-log").get(); - Assertions.assertEquals("camel-k", created.getMetadata().getAnnotations().get(KubeCommand.OPERATOR_ID_LABEL)); + Assertions.assertEquals("camel-k", created.getMetadata().getAnnotations().get(CamelKCommand.OPERATOR_ID_LABEL)); } @Test diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/KubeBaseTest.java b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/CamelKBaseTest.java similarity index 94% rename from dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/KubeBaseTest.java rename to dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/CamelKBaseTest.java index c7382062658..06f4df9cd5b 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/KubeBaseTest.java +++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/CamelKBaseTest.java @@ -41,7 +41,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.TestInstance; @TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class KubeBaseTest { +public class CamelKBaseTest { protected static Integration integration; protected static Pipe pipe; @@ -82,7 +82,7 @@ public class KubeBaseTest { protected Integration createIntegration(String name) throws IOException { if (integration == null) { integration = KubernetesHelper.yaml().loadAs( - IOHelper.loadText(KubeBaseTest.class.getResourceAsStream("integration.yaml")), Integration.class); + IOHelper.loadText(CamelKBaseTest.class.getResourceAsStream("integration.yaml")), Integration.class); } Integration created = new Integration(); @@ -101,7 +101,7 @@ public class KubeBaseTest { protected Pipe createPipe(String name) throws IOException { if (pipe == null) { pipe = KubernetesHelper.yaml().loadAs( - IOHelper.loadText(KubeBaseTest.class.getResourceAsStream("pipe.yaml")), Pipe.class); + IOHelper.loadText(CamelKBaseTest.class.getResourceAsStream("pipe.yaml")), Pipe.class); } Pipe created = new Pipe(); diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/KubeCommandMainTest.java b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/CamelKCommandTest.java similarity index 90% rename from dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/KubeCommandMainTest.java rename to dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/CamelKCommandTest.java index 0d48067f0f1..7ae64310a25 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/KubeCommandMainTest.java +++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/CamelKCommandTest.java @@ -33,7 +33,7 @@ import org.apache.camel.v1.Integration; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -class KubeCommandMainTest extends KubeBaseTest { +class CamelKCommandTest extends CamelKBaseTest { @Test public void shouldDeleteIntegration() throws IOException { @@ -65,11 +65,11 @@ class KubeCommandMainTest extends KubeBaseTest { Pod pod = new PodBuilder() .withNewMetadata() .withName(integration.getMetadata().getName()) - .withLabels(Collections.singletonMap(KubeCommand.INTEGRATION_LABEL, integration.getMetadata().getName())) + .withLabels(Collections.singletonMap(CamelKCommand.INTEGRATION_LABEL, integration.getMetadata().getName())) .endMetadata() .withNewSpec() .addToContainers(new ContainerBuilder() - .withName(KubeCommand.INTEGRATION_CONTAINER_NAME) + .withName(CamelKCommand.INTEGRATION_CONTAINER_NAME) .build()) .endSpec() .withNewStatus() @@ -89,12 +89,12 @@ class KubeCommandMainTest extends KubeBaseTest { Integration integration = kubernetesClient.resources(Integration.class).withName("route").get(); Assertions.assertNotNull(integration); - Assertions.assertEquals("camel-k", integration.getMetadata().getAnnotations().get(KubeCommand.OPERATOR_ID_LABEL)); + Assertions.assertEquals("camel-k", integration.getMetadata().getAnnotations().get(CamelKCommand.OPERATOR_ID_LABEL)); } @Test public void shouldPrintIntegration() { - CamelJBangMain.run(createMain(), "k", "run", "classpath:route.yaml", "-o", "yaml"); + CamelJBangMain.run(createMain(), "k", "run", "classpath:route.yaml", "--output", "yaml"); Assertions.assertEquals(""" apiVersion: camel.apache.org/v1 @@ -125,9 +125,8 @@ class KubeCommandMainTest extends KubeBaseTest { return new CamelJBangMain() { @Override public void quit(int exitCode) { - if (exitCode != 0) { - Assertions.fail("Main finished with exit code %d".formatted(exitCode)); - } + Assertions.assertEquals(0, exitCode, + "Main finished with exit code %d:%n%s".formatted(exitCode, printer.getOutput())); } }.withPrinter(printer); } diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationDeleteTest.java b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationDeleteTest.java index 2d4d8a8c1fa..4b0e38dfb54 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationDeleteTest.java +++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationDeleteTest.java @@ -23,7 +23,7 @@ import org.apache.camel.v1.Integration; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -class IntegrationDeleteTest extends KubeBaseTest { +class IntegrationDeleteTest extends CamelKBaseTest { @Test public void shouldVerifyArguments() throws Exception { diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationGetTest.java b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationGetTest.java index 5bdcbe72192..6e0e6519aed 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationGetTest.java +++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationGetTest.java @@ -28,7 +28,7 @@ import org.apache.camel.v1.integrationstatus.IntegrationKit; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -class IntegrationGetTest extends KubeBaseTest { +class IntegrationGetTest extends CamelKBaseTest { @Test public void shouldListIntegrationsEmpty() throws Exception { diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationLogsTest.java b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationLogsTest.java index 6474e2e3912..45ad315e6c3 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationLogsTest.java +++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationLogsTest.java @@ -26,7 +26,7 @@ import org.apache.camel.v1.Integration; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -class IntegrationLogsTest extends KubeBaseTest { +class IntegrationLogsTest extends CamelKBaseTest { @Test public void shouldHandleIntegrationsNotFound() throws Exception { @@ -45,7 +45,7 @@ class IntegrationLogsTest extends KubeBaseTest { Pod pod = new PodBuilder() .withNewMetadata() .withName(integration.getMetadata().getName()) - .withLabels(Collections.singletonMap(KubeCommand.INTEGRATION_LABEL, integration.getMetadata().getName())) + .withLabels(Collections.singletonMap(CamelKCommand.INTEGRATION_LABEL, integration.getMetadata().getName())) .endMetadata() .withNewStatus() .withPhase("Running") diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationRunTest.java b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationRunTest.java index df2b8bfc1e9..1354ef8e03d 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationRunTest.java +++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationRunTest.java @@ -25,7 +25,7 @@ import org.apache.camel.v1.Integration; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -class IntegrationRunTest extends KubeBaseTest { +class IntegrationRunTest extends CamelKBaseTest { @Test public void shouldHandleMissingSourceFile() throws Exception { @@ -43,7 +43,7 @@ class IntegrationRunTest extends KubeBaseTest { Assertions.assertEquals("Integration route created", printer.getOutput()); Integration created = kubernetesClient.resources(Integration.class).withName("route").get(); - Assertions.assertEquals("camel-k", created.getMetadata().getAnnotations().get(KubeCommand.OPERATOR_ID_LABEL)); + Assertions.assertEquals("camel-k", created.getMetadata().getAnnotations().get(CamelKCommand.OPERATOR_ID_LABEL)); } @Test @@ -58,7 +58,7 @@ class IntegrationRunTest extends KubeBaseTest { Assertions.assertEquals("Integration route updated", printer.getOutput()); Integration created = kubernetesClient.resources(Integration.class).withName("route").get(); - Assertions.assertEquals("camel-k", created.getMetadata().getAnnotations().get(KubeCommand.OPERATOR_ID_LABEL)); + Assertions.assertEquals("camel-k", created.getMetadata().getAnnotations().get(CamelKCommand.OPERATOR_ID_LABEL)); } @Test diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseTest.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseTest.java index 3c853fb96a1..985450ca5f2 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseTest.java +++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseTest.java @@ -17,6 +17,9 @@ package org.apache.camel.dsl.jbang.core.commands.kubernetes; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; import java.util.HashMap; import io.fabric8.kubernetes.client.KubernetesClient; @@ -28,6 +31,7 @@ import org.apache.camel.dsl.jbang.core.common.CommandLineHelper; import org.apache.camel.dsl.jbang.core.common.PluginHelper; import org.apache.camel.dsl.jbang.core.common.PluginType; import org.apache.camel.dsl.jbang.core.common.StringPrinter; +import org.apache.camel.util.StringHelper; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; @@ -65,4 +69,8 @@ public class KubernetesBaseTest { k8sServer.destroy(); } + protected InputStream getKubernetesManifestAsStream(String printerOutput) { + return new ByteArrayInputStream(StringHelper.after(printerOutput, "---").getBytes(StandardCharsets.UTF_8)); + } + } diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesCommandTest.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesCommandTest.java new file mode 100644 index 00000000000..5a9e6272566 --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesCommandTest.java @@ -0,0 +1,35 @@ +/* + * 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.kubernetes; + +import org.apache.camel.impl.engine.DefaultClassResolver; +import org.apache.camel.impl.engine.DefaultFactoryFinder; +import org.apache.camel.spi.FactoryFinder; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +class KubernetesCommandTest extends KubernetesBaseTest { + + @Test + public void shouldResolvePlugin() { + FactoryFinder factoryFinder + = new DefaultFactoryFinder(new DefaultClassResolver(), FactoryFinder.DEFAULT_PATH + "camel-jbang-plugin/"); + Assertions.assertTrue(factoryFinder.newInstance("camel-jbang-plugin-kubernetes").isPresent()); + } + +} diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java index fa04a8d9e98..7c11a205ffd 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java +++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java @@ -17,9 +17,6 @@ package org.apache.camel.dsl.jbang.core.commands.kubernetes; -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; import java.util.List; import io.fabric8.kubernetes.api.model.HasMetadata; @@ -28,7 +25,6 @@ import org.apache.camel.RuntimeCamelException; import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain; import org.apache.camel.dsl.jbang.core.commands.kubernetes.traits.BaseTrait; import org.apache.camel.dsl.jbang.core.common.StringPrinter; -import org.apache.camel.util.StringHelper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -101,7 +97,4 @@ class KubernetesRunTest extends KubernetesBaseTest { return command; } - private InputStream getKubernetesManifestAsStream(String printerOutput) { - return new ByteArrayInputStream(StringHelper.after(printerOutput, "---").getBytes(StandardCharsets.UTF_8)); - } }