Franky Georg created CAMEL-15686:
------------------------------------
Summary: 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.3
* Spring Boot 2.3.4
Reporter: Franky Georg
Injecting an EndpointProducerBuilder bean that uses a simple expression causes
an exception.
{code:java}
@Autowired
@Qualifier("publishToKafkaEndpoint")
EndpointProducerBuilder publishToKafkaEndpoint;
@Bean
org.apache.camel.builder.EndpointProducerBuilder publishToKafkaEndpoint() {
return kafka("${exchangeProperty.destination}");
}{code}
Exception from org.apache.kafka.clients.Metadata:
{code:java}
Metadata response reported invalid topics
[${exchangeProperty.destination}]{code}
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)