<?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">

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

    <routeConfiguration id="handleError">
      <onException>
        <exception>java.lang.Exception</exception>
        <handled>
          <constant>true</constant>
        </handled>
        <to uri="mock:error"/>
      </onException>
    </routeConfiguration>

    <route>
      <from uri="direct:start"/>
      <throwException exceptionType="java.lang.IllegalArgumentException" message="Foo"/>
    </route>

    <route routeConfigurationId="handleError">
      <from uri="direct:start2"/>
      <throwException exceptionType="java.lang.IllegalArgumentException" message="Foo2"/>
    </route>

  </camelContext>

</blueprint>
