[
https://issues.apache.org/jira/browse/CAMEL-24879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen reassigned CAMEL-24879:
-----------------------------------
Assignee: 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)