You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2026/09/21 16:49:00 UTC
[jira] [Work started] (CAMEL-24879) camel-main - Bind @BindToRegistry and @Converter classes from compiled Groovy sources in exported projects
[ https://issues.apache.org/jira/browse/CAMEL-24879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Work on CAMEL-24879 started by Claus Ibsen.
-------------------------------------------
> camel-main - Bind @BindToRegistry and @Converter classes from compiled Groovy sources in exported projects
> ----------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-24879
> URL: https://issues.apache.org/jira/browse/CAMEL-24879
> Project: Camel
> Issue Type: Improvement
> Components: camel-groovy, camel-jbang, camel-main
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Major
>
> Follow-up to CAMEL-24873 (PR https://github.com/apache/camel/pull/26678).
> {{DefaultGroovyScriptCompiler}} now hands a compiled Groovy class with class-level annotations to the registered {{org.apache.camel.spi.CompilePostProcessor}}s. Only camel-kamelet-main ({{AnnotationDependencyInjection}}, wired from {{KameletMain}}) registers such post-processors, so this works with {{camel run}} but not in a project created with {{camel export}}: camel-main compiles the {{.groovy}} file from {{src/main/resources/camel-groovy/}} at startup (via {{camel.main.groovyScriptPattern}}), but nothing binds a {{@BindToRegistry}} class or registers a {{@Converter}} class, and a custom simple function from such a file fails with {{Unknown function}} at runtime. Spring Boot and Quarkus register no post-processors either.
> The simple-advanced and camel-jbang-beans pages document the limitation and point at the inline YAML {{scriptLanguage: groovy}} bean, which works in every runtime.
> Proposal: have camel-main register a {{CompilePostProcessor}} for {{@BindToRegistry}} (and {{@Converter}}) so an exported camel-main project behaves like {{camel run}}; then decide whether Spring Boot / Quarkus should do the same for their own annotations, or whether {{camel export}} should convert an annotated {{.groovy}} file for those runtimes.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)