Configuring Camel endpoints
The Spring configuration is used for configuring Camel routes.
Two types of endpoints are used in the Camel route, namely 'from' and 'to'.
- the 'from' endpoint is preconfigured in FEJ and must be the following: "<from uri="direct:routingRule"/>". It is used by the Camel destination endpoint for sending messages handled in Groovy rules.
- 'to' endpoints can be as many as required. They are implemented in Camel and can be found in the official Camel documentation.
For correct CamelTA work it is needed to place corresponding (depending on 'to" endpoint type) camel library to FEJ bin folder.
For saving data to file using CamelTA use lib from Maven Repository: org.apache.camel » camel-file
The configuration is located in the sysconf/fej-camel-context.xml file and has the following structure:
Example of sysconf/fej-camel-context.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <context:component-scan base-package="com.epam.fej.camel"/> <camelContext id="<context_id>" xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="direct:routingRule"/> <to uri="google-pubsub://<project_id>:<topic_name>"/> <to uri="kafka:<topic_name>?brokers=<ip>:<port>"/> </route> </camelContext> </beans>
Where <context_id> is a configuration identification that is used in Groovy rules that route the messages.
Example of configuration:
Example of sysconf/fej-camel-context.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <context:component-scan base-package="com.epam.fej.camel"/> <camelContext id="google_pub_sub_news" xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="direct:routingRule"/> <bean ref="sohToBarProcessor" method="process"/> <to uri="google-pubsub://or2-msq-epm-bfix-t1iylu:NewsMessages"/> <to uri="kafka:NewsMessages?brokers=localhost:9092"/> </route> </camelContext> <camelContext id="google_pub_sub_orders" xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="direct:routingRule"/> <to uri="google-pubsub://or2-msq-epm-bfix-t1iylu:OrderMessages"/> </route> </camelContext> </beans>
 Each specified Camel configuration should be started by the Scheduler.