<?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.
-->
<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"
	   xmlns:camel="http://camel.apache.org/schema/spring"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
	   http://camel.apache.org/schema/osgi
	   http://camel.apache.org/schema/osgi/camel-osgi.xsd
	   http://camel.apache.org/schema/spring
	   http://camel.apache.org/schema/spring/camel-spring.xsd
    ">

  <camel:camelContext trace="true" xmlns="http://camel.apache.org/schema/osgi">
    <camel:route>
      <camel:description>This is an example route which you can start, stop and modify</camel:description>
       <camel:from uri="seda:foo"/>
       <camel:to uri="mock:results"/>
    </camel:route>
  </camel:camelContext>

</beans>
