<?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">
  
  
    <!-- Endpoint Level Interceptors-->
    <!-- Inserted From JaxWsEndpointImpl, EndpointImpl-->
    <bean id="wrapperClassIn" class="org.apache.cxf.jaxws.interceptors.WrapperClassInInterceptor"/>
    <bean id="wrapperClassOut" class="org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor"/>
    <bean id="holderIn" class="org.apache.cxf.jaxws.interceptors.HolderInInterceptor"/>
    <bean id="holderOut" class="org.apache.cxf.jaxws.interceptors.HolderOutInterceptor"/>
    <bean id="clientFaultConv" class="org.apache.cxf.interceptor.ClientFaultConverter"/>
    <bean id="messageSender" class="org.apache.cxf.interceptor.MessageSenderInterceptor"/>
    <!-- Cannot use via config -->
    <!--
    <bean id="soapHandler" class="org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor"/>
    <bean id="logicalHandler" class="org.apache.cxf.jaxws.handler.LogicalHandlerInterceptor"/>
    -->
    
    <!-- WSA Interceptors-->
    <bean id="mapAggregator" class="org.apache.cxf.ws.addressing.MAPAggregator"/>
    <bean id="mapCodec" class="org.apache.cxf.ws.addressing.soap.MAPCodec"/>

    <!-- WS-RM Interceptors-->
    <bean id="rmLogicalOut" class="org.apache.cxf.ws.rm.RMOutInterceptor">
        <property name="bus" ref="cxf"/>
    </bean>
    <bean id="rmLogicalIn" class="org.apache.cxf.ws.rm.RMInInterceptor">
        <property name="bus" ref="cxf"/>
    </bean>
    <bean id="rmCodec" class="org.apache.cxf.ws.rm.soap.RMSoapInterceptor"/>

    <!-- Logging and Utility Interceptor-->
    <bean id="logInbound" class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
    <bean id="logOutbound" class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>

    <!--WS-A Interceptors not required in Fault Chain-->
    <bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl">
        <property name="inInterceptors">
            <list>
                <ref bean="rmLogicalIn"/>
                <ref bean="rmCodec"/>
                <ref bean="mapAggregator"/>
                <ref bean="mapCodec"/>
                <ref bean="wrapperClassIn"/>
                <ref bean="holderIn"/>
            </list>
        </property>
        <property name="inFaultInterceptors">
            <list>
                <ref bean="clientFaultConv"/>
            </list>
        </property>
        <property name="outInterceptors">
            <list>
                <ref bean="rmLogicalOut"/>
                <ref bean="rmCodec"/>
                <ref bean="mapAggregator"/>
                <ref bean="mapCodec"/>
                <ref bean="wrapperClassOut"/>
                <ref bean="holderOut"/>
                <ref bean="messageSender"/>
            </list>
        </property>
        <property name="outFaultInterceptors">
            <list>
                <ref bean="rmLogicalOut"/>
                <ref bean="rmCodec"/>
                <ref bean="mapAggregator"/>
                <ref bean="mapCodec"/>
                <ref bean="messageSender"/>
            </list>
        </property>
    </bean> 

</beans>
