<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

    <bean id="formResource" class="com.armedia.acm.frevvo.config.FrevvoFormUrl">
        <property name="properties" ref="acm-forms-properties"/>
        <property name="plainFormProperties" ref="plainFormProperties"/>
        <property name="authenticationTokenService" ref="authenticationTokenService"/>
    </bean>

    <!--
    <bean id="formResource" class="com.armedia.acm.orbeon.config.OrbeonFormUrl">
        <property name="formProperties" ref="acm-forms-properties"/>
    </bean>
     -->

    <bean id="acm-forms-properties" class="com.armedia.acm.reloadproperties.beans.AcmReloadablePropertiesFactoryBean">
        <property name="location" value="file:${user.home}/.arkcase/acm/acm-forms.properties"/>
    </bean>

    <bean id="frevvoService" class="com.armedia.acm.frevvo.config.FrevvoServiceImpl">
        <property name="formUrl" ref="formResource"/>
    </bean>

    <bean id="frevvoFormService" class="com.armedia.acm.frevvo.config.FrevvoFormAbstractService" abstract="true">
        <property name="objectAssociationDao" ref="objectAssociationDao"/>
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="ecmFileService" ref="ecmFileService"/>
        <property name="folderAndFilesUtils" ref="folderAndFilesUtils"/>
        <property name="properties" ref="acm-form-properties"/>
        <property name="authenticationTokenService" ref="authenticationTokenService"/>
        <property name="userDao" ref="userJpaDao"/>
        <property name="userActionDao" ref="userActionDao"/>
        <property name="userActionExecutor" ref="userActionExecutor"/>
        <property name="functionalAccessService" ref="functionalAccessService"/>
        <property name="searchResults" ref="searchResults"/>
        <property name="lookupDao" ref="lookupDao"/>
        <property name="translationService" ref="translationService"/>
        <property name="objectConverter" ref="objectConverter"/>
    </bean>

    <bean id="formsTypeManagementService" class="com.armedia.acm.form.config.FormsTypeManagementService">
        <property name="formsTypeConfig" ref="formsTypeConfig"/>
        <property name="objectConverter" ref="objectConverter"/>
        <property name="configurationPropertyService" ref="configurationPropertyService"/>
    </bean>

    <bean id="formsTypeCheckService" class="com.armedia.acm.form.config.FormsTypeCheckService">
        <property name="formsTypeManagementService" ref="formsTypeManagementService"/>
    </bean>

    <bean id="formsTypeConfig" class="com.armedia.acm.form.config.FormsTypeConfig" scope="refresh">
        <aop:scoped-proxy/>
    </bean>

</beans>