<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF 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.

-->
<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 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

  <camelContext id="TransformerBlueprint" xmlns="http://camel.apache.org/schema/blueprint">

    <!-- START SNIPPET: e1 -->
    <transformers>
        <endpointTransformer uri="xslt:transform.xsl" fromType="xml:MyRequest" toType="xml:MyResponse"/>
    </transformers>
    <!-- END SNIPPET: e1 -->

    <!-- START SNIPPET: e2 -->
    <route id="timer-route">
      <from uri="timer:foo?period=5000"/>
      <log message="start --&gt;"/>
      <setBody><constant>&lt;MyRequest&gt;foobar&lt;/MyRequest&gt;</constant></setBody>
      <log message="--&gt; Sending:[${body}]"/>
      <to uri="direct:a"/>
      <log message="--&gt; Received:[${body}]"/>
      <log message="&lt;-- end"/>
    </route>
    <!-- END SNIPPET: e2 -->

    <!-- START SNIPPET: e3 -->
    <route id="xslt-route">
      <from uri="direct:a"/>
      <inputType urn="xml:MyRequest"/>
      <outputType urn="xml:MyResponse"/>
      <log message="----&gt; Received:[${body}]"/>
    </route>
    <!-- END SNIPPET: e3 -->

  </camelContext>
  
</blueprint>
