<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
    xmlns:sec="http://cxf.apache.org/configuration/security" xmlns:wsa="http://cxf.apache.org/ws/addressing"
    xmlns:p="http://www.springframework.org/schema/p" xmlns:http="http://cxf.apache.org/transports/http/configuration"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://cxf.apache.org/ws/addressing http://cxf.apache.org/schemas/ws-addr-conf.xsd
    http://cxf.apache.org/configuration/security http://cxf.apache.org/schemas/configuration/security.xsd
    http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd
    http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
    
    <!-- service locators: TODO: parameterize via properties -->
    <bean id="lookupLocator" class="eu.dnetlib.enabling.tools.StaticServiceLocator"
        p:service-ref="isLookUpService" />
    
    <!-- common service resolution chain -->
    <bean id="serviceResolver" class="eu.dnetlib.enabling.tools.ServiceResolverChain">
        <property name="resolvers">
            <list>
                <bean id="jaxwsServiceResolver" class="eu.dnetlib.enabling.tools.JaxwsServiceResolverImpl" />
            </list>
        </property>
    </bean>
    
    <bean id="jobScheduler"
        class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
        destroy-method="destroy">
        <property name="jobFactory">
            <bean id="jobSchedulerFactory"
                class="org.springframework.scheduling.quartz.SpringBeanJobFactory" />
        </property>
    </bean>

    
    <bean id="registryLocator" class="eu.dnetlib.enabling.tools.DynamicServiceLocator"
        p:clazz="eu.dnetlib.enabling.is.registry.rmi.ISRegistryService"
        p:lookUpLocator-ref="lookupLocator" p:serviceResolver-ref="serviceResolver" />
    
    <bean id="snLocator" class="eu.dnetlib.enabling.tools.DynamicServiceLocator"
        p:clazz="eu.dnetlib.enabling.is.sn.rmi.ISSNService"
        p:lookUpLocator-ref="lookupLocator" p:serviceResolver-ref="serviceResolver" />
    
    <jaxws:client id="isLookUpService"
        serviceClass="eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService"
        address="${services.is.lookup.url}" />
    
    <bean id="uuidGenerator" class="eu.dnetlib.enabling.tools.UniqueIdentifierGeneratorImpl" />
    
    <alias name="cxfEndpointReferenceBuilder" alias="eprBuilder" />
</beans>