<?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="complaintExceptionResolver" class="org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver"/>

    <bean id="acmActivitiEventListener" class="com.armedia.acm.plugins.complaint.service.TestActivitiEventListener"/>

    <bean id="acmActivitiEntityEventListener" class="com.armedia.acm.plugins.complaint.service.TestActivitiEntityEventListener"/>

    <bean id="expiredUrl" class="java.lang.String">
        <constructor-arg value="/expiredUrl"/>
    </bean>

    <bean id="configList" class="java.util.ArrayList">
        <constructor-arg>
            <list/>
        </constructor-arg>
    </bean>

    <bean id="caseConfig" class="com.armedia.acm.plugins.casefile.model.CaseFileConfig"/>

    <bean id="emailSenderConfig" class="com.armedia.acm.email.model.EmailSenderConfig"/>

    <bean id="emailReceiverConfig" class="com.armedia.acm.email.model.EmailReceiverConfig"/>

    <bean id="acmApplication" class="com.armedia.acm.core.AcmApplication"/>

    <bean id="billingInvoiceDocumentGenerator"
          class="com.armedia.acm.plugins.billing.service.BillingInvoiceDocumentGenerator">
        <property name="billingService" ref="billingService"/>
        <property name="ecmFileService" ref="ecmFileService"/>
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="billingInvoiceDao" ref="billingInvoiceDao"/>
        <property name="pdfService" ref="pdfService"/>
        <property name="fileConfigurationService" ref="fileConfigurationServiceImpl"/>
        <property name="configurationClientConfig" ref="configurationClientConfig"/>
    </bean>

    <bean id="billingInvoiceEmailSenderService"
          class="com.armedia.acm.plugins.billing.service.BillingInvoiceEmailSenderService">
        <property name="billingService" ref="billingService"/>
        <property name="notificationSender" ref="notificationSender"/>
        <property name="notificationDao" ref="notificationDao"/>
        <property name="fileService" ref="ecmFileService"/>
        <property name="templateManager" ref="correspondenceTemplateManager"/>
    </bean>


    <bean id="processMailService" class="com.armedia.acm.services.email.service.AcmProcessMailServiceImpl">
        <property name="acmFolderService" ref="acmFolderService"/>
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="emailSenderConfigurationService" class="com.armedia.acm.services.email.sender.service.EmailSenderConfigurationServiceImpl">
        <property name="emailSenderConfig" ref="emailSenderConfig"/>
        <property name="configurationPropertyService" ref="configurationPropertyService"/>
    </bean>

    <bean id="emailReceiverConfigurationService"
          class="com.armedia.acm.services.email.receiver.service.EmailReceiverConfigurationServiceImpl">
        <property name="configurationPropertyService" ref="configurationPropertyService"/>
        <property name="emailReceiverConfig" ref="emailReceiverConfig"/>
    </bean>

    <bean id="filesystemTemplateConfigurationService"
          class="com.armedia.acm.services.email.service.AcmFilesystemMailTemplateConfigurationService">
        <property name="templateFolderPath" value="${user.home}/.arkcase/acm/templates"/>
    </bean>

    <bean id="configurableEmailSenderService" class="com.armedia.acm.services.email.service.AcmConfigurableEmailSenderService">
        <property name="emailSenderMap">
            <map>
                <entry key="smtp" value-ref="smtpService"></entry>
                <entry key="outlook" value-ref="outlookService"></entry>
            </map>
        </property>
        <property name="emailSenderConfigurationService" ref="emailSenderConfigurationService"/>
    </bean>

    <bean id="acmEmailContentGeneratorService" class="com.armedia.acm.services.email.service.AcmEmailContentGeneratorService">
        <property name="authenticationTokenService" ref="authenticationTokenService"/>
        <property name="authenticationTokenDao" ref="authenticationTokenDao"/>
        <property name="templatingEngine" ref="templatingEngine"/>
        <property name="ecmFileDao" ref="ecmFileDao"/>
    </bean>

    <bean id="templatingEngine" class="com.armedia.acm.services.templateconfiguration.TemplatingEngine">
        <property name="applicationConfig" ref="applicationProperties"/>
    </bean>


    <bean id="phoneRegexConfig" class="com.armedia.acm.plugins.addressable.service.PhoneRegexConfig"/>

    <bean id="alfrescoSyncConfig" class="com.armedia.acm.plugins.ecm.service.sync.AlfrescoSyncConfig"/>

    <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
        <property name="caches">
            <set>
                <bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean">
                    <property name="name" value="default"/>
                </bean>
            </set>
        </property>
    </bean>
    <bean id="authenticationTokenDao" class="com.armedia.acm.services.authenticationtoken.dao.AuthenticationTokenDao"/>

</beans>