<?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.
-->
<wsdl:definitions name="HelloWorldImplService" 
                  targetNamespace="http://cxf.examples.servicemix.apache.org/" 
                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
                  xmlns:tns="http://cxf.examples.servicemix.apache.org/" 
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:jms="http://cxf.apache.org/transports/jms">
    <wsdl:types>
        <xsd:schema attributeFormDefault="unqualified" 
                    elementFormDefault="unqualified" 
                    targetNamespace="http://cxf.examples.servicemix.apache.org/" 
                    xmlns:tns="http://cxf.examples.servicemix.apache.org/" 
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <xsd:element name="sayHi" type="tns:sayHi" />
            <xsd:complexType name="sayHi">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="arg0" type="xsd:string" />
                </xsd:sequence>
            </xsd:complexType>
            <xsd:element name="sayHiResponse" type="tns:sayHiResponse" />
            <xsd:complexType name="sayHiResponse">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="return" type="xsd:string" />
                </xsd:sequence>
            </xsd:complexType>
        </xsd:schema>
    </wsdl:types>
    <wsdl:message name="sayHiResponse">
        <wsdl:part element="tns:sayHiResponse" name="parameters">
        </wsdl:part>
    </wsdl:message>
    <wsdl:message name="sayHi">
        <wsdl:part element="tns:sayHi" name="parameters">
        </wsdl:part>
    </wsdl:message>
    <wsdl:portType name="HelloWorld">
        <wsdl:operation name="sayHi">
            <wsdl:input message="tns:sayHi" name="sayHi">
            </wsdl:input>
            <wsdl:output message="tns:sayHiResponse" name="sayHiResponse">
            </wsdl:output>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="HelloWorldImplServiceSoapBinding" type="tns:HelloWorld">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
        <wsdl:operation name="sayHi">
            <soap:operation soapAction="" style="document" />
            <wsdl:input name="sayHi">
                <soap:body use="literal" />
            </wsdl:input>
            <wsdl:output name="sayHiResponse">
                <soap:body use="literal" />
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="HelloWorldImplService">
        <wsdl:port binding="tns:HelloWorldImplServiceSoapBinding" name="HelloWorldImplPort">
            <jms:address
                   jndiConnectionFactoryName="ConnectionFactory"
                   jndiDestinationName="dynamicQueues/test.jmstransport.text">                    <jms:JMSNamingProperty name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>
                   <jms:JMSNamingProperty name="java.naming.provider.url" value="tcp://localhost:61616"/>
            </jms:address>

            <jms:server durableSubscriberName="CXF_subscriber"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
