Repository navigation
CAMEL-25403: camel-jbang - AI tools: note a Kamelet camel: dependency that the template does not use - #27473
Conversation
… that the template does not use A Kamelet file whose spec.dependencies lists a component the template does not use (camel:timer copied from a sample into an action whose template is a setBody) now gets a note in the answer of camel_write_file, camel_edit_file and camel_validate_source. A note, not an error: the write is not refused. Nothing is said when the template may use the component unseen: a bean, a class reference, a placeholder as a scheme, or a component that runs on another (cron on quartz, rest-openapi on http). Over the 259 Kamelets of camel-kamelets it notes 6 dependencies, all unused. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m
|
🌟 Thank you for your contribution to the Apache Camel project! 🌟 🐫 Apache Camel Committers, please review the following items:
|
…ependencies as implied Every Camel runtime has camel-core, so camel:core adds nothing. camel:kamelet is not implied: it is the artifact that runs the template. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m
|
🧪 CI tested the following changed modules:
🔁 1 test passed only after a retry on JDK 25 (1 retried attempt) Recovered flaky tests on JDK 25 (1)
🔬 Scalpel shadow comparison — Scalpel: 6 of 699 tested, 8 compile-only — current: 6 all testedMaveniverse Scalpel detected 6 affected modules (current approach: 6). Skip-tests mode would test 6 modules (1 direct + 6 downstream), skip tests for 8 (generated code, meta-modules) Modules Scalpel would test (6)
Modules with tests skipped (8)
💡 Manual integration tests recommended:
All tested modules (15 modules, 2m 41s total)Total reactor time: 2m 41s
Top 20 slowest modules:
|
Description
https://issues.apache.org/jira/browse/CAMEL-25403
In the local model benchmark (qwen3.6:35b-a3b through the camel-jbang-mcp server, Kamelet side check), the model wrote a custom action Kamelet whose template is a single
setBody, and listedcamel:timerinspec.dependenciesin 3 of 5 runs. It most likely copied it from the source sample inkamelet-custom.adoc, whose template starts from a timer.KameletChecks.unusedDependenciesfinds acamel:dependency that names a component the template does not use: no endpoint of the template has its scheme (timer:x, oruri: timerwithparameters:, alternative schemes such ashttpsincluded), and no language or data format of the template is in its artifact.camel_write_file,camel_edit_fileandcamel_validate_sourcereport it undernotes:It is a note, not an error: the Kamelet works, so the write is not refused. Nothing is said when the template may use a component in a way not visible in it:
beans, abeanormethodstep, a#class:reference, a placeholder as the scheme, or a component that runs on another (cron on quartz, rest-openapi on an http component). Only components are checked, not languages or data formats.camel:coreis noted as implied, as every Camel runtime has it (162 of the 259 Kamelets list it).camel:kameletis not: it is the artifact that runs the template.Over the 259 Kamelets of camel-kamelets main it notes, besides
camel:core, 6 dependencies, all of them unused (fixed in apache/camel-kamelets#3095):camel:timerin azure-storage-blob-source, azure-storage-datalake-sink, azure-storage-datalake-source and azure-storage-files-sourcecamel:dnsin aws-translate-actioncamel:azure-storage-blobin azure-storage-files-sinkTests
KameletChecksTest: the note for an unused dependency (and no error), no note for used dependencies (scheme with and without a colon, https for http, a language, mvn:), no note for a placeholder scheme, beans, a bean step, cron with quartz and rest-openapi with http, and the note in the answer of a write. The 510 tests of thecommands.aipackage pass.🤖 Generated with Claude Code
https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m