All Downloads are FREE. Search and download functionalities are using the official Maven repository.

OSGI-INF.blueprint.cbr.xml Maven / Gradle / Ivy

Go to download

Apache Camel Content-Based Router Example running in simulated standalone OSGi container (POJOsr)

There is a newer version: 2.2.0
Show newest version
<?xml version="1.0"?>
<!--

     Copyright 2005-2014 Red Hat, Inc.

     Red Hat licenses this file to you under the Apache License, version
     2.0 (the "License"); you may not use this file except in compliance
     with the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
     implied.  See the License for the specific language governing
     permissions and limitations under the License.

-->
<!--
   This is the OSGi Blueprint XML file defining the Camel context and routes.  Because the file is in the
   OSGI-INF/blueprint directory inside our JAR, it will be automatically activated as soon as the bundle is installed.

   The root element for any OSGi Blueprint file is 'blueprint' - you also see the namespace definitions for both the Blueprint
   and the Camel namespaces.
-->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
             http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
             http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">

    <!--
      The namespace for the camelContext element in Blueprint is 'http://camel.apache.org/schema/blueprint'. Additionally,
      we can also define namespace prefixes we want to use them in the XPath expressions in our CBR.

      While it is not required to assign id's to the <camelContext/> and <route/> elements, it is a good idea
      to set those for runtime management purposes (logging, JMX MBeans, ...)
    -->
    <camelContext xmlns="http://camel.apache.org/schema/blueprint" xmlns:order="http://fusesource.com/examples/order/v7"
        id="cbr-example-context">

        <!--
          When this route is started, it will automatically create the work/cbr/input directory where you can drop the
          file that need to be processed.

          The <log/> elements are used to add human-friendly business logging statements. They make it easier to see what the
          route is doing.

          The <choice/> element contains the content based router. The two <when/> clauses use XPath to define the criteria 
          for entering that part of the route. When the country in the XML message is set to UK or US, the file will be 
          moved to a directory for that country. The <otherwise/> element ensures that any file that does not meet the 
          requirements for either of the <when/> elements will be moved to the work/cbr/output/others directory.
        -->
        <route id="cbr-route">
            <from uri="file:work/cbr/input" />
            <log message="Receiving order ${file:name}" />
            <choice>
                <when>
                    <xpath>/order:order/order:customer/order:country = 'UK'</xpath>
                    <log message="Sending order ${file:name} to the UK" />
                    <to uri="file:work/cbr/output/uk" />
                </when>
                <when>
                    <xpath>/order:order/order:customer/order:country = 'US'</xpath>
                    <log message="Sending order ${file:name} to the US" />
                    <to uri="file:work/cbr/output/us" />
                </when>
                <otherwise>
                    <log message="Sending order ${file:name} to another country" />
                    <to uri="file:work/cbr/output/others" />
                </otherwise>
            </choice>
            <log message="Done processing ${file:name}" />
        </route>
    </camelContext>

</blueprint>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy