[ https://issues.apache.org/jira/browse/CAMEL-15686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen resolved CAMEL-15686. --------------------------------- Resolution: Cannot Reproduce > Enable EndpointDSL with simple expressions within an Endpoint Builder bean > -------------------------------------------------------------------------- > > Key: CAMEL-15686 > URL: https://issues.apache.org/jira/browse/CAMEL-15686 > Project: Camel > Issue Type: Improvement > Components: camel-endpointdsl > Environment: Experienced with > * Camel 3.4.4 > * Spring Boot 2.3.4 > Reporter: Franky Georg > Assignee: Claus Ibsen > Priority: Minor > Fix For: 3.7.0 > > > Injecting an EndpointProducerBuilder bean that uses a simple expression > causes an exception. > {code:java} > @Configuration > public class MyTestRoute extends EndpointRouteBuilder { > private static final String MY_TOPIC = "testTopic"; > @Autowired > private EndpointProducerBuilder myKafkaBean; > @Override > public void configure() { > from(timer("myTimer").repeatCount(1)) > .setBody(constant("THIS IS A TEST MESSAGE")) > .setProperty("destination2", constant(MY_TOPIC)) > .to("direct:publish-to-kafka2") > ; > from("direct:publish-to-kafka2") > .toD(myKafkaBean) > ; > from(kafka(MY_TOPIC)) > .log("Received: ${body}") > ; > } > @Bean > public EndpointProducerBuilder myKafkaBean() { > return kafka("${exchangeProperty.destination2}"); > } > }{code} > Exception from org.apache.kafka.clients.Metadata: > {code:java} > Metadata response reported invalid topics > [${exchangeProperty.destination}]{code} > I don't have to _use_ the bean for the error to manifest, it's enough to > @Autowire it. > > It _does_ work for static endpoints: > {code:java} > return kafka("myTopic"); // This works fine from an > EndpointProducerBuilder bean{code} > And it _does_ work for dynamic endpoints in URI form: > {code:java} > return "kafka:${exchangeProperty.destination}"; // This works fine but > you lose type safety{code} > > Creating beans like this is useful for unit testing as they can be overridden > to return mock/direct/whatever-is-useful, _without_ _first creating the > original endpoint_, which can significantly reduce execution time. -- This message was sent by Atlassian Jira (v8.3.4#803005)