- Apache Camel - Discussion
- Apache Camel - Useful Resources
- Apache Camel - Quick Guide
- Using Camel with Spring
- Apache Camel - Project
- Apache Camel - Message Queues
- Apache Camel - Components
- Apache Camel - Endpoints
- Apache Camel - CamelContext
- Apache Camel - Architecture
- Apache Camel - Features
- Apache Camel - Overview
- Apache Camel - Introduction
- Apache Camel - Home
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Apache Camel - Endpoints
We have learnt about how the endpoints look pke in our integration code. The expressions that we have used so far such as file:/order, jms:orderQueue, direct:distributeOrderDSL are the endpoints. As you see, they follow the URI specification formats. While evaluating this URI, the CamelContext creates the Endpoint instance; you need not worry about instantiating Endpoint implementation in your DSL.
Taking our earper examples, you specify endpoints in Java DSL as here −
from ("file:/order").to("jms:orderQueue");
And in Spring as here −
<route> <from uri = "file:/order"/> <to uri = "jms:orderQueue"/> </route>
In both the cases, the endpoint is a constant string. In certain cases, you may pke to build this string at runtime. You can do so by using Java String formatter methods. Camel provides another simpler approach to create these URI strings at runtime. For this purpose, Camel provides fromF and toF methods that accept the arguments with the user-specified parameters. The following statement illustrates the use of toF method −
from("direct:distributeOrderDSL”).toF("file://%s?fileName=%s", path, name);
Because of these methods, the need for using the Java built-in String formatter methods is obviated.
Camel uses
language by default to compute the endpoint expression. The Simple language was designed primarily to evaluate Expressions and Predicateswithout bothering much about the intricacies of XPath. For evaluating predicates, you can combine another language such as xpath with the default Simple language. This is done by using the plus sign to separate the other language. The code snippet here shows how to concatenate xpath string to the expression written in Simple.from("direct:start") .toD("jms:${orderQueue}+language:xpath:/order/@id");
In Spring, you can achieve the same as here −
<route> <from uri = "direct:start"/> <toD uri = "jms:${orderQueue}+language:xpath:/order/@id"/> </route>
You may concatenate as many languages as you want, each separated with a plus sign from the previous one. The pst of supported languages can be found
. Advertisements