diff --git a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-commands.adoc b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-commands.adoc index 8d9e0406c6a9f..5425cf41a8360 100644 --- a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-commands.adoc +++ b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-commands.adoc @@ -20,6 +20,7 @@ TIP: You can also use `camel --help` or `camel --help` to see availabl | xref:jbang-commands/camel-jbang-dependency.adoc[camel dependency] | Displays all Camel dependencies required to run | xref:jbang-commands/camel-jbang-dirty.adoc[camel dirty] | Check if there are dirty files from previous Camel runs that did not terminate gracefully | xref:jbang-commands/camel-jbang-doc.adoc[camel doc] | Shows documentation for kamelet, component, and other Camel resources +| xref:jbang-commands/camel-jbang-doctor.adoc[camel doctor] | Checks the environment and reports potential issues | xref:jbang-commands/camel-jbang-eval.adoc[camel eval] | Evaluate Camel expressions and scripts | xref:jbang-commands/camel-jbang-explain.adoc[camel explain] | Explain what a Camel route does using AI/LLM | xref:jbang-commands/camel-jbang-export.adoc[camel export] | Export to other runtimes (Camel Main, Spring Boot, or Quarkus) diff --git a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-debug.adoc b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-debug.adoc index a545282a1cd8c..2ba7c40779cdb 100644 --- a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-debug.adoc +++ b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-debug.adoc @@ -31,6 +31,8 @@ camel debug [options] | `--dep,--dependency` | Add additional dependencies | | List | `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean | `--empty` | Run an empty Camel without loading source files | false | boolean +| `--example` | Run a built-in example by name (e.g., timer-log, rest-api). Use --example --list to show available examples. | | String +| `--example-list` | List available built-in examples | | boolean | `--exclude` | Exclude files by name or pattern | | List | `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false | boolean | `--gav` | The Maven group:artifact:version (used during exporting) | | String diff --git a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-doctor.adoc b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-doctor.adoc new file mode 100644 index 0000000000000..dcf0ad911535f --- /dev/null +++ b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-doctor.adoc @@ -0,0 +1,25 @@ + +// AUTO-GENERATED by camel-package-maven-plugin - DO NOT EDIT THIS FILE += camel doctor + +Checks the environment and reports potential issues + + +== Usage + +[source,bash] +---- +camel doctor [options] +---- + + + +== Options + +[cols="2,5,1,2",options="header"] +|=== +| Option | Description | Default | Type +| `-h,--help` | Display the help and sub-commands | | boolean +|=== + + diff --git a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-run.adoc b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-run.adoc index 61648266fcaa4..936fd1385e3a3 100644 --- a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-run.adoc +++ b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-run.adoc @@ -29,6 +29,8 @@ camel run [options] | `--dep,--dependency` | Add additional dependencies | | List | `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean | `--empty` | Run an empty Camel without loading source files | false | boolean +| `--example` | Run a built-in example by name (e.g., timer-log, rest-api). Use --example --list to show available examples. | | String +| `--example-list` | List available built-in examples | | boolean | `--exclude` | Exclude files by name or pattern | | List | `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false | boolean | `--gav` | The Maven group:artifact:version (used during exporting) | | String diff --git a/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json b/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json index 43700abf34c16..191439d1a1c9d 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json +++ b/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json @@ -5,10 +5,11 @@ { "name": "cmd", "fullName": "cmd", "description": "Performs commands in the running Camel integrations, such as start\/stop route, or change logging levels.", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelAction", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "browse", "fullName": "cmd browse", "description": "Browse pending messages on endpoints", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelBrowseAction", "options": [ { "names": "--body-max-chars", "description": "Maximum size of the message body to include in the dump", "javaType": "int", "type": "integer" }, { "names": "--dump", "description": "Whether to include message dumps", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--endpoint", "description": "Endpoint to browse messages from (can be uri, pattern, or refer to a route id)", "javaType": "java.lang.String", "type": "string" }, { "names": "--fresh-size", "description": "Whether to calculate fresh queue size information (performance overhead)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--limit", "description": "Limits the number of messages to dump per endpoint", "defaultValue": "100", "javaType": "int", "type": "integer" }, { "names": "--logging-color", "description": "Use colored logging", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--mask", "description": "Whether to mask endpoint URIs to avoid printing sensitive information such as password or access keys", "javaType": "boolean", "type": "boolean" }, { "names": "--only-body", "description": "Show only message body in browsed messages", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--pretty", "description": "Pretty print message body when using JSon or XML format", "javaType": "boolean", "type": "boolean" }, { "names": "--short-uri", "description": "List endpoint URI without query parameters (short)", "javaType": "boolean", "type": "boolean" }, { "names": "--show-body", "description": "Show message body in browsed messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--show-headers", "description": "Show message headers in browsed messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--sort", "description": "Sort by uri, or size", "defaultValue": "uri", "javaType": "java.lang.String", "type": "string" }, { "names": "--tail", "description": "The number of messages from the end (latest) to dump", "javaType": "int", "type": "integer" }, { "names": "--wide-uri", "description": "List endpoint URI in full details", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "disable-processor", "fullName": "cmd disable-processor", "description": "Disable Camel processor", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelProcessorDisableAction", "options": [ { "names": "--id", "description": "Processor ids (multiple ids can be separated by comma)", "defaultValue": "*", "javaType": "java.lang.String", "type": "string" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "enable-processor", "fullName": "cmd enable-processor", "description": "Enable Camel processor", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelProcessorEnableAction", "options": [ { "names": "--id", "description": "Processor ids (multiple ids can be separated by comma)", "defaultValue": "*", "javaType": "java.lang.String", "type": "string" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "gc", "fullName": "cmd gc", "description": "Trigger Java Memory Garbage Collector", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelGCAction", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "load", "fullName": "cmd load", "description": "Loads new source files into an existing Camel", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelLoadAction", "options": [ { "names": "--restart", "description": "To force restart all routes after loading source files", "javaType": "boolean", "type": "boolean" }, { "names": "--source", "description": "Source file(s) to load", "javaType": "java.util.List", "type": "array" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "logger", "fullName": "cmd logger", "description": "List or change logging levels", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.LoggerAction", "options": [ { "names": "--logger", "description": "The logger name", "defaultValue": "root", "javaType": "java.lang.String", "type": "string" }, { "names": "--logging-level", "description": "To change logging level (ERROR, WARN, INFO, DEBUG, TRACE)", "javaType": "java.lang.String", "type": "string" }, { "names": "--sort", "description": "Sort by pid, name or age", "defaultValue": "pid", "javaType": "java.lang.String", "type": "string" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "receive", "fullName": "cmd receive", "description": "Receive and dump messages from remote endpoints", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelReceiveAction", "options": [ { "names": "--action", "description": "Action to start, stop, clear, status, or dump messages", "defaultValue": "status", "javaType": "java.lang.String", "type": "string" }, { "names": "--compact", "description": "Compact output (no empty line separating messages)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--endpoint,--uri", "description": "Endpoint to receive messages from (can be uri or pattern to refer to existing endpoint)", "javaType": "java.lang.String", "type": "string" }, { "names": "--find", "description": "Find and highlight matching text (ignore case).", "javaType": "java.lang.String", "type": "string" }, { "names": "--follow", "description": "Keep following and outputting new messages (press enter to exit).", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--grep", "description": "Filter messages to only output matching text (ignore case).", "javaType": "java.lang.String", "type": "string" }, { "names": "--logging-color", "description": "Use colored logging", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--mask", "description": "Whether to mask endpoint URIs to avoid printing sensitive information such as password or access keys", "javaType": "boolean", "type": "boolean" }, { "names": "--only-body", "description": "Show only message body in received messages", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--output", "description": "Output format (auto, true, false)", "javaType": "java.lang.String", "type": "string" }, { "names": "--prefix", "description": "Print prefix with running Camel integration name. auto=only prefix when running multiple integrations. true=always prefix. false=prefix off.", "defaultValue": "auto", "javaType": "java.lang.String", "type": "string" }, { "names": "--pretty", "description": "Pretty print message body when using JSon or XML format", "javaType": "boolean", "type": "boolean" }, { "names": "--prop,--property", "description": "Additional properties; override existing (only applicable when NOT using an existing running Camel)", "javaType": "java.lang.String", "type": "string" }, { "names": "--properties", "description": "comma separated list of properties file (only applicable when NOT using an existing running Camel) (ex. \/path\/to\/file.properties,\/path\/to\/other.properties", "javaType": "java.lang.String", "type": "string" }, { "names": "--short-uri", "description": "List endpoint URI without query parameters (short)", "javaType": "boolean", "type": "boolean" }, { "names": "--show-body", "description": "Show message body in received messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--show-exchange-properties", "description": "Show exchange properties in received messages", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--show-exchange-variables", "description": "Show exchange variables in received messages", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--show-headers", "description": "Show message headers in received messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--since", "description": "Return messages newer than a relative duration like 5s, 2m, or 1h. The value is in seconds if no unit specified.", "javaType": "java.lang.String", "type": "string" }, { "names": "--sort", "description": "Sort by pid, name or age for showing status of messages", "defaultValue": "pid", "javaType": "java.lang.String", "type": "string" }, { "names": "--tail", "description": "The number of messages from the end to show. Use -1 to read from the beginning. Use 0 to read only new lines. Defaults to showing all messages from beginning.", "defaultValue": "-1", "javaType": "int", "type": "integer" }, { "names": "--timeout", "description": "Timeout in millis waiting for message to be received", "defaultValue": "20000", "javaType": "long", "type": "integer" }, { "names": "--wide-uri", "description": "List endpoint URI in full details", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "reload", "fullName": "cmd reload", "description": "Trigger reloading Camel", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelReloadAction", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "reset-stats", "fullName": "cmd reset-stats", "description": "Reset performance statistics", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelResetStatsAction", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "resume-route", "fullName": "cmd resume-route", "description": "Resume Camel routes", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelRouteResumeAction", "options": [ { "names": "--id", "description": "Route ids (multiple ids can be separated by comma)", "defaultValue": "*", "javaType": "java.lang.String", "type": "string" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "route-diagram", "fullName": "cmd route-diagram", "description": "Display Camel route diagram in the terminal", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelRouteDiagramAction", "options": [ { "names": "--box-width", "description": "Node box width in logical pixels", "defaultValue": "180", "javaType": "int", "type": "integer" }, { "names": "--filter", "description": "Filter route by filename or route id", "javaType": "java.lang.String", "type": "string" }, { "names": "--font-size", "description": "Font size in logical pixels for node text", "defaultValue": "12", "javaType": "int", "type": "integer" }, { "names": "--ignore-loading-error", "description": "Whether to ignore route loading and compilation errors (use this with care!)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--output", "description": "Save diagram to a PNG file instead of displaying in terminal", "javaType": "java.lang.String", "type": "string" }, { "names": "--theme,--colors", "description": "Color theme preset (dark, light, transparent) or custom colors (e.g. bg=#1e1e1e:from=#2e7d32:to=#1565c0). Values can be #hex or ANSI color names (e.g. from=seagreen:to=steelblue). Use bg= for transparent. Can also be set via DIAGRAM_COLORS env var.", "defaultValue": "dark", "javaType": "java.lang.String", "type": "string" }, { "names": "--width", "description": "Image width in pixels (0 = auto)", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "route-structure", "fullName": "cmd route-structure", "description": "Dump Camel route structure", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelRouteStructureAction", "options": [ { "names": "--brief", "description": "To show less detailed route structure", "javaType": "boolean", "type": "boolean" }, { "names": "--description", "description": "To show description instead of code", "javaType": "boolean", "type": "boolean" }, { "names": "--filter", "description": "Filter route by filename or route id (multiple names can be separated by comma)", "javaType": "java.lang.String", "type": "string" }, { "names": "--ignore-loading-error", "description": "Whether to ignore route loading and compilation errors (use this with care!)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--json", "description": "Output in JSON Format", "javaType": "boolean", "type": "boolean" }, { "names": "--raw", "description": "To output raw without metadata", "javaType": "boolean", "type": "boolean" }, { "names": "--sort", "description": "Sort route by name or id", "defaultValue": "name", "javaType": "java.lang.String", "type": "string" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "send", "fullName": "cmd send", "description": "Send messages to endpoints", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelSendAction", "options": [ { "names": "--body", "description": "Message body to send (prefix with file: to refer to loading message body from file)", "javaType": "java.lang.String", "type": "string" }, { "names": "--endpoint,--uri", "description": "Endpoint where to send the message (can be uri, pattern, or refer to a route id)", "javaType": "java.lang.String", "type": "string" }, { "names": "--header", "description": "Message header (key=value)", "javaType": "java.util.List", "type": "array" }, { "names": "--infra", "description": "Send to infrastructure service (e.g., nats, kafka)", "javaType": "java.lang.String", "type": "string" }, { "names": "--logging-color", "description": "Use colored logging", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--poll", "description": "Poll instead of sending a message. This can be used to receive latest message from a Kafka topic or JMS queue.", "javaType": "boolean", "type": "boolean" }, { "names": "--pretty", "description": "Pretty print response message body (InOut) when using JSon or XML format", "javaType": "boolean", "type": "boolean" }, { "names": "--prop,--property", "description": "Additional properties; override existing (only applicable when NOT using an existing running Camel)", "javaType": "java.lang.String", "type": "string" }, { "names": "--properties", "description": "comma separated list of properties file (only applicable when NOT using an existing running Camel) (ex. \/path\/to\/file.properties,\/path\/to\/other.properties", "javaType": "java.lang.String", "type": "string" }, { "names": "--reply", "description": "Whether to expect a reply message (InOut vs InOut messaging style)", "javaType": "boolean", "type": "boolean" }, { "names": "--reply-file", "description": "Saves reply message to the file with the given name (override if exists)", "javaType": "java.lang.String", "type": "string" }, { "names": "--show-body", "description": "Show message body from response message (InOut)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--show-exception", "description": "Show exception and stacktrace for failed messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--show-exchange-properties", "description": "Show exchange properties from response message (InOut)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--show-exchange-variables", "description": "Show exchange variables from response message (InOut)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--show-headers", "description": "Show message headers from response message (InOut)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--timeout", "description": "Timeout in millis waiting for message to be sent (and reply message if InOut messaging)", "defaultValue": "20000", "javaType": "long", "type": "integer" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "start-group", "fullName": "cmd start-group", "description": "Start Camel route groups", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelRouteGroupStartAction", "options": [ { "names": "--id", "description": "Route ids (multiple ids can be separated by comma)", "defaultValue": "*", "javaType": "java.lang.String", "type": "string" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "start-route", "fullName": "cmd start-route", "description": "Start Camel routes", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelRouteStartAction", "options": [ { "names": "--id", "description": "Route ids (multiple ids can be separated by comma)", "defaultValue": "*", "javaType": "java.lang.String", "type": "string" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "stop-group", "fullName": "cmd stop-group", "description": "Stop Camel route groups", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelRouteGroupStopAction", "options": [ { "names": "--id", "description": "Route ids (multiple ids can be separated by comma)", "defaultValue": "*", "javaType": "java.lang.String", "type": "string" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "stop-route", "fullName": "cmd stop-route", "description": "Stop Camel routes", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelRouteStopAction", "options": [ { "names": "--id", "description": "Route ids (multiple ids can be separated by comma)", "defaultValue": "*", "javaType": "java.lang.String", "type": "string" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "stub", "fullName": "cmd stub", "description": "Browse stub endpoints", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelStubAction", "options": [ { "names": "--browse", "description": "Whether to browse messages queued in the stub endpoints", "javaType": "boolean", "type": "boolean" }, { "names": "--compact", "description": "Compact output (no empty line separating browsed messages)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--filter", "description": "Filter endpoints by queue name", "javaType": "java.lang.String", "type": "string" }, { "names": "--find", "description": "Find and highlight matching text (ignore case).", "javaType": "java.lang.String", "type": "string" }, { "names": "--grep", "description": "Filter browsing messages to only output trace matching text (ignore case).", "javaType": "java.lang.String", "type": "string" }, { "names": "--limit", "description": "Filter browsing queues by limiting to the given latest number of messages", "defaultValue": "10", "javaType": "int", "type": "integer" }, { "names": "--logging-color", "description": "Use colored logging", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--mask", "description": "Whether to mask endpoint URIs to avoid printing sensitive information such as password or access keys", "javaType": "boolean", "type": "boolean" }, { "names": "--pretty", "description": "Pretty print message body when using JSon or XML format", "javaType": "boolean", "type": "boolean" }, { "names": "--show-body", "description": "Show message body in traced messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--show-headers", "description": "Show message headers in traced messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--sort", "description": "Sort by name, or total", "defaultValue": "name", "javaType": "java.lang.String", "type": "string" }, { "names": "--top", "description": "Whether to browse top (latest) messages queued in the stub endpoints", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--watch", "description": "Execute periodically and showing output fullscreen", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "suspend-route", "fullName": "cmd suspend-route", "description": "Suspend Camel routes", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelRouteSuspendAction", "options": [ { "names": "--id", "description": "Route ids (multiple ids can be separated by comma)", "defaultValue": "*", "javaType": "java.lang.String", "type": "string" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "thread-dump", "fullName": "cmd thread-dump", "description": "List threads in a running Camel integration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelThreadDump", "options": [ { "names": "--depth", "description": "Max depth of stack-trace", "defaultValue": "1", "javaType": "int", "type": "integer" }, { "names": "--filter", "description": "Filter thread names\/ids (use all to include all threads)", "defaultValue": "Camel", "javaType": "java.lang.String", "type": "string" }, { "names": "--sort", "description": "Sort by id, name or state", "defaultValue": "id", "javaType": "java.lang.String", "type": "string" }, { "names": "--state", "description": "To only show threads for a given state", "javaType": "java.lang.String", "type": "string" }, { "names": "--trace", "description": "Include stack-traces", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--watch", "description": "Execute periodically and showing output fullscreen", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] } ] }, { "name": "completion", "fullName": "completion", "description": "Generate completion script for bash\/zsh", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Complete", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "config", "fullName": "config", "description": "Get and set user configuration values", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.config.ConfigCommand", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "get", "fullName": "config get", "description": "Display user configuration value", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.config.ConfigGet", "options": [ { "names": "--global", "description": "Use global or local configuration", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "list", "fullName": "config list", "description": "Displays user configuration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.config.ConfigList", "options": [ { "names": "--global", "description": "Use global or local configuration", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "set", "fullName": "config set", "description": "Set user configuration value", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.config.ConfigSet", "options": [ { "names": "--global", "description": "Use global or local configuration", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "unset", "fullName": "config unset", "description": "Remove user configuration value", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.config.ConfigUnset", "options": [ { "names": "--global", "description": "Use global or local configurations", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] } ] }, - { "name": "debug", "fullName": "debug", "description": "Debug local Camel integration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Debug", "options": [ { "names": "--ago", "description": "Use ago instead of yyyy-MM-dd HH:mm:ss in timestamp.", "javaType": "boolean", "type": "boolean" }, { "names": "--background", "description": "Run in the background", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--background-wait", "description": "To wait for run in background to startup successfully, before returning", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--backlog-trace", "description": "Enables backlog tracing of the routed messages", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--breakpoint", "description": "To set breakpoint at the given node id (Multiple ids can be separated by comma). If no breakpoint is set, then the first route is automatic selected.", "javaType": "java.lang.String", "type": "string" }, { "names": "--camel-spring-boot-version", "description": "To run using a different Camel Spring Boot version than the default version.", "javaType": "java.lang.String", "type": "string" }, { "names": "--camel-version", "description": "To run using a different Camel version than the default version.", "javaType": "java.lang.String", "type": "string" }, { "names": "--code", "description": "Run the given text or file as Java DSL routes", "javaType": "java.lang.String", "type": "string" }, { "names": "--console", "description": "Developer console at \/q\/dev on local HTTP server (port 8080 by default)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--dep,--dependency", "description": "Add additional dependencies", "javaType": "java.util.List", "type": "array" }, { "names": "--download", "description": "Whether to allow automatic downloading JAR dependencies (over the internet)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--empty", "description": "Run an empty Camel without loading source files", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--exclude", "description": "Exclude files by name or pattern", "javaType": "java.util.List", "type": "array" }, { "names": "--fresh", "description": "Make sure we use fresh (i.e. non-cached) resources", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--gav", "description": "The Maven group:artifact:version (used during exporting)", "javaType": "java.lang.String", "type": "string" }, { "names": "--health", "description": "Deprecated: use --observe instead. Health check at \/q\/health on local HTTP server (port 8080 by default)", "defaultValue": "false", "javaType": "boolean", "type": "boolean", "deprecated": true }, { "names": "--ignore-loading-error", "description": "Whether to ignore route loading and compilation errors (use this with care!)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--java-version,--java", "description": "Java version (21, 25)", "defaultValue": "21", "javaType": "java.lang.String", "type": "string" }, { "names": "--jfr", "description": "Enables Java Flight Recorder saving recording to disk on exit", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--jfr-profile", "description": "Java Flight Recorder profile to use (such as default or profile)", "javaType": "java.lang.String", "type": "string" }, { "names": "--jvm-debug", "description": "To enable JVM remote debugging on port 4004 by default. The supported values are true to enable the remote debugging, false to disable the remote debugging or a number to use a custom port", "javaType": "int", "type": "integer", "paramLabel": "" }, { "names": "--kamelets-version", "description": "Apache Camel Kamelets version", "javaType": "java.lang.String", "type": "string" }, { "names": "--lazy-bean", "description": "Whether to use lazy bean initialization (can help with complex classloading issues)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--local-kamelet-dir", "description": "Local directory (or github link) for loading Kamelets (takes precedence). Multiple directories can be specified separated by comma.", "javaType": "java.lang.String", "type": "string" }, { "names": "--log-lines", "description": "Number of log lines to display on top of screen", "defaultValue": "10", "javaType": "int", "type": "integer" }, { "names": "--logging", "description": "Can be used to turn off logging", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-category", "description": "Used for individual logging levels (ex: org.apache.kafka=DEBUG)", "javaType": "java.util.List", "type": "array" }, { "names": "--logging-color", "description": "Use colored logging. Default is auto-detected based on NO_COLOR, CI, FORCE_COLOR environment variables and terminal capabilities", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-config-path", "description": "Path to file with custom logging configuration", "javaType": "java.lang.String", "type": "string" }, { "names": "--logging-json", "description": "Use JSON logging (ECS Layout)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-level", "description": "Logging level (ERROR, WARN, INFO, DEBUG, TRACE)", "defaultValue": "info", "javaType": "java.lang.String", "type": "string" }, { "names": "--management-port", "description": "To use a dedicated port for HTTP management (use 0 to dynamic assign a free random port number)", "javaType": "int", "type": "integer" }, { "names": "--mask", "description": "Whether to mask endpoint URIs to avoid printing sensitive information such as password or access keys", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-apache-snapshot-enabled", "description": "Whether downloading JARs from ASF Maven Snapshot repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-central-enabled", "description": "Whether downloading JARs from Maven Central repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-settings", "description": "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.", "javaType": "java.lang.String", "type": "string" }, { "names": "--maven-settings-security", "description": "Optional location of Maven settings-security.xml file to decrypt settings.xml", "javaType": "java.lang.String", "type": "string" }, { "names": "--max-idle-seconds", "description": "For how long time in seconds Camel can be idle before stopping", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "--max-messages", "description": "Max number of messages to process before stopping", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "--max-seconds", "description": "Max seconds to run before stopping", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "--metrics", "description": "Deprecated: use --observe instead. Metrics (Micrometer and Prometheus) at \/q\/metrics on local HTTP server (port 8080 by default)", "defaultValue": "false", "javaType": "boolean", "type": "boolean", "deprecated": true }, { "names": "--modeline", "description": "Whether to support JBang style \/\/DEPS to specify additional dependencies", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--name", "description": "The name of the Camel application", "defaultValue": "CamelJBang", "javaType": "java.lang.String", "type": "string" }, { "names": "--observe", "description": "Enable observability services", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--open-api", "description": "Adds an OpenAPI spec from the given file (json or yaml file)", "javaType": "java.lang.String", "type": "string" }, { "names": "--output", "description": "File to store the current message body (will override). This allows for manual inspecting the message later.", "javaType": "java.lang.String", "type": "string" }, { "names": "--package-scan-jars", "description": "Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--port", "description": "Embeds a local HTTP server on this port (port 8080 by default; use 0 to dynamic assign a free random port number)", "javaType": "int", "type": "integer" }, { "names": "--pretty", "description": "Pretty print message body when using JSon or XML format", "javaType": "boolean", "type": "boolean" }, { "names": "--profile", "description": "Profile to run (dev, test, prod).", "defaultValue": "dev", "javaType": "java.lang.String", "type": "string" }, { "names": "--prompt", "description": "Allow user to type in required parameters in prompt if not present in application", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--prop,--property", "description": "Additional properties (override existing)", "javaType": "java.lang.String", "type": "string" }, { "names": "--properties", "description": "comma separated list of properties file (ex. \/path\/to\/file.properties,\/path\/to\/other.properties", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-artifact-id", "description": "Quarkus Platform Maven artifactId", "defaultValue": "quarkus-bom", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-group-id", "description": "Quarkus Platform Maven groupId", "defaultValue": "io.quarkus.platform", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-version", "description": "Quarkus Platform version", "defaultValue": "RuntimeType.QUARKUS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--reload,--dev", "description": "Enables dev mode (live reload when source files are updated and saved)", "javaType": "boolean", "type": "boolean" }, { "names": "--remote-attach", "description": "Attaches debugger remotely to an existing running Camel integration. (Add camel-cli-debug JAR to the existing Camel application and run before attaching this debugger)", "javaType": "boolean", "type": "boolean" }, { "names": "--repo,--repos", "description": "Additional maven repositories (Use commas to separate multiple repositories)", "javaType": "java.lang.String", "type": "string" }, { "names": "--runtime", "description": "Runtime (camel-main, spring-boot, quarkus)", "defaultValue": "camel-main", "javaType": "org.apache.camel.dsl.jbang.core.common.RuntimeType", "type": "object" }, { "names": "--show-body", "description": "Show message body in debug messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--show-exception", "description": "Show exception and stacktrace for failed messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--show-exchange-properties", "description": "Show exchange properties in debug messages", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--show-exchange-variables", "description": "Show exchange variables in debug messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--show-headers", "description": "Show message headers in debug messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--skip-plugins", "description": "Skip resolving plugin dependencies", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--source", "description": "Prefer to display source filename\/code instead of IDs", "javaType": "boolean", "type": "boolean" }, { "names": "--source-dir", "description": "Source directory for dynamically loading Camel file(s) to run. When using this, then files cannot be specified at the same time.", "javaType": "java.lang.String", "type": "string" }, { "names": "--spring-boot-version", "description": "Spring Boot version", "defaultValue": "RuntimeType.SPRING_BOOT_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--stop-on-exit", "description": "Whether to stop the running Camel on exit", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--stub", "description": "Stubs all the matching endpoint uri with the given component name or pattern. Multiple names can be separated by comma. (all = stub all endpoints).", "javaType": "java.lang.String", "type": "string" }, { "names": "--timestamp", "description": "Print timestamp.", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--trace", "description": "Enables trace logging of the routed messages", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--verbose", "description": "Verbose output of startup activity (dependency resolution and downloading", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, + { "name": "debug", "fullName": "debug", "description": "Debug local Camel integration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Debug", "options": [ { "names": "--ago", "description": "Use ago instead of yyyy-MM-dd HH:mm:ss in timestamp.", "javaType": "boolean", "type": "boolean" }, { "names": "--background", "description": "Run in the background", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--background-wait", "description": "To wait for run in background to startup successfully, before returning", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--backlog-trace", "description": "Enables backlog tracing of the routed messages", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--breakpoint", "description": "To set breakpoint at the given node id (Multiple ids can be separated by comma). If no breakpoint is set, then the first route is automatic selected.", "javaType": "java.lang.String", "type": "string" }, { "names": "--camel-spring-boot-version", "description": "To run using a different Camel Spring Boot version than the default version.", "javaType": "java.lang.String", "type": "string" }, { "names": "--camel-version", "description": "To run using a different Camel version than the default version.", "javaType": "java.lang.String", "type": "string" }, { "names": "--code", "description": "Run the given text or file as Java DSL routes", "javaType": "java.lang.String", "type": "string" }, { "names": "--console", "description": "Developer console at \/q\/dev on local HTTP server (port 8080 by default)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--dep,--dependency", "description": "Add additional dependencies", "javaType": "java.util.List", "type": "array" }, { "names": "--download", "description": "Whether to allow automatic downloading JAR dependencies (over the internet)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--empty", "description": "Run an empty Camel without loading source files", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--example", "description": "Run a built-in example by name (e.g., timer-log, rest-api). Use --example --list to show available examples.", "javaType": "java.lang.String", "type": "string" }, { "names": "--example-list", "description": "List available built-in examples", "javaType": "boolean", "type": "boolean" }, { "names": "--exclude", "description": "Exclude files by name or pattern", "javaType": "java.util.List", "type": "array" }, { "names": "--fresh", "description": "Make sure we use fresh (i.e. non-cached) resources", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--gav", "description": "The Maven group:artifact:version (used during exporting)", "javaType": "java.lang.String", "type": "string" }, { "names": "--health", "description": "Deprecated: use --observe instead. Health check at \/q\/health on local HTTP server (port 8080 by default)", "defaultValue": "false", "javaType": "boolean", "type": "boolean", "deprecated": true }, { "names": "--ignore-loading-error", "description": "Whether to ignore route loading and compilation errors (use this with care!)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--java-version,--java", "description": "Java version (21, 25)", "defaultValue": "21", "javaType": "java.lang.String", "type": "string" }, { "names": "--jfr", "description": "Enables Java Flight Recorder saving recording to disk on exit", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--jfr-profile", "description": "Java Flight Recorder profile to use (such as default or profile)", "javaType": "java.lang.String", "type": "string" }, { "names": "--jvm-debug", "description": "To enable JVM remote debugging on port 4004 by default. The supported values are true to enable the remote debugging, false to disable the remote debugging or a number to use a custom port", "javaType": "int", "type": "integer", "paramLabel": "" }, { "names": "--kamelets-version", "description": "Apache Camel Kamelets version", "javaType": "java.lang.String", "type": "string" }, { "names": "--lazy-bean", "description": "Whether to use lazy bean initialization (can help with complex classloading issues)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--local-kamelet-dir", "description": "Local directory (or github link) for loading Kamelets (takes precedence). Multiple directories can be specified separated by comma.", "javaType": "java.lang.String", "type": "string" }, { "names": "--log-lines", "description": "Number of log lines to display on top of screen", "defaultValue": "10", "javaType": "int", "type": "integer" }, { "names": "--logging", "description": "Can be used to turn off logging", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-category", "description": "Used for individual logging levels (ex: org.apache.kafka=DEBUG)", "javaType": "java.util.List", "type": "array" }, { "names": "--logging-color", "description": "Use colored logging. Default is auto-detected based on NO_COLOR, CI, FORCE_COLOR environment variables and terminal capabilities", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-config-path", "description": "Path to file with custom logging configuration", "javaType": "java.lang.String", "type": "string" }, { "names": "--logging-json", "description": "Use JSON logging (ECS Layout)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-level", "description": "Logging level (ERROR, WARN, INFO, DEBUG, TRACE)", "defaultValue": "info", "javaType": "java.lang.String", "type": "string" }, { "names": "--management-port", "description": "To use a dedicated port for HTTP management (use 0 to dynamic assign a free random port number)", "javaType": "int", "type": "integer" }, { "names": "--mask", "description": "Whether to mask endpoint URIs to avoid printing sensitive information such as password or access keys", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-apache-snapshot-enabled", "description": "Whether downloading JARs from ASF Maven Snapshot repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-central-enabled", "description": "Whether downloading JARs from Maven Central repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-settings", "description": "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.", "javaType": "java.lang.String", "type": "string" }, { "names": "--maven-settings-security", "description": "Optional location of Maven settings-security.xml file to decrypt settings.xml", "javaType": "java.lang.String", "type": "string" }, { "names": "--max-idle-seconds", "description": "For how long time in seconds Camel can be idle before stopping", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "--max-messages", "description": "Max number of messages to process before stopping", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "--max-seconds", "description": "Max seconds to run before stopping", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "--metrics", "description": "Deprecated: use --observe instead. Metrics (Micrometer and Prometheus) at \/q\/metrics on local HTTP server (port 8080 by default)", "defaultValue": "false", "javaType": "boolean", "type": "boolean", "deprecated": true }, { "names": "--modeline", "description": "Whether to support JBang style \/\/DEPS to specify additional dependencies", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--name", "description": "The name of the Camel application", "defaultValue": "CamelJBang", "javaType": "java.lang.String", "type": "string" }, { "names": "--observe", "description": "Enable observability services", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--open-api", "description": "Adds an OpenAPI spec from the given file (json or yaml file)", "javaType": "java.lang.String", "type": "string" }, { "names": "--output", "description": "File to store the current message body (will override). This allows for manual inspecting the message later.", "javaType": "java.lang.String", "type": "string" }, { "names": "--package-scan-jars", "description": "Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--port", "description": "Embeds a local HTTP server on this port (port 8080 by default; use 0 to dynamic assign a free random port number)", "javaType": "int", "type": "integer" }, { "names": "--pretty", "description": "Pretty print message body when using JSon or XML format", "javaType": "boolean", "type": "boolean" }, { "names": "--profile", "description": "Profile to run (dev, test, prod).", "defaultValue": "dev", "javaType": "java.lang.String", "type": "string" }, { "names": "--prompt", "description": "Allow user to type in required parameters in prompt if not present in application", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--prop,--property", "description": "Additional properties (override existing)", "javaType": "java.lang.String", "type": "string" }, { "names": "--properties", "description": "comma separated list of properties file (ex. \/path\/to\/file.properties,\/path\/to\/other.properties", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-artifact-id", "description": "Quarkus Platform Maven artifactId", "defaultValue": "quarkus-bom", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-group-id", "description": "Quarkus Platform Maven groupId", "defaultValue": "io.quarkus.platform", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-version", "description": "Quarkus Platform version", "defaultValue": "RuntimeType.QUARKUS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--reload,--dev", "description": "Enables dev mode (live reload when source files are updated and saved)", "javaType": "boolean", "type": "boolean" }, { "names": "--remote-attach", "description": "Attaches debugger remotely to an existing running Camel integration. (Add camel-cli-debug JAR to the existing Camel application and run before attaching this debugger)", "javaType": "boolean", "type": "boolean" }, { "names": "--repo,--repos", "description": "Additional maven repositories (Use commas to separate multiple repositories)", "javaType": "java.lang.String", "type": "string" }, { "names": "--runtime", "description": "Runtime (camel-main, spring-boot, quarkus)", "defaultValue": "camel-main", "javaType": "org.apache.camel.dsl.jbang.core.common.RuntimeType", "type": "object" }, { "names": "--show-body", "description": "Show message body in debug messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--show-exception", "description": "Show exception and stacktrace for failed messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--show-exchange-properties", "description": "Show exchange properties in debug messages", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--show-exchange-variables", "description": "Show exchange variables in debug messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--show-headers", "description": "Show message headers in debug messages", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--skip-plugins", "description": "Skip resolving plugin dependencies", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--source", "description": "Prefer to display source filename\/code instead of IDs", "javaType": "boolean", "type": "boolean" }, { "names": "--source-dir", "description": "Source directory for dynamically loading Camel file(s) to run. When using this, then files cannot be specified at the same time.", "javaType": "java.lang.String", "type": "string" }, { "names": "--spring-boot-version", "description": "Spring Boot version", "defaultValue": "RuntimeType.SPRING_BOOT_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--stop-on-exit", "description": "Whether to stop the running Camel on exit", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--stub", "description": "Stubs all the matching endpoint uri with the given component name or pattern. Multiple names can be separated by comma. (all = stub all endpoints).", "javaType": "java.lang.String", "type": "string" }, { "names": "--timestamp", "description": "Print timestamp.", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--trace", "description": "Enables trace logging of the routed messages", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--verbose", "description": "Verbose output of startup activity (dependency resolution and downloading", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "dependency", "fullName": "dependency", "description": "Displays all Camel dependencies required to run", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.DependencyCommand", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "copy", "fullName": "dependency copy", "description": "Copies all Camel dependencies required to run to a specific directory", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.DependencyCopy", "options": [ { "names": "--build-property", "description": "Maven build properties, ex. --build-property=prop1=foo", "javaType": "java.util.List", "type": "array" }, { "names": "--camel-spring-boot-version", "description": "Camel version to use with Spring Boot", "javaType": "java.lang.String", "type": "string" }, { "names": "--camel-version", "description": "To export using a different Camel version than the default version.", "javaType": "java.lang.String", "type": "string" }, { "names": "--clean-dir", "description": "If exporting to current directory (default) then all existing files are preserved. Enabling this option will force cleaning current directory including all sub dirs (use this with care)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--dep,--dependency", "description": "Add additional dependencies", "javaType": "java.util.List", "type": "array" }, { "names": "--dir,--directory", "description": "Directory where the project will be exported", "defaultValue": ".", "javaType": "java.lang.String", "type": "string" }, { "names": "--download", "description": "Whether to allow automatic downloading JAR dependencies (over the internet)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--dry-run", "description": "Preview export without writing files", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--exclude", "description": "Exclude files by name or pattern", "javaType": "java.util.List", "type": "array" }, { "names": "--fresh", "description": "Make sure we use fresh (i.e. non-cached) resources", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--gav", "description": "The Maven group:artifact:version", "javaType": "java.lang.String", "type": "string" }, { "names": "--groovy-pre-compiled", "description": "Whether to include pre-compiled Groovy classes in the export (only supported with runtime=camel-main)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--hawtio", "description": "Whether to include Hawtio web console (only available for exporting to Spring Boot or Quarkus)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--hawtio-version", "description": "Version of the Hawtio web console", "defaultValue": "HawtioVersion.HAWTIO_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--ignore-loading-error", "description": "Whether to ignore route loading and compilation errors (use this with care!)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--java-version,--java", "description": "Java version (21, 25)", "defaultValue": "21", "javaType": "java.lang.String", "type": "string" }, { "names": "--kamelets-version", "description": "Apache Camel Kamelets version", "defaultValue": "RuntimeType.KAMELETS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--lazy-bean", "description": "Whether to use lazy bean initialization (can help with complex classloading issues", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--local-kamelet-dir", "description": "Local directory for loading Kamelets (takes precedence)", "javaType": "java.lang.String", "type": "string" }, { "names": "--logging", "description": "Can be used to turn on logging to console (logs by default to file in \/.camel directory)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-level", "description": "Logging level (ERROR, WARN, INFO, DEBUG, TRACE)", "defaultValue": "info", "javaType": "java.lang.String", "type": "string" }, { "names": "--main-classname", "description": "The class name of the Camel Main application class", "defaultValue": "CamelApplication", "javaType": "java.lang.String", "type": "string" }, { "names": "--management-port", "description": "To use a dedicated port for HTTP management", "javaType": "int", "type": "integer" }, { "names": "--maven-apache-snapshot-enabled", "description": "Whether downloading JARs from ASF Maven Snapshot repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-central-enabled", "description": "Whether downloading JARs from Maven Central repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-settings", "description": "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.", "javaType": "java.lang.String", "type": "string" }, { "names": "--maven-settings-security", "description": "Optional location of Maven settings-security.xml file to decrypt settings.xml", "javaType": "java.lang.String", "type": "string" }, { "names": "--maven-wrapper", "description": "Include Maven Wrapper files in exported project", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--name", "description": "The integration name. Use this when the name should not get derived otherwise.", "javaType": "java.lang.String", "type": "string" }, { "names": "--observe", "description": "Enable observability services", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--open-api", "description": "Adds an OpenAPI spec from the given file (json or yaml file)", "javaType": "java.lang.String", "type": "string" }, { "names": "--output", "description": "Output format (gav, maven, jbang)", "defaultValue": "gav", "javaType": "java.lang.String", "type": "string" }, { "names": "--output-directory", "description": "Directory where dependencies should be copied", "defaultValue": "lib", "javaType": "java.lang.String", "type": "string", "required": true }, { "names": "--package-name", "description": "For Java source files should they have the given package name. By default the package name is computed from the Maven GAV. Use false to turn off and not include package name in the Java source files.", "javaType": "java.lang.String", "type": "string" }, { "names": "--package-scan-jars", "description": "Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--port", "description": "Embeds a local HTTP server on this port", "javaType": "int", "type": "integer" }, { "names": "--profile", "description": "Profile to export (dev, test, prod).", "javaType": "java.lang.String", "type": "string" }, { "names": "--prop,--property", "description": "Camel application properties, ex. --property=prop1=foo", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-artifact-id", "description": "Quarkus Platform Maven artifactId", "defaultValue": "quarkus-bom", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-group-id", "description": "Quarkus Platform Maven groupId", "defaultValue": "io.quarkus.platform", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-package-type", "description": "Quarkus package type (uber-jar or fast-jar)", "defaultValue": "fast-jar", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-version", "description": "Quarkus Platform version", "defaultValue": "RuntimeType.QUARKUS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--quiet", "description": "Will be quiet, only print when error occurs", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--repo,--repos", "description": "Additional maven repositories (Use commas to separate multiple repositories)", "javaType": "java.lang.String", "type": "string" }, { "names": "--runtime", "description": "Runtime (camel-main, spring-boot, quarkus)", "javaType": "org.apache.camel.dsl.jbang.core.common.RuntimeType", "type": "object" }, { "names": "--skip-plugins", "description": "Skip plugins during export", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--spring-boot-version", "description": "Spring Boot version", "defaultValue": "RuntimeType.SPRING_BOOT_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--verbose", "description": "Verbose output of startup activity (dependency resolution and downloading", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--yes,-y", "description": "Automatically answer yes to confirmation prompts (e.g. when using --clean-dir)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "list", "fullName": "dependency list", "description": "Displays all Camel dependencies required to run", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.DependencyList", "options": [ { "names": "--build-property", "description": "Maven build properties, ex. --build-property=prop1=foo", "javaType": "java.util.List", "type": "array" }, { "names": "--camel-spring-boot-version", "description": "Camel version to use with Spring Boot", "javaType": "java.lang.String", "type": "string" }, { "names": "--camel-version", "description": "To export using a different Camel version than the default version.", "javaType": "java.lang.String", "type": "string" }, { "names": "--clean-dir", "description": "If exporting to current directory (default) then all existing files are preserved. Enabling this option will force cleaning current directory including all sub dirs (use this with care)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--dep,--dependency", "description": "Add additional dependencies", "javaType": "java.util.List", "type": "array" }, { "names": "--dir,--directory", "description": "Directory where the project will be exported", "defaultValue": ".", "javaType": "java.lang.String", "type": "string" }, { "names": "--download", "description": "Whether to allow automatic downloading JAR dependencies (over the internet)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--dry-run", "description": "Preview export without writing files", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--exclude", "description": "Exclude files by name or pattern", "javaType": "java.util.List", "type": "array" }, { "names": "--fresh", "description": "Make sure we use fresh (i.e. non-cached) resources", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--gav", "description": "The Maven group:artifact:version", "javaType": "java.lang.String", "type": "string" }, { "names": "--groovy-pre-compiled", "description": "Whether to include pre-compiled Groovy classes in the export (only supported with runtime=camel-main)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--hawtio", "description": "Whether to include Hawtio web console (only available for exporting to Spring Boot or Quarkus)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--hawtio-version", "description": "Version of the Hawtio web console", "defaultValue": "HawtioVersion.HAWTIO_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--ignore-loading-error", "description": "Whether to ignore route loading and compilation errors (use this with care!)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--java-version,--java", "description": "Java version (21, 25)", "defaultValue": "21", "javaType": "java.lang.String", "type": "string" }, { "names": "--kamelets-version", "description": "Apache Camel Kamelets version", "defaultValue": "RuntimeType.KAMELETS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--lazy-bean", "description": "Whether to use lazy bean initialization (can help with complex classloading issues", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--local-kamelet-dir", "description": "Local directory for loading Kamelets (takes precedence)", "javaType": "java.lang.String", "type": "string" }, { "names": "--logging", "description": "Can be used to turn on logging to console (logs by default to file in \/.camel directory)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-level", "description": "Logging level (ERROR, WARN, INFO, DEBUG, TRACE)", "defaultValue": "info", "javaType": "java.lang.String", "type": "string" }, { "names": "--main-classname", "description": "The class name of the Camel Main application class", "defaultValue": "CamelApplication", "javaType": "java.lang.String", "type": "string" }, { "names": "--management-port", "description": "To use a dedicated port for HTTP management", "javaType": "int", "type": "integer" }, { "names": "--maven-apache-snapshot-enabled", "description": "Whether downloading JARs from ASF Maven Snapshot repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-central-enabled", "description": "Whether downloading JARs from Maven Central repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-settings", "description": "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.", "javaType": "java.lang.String", "type": "string" }, { "names": "--maven-settings-security", "description": "Optional location of Maven settings-security.xml file to decrypt settings.xml", "javaType": "java.lang.String", "type": "string" }, { "names": "--maven-wrapper", "description": "Include Maven Wrapper files in exported project", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--name", "description": "The integration name. Use this when the name should not get derived otherwise.", "javaType": "java.lang.String", "type": "string" }, { "names": "--observe", "description": "Enable observability services", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--open-api", "description": "Adds an OpenAPI spec from the given file (json or yaml file)", "javaType": "java.lang.String", "type": "string" }, { "names": "--output", "description": "Output format (gav, maven, jbang)", "defaultValue": "gav", "javaType": "java.lang.String", "type": "string" }, { "names": "--package-name", "description": "For Java source files should they have the given package name. By default the package name is computed from the Maven GAV. Use false to turn off and not include package name in the Java source files.", "javaType": "java.lang.String", "type": "string" }, { "names": "--package-scan-jars", "description": "Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--port", "description": "Embeds a local HTTP server on this port", "javaType": "int", "type": "integer" }, { "names": "--profile", "description": "Profile to export (dev, test, prod).", "javaType": "java.lang.String", "type": "string" }, { "names": "--prop,--property", "description": "Camel application properties, ex. --property=prop1=foo", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-artifact-id", "description": "Quarkus Platform Maven artifactId", "defaultValue": "quarkus-bom", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-group-id", "description": "Quarkus Platform Maven groupId", "defaultValue": "io.quarkus.platform", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-package-type", "description": "Quarkus package type (uber-jar or fast-jar)", "defaultValue": "fast-jar", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-version", "description": "Quarkus Platform version", "defaultValue": "RuntimeType.QUARKUS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--quiet", "description": "Will be quiet, only print when error occurs", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--repo,--repos", "description": "Additional maven repositories (Use commas to separate multiple repositories)", "javaType": "java.lang.String", "type": "string" }, { "names": "--runtime", "description": "Runtime (camel-main, spring-boot, quarkus)", "javaType": "org.apache.camel.dsl.jbang.core.common.RuntimeType", "type": "object" }, { "names": "--skip-plugins", "description": "Skip plugins during export", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--spring-boot-version", "description": "Spring Boot version", "defaultValue": "RuntimeType.SPRING_BOOT_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--verbose", "description": "Verbose output of startup activity (dependency resolution and downloading", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--yes,-y", "description": "Automatically answer yes to confirmation prompts (e.g. when using --clean-dir)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "runtime", "fullName": "dependency runtime", "description": "Display Camel runtime and version for given Maven project", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.DependencyRuntime", "options": [ { "names": "--download", "description": "Whether to allow automatic downloading JAR dependencies (over the internet)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--json", "description": "Output in JSON Format", "javaType": "boolean", "type": "boolean" }, { "names": "--repo,--repos", "description": "Additional maven repositories (Use commas to separate multiple repositories)", "javaType": "java.lang.String", "type": "string" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "update", "fullName": "dependency update", "description": "Updates dependencies in Maven pom.xml or Java source file (JBang style)", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.DependencyUpdate", "options": [ { "names": "--build-property", "description": "Maven build properties, ex. --build-property=prop1=foo", "javaType": "java.util.List", "type": "array" }, { "names": "--camel-spring-boot-version", "description": "Camel version to use with Spring Boot", "javaType": "java.lang.String", "type": "string" }, { "names": "--camel-version", "description": "To export using a different Camel version than the default version.", "javaType": "java.lang.String", "type": "string" }, { "names": "--clean", "description": "Regenerate list of dependencies (do not keep existing dependencies). Not supported for pom.xml", "javaType": "boolean", "type": "boolean" }, { "names": "--clean-dir", "description": "If exporting to current directory (default) then all existing files are preserved. Enabling this option will force cleaning current directory including all sub dirs (use this with care)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--dep,--dependency", "description": "Add additional dependencies", "javaType": "java.util.List", "type": "array" }, { "names": "--dir,--directory", "description": "Directory where the project will be exported", "defaultValue": ".", "javaType": "java.lang.String", "type": "string" }, { "names": "--download", "description": "Whether to allow automatic downloading JAR dependencies (over the internet)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--dry-run", "description": "Preview export without writing files", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--exclude", "description": "Exclude files by name or pattern", "javaType": "java.util.List", "type": "array" }, { "names": "--fresh", "description": "Make sure we use fresh (i.e. non-cached) resources", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--gav", "description": "The Maven group:artifact:version", "javaType": "java.lang.String", "type": "string" }, { "names": "--groovy-pre-compiled", "description": "Whether to include pre-compiled Groovy classes in the export (only supported with runtime=camel-main)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--hawtio", "description": "Whether to include Hawtio web console (only available for exporting to Spring Boot or Quarkus)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--hawtio-version", "description": "Version of the Hawtio web console", "defaultValue": "HawtioVersion.HAWTIO_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--ignore-loading-error", "description": "Whether to ignore route loading and compilation errors (use this with care!)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--java-version,--java", "description": "Java version (21, 25)", "defaultValue": "21", "javaType": "java.lang.String", "type": "string" }, { "names": "--kamelets-version", "description": "Apache Camel Kamelets version", "defaultValue": "RuntimeType.KAMELETS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--lazy-bean", "description": "Whether to use lazy bean initialization (can help with complex classloading issues", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--local-kamelet-dir", "description": "Local directory for loading Kamelets (takes precedence)", "javaType": "java.lang.String", "type": "string" }, { "names": "--logging", "description": "Can be used to turn on logging to console (logs by default to file in \/.camel directory)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-level", "description": "Logging level (ERROR, WARN, INFO, DEBUG, TRACE)", "defaultValue": "info", "javaType": "java.lang.String", "type": "string" }, { "names": "--main-classname", "description": "The class name of the Camel Main application class", "defaultValue": "CamelApplication", "javaType": "java.lang.String", "type": "string" }, { "names": "--management-port", "description": "To use a dedicated port for HTTP management", "javaType": "int", "type": "integer" }, { "names": "--maven-apache-snapshot-enabled", "description": "Whether downloading JARs from ASF Maven Snapshot repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-central-enabled", "description": "Whether downloading JARs from Maven Central repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-settings", "description": "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.", "javaType": "java.lang.String", "type": "string" }, { "names": "--maven-settings-security", "description": "Optional location of Maven settings-security.xml file to decrypt settings.xml", "javaType": "java.lang.String", "type": "string" }, { "names": "--maven-wrapper", "description": "Include Maven Wrapper files in exported project", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--name", "description": "The integration name. Use this when the name should not get derived otherwise.", "javaType": "java.lang.String", "type": "string" }, { "names": "--observe", "description": "Enable observability services", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--open-api", "description": "Adds an OpenAPI spec from the given file (json or yaml file)", "javaType": "java.lang.String", "type": "string" }, { "names": "--output", "description": "Output format (gav, maven, jbang)", "defaultValue": "gav", "javaType": "java.lang.String", "type": "string" }, { "names": "--package-name", "description": "For Java source files should they have the given package name. By default the package name is computed from the Maven GAV. Use false to turn off and not include package name in the Java source files.", "javaType": "java.lang.String", "type": "string" }, { "names": "--package-scan-jars", "description": "Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--port", "description": "Embeds a local HTTP server on this port", "javaType": "int", "type": "integer" }, { "names": "--profile", "description": "Profile to export (dev, test, prod).", "javaType": "java.lang.String", "type": "string" }, { "names": "--prop,--property", "description": "Camel application properties, ex. --property=prop1=foo", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-artifact-id", "description": "Quarkus Platform Maven artifactId", "defaultValue": "quarkus-bom", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-group-id", "description": "Quarkus Platform Maven groupId", "defaultValue": "io.quarkus.platform", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-package-type", "description": "Quarkus package type (uber-jar or fast-jar)", "defaultValue": "fast-jar", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-version", "description": "Quarkus Platform version", "defaultValue": "RuntimeType.QUARKUS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--quiet", "description": "Will be quiet, only print when error occurs", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--repo,--repos", "description": "Additional maven repositories (Use commas to separate multiple repositories)", "javaType": "java.lang.String", "type": "string" }, { "names": "--runtime", "description": "Runtime (camel-main, spring-boot, quarkus)", "javaType": "org.apache.camel.dsl.jbang.core.common.RuntimeType", "type": "object" }, { "names": "--skip-plugins", "description": "Skip plugins during export", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--spring-boot-version", "description": "Spring Boot version", "defaultValue": "RuntimeType.SPRING_BOOT_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--verbose", "description": "Verbose output of startup activity (dependency resolution and downloading", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--yes,-y", "description": "Automatically answer yes to confirmation prompts (e.g. when using --clean-dir)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] } ] }, { "name": "dirty", "fullName": "dirty", "description": "Check if there are dirty files from previous Camel runs that did not terminate gracefully", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.process.Dirty", "options": [ { "names": "--clean", "description": "Clean dirty files which are no longer in use", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "doc", "fullName": "doc", "description": "Shows documentation for kamelet, component, and other Camel resources", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.catalog.CatalogDoc", "options": [ { "names": "--camel-version", "description": "To use a different Camel version than the default version", "javaType": "java.lang.String", "type": "string" }, { "names": "--download", "description": "Whether to allow automatic downloading JAR dependencies (over the internet)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--filter", "description": "Filter option listed in tables by name, description, or group", "javaType": "java.lang.String", "type": "string" }, { "names": "--header", "description": "Whether to display component message headers", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--kamelets-version", "description": "Apache Camel Kamelets version", "defaultValue": "RuntimeType.KAMELETS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--open-url", "description": "Opens the online documentation form the Camel website in the web browser", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--quarkus-group-id", "description": "Quarkus Platform Maven groupId", "defaultValue": "io.quarkus.platform", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-version", "description": "Quarkus Platform version", "defaultValue": "RuntimeType.QUARKUS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--repo,--repos", "description": "Additional maven repositories for download on-demand (Use commas to separate multiple repositories)", "javaType": "java.lang.String", "type": "string" }, { "names": "--runtime", "description": "Runtime (camel-main, spring-boot, quarkus)", "javaType": "org.apache.camel.dsl.jbang.core.common.RuntimeType", "type": "object" }, { "names": "--url", "description": "Prints the link to the online documentation on the Camel website", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, + { "name": "doctor", "fullName": "doctor", "description": "Checks the environment and reports potential issues", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Doctor", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "eval", "fullName": "eval", "description": "Evaluate Camel expressions and scripts", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.EvalCommand", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "expression", "fullName": "eval expression", "description": "Evaluates Camel expression", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.EvalExpressionCommand", "options": [ { "names": "--body", "description": "Message body (prefix with file: to refer to loading message body from file)", "javaType": "java.lang.String", "type": "string" }, { "names": "--camel-version", "description": "To run using a different Camel version than the default version.", "javaType": "java.lang.String", "type": "string" }, { "names": "--header", "description": "Message header (key=value)", "javaType": "java.util.List", "type": "array" }, { "names": "--isolated", "description": "Whether to run evaluation isolated in local process", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--language", "description": "Language to use", "defaultValue": "simple", "javaType": "java.lang.String", "type": "string" }, { "names": "--predicate", "description": "Whether to force evaluating as predicate", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--repo,--repos", "description": "Additional maven repositories (Use commas to separate multiple repositories)", "javaType": "java.lang.String", "type": "string" }, { "names": "--template", "description": "The template to use for evaluating (prefix with file: to refer to loading template from file)", "javaType": "java.lang.String", "type": "string", "required": true }, { "names": "--timeout", "description": "Timeout in millis waiting for evaluation to be done", "defaultValue": "10000", "javaType": "long", "type": "integer" }, { "names": "--watch", "description": "Execute periodically and showing output fullscreen", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] } ] }, { "name": "explain", "fullName": "explain", "description": "Explain what a Camel route does using AI\/LLM", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Explain", "options": [ { "names": "--api-key", "description": "API key for authentication. Also reads OPENAI_API_KEY or LLM_API_KEY env vars", "javaType": "java.lang.String", "type": "string" }, { "names": "--api-type", "description": "API type: 'ollama' or 'openai' (OpenAI-compatible)", "defaultValue": "ollama", "javaType": "org.apache.camel.dsl.jbang.core.commands.ApiType", "type": "object" }, { "names": "--catalog-context", "description": "Include Camel Catalog descriptions in the prompt", "javaType": "boolean", "type": "boolean" }, { "names": "--format", "description": "Output format (text, markdown)", "defaultValue": "text", "javaType": "java.lang.String", "type": "string" }, { "names": "--model", "description": "Model to use", "defaultValue": "DEFAULT_MODEL", "javaType": "java.lang.String", "type": "string" }, { "names": "--show-prompt", "description": "Show the prompt sent to the LLM", "javaType": "boolean", "type": "boolean" }, { "names": "--stream", "description": "Stream the response as it's generated (shows progress)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--system-prompt", "description": "Custom system prompt", "javaType": "java.lang.String", "type": "string" }, { "names": "--temperature", "description": "Temperature for response generation (0.0-2.0)", "defaultValue": "0.7", "javaType": "double", "type": "number" }, { "names": "--timeout", "description": "Timeout in seconds for LLM response", "defaultValue": "120", "javaType": "int", "type": "integer" }, { "names": "--url", "description": "LLM API endpoint URL. Auto-detected from 'camel infra' for Ollama if not specified.", "javaType": "java.lang.String", "type": "string" }, { "names": "--verbose,-v", "description": "Include detailed technical information", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "export", "fullName": "export", "description": "Export to other runtimes (Camel Main, Spring Boot, or Quarkus)", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Export", "options": [ { "names": "--build-property", "description": "Maven build properties, ex. --build-property=prop1=foo", "javaType": "java.util.List", "type": "array" }, { "names": "--camel-spring-boot-version", "description": "Camel version to use with Spring Boot", "javaType": "java.lang.String", "type": "string" }, { "names": "--camel-version", "description": "To export using a different Camel version than the default version.", "javaType": "java.lang.String", "type": "string" }, { "names": "--clean-dir", "description": "If exporting to current directory (default) then all existing files are preserved. Enabling this option will force cleaning current directory including all sub dirs (use this with care)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--dep,--dependency", "description": "Add additional dependencies", "javaType": "java.util.List", "type": "array" }, { "names": "--dir,--directory", "description": "Directory where the project will be exported", "defaultValue": ".", "javaType": "java.lang.String", "type": "string" }, { "names": "--download", "description": "Whether to allow automatic downloading JAR dependencies (over the internet)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--dry-run", "description": "Preview export without writing files", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--exclude", "description": "Exclude files by name or pattern", "javaType": "java.util.List", "type": "array" }, { "names": "--fresh", "description": "Make sure we use fresh (i.e. non-cached) resources", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--gav", "description": "The Maven group:artifact:version", "javaType": "java.lang.String", "type": "string" }, { "names": "--groovy-pre-compiled", "description": "Whether to include pre-compiled Groovy classes in the export (only supported with runtime=camel-main)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--hawtio", "description": "Whether to include Hawtio web console (only available for exporting to Spring Boot or Quarkus)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--hawtio-version", "description": "Version of the Hawtio web console", "defaultValue": "HawtioVersion.HAWTIO_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--ignore-loading-error", "description": "Whether to ignore route loading and compilation errors (use this with care!)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--java-version,--java", "description": "Java version (21, 25)", "defaultValue": "21", "javaType": "java.lang.String", "type": "string" }, { "names": "--kamelets-version", "description": "Apache Camel Kamelets version", "defaultValue": "RuntimeType.KAMELETS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--lazy-bean", "description": "Whether to use lazy bean initialization (can help with complex classloading issues", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--local-kamelet-dir", "description": "Local directory for loading Kamelets (takes precedence)", "javaType": "java.lang.String", "type": "string" }, { "names": "--logging", "description": "Can be used to turn on logging to console (logs by default to file in \/.camel directory)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-level", "description": "Logging level (ERROR, WARN, INFO, DEBUG, TRACE)", "defaultValue": "info", "javaType": "java.lang.String", "type": "string" }, { "names": "--main-classname", "description": "The class name of the Camel Main application class", "defaultValue": "CamelApplication", "javaType": "java.lang.String", "type": "string" }, { "names": "--management-port", "description": "To use a dedicated port for HTTP management", "javaType": "int", "type": "integer" }, { "names": "--maven-apache-snapshot-enabled", "description": "Whether downloading JARs from ASF Maven Snapshot repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-central-enabled", "description": "Whether downloading JARs from Maven Central repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-settings", "description": "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.", "javaType": "java.lang.String", "type": "string" }, { "names": "--maven-settings-security", "description": "Optional location of Maven settings-security.xml file to decrypt settings.xml", "javaType": "java.lang.String", "type": "string" }, { "names": "--maven-wrapper", "description": "Include Maven Wrapper files in exported project", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--name", "description": "The integration name. Use this when the name should not get derived otherwise.", "javaType": "java.lang.String", "type": "string" }, { "names": "--observe", "description": "Enable observability services", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--open-api", "description": "Adds an OpenAPI spec from the given file (json or yaml file)", "javaType": "java.lang.String", "type": "string" }, { "names": "--package-name", "description": "For Java source files should they have the given package name. By default the package name is computed from the Maven GAV. Use false to turn off and not include package name in the Java source files.", "javaType": "java.lang.String", "type": "string" }, { "names": "--package-scan-jars", "description": "Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--port", "description": "Embeds a local HTTP server on this port", "javaType": "int", "type": "integer" }, { "names": "--profile", "description": "Profile to export (dev, test, prod).", "javaType": "java.lang.String", "type": "string" }, { "names": "--prop,--property", "description": "Camel application properties, ex. --property=prop1=foo", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-artifact-id", "description": "Quarkus Platform Maven artifactId", "defaultValue": "quarkus-bom", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-group-id", "description": "Quarkus Platform Maven groupId", "defaultValue": "io.quarkus.platform", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-package-type", "description": "Quarkus package type (uber-jar or fast-jar)", "defaultValue": "fast-jar", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-version", "description": "Quarkus Platform version", "defaultValue": "RuntimeType.QUARKUS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--quiet", "description": "Will be quiet, only print when error occurs", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--repo,--repos", "description": "Additional maven repositories (Use commas to separate multiple repositories)", "javaType": "java.lang.String", "type": "string" }, { "names": "--runtime", "description": "Runtime (camel-main, spring-boot, quarkus)", "javaType": "org.apache.camel.dsl.jbang.core.common.RuntimeType", "type": "object" }, { "names": "--skip-plugins", "description": "Skip plugins during export", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--spring-boot-version", "description": "Spring Boot version", "defaultValue": "RuntimeType.SPRING_BOOT_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--verbose", "description": "Verbose output of startup activity (dependency resolution and downloading", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--yes,-y", "description": "Automatically answer yes to confirmation prompts (e.g. when using --clean-dir)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, @@ -22,7 +23,7 @@ { "name": "nano", "fullName": "nano", "description": "Nano editor to edit file", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Nano", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "plugin", "fullName": "plugin", "description": "Manage plugins that add sub-commands to this CLI", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.plugin.PluginCommand", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "add", "fullName": "plugin add", "description": "Add new plugin", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.plugin.PluginAdd", "options": [ { "names": "--artifactId", "description": "Maven artifactId", "javaType": "java.lang.String", "type": "string" }, { "names": "--command", "description": "The command that the plugin uses", "javaType": "java.lang.String", "type": "string" }, { "names": "--description", "description": "A short description of the plugin", "javaType": "java.lang.String", "type": "string" }, { "names": "--first-version", "description": "First version of this plugin", "defaultValue": "", "javaType": "java.lang.String", "type": "string" }, { "names": "--gav", "description": "Maven group and artifact coordinates.", "javaType": "java.lang.String", "type": "string" }, { "names": "--groupId", "description": "Maven groupId", "defaultValue": "org.apache.camel", "javaType": "java.lang.String", "type": "string" }, { "names": "--repo,--repos", "description": "Additional maven repositories to use for downloading the plugin (Use commas to separate multiple repositories)", "javaType": "java.lang.String", "type": "string" }, { "names": "--version", "description": "Maven artifact version", "defaultValue": "", "javaType": "java.lang.String", "type": "string" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "delete", "fullName": "plugin delete", "description": "Removes a plugin", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.plugin.PluginDelete", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "get", "fullName": "plugin get", "description": "Display available plugins", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.plugin.PluginGet", "options": [ { "names": "--all", "description": "Display all available plugins", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--repos", "description": "Display maven repository column", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] } ] }, { "name": "ps", "fullName": "ps", "description": "List running Camel integrations", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.process.ListProcess", "options": [ { "names": "--json", "description": "Output in JSON Format", "javaType": "boolean", "type": "boolean" }, { "names": "--pid", "description": "List only pid in the output", "javaType": "boolean", "type": "boolean" }, { "names": "--remote", "description": "Break down counters into remote\/total pairs", "javaType": "boolean", "type": "boolean" }, { "names": "--sort", "description": "Sort by pid, name or age", "defaultValue": "pid", "javaType": "java.lang.String", "type": "string" }, { "names": "--watch", "description": "Execute periodically and showing output fullscreen", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, - { "name": "run", "fullName": "run", "description": "Run as local Camel integration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Run", "options": [ { "names": "--background", "description": "Run in the background", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--background-wait", "description": "To wait for run in background to startup successfully, before returning", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--backlog-trace", "description": "Enables backlog tracing of the routed messages", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--camel-spring-boot-version", "description": "To run using a different Camel Spring Boot version than the default version.", "javaType": "java.lang.String", "type": "string" }, { "names": "--camel-version", "description": "To run using a different Camel version than the default version.", "javaType": "java.lang.String", "type": "string" }, { "names": "--code", "description": "Run the given text or file as Java DSL routes", "javaType": "java.lang.String", "type": "string" }, { "names": "--console", "description": "Developer console at \/q\/dev on local HTTP server (port 8080 by default)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--dep,--dependency", "description": "Add additional dependencies", "javaType": "java.util.List", "type": "array" }, { "names": "--download", "description": "Whether to allow automatic downloading JAR dependencies (over the internet)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--empty", "description": "Run an empty Camel without loading source files", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--exclude", "description": "Exclude files by name or pattern", "javaType": "java.util.List", "type": "array" }, { "names": "--fresh", "description": "Make sure we use fresh (i.e. non-cached) resources", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--gav", "description": "The Maven group:artifact:version (used during exporting)", "javaType": "java.lang.String", "type": "string" }, { "names": "--health", "description": "Deprecated: use --observe instead. Health check at \/q\/health on local HTTP server (port 8080 by default)", "defaultValue": "false", "javaType": "boolean", "type": "boolean", "deprecated": true }, { "names": "--ignore-loading-error", "description": "Whether to ignore route loading and compilation errors (use this with care!)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--java-version,--java", "description": "Java version (21, 25)", "defaultValue": "21", "javaType": "java.lang.String", "type": "string" }, { "names": "--jfr", "description": "Enables Java Flight Recorder saving recording to disk on exit", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--jfr-profile", "description": "Java Flight Recorder profile to use (such as default or profile)", "javaType": "java.lang.String", "type": "string" }, { "names": "--jvm-debug", "description": "To enable JVM remote debugging on port 4004 by default. The supported values are true to enable the remote debugging, false to disable the remote debugging or a number to use a custom port", "javaType": "int", "type": "integer", "paramLabel": "" }, { "names": "--kamelets-version", "description": "Apache Camel Kamelets version", "javaType": "java.lang.String", "type": "string" }, { "names": "--lazy-bean", "description": "Whether to use lazy bean initialization (can help with complex classloading issues)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--local-kamelet-dir", "description": "Local directory (or github link) for loading Kamelets (takes precedence). Multiple directories can be specified separated by comma.", "javaType": "java.lang.String", "type": "string" }, { "names": "--logging", "description": "Can be used to turn off logging", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-category", "description": "Used for individual logging levels (ex: org.apache.kafka=DEBUG)", "javaType": "java.util.List", "type": "array" }, { "names": "--logging-color", "description": "Use colored logging. Default is auto-detected based on NO_COLOR, CI, FORCE_COLOR environment variables and terminal capabilities", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-config-path", "description": "Path to file with custom logging configuration", "javaType": "java.lang.String", "type": "string" }, { "names": "--logging-json", "description": "Use JSON logging (ECS Layout)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-level", "description": "Logging level (ERROR, WARN, INFO, DEBUG, TRACE)", "defaultValue": "info", "javaType": "java.lang.String", "type": "string" }, { "names": "--management-port", "description": "To use a dedicated port for HTTP management (use 0 to dynamic assign a free random port number)", "javaType": "int", "type": "integer" }, { "names": "--maven-apache-snapshot-enabled", "description": "Whether downloading JARs from ASF Maven Snapshot repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-central-enabled", "description": "Whether downloading JARs from Maven Central repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-settings", "description": "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.", "javaType": "java.lang.String", "type": "string" }, { "names": "--maven-settings-security", "description": "Optional location of Maven settings-security.xml file to decrypt settings.xml", "javaType": "java.lang.String", "type": "string" }, { "names": "--max-idle-seconds", "description": "For how long time in seconds Camel can be idle before stopping", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "--max-messages", "description": "Max number of messages to process before stopping", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "--max-seconds", "description": "Max seconds to run before stopping", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "--metrics", "description": "Deprecated: use --observe instead. Metrics (Micrometer and Prometheus) at \/q\/metrics on local HTTP server (port 8080 by default)", "defaultValue": "false", "javaType": "boolean", "type": "boolean", "deprecated": true }, { "names": "--modeline", "description": "Whether to support JBang style \/\/DEPS to specify additional dependencies", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--name", "description": "The name of the Camel application", "defaultValue": "CamelJBang", "javaType": "java.lang.String", "type": "string" }, { "names": "--observe", "description": "Enable observability services", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--open-api", "description": "Adds an OpenAPI spec from the given file (json or yaml file)", "javaType": "java.lang.String", "type": "string" }, { "names": "--package-scan-jars", "description": "Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--port", "description": "Embeds a local HTTP server on this port (port 8080 by default; use 0 to dynamic assign a free random port number)", "javaType": "int", "type": "integer" }, { "names": "--profile", "description": "Profile to run (dev, test, prod).", "defaultValue": "dev", "javaType": "java.lang.String", "type": "string" }, { "names": "--prompt", "description": "Allow user to type in required parameters in prompt if not present in application", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--prop,--property", "description": "Additional properties (override existing)", "javaType": "java.lang.String", "type": "string" }, { "names": "--properties", "description": "comma separated list of properties file (ex. \/path\/to\/file.properties,\/path\/to\/other.properties", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-artifact-id", "description": "Quarkus Platform Maven artifactId", "defaultValue": "quarkus-bom", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-group-id", "description": "Quarkus Platform Maven groupId", "defaultValue": "io.quarkus.platform", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-version", "description": "Quarkus Platform version", "defaultValue": "RuntimeType.QUARKUS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--reload,--dev", "description": "Enables dev mode (live reload when source files are updated and saved)", "javaType": "boolean", "type": "boolean" }, { "names": "--repo,--repos", "description": "Additional maven repositories (Use commas to separate multiple repositories)", "javaType": "java.lang.String", "type": "string" }, { "names": "--runtime", "description": "Runtime (camel-main, spring-boot, quarkus)", "defaultValue": "camel-main", "javaType": "org.apache.camel.dsl.jbang.core.common.RuntimeType", "type": "object" }, { "names": "--skip-plugins", "description": "Skip resolving plugin dependencies", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--source-dir", "description": "Source directory for dynamically loading Camel file(s) to run. When using this, then files cannot be specified at the same time.", "javaType": "java.lang.String", "type": "string" }, { "names": "--spring-boot-version", "description": "Spring Boot version", "defaultValue": "RuntimeType.SPRING_BOOT_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--stub", "description": "Stubs all the matching endpoint uri with the given component name or pattern. Multiple names can be separated by comma. (all = stub all endpoints).", "javaType": "java.lang.String", "type": "string" }, { "names": "--trace", "description": "Enables trace logging of the routed messages", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--verbose", "description": "Verbose output of startup activity (dependency resolution and downloading", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, + { "name": "run", "fullName": "run", "description": "Run as local Camel integration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Run", "options": [ { "names": "--background", "description": "Run in the background", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--background-wait", "description": "To wait for run in background to startup successfully, before returning", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--backlog-trace", "description": "Enables backlog tracing of the routed messages", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--camel-spring-boot-version", "description": "To run using a different Camel Spring Boot version than the default version.", "javaType": "java.lang.String", "type": "string" }, { "names": "--camel-version", "description": "To run using a different Camel version than the default version.", "javaType": "java.lang.String", "type": "string" }, { "names": "--code", "description": "Run the given text or file as Java DSL routes", "javaType": "java.lang.String", "type": "string" }, { "names": "--console", "description": "Developer console at \/q\/dev on local HTTP server (port 8080 by default)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--dep,--dependency", "description": "Add additional dependencies", "javaType": "java.util.List", "type": "array" }, { "names": "--download", "description": "Whether to allow automatic downloading JAR dependencies (over the internet)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--empty", "description": "Run an empty Camel without loading source files", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--example", "description": "Run a built-in example by name (e.g., timer-log, rest-api). Use --example --list to show available examples.", "javaType": "java.lang.String", "type": "string" }, { "names": "--example-list", "description": "List available built-in examples", "javaType": "boolean", "type": "boolean" }, { "names": "--exclude", "description": "Exclude files by name or pattern", "javaType": "java.util.List", "type": "array" }, { "names": "--fresh", "description": "Make sure we use fresh (i.e. non-cached) resources", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--gav", "description": "The Maven group:artifact:version (used during exporting)", "javaType": "java.lang.String", "type": "string" }, { "names": "--health", "description": "Deprecated: use --observe instead. Health check at \/q\/health on local HTTP server (port 8080 by default)", "defaultValue": "false", "javaType": "boolean", "type": "boolean", "deprecated": true }, { "names": "--ignore-loading-error", "description": "Whether to ignore route loading and compilation errors (use this with care!)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--java-version,--java", "description": "Java version (21, 25)", "defaultValue": "21", "javaType": "java.lang.String", "type": "string" }, { "names": "--jfr", "description": "Enables Java Flight Recorder saving recording to disk on exit", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--jfr-profile", "description": "Java Flight Recorder profile to use (such as default or profile)", "javaType": "java.lang.String", "type": "string" }, { "names": "--jvm-debug", "description": "To enable JVM remote debugging on port 4004 by default. The supported values are true to enable the remote debugging, false to disable the remote debugging or a number to use a custom port", "javaType": "int", "type": "integer", "paramLabel": "" }, { "names": "--kamelets-version", "description": "Apache Camel Kamelets version", "javaType": "java.lang.String", "type": "string" }, { "names": "--lazy-bean", "description": "Whether to use lazy bean initialization (can help with complex classloading issues)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--local-kamelet-dir", "description": "Local directory (or github link) for loading Kamelets (takes precedence). Multiple directories can be specified separated by comma.", "javaType": "java.lang.String", "type": "string" }, { "names": "--logging", "description": "Can be used to turn off logging", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-category", "description": "Used for individual logging levels (ex: org.apache.kafka=DEBUG)", "javaType": "java.util.List", "type": "array" }, { "names": "--logging-color", "description": "Use colored logging. Default is auto-detected based on NO_COLOR, CI, FORCE_COLOR environment variables and terminal capabilities", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-config-path", "description": "Path to file with custom logging configuration", "javaType": "java.lang.String", "type": "string" }, { "names": "--logging-json", "description": "Use JSON logging (ECS Layout)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-level", "description": "Logging level (ERROR, WARN, INFO, DEBUG, TRACE)", "defaultValue": "info", "javaType": "java.lang.String", "type": "string" }, { "names": "--management-port", "description": "To use a dedicated port for HTTP management (use 0 to dynamic assign a free random port number)", "javaType": "int", "type": "integer" }, { "names": "--maven-apache-snapshot-enabled", "description": "Whether downloading JARs from ASF Maven Snapshot repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-central-enabled", "description": "Whether downloading JARs from Maven Central repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-settings", "description": "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.", "javaType": "java.lang.String", "type": "string" }, { "names": "--maven-settings-security", "description": "Optional location of Maven settings-security.xml file to decrypt settings.xml", "javaType": "java.lang.String", "type": "string" }, { "names": "--max-idle-seconds", "description": "For how long time in seconds Camel can be idle before stopping", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "--max-messages", "description": "Max number of messages to process before stopping", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "--max-seconds", "description": "Max seconds to run before stopping", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "--metrics", "description": "Deprecated: use --observe instead. Metrics (Micrometer and Prometheus) at \/q\/metrics on local HTTP server (port 8080 by default)", "defaultValue": "false", "javaType": "boolean", "type": "boolean", "deprecated": true }, { "names": "--modeline", "description": "Whether to support JBang style \/\/DEPS to specify additional dependencies", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--name", "description": "The name of the Camel application", "defaultValue": "CamelJBang", "javaType": "java.lang.String", "type": "string" }, { "names": "--observe", "description": "Enable observability services", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--open-api", "description": "Adds an OpenAPI spec from the given file (json or yaml file)", "javaType": "java.lang.String", "type": "string" }, { "names": "--package-scan-jars", "description": "Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--port", "description": "Embeds a local HTTP server on this port (port 8080 by default; use 0 to dynamic assign a free random port number)", "javaType": "int", "type": "integer" }, { "names": "--profile", "description": "Profile to run (dev, test, prod).", "defaultValue": "dev", "javaType": "java.lang.String", "type": "string" }, { "names": "--prompt", "description": "Allow user to type in required parameters in prompt if not present in application", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--prop,--property", "description": "Additional properties (override existing)", "javaType": "java.lang.String", "type": "string" }, { "names": "--properties", "description": "comma separated list of properties file (ex. \/path\/to\/file.properties,\/path\/to\/other.properties", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-artifact-id", "description": "Quarkus Platform Maven artifactId", "defaultValue": "quarkus-bom", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-group-id", "description": "Quarkus Platform Maven groupId", "defaultValue": "io.quarkus.platform", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-version", "description": "Quarkus Platform version", "defaultValue": "RuntimeType.QUARKUS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--reload,--dev", "description": "Enables dev mode (live reload when source files are updated and saved)", "javaType": "boolean", "type": "boolean" }, { "names": "--repo,--repos", "description": "Additional maven repositories (Use commas to separate multiple repositories)", "javaType": "java.lang.String", "type": "string" }, { "names": "--runtime", "description": "Runtime (camel-main, spring-boot, quarkus)", "defaultValue": "camel-main", "javaType": "org.apache.camel.dsl.jbang.core.common.RuntimeType", "type": "object" }, { "names": "--skip-plugins", "description": "Skip resolving plugin dependencies", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--source-dir", "description": "Source directory for dynamically loading Camel file(s) to run. When using this, then files cannot be specified at the same time.", "javaType": "java.lang.String", "type": "string" }, { "names": "--spring-boot-version", "description": "Spring Boot version", "defaultValue": "RuntimeType.SPRING_BOOT_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--stub", "description": "Stubs all the matching endpoint uri with the given component name or pattern. Multiple names can be separated by comma. (all = stub all endpoints).", "javaType": "java.lang.String", "type": "string" }, { "names": "--trace", "description": "Enables trace logging of the routed messages", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--verbose", "description": "Verbose output of startup activity (dependency resolution and downloading", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "sbom", "fullName": "sbom", "description": "Generate a CycloneDX or SPDX SBOM for a specific project", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.SBOMGenerator", "options": [ { "names": "--build-property", "description": "Maven build properties, ex. --build-property=prop1=foo", "javaType": "java.util.List", "type": "array" }, { "names": "--camel-spring-boot-version", "description": "Camel version to use with Spring Boot", "javaType": "java.lang.String", "type": "string" }, { "names": "--camel-version", "description": "To export using a different Camel version than the default version.", "javaType": "java.lang.String", "type": "string" }, { "names": "--clean-dir", "description": "If exporting to current directory (default) then all existing files are preserved. Enabling this option will force cleaning current directory including all sub dirs (use this with care)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--cyclonedx-plugin-version", "description": "The CycloneDX Maven Plugin version", "defaultValue": "2.9.1", "javaType": "java.lang.String", "type": "string" }, { "names": "--dep,--dependency", "description": "Add additional dependencies", "javaType": "java.util.List", "type": "array" }, { "names": "--dir,--directory", "description": "Directory where the project will be exported", "defaultValue": ".", "javaType": "java.lang.String", "type": "string" }, { "names": "--download", "description": "Whether to allow automatic downloading JAR dependencies (over the internet)", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--dry-run", "description": "Preview export without writing files", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--exclude", "description": "Exclude files by name or pattern", "javaType": "java.util.List", "type": "array" }, { "names": "--fresh", "description": "Make sure we use fresh (i.e. non-cached) resources", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--gav", "description": "The Maven group:artifact:version", "javaType": "java.lang.String", "type": "string" }, { "names": "--groovy-pre-compiled", "description": "Whether to include pre-compiled Groovy classes in the export (only supported with runtime=camel-main)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--hawtio", "description": "Whether to include Hawtio web console (only available for exporting to Spring Boot or Quarkus)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--hawtio-version", "description": "Version of the Hawtio web console", "defaultValue": "HawtioVersion.HAWTIO_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--ignore-loading-error", "description": "Whether to ignore route loading and compilation errors (use this with care!)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--java-version,--java", "description": "Java version (21, 25)", "defaultValue": "21", "javaType": "java.lang.String", "type": "string" }, { "names": "--kamelets-version", "description": "Apache Camel Kamelets version", "defaultValue": "RuntimeType.KAMELETS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--lazy-bean", "description": "Whether to use lazy bean initialization (can help with complex classloading issues", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--local-kamelet-dir", "description": "Local directory for loading Kamelets (takes precedence)", "javaType": "java.lang.String", "type": "string" }, { "names": "--logging", "description": "Can be used to turn on logging to console (logs by default to file in \/.camel directory)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-level", "description": "Logging level (ERROR, WARN, INFO, DEBUG, TRACE)", "defaultValue": "info", "javaType": "java.lang.String", "type": "string" }, { "names": "--main-classname", "description": "The class name of the Camel Main application class", "defaultValue": "CamelApplication", "javaType": "java.lang.String", "type": "string" }, { "names": "--management-port", "description": "To use a dedicated port for HTTP management", "javaType": "int", "type": "integer" }, { "names": "--maven-apache-snapshot-enabled", "description": "Whether downloading JARs from ASF Maven Snapshot repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-central-enabled", "description": "Whether downloading JARs from Maven Central repository is enabled", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--maven-settings", "description": "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.", "javaType": "java.lang.String", "type": "string" }, { "names": "--maven-settings-security", "description": "Optional location of Maven settings-security.xml file to decrypt settings.xml", "javaType": "java.lang.String", "type": "string" }, { "names": "--maven-wrapper", "description": "Include Maven Wrapper files in exported project", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--name", "description": "The integration name. Use this when the name should not get derived otherwise.", "javaType": "java.lang.String", "type": "string" }, { "names": "--observe", "description": "Enable observability services", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--open-api", "description": "Adds an OpenAPI spec from the given file (json or yaml file)", "javaType": "java.lang.String", "type": "string" }, { "names": "--output-directory", "description": "Directory where the SBOM will be saved", "defaultValue": ".", "javaType": "java.lang.String", "type": "string" }, { "names": "--output-name", "description": "Output name of the SBOM file", "defaultValue": "sbom", "javaType": "java.lang.String", "type": "string" }, { "names": "--package-name", "description": "For Java source files should they have the given package name. By default the package name is computed from the Maven GAV. Use false to turn off and not include package name in the Java source files.", "javaType": "java.lang.String", "type": "string" }, { "names": "--package-scan-jars", "description": "Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--port", "description": "Embeds a local HTTP server on this port", "javaType": "int", "type": "integer" }, { "names": "--profile", "description": "Profile to export (dev, test, prod).", "javaType": "java.lang.String", "type": "string" }, { "names": "--prop,--property", "description": "Camel application properties, ex. --property=prop1=foo", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-artifact-id", "description": "Quarkus Platform Maven artifactId", "defaultValue": "quarkus-bom", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-group-id", "description": "Quarkus Platform Maven groupId", "defaultValue": "io.quarkus.platform", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-package-type", "description": "Quarkus package type (uber-jar or fast-jar)", "defaultValue": "fast-jar", "javaType": "java.lang.String", "type": "string" }, { "names": "--quarkus-version", "description": "Quarkus Platform version", "defaultValue": "RuntimeType.QUARKUS_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--quiet", "description": "Will be quiet, only print when error occurs", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--repo,--repos", "description": "Additional maven repositories (Use commas to separate multiple repositories)", "javaType": "java.lang.String", "type": "string" }, { "names": "--runtime", "description": "Runtime (camel-main, spring-boot, quarkus)", "javaType": "org.apache.camel.dsl.jbang.core.common.RuntimeType", "type": "object" }, { "names": "--sbom-format", "description": "The SBOM format, possible values are cyclonedx or spdx", "defaultValue": "CYCLONEDX_FORMAT", "javaType": "java.lang.String", "type": "string" }, { "names": "--sbom-output-format", "description": "The SBOM output format, possible values are json or xml", "defaultValue": "SBOM_JSON_FORMAT", "javaType": "java.lang.String", "type": "string" }, { "names": "--skip-plugins", "description": "Skip plugins during export", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--spdx-plugin-version", "description": "The SPDX Maven Plugin version", "defaultValue": "0.7.4", "javaType": "java.lang.String", "type": "string" }, { "names": "--spring-boot-version", "description": "Spring Boot version", "defaultValue": "RuntimeType.SPRING_BOOT_VERSION", "javaType": "java.lang.String", "type": "string" }, { "names": "--verbose", "description": "Verbose output of startup activity (dependency resolution and downloading", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--yes,-y", "description": "Automatically answer yes to confirmation prompts (e.g. when using --clean-dir)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "script", "fullName": "script", "description": "Run Camel integration as shell script for terminal scripting", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Script", "options": [ { "names": "--logging", "description": "Can be used to turn on logging (logs to file in \/.camel directory)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-level", "description": "Logging level (ERROR, WARN, INFO, DEBUG, TRACE)", "defaultValue": "info", "javaType": "java.lang.String", "type": "string" }, { "names": "--max-idle-seconds", "description": "For how long time in seconds Camel can be idle before stopping", "defaultValue": "1", "javaType": "int", "type": "integer" }, { "names": "--max-messages", "description": "Max number of messages to process before stopping", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "--max-seconds", "description": "Max seconds to run before stopping", "defaultValue": "0", "javaType": "int", "type": "integer" }, { "names": "--prop,--property", "description": "Additional properties (override existing)", "javaType": "java.lang.String", "type": "string" }, { "names": "--properties", "description": "Load properties file for route placeholders (ex. \/path\/to\/file.properties", "javaType": "java.lang.String", "type": "string" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, { "name": "shell", "fullName": "shell", "description": "Interactive Camel JBang shell.", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Shell", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] }, diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java index 477769c861254..d96725ab5749a 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java @@ -132,6 +132,7 @@ public void execute(String... args) { .addSubcommand("runtime", new CommandLine(new DependencyRuntime(this))) .addSubcommand("update", new CommandLine(new DependencyUpdate(this)))) .addSubcommand("dirty", new CommandLine(new Dirty(this))) + .addSubcommand("doctor", new CommandLine(new Doctor(this))) .addSubcommand("eval", new CommandLine(new EvalCommand(this)) .addSubcommand("expression", new CommandLine(new EvalExpressionCommand(this)))) .addSubcommand("export", new CommandLine(new Export(this))) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Doctor.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Doctor.java new file mode 100644 index 0000000000000..e048233320b13 --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Doctor.java @@ -0,0 +1,150 @@ +/* + * 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.net.ServerSocket; +import java.util.List; +import java.util.Set; + +import org.apache.camel.catalog.CamelCatalog; +import org.apache.camel.catalog.DefaultCamelCatalog; +import org.apache.camel.dsl.jbang.core.common.VersionHelper; +import org.apache.camel.tooling.maven.MavenDownloaderImpl; +import org.apache.camel.tooling.maven.MavenResolutionException; +import picocli.CommandLine.Command; + +@Command(name = "doctor", description = "Checks the environment and reports potential issues", + sortOptions = false, showDefaultValues = true) +public class Doctor extends CamelCommand { + + public Doctor(CamelJBangMain main) { + super(main); + } + + @Override + public Integer doCall() throws Exception { + printer().println("Camel JBang Doctor"); + printer().println("=================="); + printer().println(); + + checkJava(); + checkJBang(); + checkCamelVersion(); + checkMavenRepository(); + checkContainerRuntime(); + checkCommonPorts(); + checkDiskSpace(); + + return 0; + } + + private void checkJava() { + String version = System.getProperty("java.version"); + String vendor = System.getProperty("java.vendor", ""); + int major = Runtime.version().feature(); + String status = major >= 21 ? "OK" : "WARN (21+ required)"; + printer().printf(" Java: %s (%s) [%s]%n", version, vendor, status); + } + + private void checkJBang() { + String version = VersionHelper.getJBangVersion(); + if (version != null) { + printer().printf(" JBang: %s (OK)%n", version); + } else { + printer().printf(" JBang: not detected%n"); + } + } + + private void checkCamelVersion() { + CamelCatalog catalog = new DefaultCamelCatalog(); + String version = catalog.getCatalogVersion(); + printer().printf(" Camel: %s%n", version); + } + + private void checkMavenRepository() { + MavenDownloaderImpl downloader = new MavenDownloaderImpl(); + try { + downloader.build(); + CamelCatalog catalog = new DefaultCamelCatalog(); + String version = catalog.getCatalogVersion(); + downloader.resolveArtifacts( + List.of("org.apache.camel:camel-api:" + version), + Set.of(), false, false); + printer().printf(" Maven: artifact resolution OK%n"); + } catch (MavenResolutionException e) { + printer().printf(" Maven: artifact resolution failed (%s)%n", e.getMessage()); + } catch (Exception e) { + printer().printf(" Maven: error (%s)%n", e.getMessage()); + } + } + + private void checkContainerRuntime() { + // check docker first, then podman as fallback + for (String cmd : new String[] { "docker", "podman" }) { + try { + Process p = new ProcessBuilder(cmd, "info") + .redirectErrorStream(true) + .start(); + // drain output to prevent blocking + p.getInputStream().transferTo(java.io.OutputStream.nullOutputStream()); + int exit = p.waitFor(); + if (exit == 0) { + printer().printf(" Container: %s running (OK, optional)%n", cmd); + return; + } + } catch (Exception e) { + // not found, try next + } + } + printer().printf(" Container: not found (optional — needed for test containers)%n"); + } + + private void checkCommonPorts() { + StringBuilder conflicts = new StringBuilder(); + for (int port : new int[] { 8080, 8443, 9090 }) { + if (isPortInUse(port)) { + if (!conflicts.isEmpty()) { + conflicts.append(", "); + } + conflicts.append(port); + } + } + if (!conflicts.isEmpty()) { + printer().printf(" Ports: in use: %s%n", conflicts); + } else { + printer().printf(" Ports: 8080, 8443, 9090 free (OK)%n"); + } + } + + private static boolean isPortInUse(int port) { + try (ServerSocket ss = new ServerSocket(port)) { + ss.setReuseAddress(true); + return false; + } catch (Exception e) { + return true; + } + } + + private void checkDiskSpace() { + File tmpDir = new File(System.getProperty("java.io.tmpdir")); + long free = tmpDir.getFreeSpace(); + long mb = free / (1024 * 1024); + String status = mb > 500 ? "OK" : "LOW"; + printer().printf(" Disk space: %d MB free in temp (%s)%n", mb, status); + } +} diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java index a0f65cf76e467..22fb7af07a8cd 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java @@ -22,8 +22,11 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.ArrayList; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; +import java.util.Scanner; import java.util.Stack; import java.util.StringJoiner; @@ -54,7 +57,8 @@ " camel init hello.java", " camel init hello.yaml", " camel init hello.xml", - " camel init --list" }) + " camel init --list", + "%nTip: For AI-assisted project scaffolding, try: camel plugin add kit" }) public class Init extends CamelCommand { @Parameters(description = "Name of integration file (or a github link)", arity = "0..1", @@ -101,7 +105,12 @@ public Integer doCall() throws Exception { return listTemplates(); } if (file == null) { + // try interactive picker if running in a TTY and not in CI + if (System.console() != null && System.getenv("CI") == null) { + return interactivePicker(); + } printer().printErr("Missing required parameter: "); + printer().printErr("Run 'camel init --list' to see available templates, or run interactively in a terminal."); return 1; } int code = execute(); @@ -285,6 +294,104 @@ private int listTemplates() { return 0; } + private int interactivePicker() throws Exception { + // Build template categories + Map> categories = new LinkedHashMap<>(); + categories.put("Routes", List.of( + new String[] { "yaml", "YAML DSL route", ".yaml" }, + new String[] { "java", "Java DSL route", ".java" }, + new String[] { "xml", "XML DSL route", ".xml" })); + categories.put("Kamelets", List.of( + new String[] { "kamelet-source.yaml", "Kamelet source connector", ".kamelet.yaml" }, + new String[] { "kamelet-sink.yaml", "Kamelet sink connector", ".kamelet.yaml" }, + new String[] { "kamelet-action.yaml", "Kamelet action processor", ".kamelet.yaml" })); + List pipeTemplates = new ArrayList<>(); + pipeTemplates.add(new String[] { "init-pipe.yaml", "Pipe CR (source to sink)", ".yaml" }); + categories.put("Pipes and CRs", pipeTemplates); + + Scanner scanner = new Scanner(System.in); + + // Step 1: Pick a category + printer().println("Select a template category:"); + List categoryNames = new ArrayList<>(categories.keySet()); + for (int i = 0; i < categoryNames.size(); i++) { + printer().printf(" %d) %s%n", i + 1, categoryNames.get(i)); + } + printer().print("Choice [1]: "); + String categoryInput = scanner.nextLine().trim(); + int categoryIdx; + try { + categoryIdx = categoryInput.isEmpty() ? 0 : Integer.parseInt(categoryInput) - 1; + } catch (NumberFormatException e) { + printer().printErr("Invalid choice: " + categoryInput); + return 1; + } + if (categoryIdx < 0 || categoryIdx >= categoryNames.size()) { + printer().printErr("Invalid choice: must be between 1 and " + categoryNames.size()); + return 1; + } + + // Step 2: Pick a template + String selectedCategory = categoryNames.get(categoryIdx); + List templates = categories.get(selectedCategory); + printer().println(); + printer().println("Select a template:"); + for (int i = 0; i < templates.size(); i++) { + printer().printf(" %d) %s%n", i + 1, templates.get(i)[1]); + } + printer().print("Choice [1]: "); + String templateInput = scanner.nextLine().trim(); + int templateIdx; + try { + templateIdx = templateInput.isEmpty() ? 0 : Integer.parseInt(templateInput) - 1; + } catch (NumberFormatException e) { + printer().printErr("Invalid choice: " + templateInput); + return 1; + } + if (templateIdx < 0 || templateIdx >= templates.size()) { + printer().printErr("Invalid choice: must be between 1 and " + templates.size()); + return 1; + } + + String[] selected = templates.get(templateIdx); + String ext = selected[2]; + String defaultName = "MyRoute" + ext; + if (ext.endsWith(".kamelet.yaml")) { + if (selected[0].contains("source")) { + defaultName = "my-source.kamelet.yaml"; + } else if (selected[0].contains("sink")) { + defaultName = "my-sink.kamelet.yaml"; + } else { + defaultName = "my-action.kamelet.yaml"; + } + } else if (selected[0].contains("pipe")) { + defaultName = "my-pipe.yaml"; + pipe = true; + } + + // Step 3: Prompt for filename + printer().println(); + printer().printf("Filename [%s]: ", defaultName); + String filename = scanner.nextLine().trim(); + if (filename.isEmpty()) { + filename = defaultName; + } + + this.file = filename; + int code = execute(); + if (code == 0) { + createWorkingDirectoryIfAbsent(); + printer().println(); + printer().println("Created: " + filename); + printer().println(); + printer().println("Next steps:"); + printer().println(" Run: camel run " + filename); + printer().println(" Run (live): camel run " + filename + " --dev"); + printer().println(" Documentation: camel doc "); + } + return code; + } + private void createWorkingDirectoryIfAbsent() { Path work = CommandLineHelper.getWorkDir(); if (!Files.exists(work)) { 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 9e21ceedead18..7fb978a78ae93 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 @@ -336,6 +336,15 @@ public class Run extends CamelCommand { description = "Skip resolving plugin dependencies") boolean skipPlugins; + @Option(names = { "--example" }, + description = "Run a built-in example by name (e.g., timer-log, rest-api). Use --example --list to show available examples.", + arity = "0..1", fallbackValue = "") + String example; + + @Option(names = { "--example-list" }, + description = "List available built-in examples") + boolean exampleList; + public Run(CamelJBangMain main) { super(main); } @@ -355,6 +364,14 @@ public boolean disarrangeLogging() { @Override public Integer doCall() throws Exception { + // handle --example + if (exampleList || (example != null && example.isEmpty())) { + return listExamples(); + } + if (example != null) { + return runExample(); + } + if (!exportRun) { printConfigurationValues("Running integration with the following configuration:"); } @@ -362,6 +379,60 @@ public Integer doCall() throws Exception { return run(); } + private int listExamples() { + printer().println("Available built-in examples:"); + printer().println(); + printer().printf(" %-20s %s%n", "timer-log", "Simple timer that logs messages every second"); + printer().printf(" %-20s %s%n", "rest-api", "REST API with hello endpoints"); + printer().printf(" %-20s %s%n", "cron-log", "Scheduled task that logs every 5 seconds"); + printer().println(); + printer().println("Usage: camel run --example "); + printer().println(" camel run --example --dev"); + return 0; + } + + private static final List EXAMPLE_NAMES = List.of("timer-log", "rest-api", "cron-log"); + + private int runExample() throws Exception { + String resourcePath = "examples/" + example + ".yaml"; + InputStream is = Run.class.getClassLoader().getResourceAsStream(resourcePath); + if (is == null) { + List suggestions + = org.apache.camel.main.util.SuggestSimilarHelper.didYouMean(EXAMPLE_NAMES, example); + if (!suggestions.isEmpty()) { + printer().printErr("Unknown example: " + example + ". Did you mean? " + String.join(", ", suggestions)); + } else { + printer().printErr("Unknown example: " + example); + } + printer().printErr("Run 'camel run --example-list' to see available examples."); + return 1; + } + + // extract example to a temp file and run it + Path tempDir = Files.createTempDirectory("camel-example-"); + Path exampleFile = tempDir.resolve(example + ".yaml"); + try { + String content = IOHelper.loadText(is); + IOHelper.close(is); + Files.writeString(exampleFile, content); + + printer().println("Running example: " + example); + files.add(exampleFile.toString()); + if ("CamelJBang".equals(name)) { + name = example; + } + + if (!exportRun) { + printConfigurationValues("Running integration with the following configuration:"); + } + return run(); + } finally { + // clean up temp files on JVM exit + exampleFile.toFile().deleteOnExit(); + tempDir.toFile().deleteOnExit(); + } + } + public Integer runExport() throws Exception { return runExport(false); } diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Shell.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Shell.java index 8cb436ccbde7d..715b7d76b0525 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Shell.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Shell.java @@ -16,9 +16,11 @@ */ package org.apache.camel.dsl.jbang.core.commands; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.stream.Stream; import org.apache.camel.dsl.jbang.core.common.EnvironmentHelper; import org.apache.camel.dsl.jbang.core.common.VersionHelper; @@ -151,8 +153,35 @@ private static void printBanner(org.jline.shell.Shell shell, String camelVersion } writer.println(banner); } - writer.println("Type 'help' for available commands, 'exit' to quit."); + int routeCount = countRouteFiles(); + if (routeCount == 0) { + writer.println("No routes found in current directory."); + writer.println(" Quick start: init MyRoute.yaml && run *"); + writer.println(" Templates: init --list"); + writer.println(" Docs: doc "); + writer.println(" Need help? help"); + } else { + writer.printf("Found %d route file(s) in current directory.%n", routeCount); + writer.println(" Run: run *"); + writer.println(" Watch: run * --dev"); + } writer.println(); writer.flush(); } + + private static int countRouteFiles() { + try (Stream files = Files.list(Paths.get("."))) { + return (int) files.filter(Files::isRegularFile) + .filter(p -> { + String name = p.getFileName().toString(); + return name.endsWith(".yaml") && !name.endsWith(".kamelet.yaml") + && !name.equals("application.yaml") + || name.endsWith(".xml") && !name.equals("pom.xml") + || name.endsWith(".java"); + }) + .count(); + } catch (IOException e) { + return 0; + } + } } diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java index 92acba5edae67..a0d2748b5e2c6 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java @@ -37,6 +37,7 @@ import org.apache.camel.dsl.jbang.core.common.TerminalWidthHelper; import org.apache.camel.dsl.jbang.core.common.VersionHelper; import org.apache.camel.dsl.jbang.core.model.CatalogBaseDTO; +import org.apache.camel.main.util.SuggestSimilarHelper; import org.apache.camel.tooling.maven.MavenGav; import org.apache.camel.tooling.model.ArtifactModel; import org.apache.camel.util.json.Jsoner; @@ -180,6 +181,16 @@ public Integer doCall() throws Exception { .maxWidth(descWidth, OverflowBehaviour.ELLIPSIS_RIGHT) .with(this::shortDescription)))); } + } else if (filterName != null) { + // suggest similar names when filter returns no results + List allNames = collectRows().stream().map(r -> r.name).collect(Collectors.toList()); + List suggestions = SuggestSimilarHelper.didYouMean(allNames, filterName); + if (!suggestions.isEmpty()) { + printer().println("No results for filter: " + filterName + ". Did you mean? " + String.join(", ", suggestions)); + } else { + printer().println("No results for filter: " + filterName); + } + printer().println("Tip: use 'camel doc " + filterName + "' for detailed documentation."); } return 0; diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginType.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginType.java index 0e3eb1d5df4c9..63a475b3fb71c 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginType.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginType.java @@ -30,6 +30,8 @@ public enum PluginType { TEST("test", "test", "Manage tests for Camel applications", "4.14.0", null), ROUTE_PARSER("route-parser", "route-parser", "Parses Java route and dumps route structure", "4.17.0", null), VALIDATE("validate", "validate", "Validate Camel routes", "4.18.0", null), + KIT("kit", "kit", "AI-assisted Camel project scaffolding", "4.19.0", + "https://repo1.maven.org/maven2/"), TUI("tui", "tui", "Camel Dashboard", "4.20.0", null); private final String name; diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/cron-log.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/cron-log.yaml new file mode 100644 index 0000000000000..c31bdb1cec3d0 --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/cron-log.yaml @@ -0,0 +1,10 @@ +- route: + id: cron-log + from: + uri: timer:cron + parameters: + period: "5000" + steps: + - setBody: + simple: "Scheduled task running at ${date:now:HH:mm:ss}" + - log: "${body}" diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/rest-api.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/rest-api.yaml new file mode 100644 index 0000000000000..2e1035cf1f0f4 --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/rest-api.yaml @@ -0,0 +1,21 @@ +- rest: + path: /api + get: + - path: /hello + to: direct:hello + - path: /hello/{name} + to: direct:hello-name +- route: + id: hello + from: + uri: direct:hello + steps: + - setBody: + constant: "Hello from Camel REST API!" +- route: + id: hello-name + from: + uri: direct:hello-name + steps: + - setBody: + simple: "Hello ${header.name} from Camel REST API!" diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/timer-log.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/timer-log.yaml new file mode 100644 index 0000000000000..cdff71b4d71f5 --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/timer-log.yaml @@ -0,0 +1,10 @@ +- route: + id: timer-log + from: + uri: timer:tick + parameters: + period: "1000" + steps: + - setBody: + simple: "Hello Camel! (message #${exchangeProperty.CamelTimerCounter})" + - log: "${body}" 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 15004d080ab91..bd72e594cb242 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 @@ -70,7 +70,7 @@ public void shouldGetDefaultPlugins() throws Exception { command.doCall(); List output = printer.getLines(); - Assertions.assertEquals(10, output.size()); + Assertions.assertEquals(11, output.size()); Assertions.assertEquals("Supported plugins:", output.get(0)); Assertions.assertEquals("NAME COMMAND DEPENDENCY DESCRIPTION", output.get(2)); @@ -120,7 +120,7 @@ public void shouldGetAllPlugins() throws Exception { command.doCall(); List output = printer.getLines(); - Assertions.assertEquals(13, output.size()); + Assertions.assertEquals(14, output.size()); Assertions.assertEquals("NAME COMMAND DEPENDENCY DESCRIPTION", output.get(0)); Assertions.assertEquals( "foo-plugin foo org.apache.camel:foo-plugin:1.0.0 Plugin foo-plugin called with command foo", @@ -153,6 +153,14 @@ public void shouldGetAllPlugins() throws Exception { "validate validate org.apache.camel:camel-jbang-plugin-validate %s" .formatted(PluginType.VALIDATE.getDescription()), output.get(11)); + Assertions.assertEquals( + "kit kit org.apache.camel:camel-jbang-plugin-kit %s" + .formatted(PluginType.KIT.getDescription()), + output.get(12)); + Assertions.assertEquals( + "tui tui org.apache.camel:camel-jbang-plugin-tui %s" + .formatted(PluginType.TUI.getDescription()), + output.get(13)); } }