#
# 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:
    - name: "greetingBean"
      type: "org.apache.camel.quarkus.main.GreetingBean"
      properties:
        greeting: "Hello World!"
- beans:
    - name: "errorBean"
      type: "org.apache.camel.quarkus.main.ErrorBean"

- onException:
    handled:
      constant: "true"
    exception:
      - "org.apache.camel.quarkus.main.CustomException"
    steps:
      - transform:
          constant: "Sorry something went wrong"

- route:
    id: "my-yaml-route"
    from:
      uri: "direct:start"
      steps:
        - choice:
            when:
              - simple: "${header.forceFailure} == 'true'"
                steps:
                  - throwException:
                      exceptionType: "org.apache.camel.quarkus.main.CustomException"
                      message: "Forced custom exception"
            otherwise:
              steps:
                - to: "bean:greetingBean?method=greet"

- route:
    id: "my-yaml-route2"
    from:
      uri: "direct:tryCatch"
      steps:
        - doTry:
            steps:
              - to: "bean:errorBean"
            doCatch:
              - exception:
                  - "org.apache.camel.quarkus.main.CustomException"
                steps:
                  - transform:
                      constant: "do-catch caught an exception"

- route:
    id: "my-yaml-route3"
    from:
      uri: "direct:greetFromJavaBean"
      steps:
        - to: "bean:myGreetingBean?method=greet"

