Camel doesn't compile with error like '[ERROR] CAP#1 extends ProcessorDefinition<CAP#1> from capture of ?)'
Environment
Red Hat JBoss Fuse
Issue
Camel routes in Java DSL will fail to compile sometimes. The error messages can be strange, like '[ERROR] CAP#1 extends ProcessorDefinition<CAP#1> from capture of ?)'.
Resolution
Java DSL is handy, but it can have limitations. Use of conditionals, ('when', 'choice', etc.) can contribute to code that won't compile. Refactor routes (perhaps using direct: subroutes) to simplify the amount of nesting and conditional logic.
Note this text from the Camel doc: "If there is still problems, then you can split your route into multiple routes, and link them together using the Direct component.
There can be some combinations of EIPs that can hit limits in how far we can take the fluent builder DSL with generics you can do in Java programming language (1.7 and below)."
[1] http://camel.apache.org/why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.html
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
