Currently I try to get deeper into Apache Camel. As you know there are at least two ways to describe the routes: the Java DSL and the XML-configuration.
The developers of Camel recommend to use the Java DSL because i.e. it has the benefit that it better integrates into the IDE. Another benefit is, that you can enrich the Java DSL with your own code without writing complex class structures. This seems necessary if XML-configuration is taken.
What do you think are the advantages and disadvantages of routes defined in an xml-file? When to use xml-files for definition of routes and when to use Java DSL?
It depends on your requirements a bit, but in almost every case, I prefer the Java DSL for the following reasons:
If you use the Java DSL you can leverage your IDE's refactoring tools and compile time checks.
On the other hand if you use xml files you can externalize the entire camel routing and re-route stuff without redeploying the application.
If you start using spring you will most likely come to a point where you need to implement an Processor or something else. You will need custom code at some point. After this you have a mix of java and xml in your code - maintenance horror.
beside this java is:
to get the most out of it i would also suggest to minimize configuration of endpoints with strings. So instead of creating and configuring endpoints this way:
from("file:/someFolder?delete=true")
i suggest do create/configure the endpoint separately:
Endpoint fileEndpoint= context.getEndpoint("file:" + folder.getPath(), FileEndpoint.class);
fileEndpoint.setDelete(true);
This is less error prone than fiddling around strings.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With