<?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:cxf="http://camel.apache.org/schema/cxf"
 xmlns:s="http://camel.apache.org/wsdl-first"
 xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd
       http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
    ">
  <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>

  <cxf:cxfEndpoint id="consumerEndpoint" 
    address="http://localhost:${CXFTestSupport.port1}/CxfConsumerPayloadFaultCauseEnabledTest/PersonService"
    endpointName="s:soap"
    serviceName="s:PersonService"
    wsdlURL="classpath:person.wsdl">
    <cxf:properties>
      <entry key="dataFormat" value="PAYLOAD"/>
      <entry key="exceptionMessageCauseEnabled" value="true"/>
    </cxf:properties>
  </cxf:cxfEndpoint>

  </beans>
