Nadina Florea created CAMEL-21624: ------------------------------------- Summary: Issue with Kafka Appender when using multiline YAML configuration for bootstrap.servers Key: CAMEL-21624 URL: https://issues.apache.org/jira/browse/CAMEL-21624 Project: Camel Issue Type: Bug Components: camel-kafka Affects Versions: 4.9.0 Reporter: Nadina Florea
Hello, I recently encountered an issue in my application that uses Apache Camel 4.9.0 along with the Kafka component (camel-kafka) for message processing. The issue arises due to the interaction between Camel’s Kafka configuration and Kafka Appender when *bootstrap.servers is defined using a {_}multiline syntax in a YAML configuration file{_}.* Environment: • Apache Camel Version: 4.9.0 • Spring Boot Version: 3.4.1 • Kafka Clients Version: 3.8.1 • Java Version: 17 Steps to Reproduce: 1. Define bootstrap.servers in application.yaml using multiline syntax: {code:java} camel: component: kafka: brokers: >- broker1:9092, broker2:9092{code} 2. Use the following setup in logback-spring.xml to configure Kafka Appender: {code:java} <springProperty name="brokers" source="camel.component.kafka.brokers" /> <appender name="KAFKA" class="ch.qos.logback.classic.net.KafkaAppender"> <kafkaProp> bootstrap.servers=${brokers} </kafkaProp> </appender>{code} 3. Run the application. Observed Behavior: The application fails to start with the following error: _*org.apache.camel.RuntimeCamelException: org.apache.kafka.common.config.ConfigException: Invalid url in bootstrap.servers: broker2:9092*_ Expected Behavior: The bootstrap.servers property should be processed correctly, even if defined in a multiline YAML syntax, as it worked with older Kafka Clients versions (e.g., 3.7.x). After investigating, I suspect the following change in Kafka Clients 3.8.x: • Starting with Kafka Clients 3.8.x, stricter validation for _bootstrap.servers_ was introduced via KAFKA-17584. This validation now rejects newline characters or other formatting inconsistencies. • While this is expected behavior, the way Camel propagates the camel.component.kafka.brokers property to Kafka Appender through logback-spring.xml seems to preserve newline characters, which results in invalid configuration values. Additional Notes: • When I updated my YAML configuration to write *bootstrap.servers on a single line* (e.g., broker1:9092,broker2:9092), the issue was resolved. • _Applications that use Spring Kafka directly without Camel are not affected by this issue._ When configuring numerous brokers in the _bootstrap.servers_ property, it is difficult to read and manage when placed on a single line. Is this behavior intentional or should Camel consider providing a more flexible way to handle multiline configs in the future? Thank you! -- This message was sent by Atlassian Jira (v8.20.10#820010)