<?xml version="1.0" encoding="UTF-8"?>
<!--
                Licensed to the v 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:simple="http://cxf.apache.org/simple" xmlns:soap="http://cxf.apache.org/bindings/soap" xsi:schemaLocation="            http://www.springframework.org/schema/beans               http://www.springframework.org/schema/beans/spring-beans.xsd            http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd            http://cxf.apache.org/simple http://cxf.apache.org/schemas/simple.xsd">
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
    <import resource="classpath:META-INF/cxf/cxf.xml"/>
    <simple:server id="aegis-service" serviceClass="org.apache.cxf.javascript.fortest.AegisService" address="http://localhost:${testutil.ports.TestPort}/aegis">
        <simple:serviceBean>
            <bean class="org.apache.cxf.javascript.fortest.AegisServiceImpl"/>
        </simple:serviceBean>
        <simple:dataBinding>
            <bean class="org.apache.cxf.aegis.databinding.AegisDatabinding">
                <property name="overrideTypes">
                    <list>
                        <value>org.apache.cxf.javascript.fortest.aegis.Mammal</value>
                    </list>
                </property>
            </bean>
        </simple:dataBinding>
        <simple:serviceFactory>
            <bean class="org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean">

                        </bean>
        </simple:serviceFactory>
    </simple:server>
</beans>
