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

  <bean id="myFail" class="java.lang.IllegalArgumentException">
    <constructor-arg index="0" value="Damn"/>
  </bean>

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

    <errorHandler type="DeadLetterChannel" id="myDLC" deadLetterUri="mock:dead"/>

    <route errorHandlerRef="myDLC">
      <from uri="direct:foo"/>
      <to uri="mock:foo"/>
      <throwException ref="myFail"/>
    </route>

    <route errorHandlerRef="myDLC">
      <from uri="direct:start"/>
      <onException>
        <exception>java.lang.IllegalArgumentException</exception>
        <handled>
          <constant>true</constant>
        </handled>
        <to uri="mock:handled"/>
      </onException>
      <to uri="mock:a"/>
      <throwException ref="myFail"/>
    </route>

  </camelContext>

</beans>
