javadali1362 opened a new issue, #1656: URL: https://github.com/apache/camel-karavan/issues/1656
### Describe the bug # Karavan 4.6.0 Load Balance EIP YAML Compatibility Issue with Apache Camel 4.11.0 ### Description We are using a customized Apache Camel Karavan 4.6.0 application as the visual route designer for an enterprise ESB platform. Our backend execution engine runs Apache Camel 4.11.0 with Spring Boot 3.4.2. We have encountered compatibility issues when configuring the **Load Balance EIP**, particularly the Failover and Round Robin load balancing strategies. The YAML definitions generated by our Karavan-based designer appear to be incompatible with the Camel 4.11 runtime, resulting in errors when loading or executing the generated routes. ### Environment - **Karavan Designer:** 4.6.0 (customized) - **Karavan Core:** 4.6.0 - **Apache Camel Runtime:** 4.11.0 - **Spring Boot:** 3.4.2 - **Java:** 21 - **Route Definition Format:** Camel YAML DSL - **Application Type:** Enterprise Service Bus (ESB) ### Steps to Reproduce 1. Open the Karavan visual route designer. 2. Create a route with a `direct` endpoint. 3. Add the Load Balance EIP. 4. Configure a Failover or Round Robin load balancing strategy. 5. Add two or more target endpoints. 6. Export or save the generated Camel YAML route. 7. Load the generated YAML into an Apache Camel 4.11.0 runtime. ### Actual Behavior The generated Load Balance definition appears to be incompatible with the runtime. The route fails during loading or execution, depending on the generated configuration. The exact error message and generated YAML can be provided as additional reproduction details. ### Expected Behavior Karavan should generate a valid Camel YAML DSL definition that can be parsed and executed by the configured Camel runtime. Alternatively, the designer should clearly identify unsupported EIP configurations when the target runtime uses a newer Camel model. ### Initial Technical Findings During our investigation, we identified several potential compatibility differences: **1. Load Balancer naming changes** Camel 4.7 introduced changes to Load Balancer EIP naming conventions in XML and YAML DSL. For example: - `roundRobin` → `roundRobinLoadBalancer` - `random` → `randomLoadBalancer` - `failover` / `failOver` → `failoverLoadBalancer` Our Karavan 4.6 source model appears to retain older property names. **2. Failover error handler configuration** In newer Camel versions, `inheritErrorHandler` belongs to the Failover Load Balancer configuration rather than the parent Load Balance definition. **3. YAML serialization and deserialization** The Karavan model and YAML serialization/deserialization logic may require adjustments to support the newer Load Balance EIP structure. The following source areas appear relevant: - `CamelDefinition.ts` - `CamelMetadata.ts` - `CamelDefinitionApi.ts` - `CamelDefinitionYamlStep.ts` - `CamelDefinitionYaml.ts` ### Questions for the Maintainers 1. Is Karavan 4.6.0 expected to support Load Balance definitions executed by Camel 4.11.0, or is version alignment required? 2. What is the canonical YAML structure for Failover and Round Robin in Camel 4.11.0? 3. Is there a recommended way to update the Karavan EIP model, metadata, and YAML serialization independently? 4. Is there an official migration strategy for projects maintaining customized Karavan versions? 5. Are there existing fixes or commits addressing these Load Balance compatibility changes? ### Additional Context We understand that Karavan 4.6.0 and Camel 4.11.0 are different release versions, and that our Karavan installation contains custom modifications. We are therefore reporting this primarily as a compatibility issue and requesting migration guidance, rather than claiming a confirmed defect in the current upstream Karavan release. Our goal is to maintain the existing customized visual designer while ensuring that its generated route definitions remain compatible with our Camel execution engine. Any recommendations, references, or examples would be greatly appreciated. Thank you for your support. ### Steps to reproduce the behavior 1. Go to '...'a 2. Click on '....' 3. Scroll down to '....' 4. See error ### Variant Web Application ### Container Management (if applicable) _No response_ ### Operating System (if applicable) Linux ### Version 4.8.0 ### Relevant log output ```shell ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
