Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

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