<?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:sm="http://servicemix.apache.org/config/1.0"
       xmlns:cxfse="http://servicemix.apache.org/cxfse/1.0"
       xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
       xmlns:test="urn:test"
       xmlns:greeter="http://cxf.apache.org/greeter_control">
  
  <sm:container id="jbi" embedded="true">
    
    <sm:endpoints>
      <cxfse:endpoint>
        <cxfse:pojo>
          <bean class="org.apache.servicemix.cxfbc.ws.policy.GreeterImpl" />
        </cxfse:pojo>
        <cxfse:inInterceptors>
          <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
        </cxfse:inInterceptors>
        <cxfse:outInterceptors>
          <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
        </cxfse:outInterceptors>
        <cxfse:inFaultInterceptors>
          <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
        </cxfse:inFaultInterceptors>
        <cxfse:outFaultInterceptors>
          <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
        </cxfse:outFaultInterceptors>
      </cxfse:endpoint>
      <cxfbc:consumer wsdl="/wsdl/greeter_control.wsdl"
                      targetEndpoint="GreeterPort"
                      targetService="greeter:BasicGreeterService"
              targetInterface="greeter:Greeter"
                      busCfg="org/apache/servicemix/cxfbc/ws/policy/addr.xml"
                      >
        <cxfbc:inInterceptors>
          <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
        </cxfbc:inInterceptors>
        <cxfbc:outInterceptors>
          <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
        </cxfbc:outInterceptors>
        <cxfbc:inFaultInterceptors>
          <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
        </cxfbc:inFaultInterceptors>
        <cxfbc:outFaultInterceptors>
          <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
        </cxfbc:outFaultInterceptors>
      </cxfbc:consumer>
    </sm:endpoints>
    
  </sm:container>
  
</beans>
