Page tree
Skip to end of metadata
Go to start of metadata

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.

The configuration is located in the conf/fej-camel-context.xml file and has the following structure:

Example of 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>

<context_id> is a configuration identification that is used in Groovy rules that routes the messages.

Example of configuration:

Example of 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>

NOTE: Please bear in mind that each specified Camel configuration should be started by the Scheduler.

  • No labels