[ 
https://issues.apache.org/jira/browse/CAMEL-25400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18127922#comment-18127922
 ] 

Claus Ibsen commented on CAMEL-25400:
-------------------------------------

Third part, for the tools that run several CLI commands in one JVM (camel ask, 
the AI panel, camel shell): https://github.com/apache/camel/pull/27962

* CliRunner runs each command on new instances of the commands 
(CamelJBangMain.newCommandLine, with the plugins already loaded), so no field 
keeps the value of the run before.
* The first logging configuration of each command is applied (log4j was 
configured once per JVM, so a later camel export logged to the console instead 
of its log file).
* camel doc and the catalog listings share one catalog loader.

What stays open on this ticket goes with the run/export split: the duplicates 
in run and export (doExport, the Maven invocation) and the shared .camel-jbang 
work directory.

_Claude Code on behalf of davsclaus_

> camel-jbang - Tech debt cleanup in the CLI (after the behaviour work)
> ---------------------------------------------------------------------
>
>                 Key: CAMEL-25400
>                 URL: https://issues.apache.org/jira/browse/CAMEL-25400
>             Project: Camel
>          Issue Type: Sub-task
>          Components: camel-jbang
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Major
>             Fix For: 4.24.0
>
>
> To be done after the other sub-tasks:
> * One {{ChildProcess}} helper for the 8 copied shutdown hooks, 6 copied mvnw 
> lookups and the {{--background}} argument stripping; kill descendant 
> processes.
> * Embedding blockers: {{PluginHelper}} calling {{main.quit(1)}} 
> ({{System.exit}}), one-shot logging init, shared {{.camel-jbang}} work dir, 
> non-option fields not reset when the command tree is reused.
> * Listing boilerplate ({{sortRow}} ~37 copies, {{Row.copy()}}, 
> since/throughput/short-uri helpers).
> * Duplicates: {{loadCatalog}}, Kamelet catalog loader, {{doExport}}, Maven 
> invocation.
> * Last: split {{Run.java}} (3,840 lines: options shared with Export, source 
> classification, one launcher per runtime, background supervisor) and move 
> {{Harden}} onto {{LlmClient}}.
> _Claude Code on behalf of davsclaus (Claus Ibsen)_



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to