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

    <bean id="acmGenerateCorrespondencePlugin" class="com.armedia.acm.pluginmanager.model.AcmPlugin">
        <property name="pluginName" value="Correspondence Generation Plugin"/>
        <property name="configurationPropertyService" ref="configurationPropertyService"/>
    </bean>

    <bean id="poiWordGenerator" class="com.armedia.acm.correspondence.utils.ParagraphRunPoiWordGenerator">
        <property name="correspondenceService" ref="correspondenceService"/>
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="objectConverter" ref="objectConverter" />
        <property name="mergeFieldManager" ref="correspondenceMergeFieldManager"/>
        <property name="appConfig" ref="applicationProperties"/>
        <property name="contextHolder" ref="acmContextHolder"/>
    </bean>

    <import resource="file:${user.home}/.arkcase/acm/app-config.xml"/>

    <bean id="correspondenceGenerator" class="com.armedia.acm.correspondence.service.CorrespondenceGenerator">
        <property name="spelWordGenerator" ref="poiWordGenerator"/>
        <property name="ecmFileService" ref="ecmFileService"/>
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="correspondenceFolderName" value="${user.home}/.arkcase/acm/correspondenceTemplates"/>
        <property name="springContextHolder" ref="acmContextHolder"/>
        <property name="correspondenceService" ref="correspondenceService"/>
        <property name="lookupDao" ref="lookupDao"/>
        <property name="translationService" ref="translationService"/>
    </bean>

    <bean id="correspondenceService" class="com.armedia.acm.correspondence.service.CorrespondenceServiceImpl">
        <property name="correspondenceGenerator" ref="correspondenceGenerator"/>
        <property name="springContextHolder" ref="acmContextHolder"/>
        <property name="eventPublisher" ref="correspondenceEventPublisher"/>
        <property name="templateManager" ref="correspondenceTemplateManager"/>
        <property name="mergeFieldManager" ref="correspondenceMergeFieldManager"/>
        <property name="notificationService" ref="notificationService"/>
        <property name="templatingEngine" ref="templatingEngine"/>
        <property name="ecmFileVersionDao" ref="ecmFileVersionDao"/>
    </bean>

    <bean id="correspondenceTemplateManager"
          class="com.armedia.acm.services.templateconfiguration.service.CorrespondenceTemplateManager">
        <property name="springContextHolder" ref="acmContextHolder"/>
        <property name="templatesConfiguration"
                  value="file:${user.home}/.arkcase/acm/templates-configuration.json"/>
        <property name="objectConverter" ref="objectConverter"/>
    </bean>

    <bean id="correspondenceEventPublisher" class="com.armedia.acm.correspondence.service.CorrespondenceEventPublisher"/>
</beans>
