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

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

commit f8cca74747d40062393586c9b6d91488d4fb8832
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu Aug 14 10:32:47 2025 +0200

    CAMEL-22205: camel-jbang: Document all camel.jbang options for tooling
---
 .../modules/ROOT/pages/camel-jbang.adoc            | 51 ++++++++++++++++++++++
 .../maven/packaging/PrepareCamelJBangDocMojo.java  | 32 +++++++-------
 2 files changed, 68 insertions(+), 15 deletions(-)

diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
index 31fd0ab88a4..04243ab86b0 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
@@ -3945,6 +3945,57 @@ which also can be used to specific parameters for export 
such as selecting the r
 The follow options related to _exporting_ or _running_, can be configured in 
`application.properties`:
 
 // jbang options: START
+=== Camel JBang configurations
+The camel.jbang supports 44 options, which are listed below.
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *camel.jbang.buildTool* | Build tool to use (Maven or Gradle) | Maven | 
String
+| *camel.jbang.camel-version* | The version of Apache Camel to use |  | String
+| *camel.jbang.camelSpringBoot{zwsp}Version* | To use a custom Camel version 
when running or export to Spring Boot |  | String
+| *camel.jbang.classpathFiles* | Additional files to add to classpath (Use 
commas to separate multiple files). |  | String
+| *camel.jbang.compileWorkDir* | Work directory for compiler. Can be used to 
write compiled classes or other resources. | .camel-jbang/compile | String
+| *camel.jbang.console* | Developer console at /q/dev on local HTTP server 
(port 8080 by default) | false | boolean
+| *camel.jbang.dependencies* | Additional dependencies (Use commas to separate 
multiple dependencies). |  | String
+| *camel.jbang.download* | Whether to allow automatic downloading JAR 
dependencies (over the internet) | true | boolean
+| *camel.jbang.excludes* | Exclude files by name or pattern (Use commas to 
separate multiple files) |  | String
+| *camel.jbang.exportDir* | Directory where the project will be exported | . | 
String
+| *camel.jbang.gav* | Maven coordinate (groupId:artifactId:version) |  | String
+| *camel.jbang.gradleWrapper* | Include Gradle Wrapper files in the exported 
project | true | boolean
+| *camel.jbang.groovyFiles* | Additional groovy source files to export to 
src/main/resources/camel-groovy directory (Use commas to separate multiple 
files) |  | String
+| *camel.jbang.health* | Health check at /observe/health on local HTTP server 
(port 8080 by default) | false | boolean
+| *camel.jbang.ignoreLoadingError* | Whether to ignore route loading and 
compilation errors (use this with care!) | false | boolean
+| *camel.jbang.javaVersion* | Java version (17 or 21) | 21 | String
+| *camel.jbang.jfr* | Enables Java Flight Recorder saving recording to disk on 
exit | false | boolean
+| *camel.jbang.jfr-profile* | Java Flight Recorder profile to use (such as 
default or profile) | default | String
+| *camel.jbang.jib-maven-plugin-version* | Version to use for jib-maven-plugin 
if exporting to camel-main and have Kubernetes enabled (jkube.xxx options) | 
3.4.5 | String
+| *camel.jbang.jkube-maven-plugin-version* | Version to use for 
jkube-maven-plugin if exporting to camel-main and have Kubernetes enabled 
(jkube.xxx options) | 1.18.1 | String
+| *camel.jbang.jkubeFiles* | Resource YAML fragments for Kubernetes using 
Eclipse JKube tool (Use commas to separate multiple files). |  | String
+| *camel.jbang.kameletsVersion* | Apache Camel Kamelets version. By default 
the Kamelets are the same version as Camel. |  | String
+| *camel.jbang.lazyBean* | Whether to use lazy bean initialization (can help 
with complex classloading issues) | false | boolean
+| *camel.jbang.localKameletDir* | Local file directory for loading custom 
Kamelets |  | String
+| *camel.jbang.maven-apache-snapshot-enabled* | Whether downloading JARs from 
ASF Maven Snapshot repository is enabled | true | boolean
+| *camel.jbang.maven-central-enabled* | Whether downloading JARs from Maven 
Central repository is enabled | true | boolean
+| *camel.jbang.maven-settings* | Optional location of Maven settings.xml file 
to configure servers, repositories, mirrors, and proxies. If set to false, not 
even the default /.m2/settings.xml will be used. |  | String
+| *camel.jbang.maven-settings-security* | Optional location of Maven 
settings-security.xml file to decrypt Maven Settings (settings.xml) file |  | 
String
+| *camel.jbang.mavenWrapper* | Include Maven Wrapper files in the exported 
project | true | boolean
+| *camel.jbang.metrics* | Metrics (Micrometer and Prometheus) at 
/observe/metrics on local HTTP server (port 8080 by default) when running 
standalone Camel | false | boolean
+| *camel.jbang.openApi* | File name of open-api spec file (JSON or YAML) to 
generate routes from the swagger/openapi API spec file. |  | String
+| *camel.jbang.packageScanJars* | Whether to automatic package scan JARs for 
custom Spring or Quarkus beans making them available for Camel JBang | false | 
boolean
+| *camel.jbang.prompt* | Allow user to type in required parameters in prompt 
if not present in application | false | boolean
+| *camel.jbang.quarkusArtifactId* | Quarkus Platform Maven artifactId |  | 
String
+| *camel.jbang.quarkusGroupId* | Quarkus Platform Maven groupId |  | String
+| *camel.jbang.quarkusVersion* | Quarkus Platform version |  | String
+| *camel.jbang.repos* | Additional Maven repositories for download on-demand 
(Use commas to separate multiple repositories) |  | String
+| *camel.jbang.runtime* | Which runtime to use (camel-main, spring-boot, 
quarkus) |  | String
+| *camel.jbang.scriptFiles* | Additional shell script files to export to 
src/main/scripts directory |  | String
+| *camel.jbang.sourceDir* | Source directory for dynamically loading Camel 
file(s) to run. When using this, then files cannot be specified at the same 
time. |  | String
+| *camel.jbang.springBootVersion* | Spring Boot version |  | String
+| *camel.jbang.stub* | Stubs all the matching endpoint with the given 
component name or pattern. Multiple names can be separated by comma. (all = 
everything). |  | String
+| *camel.jbang.tlsFiles* | Additional SSL/TLS files to export to src/main/tls 
directory |  | String
+| *camel.jbang.verbose* | Verbose output of startup activity (dependency 
resolution and downloading | false | boolean
+|===
 // jbang options: END
 
 
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelJBangDocMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelJBangDocMojo.java
index 8d0f8450699..8f19da01cbd 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelJBangDocMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelJBangDocMojo.java
@@ -16,8 +16,17 @@
  */
 package org.apache.camel.maven.packaging;
 
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import org.apache.camel.tooling.model.JBangModel;
 import org.apache.camel.tooling.model.JsonMapper;
-import org.apache.camel.tooling.model.MainModel;
 import org.apache.camel.tooling.util.PackageHelper;
 import org.apache.camel.tooling.util.Strings;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -31,14 +40,6 @@ import org.apache.maven.project.MavenProjectHelper;
 import org.codehaus.plexus.build.BuildContext;
 import org.mvel2.templates.TemplateRuntime;
 
-import javax.inject.Inject;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
 /**
  * Prepares camel-jbang by updating the jbang documentation.
  */
@@ -49,7 +50,7 @@ public class PrepareCamelJBangDocMojo extends 
AbstractGeneratorMojo {
     /**
      * The documentation directory
      */
-    @Parameter(defaultValue = 
"${project.basedir}/../../docs/user-manual/modules/ROOT/pages")
+    @Parameter(defaultValue = 
"${project.basedir}/../../../docs/user-manual/modules/ROOT/pages")
     protected File docDocDir;
 
     /**
@@ -66,7 +67,8 @@ public class PrepareCamelJBangDocMojo extends 
AbstractGeneratorMojo {
     @Override
     public void execute(MavenProject project)
             throws MojoFailureException, MojoExecutionException {
-        docDocDir = new File(project.getBasedir().getParentFile().getParent(), 
"docs/user-manual/modules/ROOT/pages");
+        docDocDir = new File(
+                
project.getBasedir().getParentFile().getParentFile().getParent(), 
"docs/user-manual/modules/ROOT/pages");
         jbangJsonFile
                 = new File(project.getBasedir(), 
"src/generated/resources/META-INF/camel-main-configuration-metadata.json");
         super.execute(project);
@@ -84,7 +86,7 @@ public class PrepareCamelJBangDocMojo extends 
AbstractGeneratorMojo {
         boolean updated;
         try {
             String json = PackageHelper.loadText(jbangJsonFile);
-            MainModel model = JsonMapper.generateMainModel(json);
+            JBangModel model = JsonMapper.generateJBangModel(json);
             String options = evaluateTemplate("jbang-options.mvel", model);
             updated = updateOptionsIn(file, "jbang", options);
         } catch (IOException e) {
@@ -98,17 +100,17 @@ public class PrepareCamelJBangDocMojo extends 
AbstractGeneratorMojo {
                 getLog().debug("No changes to doc file: " + file);
             }
         } else {
-            getLog().warn("No main doc file: " + file);
+            getLog().warn("No jbang doc file: " + file);
         }
     }
 
-    private static String evaluateTemplate(final String templateName, final 
MainModel model) throws MojoExecutionException {
+    private static String evaluateTemplate(final String templateName, final 
JBangModel model) throws MojoExecutionException {
         StringBuilder sb = new StringBuilder(256);
 
         try (InputStream templateStream = 
UpdateReadmeMojo.class.getClassLoader().getResourceAsStream(templateName)) {
             String template = PackageHelper.loadText(templateStream);
             // loop each group and eval
-            for (MainModel.MainGroupModel group : model.getGroups()) {
+            for (JBangModel.JBangGroupModel group : model.getGroups()) {
                 Map<String, Object> root = new HashMap<>();
                 root.put("group", group);
                 root.put("options", model.getOptions().stream()

Reply via email to