<?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:jaxws="http://cxf.apache.org/jaxws"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.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
    ">

    <import resource="classpath:META-INF/cxf/cxf.xml"/>
    
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
    
    <jaxws:endpoint id="greeter" 
	  implementor="org.apache.camel.itest.greeter.GreeterImpl" 
	  address="http://localhost:${JmsToCxfInOutTest.port}/SoapContext/SoapPort"
      endpointName="s:SoapOverHttp"
      serviceName="s:SOAPService"
      xmlns:s="http://apache.org/hello_world_soap_http"/>
	  

    <cxf:cxfEndpoint id="serviceEndpoint" address="http://localhost:${JmsToCxfInOutTest.port}/SoapContext/SoapPort"
                     wsdlURL="wsdl/hello_world.wsdl"
                     serviceClass="org.apache.hello_world_soap_http.Greeter"
                     endpointName="s:SoapOverHttp"
                     serviceName="s:SOAPService"
                     xmlns:s="http://apache.org/hello_world_soap_http">
    </cxf:cxfEndpoint>
    

    <bean id="jms" class="org.apache.camel.component.activemq.ActiveMQComponent">
      <property name="connectionFactory">
        <bean class="org.apache.activemq.spring.ActiveMQConnectionFactory">
          <property name="brokerURL" value="vm://localhost?broker.persistent=false"/>
          <property name="trustAllPackages" value="true"/>
        </bean>
      </property>
    </bean>

    <camelContext xmlns="http://camel.apache.org/schema/spring">
        <route>
            <from uri="jms:queue:bridge.cxf"/>
            <to uri="log:jms"/>
            <to uri="cxf://bean:serviceEndpoint"/>
        </route>

    </camelContext>

</beans>
