<?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="ecmFileDao" class="com.armedia.acm.plugins.ecm.dao.EcmFileDao"/>

    <bean id="acmContainerFolderDao" class="com.armedia.acm.plugins.ecm.dao.AcmContainerDao">
        <property name="fileParticipantService" ref="fileParticipantService"/>
    </bean>

    <bean id="acmFolderDao" class="com.armedia.acm.plugins.ecm.dao.AcmFolderDao"/>

    <bean id="ecmFileVersionDao" class="com.armedia.acm.plugins.ecm.dao.EcmFileVersionDao"/>

    <bean id="fileParticipantsThreadPoolTaskExecutor" class="com.armedia.acm.web.api.MDCThreadPoolTaskExecutor">
        <property name="corePoolSize" value="5"/>
        <property name="threadPriority" value="1"/>
        <property name="waitForTasksToCompleteOnShutdown" value="true"/>
    </bean>

    <bean id="fileParticipantServiceHelper" class="com.armedia.acm.plugins.ecm.utils.EcmFileParticipantServiceHelper">
        <property name="fileDao" ref="ecmFileDao"/>
        <property name="folderDao" ref="acmFolderDao"/>
        <property name="auditPropertyEntityAdapter" ref="auditPropertyEntityAdapter"/>
        <property name="externalAuthenticationUtils" ref="externalAuthenticationUtils"/>
        <property name="arkPermissionEvaluator" ref="arkPermissionEvaluator"/>
    </bean>

    <bean id="xSync" class="com.antkorwin.xsync.XSync"/>

    <bean id="fileParticipantService" class="com.armedia.acm.plugins.ecm.service.impl.EcmFileParticipantService">
        <property name="fileDao" ref="ecmFileDao"/>
        <property name="folderDao" ref="acmFolderDao"/>
        <property name="folderService" ref="acmFolderService"/>
        <property name="participantService" ref="acmParticipantService"/>
        <property name="fileParticipantServiceHelper" ref="fileParticipantServiceHelper"/>
        <property name="ecmFileConfig" ref="ecmFileConfig"/>
        <property name="externalAuthenticationUtils" ref="externalAuthenticationUtils"/>
        <property name="xSync" ref="xSync"/>
        <property name="auditPropertyEntityAdapter" ref="auditPropertyEntityAdapter"/>
    </bean>

    <bean id="entityParticipantsChangedEventListener"
        class="com.armedia.acm.plugins.ecm.service.EntityParticipantsChangedEventListener">
        <property name="fileParticipantService" ref="fileParticipantService"/>
        <property name="executor" ref="fileParticipantsThreadPoolTaskExecutor"/>
        <property name="auditPropertyEntityAdapter" ref="auditPropertyEntityAdapter"/>
    </bean>

    <bean id="fileParticipantsChangedEventListener"
        class="com.armedia.acm.plugins.ecm.service.FileParticipantChangedEventListener">
        <property name="alfrescoSyncConfig" ref="alfrescoSyncConfig"/>
        <property name="changedParticipantToJmsSender" ref="changedParticipantToJmsSender"/>
    </bean>

    <bean id="folderParticipantsChangedEventListener"
        class="com.armedia.acm.plugins.ecm.service.FolderParticipantChangedEventListener">
        <property name="alfrescoSyncConfig" ref="alfrescoSyncConfig"/>
        <property name="changedParticipantToJmsSender" ref="changedParticipantToJmsSender"/>
    </bean>

    <bean id="folderDataAccessUpdateLocator"
        class="com.armedia.acm.plugins.ecm.service.impl.FolderDataAccessUpdateLocator">
        <property name="folderDao" ref="acmFolderDao"/>
    </bean>

    <!-- Bactes Capture folder handler to drop non-pdf files to the Ephesoft shared hot folder -->
    <bean id="captureFolderHandler" class="com.armedia.acm.plugins.ecm.service.impl.SendForPdfConversionImpl">
        <property name="captureConfig" ref="captureConfig"/>
    </bean>

    <!-- Camel Utility Bean for downloading, updating, adding files -->
    <bean id="ecmFileCamelUtils" class="com.armedia.acm.plugins.ecm.utils.EcmFileCamelUtils">
        <property name="camelContextManager" ref="camelContextManager"/>
        <property name="cmisConfigUtils" ref="cmisConfigUtils"/>
    </bean>

    <!-- Bactes specific pipeline pre save handlers -->
    <bean id="ecmFileMergeHandler" class="com.armedia.acm.plugins.ecm.pipeline.presave.EcmFileMergeHandler">
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="folderAndFilesUtils" ref="folderAndFilesUtils"/>
        <property name="ecmFileCamelUtils" ref="ecmFileCamelUtils"/>
        <property name="captureConfig" ref="captureConfig"/>
    </bean>
    <bean id="ecmFileMergedContentHandler"
        class="com.armedia.acm.plugins.ecm.pipeline.presave.EcmFileMergeContentHandler">
        <property name="ecmFileCamelUtils" ref="ecmFileCamelUtils"/>
    </bean>
    <bean id="ecmFileNewContentHandler" class="com.armedia.acm.plugins.ecm.pipeline.presave.EcmFileNewContentHandler">
        <property name="ecmFileCamelUtils" ref="ecmFileCamelUtils"/>
        <property name="progressIndicatorService" ref="progressIndicatorService"/>
    </bean>
    <bean id="ecmFileNewMetadataHandler" class="com.armedia.acm.plugins.ecm.pipeline.presave.EcmFileNewMetadataHandler">
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="folderDao" ref="acmFolderDao"/>
        <property name="pageCountService" ref="pageCountService"/>
    </bean>
    <bean id="ecmFileMergedMetadataHandler"
        class="com.armedia.acm.plugins.ecm.pipeline.presave.EcmFileMergedMetadataHandler">
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="folderDao" ref="acmFolderDao"/>
        <property name="pageCountService" ref="pageCountService"/>

    </bean>
    <bean id="ecmFileSendForPdfConversionHandler"
        class="com.armedia.acm.plugins.ecm.pipeline.presave.EcmFileSendForPdfConversionHandler">
        <property name="captureFolderService" ref="captureFolderHandler"/>
        <property name="captureConfig" ref="captureConfig"/>
    </bean>
    <bean id="ecmFileUpdateContentHandler"
        class="com.armedia.acm.plugins.ecm.pipeline.presave.EcmFileUpdateContentHandler">
        <property name="ecmFileCamelUtils" ref="ecmFileCamelUtils"/>
    </bean>
    <bean id="ecmFileUpdateMetadataHandler"
        class="com.armedia.acm.plugins.ecm.pipeline.presave.EcmFileUpdateMetadataHandler">
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="folderDao" ref="acmFolderDao"/>
        <property name="pageCountService" ref="pageCountService"/>
    </bean>
    <bean id="ecmFileParticipantsHandler"
        class="com.armedia.acm.plugins.ecm.pipeline.postsave.EcmFileParticipantsHandler">
        <property name="fileParticipantService" ref="fileParticipantService"/>
    </bean>
    <bean id="fileUploadConversionHandler" class="com.armedia.acm.plugins.ecm.pipeline.postsave.FileUploadConversionHandler"
        scope="refresh">
        <aop:scoped-proxy/>
        <property name="fileConverterFactory" ref="fileConverterFactory"/>
        <property name="ecmFileService" ref="ecmFileService"/>
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="acmFolderService" ref="acmFolderService"/>
    </bean>
    <!-- This pipeline uploads document content to Alfresco and the metadata to the acm3 database -->
    <bean id="ecmFileUploadPipelineManager" class="com.armedia.acm.services.pipeline.PipelineManager">
        <property name="preSaveHandlers">
            <list>
                <!--<ref bean="ecmFileMergeHandler"/>-->
                <!--<ref bean="ecmFileMergedContentHandler"/>-->
                <ref bean="ecmFileNewContentHandler"/>
                <ref bean="ecmFileNewMetadataHandler"/>
                <!--<ref bean="ecmFileMergedMetadataHandler"/>-->
                <!--<ref bean="ecmFileSendForPdfConversionHandler"/>-->
            </list>
        </property>
        <property name="postSaveHandlers">
            <list>
                <ref bean="ecmFileParticipantsHandler"/>
                <ref bean="fileUploadConversionHandler"/>
            </list>
        </property>
    </bean>

    <!-- This pipeline updates document content to Alfresco and the metadata to the acm3 database -->
    <bean id="ecmFileUpdatePipelineManager" class="com.armedia.acm.services.pipeline.PipelineManager">
        <property name="preSaveHandlers">
            <list>
                <ref bean="ecmFileUpdateContentHandler"/>
                <ref bean="ecmFileUpdateMetadataHandler"/>
            </list>
        </property>
        <property name="postSaveHandlers">
            <list></list>
        </property>
    </bean>

    <bean id="ecmFileTransaction" class="com.armedia.acm.plugins.ecm.service.impl.EcmFileTransactionImpl">
        <property name="camelContextManager" ref="camelContextManager"/>
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="folderDao" ref="acmFolderDao"/>
        <property name="folderAndFilesUtils" ref="folderAndFilesUtils"/>
        <property name="ecmTikaFileService" ref="ecmTikaFileService"/>
        <property name="fileEventPublisher" ref="fileEventPublisher"/>
        <property name="ecmFileUploadPipelineManager" ref="ecmFileUploadPipelineManager"/>
        <property name="ecmFileUpdatePipelineManager" ref="ecmFileUpdatePipelineManager"/>
        <property name="cmisConfigUtils" ref="cmisConfigUtils"/>
        <property name="ecmFileConfig" ref="ecmFileConfig"/>
        <property name="allowedUploadFileTypesConfig" ref="allowedUploadFileTypes"/>
        <property name="progressIndicatorService" ref="progressIndicatorService"/>
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="allowedUploadFileTypes" class="com.armedia.acm.plugins.ecm.model.AcmAallowedUploadFileTypesConfig" scope="refresh">
        <aop:scoped-proxy/>
    </bean>

    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
        <constructor-arg index="0" ref="amqConnectionFactory"/>
        <property name="deliveryMode" value="2"/>
        <property name="receiveTimeout" value="500"/>
    </bean>

    <bean id="progressIndicatorService" class="com.armedia.acm.plugins.ecm.service.ProgressIndicatorService">
    </bean>

    <bean id="progressbarExecutor" class="com.armedia.acm.plugins.ecm.service.ProgressbarExecutor" scope="prototype">
        <property name="activeMQConnectionFactory" ref="amqConnectionFactory"/>
        <property name="jmsTemplate" ref="jmsTemplate"/>
    </bean>

    <bean id="ecmFileService" class="com.armedia.acm.plugins.ecm.service.impl.EcmFileServiceImpl">
        <property name="ecmFileTransaction" ref="ecmFileTransaction"/>
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="containerFolderDao" ref="acmContainerFolderDao"/>
        <property name="solrQuery" ref="executeSolrQuery"/>
        <property name="searchResults" ref="searchResults"/>
        <property name="sortParameterNameToCmisFieldName">
            <map>
                <entry key="name" value="name_lcs"/>
                <entry key="type" value="type_lcs"/>
                <entry key="created" value="create_date_tdt"/>
                <entry key="author" value="author"/>
                <entry key="version" value="version_s"/>
                <entry key="modified" value="modified_date_tdt"/>
                <entry key="creator" value="creator_lcs"/>
                <entry key="modifier" value="modifier_lcs"/>
                <entry key="category" value="category_s"/>
                <entry key="status" value="status_lcs"/>
            </map>
        </property>
        <property name="solrObjectTypeToAcmType">
            <map>
                <entry key="FILE" value="file"/>
                <entry key="FOLDER" value="folder"/>
            </map>
        </property>
        <property name="categoryMap">
            <map>
                <entry key="document" value="Document"/>
                <entry key="correspondence" value="Correspondence"/>
            </map>
        </property>
        <property name="folderDao" ref="acmFolderDao"/>
        <property name="folderAndFilesUtils" ref="folderAndFilesUtils"/>
        <property name="cmisConfigUtils" ref="cmisConfigUtils"/>
        <property name="fileParticipantService" ref="fileParticipantService"/>
        <property name="ecmFileConfig" ref="ecmFileConfig"/>
        <property name="recycleBinItemService" ref="recycleBinItemServiceImpl"/>
        <property name="genericMessagesChannel" ref="genericMessagesChannel"/>
        <property name="objectLockService" ref="objectLockService"/>
        <property name="emailSenderConfig" ref="emailSenderConfig"/>
        <property name="progressIndicatorService" ref="progressIndicatorService"/>
        <property name="camelContextManager" ref="camelContextManager"/>
        <property name="fileEventPublisher" ref="fileEventPublisher"/>
        <property name="emailAttachmentExtractorComponent" ref="emailAttachmentExtractorComponent"/>
        <property name="acmFolderService" ref="acmFolderService"/>
    </bean>

    <bean id="ecmFileToSolrTrasnformer" class="com.armedia.acm.plugins.ecm.service.EcmFileToSolrTransformer">
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="dacConfig" ref="dacConfig"/>
        <property name="solrConfig" ref="solrConfig"/>
        <property name="userDao" ref="userJpaDao"/>
        <property name="searchAccessControlFields" ref="searchAccessControlFields"/>
        <property name="acmDataService" ref="acmDataService"/>
        <property name="fileConfig" ref="ecmFileConfig"/>
    </bean>

    <bean id="acmContainerToSolrTransformer" class="com.armedia.acm.plugins.ecm.service.AcmContainerToSolrTransformer">
        <property name="dao" ref="acmContainerFolderDao"/>
    </bean>

    <bean id="acmFolderToSolrTransformer" class="com.armedia.acm.plugins.ecm.service.AcmFolderToSolrTransformer">
        <property name="searchAccessControlFields" ref="searchAccessControlFields"/>
        <property name="folderService" ref="acmFolderService"/>
    </bean>

    <bean id="contentFileSolrPostClient" class="com.armedia.acm.plugins.ecm.service.impl.ContentFileSolrPostClient">
        <property name="ecmFileService" ref="ecmFileService"/>
        <property name="objectConverter" ref="objectConverter"/>
        <property name="cmisConfigUtils" ref="cmisConfigUtils"/>
        <property name="solrRestClient" ref="solrRestClient"/>
        <property name="camelContextManager" ref="camelContextManager"/>
    </bean>

    <bean id="solrPostContentFileQueueListener" class="com.armedia.acm.plugins.ecm.service.impl.SolrPostContentFileQueueListener">
        <property name="solrPostClient" ref="contentFileSolrPostClient"/>
    </bean>

    <bean id="fileWorkflowBusinessRule" class="com.armedia.acm.plugins.ecm.service.impl.FileWorkflowBusinessRule"
        parent="simpleStatelessSingleObjectRuleManager">
        <property name="ruleSpreadsheetFilename" value="drools-form-business-process-rules.xlsx"/>
    </bean>

    <bean id="recycleBinToSolrTransformer" class="com.armedia.acm.plugins.ecm.service.RecycleBinItemToSolrTransformer">
        <property name="recycleBinItemDao" ref="recycleBinItemDao"/>
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="acmContainerDao" ref="acmContainerFolderDao"/>
        <property name="folderService" ref="acmFolderService"/>
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <!--<bean id="ecmFileTagChangeListener" class="com.armedia.acm.plugins.ecm.service.EcmFileAssociatedTagChangeListener">-->
    <!--<property name="ecmFileDao" ref="ecmFileDao"/>-->
    <!--</bean>-->

    <bean id="acmFolderService" class="com.armedia.acm.plugins.ecm.service.impl.AcmFolderServiceImpl">
        <property name="folderDao" ref="acmFolderDao"/>
        <property name="containerDao" ref="acmContainerFolderDao"/>
        <property name="fileDao" ref="ecmFileDao"/>
        <property name="fileService" ref="ecmFileService"/>
        <property name="folderAndFilesUtils" ref="folderAndFilesUtils"/>
        <property name="cmisConfigUtils" ref="cmisConfigUtils"/>
        <property name="fileParticipantService" ref="fileParticipantService"/>
        <property name="ecmFileConfig" ref="ecmFileConfig"/>
        <property name="genericMessagesChannel" ref="genericMessagesChannel"/>
        <property name="objectLockService" ref="objectLockService"/>
        <property name="camelContextManager" ref="camelContextManager"/>
        <property name="recycleBinItemService" ref="recycleBinItemServiceImpl"/>
    </bean>

    <bean id="folderAndFilesUtils" class="com.armedia.acm.plugins.ecm.utils.FolderAndFilesUtils">
        <property name="folderService" ref="acmFolderService"/>
        <property name="folderDao" ref="acmFolderDao"/>
        <property name="fileDao" ref="ecmFileDao"/>
        <property name="fileService" ref="ecmFileService"/>
        <property name="ecmFileConfig" ref="ecmFileConfig"/>
    </bean>

    <bean id="fileEventPublisher" class="com.armedia.acm.plugins.ecm.service.FileEventPublisher"/>

    <bean id="folderEventPublisher" class="com.armedia.acm.plugins.ecm.service.FolderEventPublisher"/>

    <bean id="recycleBinItemEventPublisher" class="com.armedia.acm.plugins.ecm.service.RecycleBinItemEventPublisher"/>

    <bean id="ecmFilePlugin" class="com.armedia.acm.pluginmanager.model.AcmPlugin">
        <property name="pluginName" value="ECM File Plugin"/>
        <property name="configurationPropertyService" ref="configurationPropertyService"/>
    </bean>

    <bean id="acmFileTypesService" class="com.armedia.acm.plugins.ecm.service.impl.AcmFileTypesServiceImpl">
        <property name="propertiesLocation" value="${user.home}/.arkcase/acm/"></property>
        <property name="acmFormsPlainPropertiesFile" value="acm-forms-plain.properties"></property>
        <property name="acmFormsAcmPropertiesFile" value="acm-forms.properties"></property>
        <property name="contextHolder" ref="acmContextHolder"/>
    </bean>

    <bean id="pageCountService" class="com.armedia.acm.plugins.ecm.service.impl.PageCountServiceImpl"/>

    <bean id="cmisConfigUtils" class="com.armedia.acm.plugins.ecm.utils.CmisConfigUtils">
        <property name="camelContextManager" ref="camelContextManager"/>
    </bean>

    <bean id="streamService" class="com.armedia.acm.plugins.ecm.service.impl.StreamServiceImpl">
        <property name="cmisConfigUtils" ref="cmisConfigUtils"/>
        <property name="folderAndFilesUtils" ref="folderAndFilesUtils"/>
        <property name="camelContextManager" ref="camelContextManager"/>
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="acmFilesStateProvider" class="com.armedia.acm.plugins.ecm.state.AcmFilesStateProvider">
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="ecmFileVersionDao" ref="ecmFileVersionDao"/>
    </bean>

    <bean id="pdfDocumentGenerator" class="com.armedia.acm.plugins.ecm.service.PDFDocumentGenerator" abstract="true">
        <property name="ecmFileService" ref="ecmFileService"/>
        <property name="pdfService" ref="pdfService"/>
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="fileConfigurationService" ref="fileConfigurationServiceImpl"/>
        <property name="configurationClientConfig" ref="configurationClientConfig"/>
        <property name="folderAndFilesUtils" ref="folderAndFilesUtils"/>
    </bean>

    <bean id="recycleBinItemDao" class="com.armedia.acm.plugins.ecm.dao.RecycleBinItemDao">
    </bean>

    <bean id="recycleBinItemServiceImpl" class="com.armedia.acm.plugins.ecm.service.impl.RecycleBinItemServiceImpl">
        <property name="recycleBinItemDao" ref="recycleBinItemDao"/>
        <property name="ecmFileService" ref="ecmFileService"/>
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="searchResults" ref="searchResults"/>
        <property name="solrQuery" ref="executeSolrQuery"/>
        <property name="folderService" ref="acmFolderService"/>
        <property name="fileEventPublisher" ref="fileEventPublisher"/>
        <property name="folderEventPublisher" ref="folderEventPublisher"/>
    </bean>

    <bean id="fileAclSolrUpdateHelper" class="com.armedia.acm.plugins.ecm.service.FileAclSolrUpdateHelper">
        <property name="ecmFileDao" ref="ecmFileDao"/>
        <property name="searchAccessControlFields" ref="searchAccessControlFields"/>
        <property name="dacConfig" ref="dacConfig"/>
    </bean>

    <bean id="ecmFileConfig" class="com.armedia.acm.plugins.ecm.model.EcmFileConfig" scope="refresh">
        <aop:scoped-proxy/>
    </bean>

    <bean id="updateMetadataConfig" class="com.armedia.acm.plugins.ecm.model.UpdateMetadataConfig" scope="refresh">
        <aop:scoped-proxy/>
    </bean>

    <bean id="changedParticipantToJmsSender" class="com.armedia.acm.plugins.ecm.service.ChangedParticipantToJmsSender">
        <property name="objectConverter" ref="objectConverter"/>
        <property name="jmsConnectionFactory" ref="jmsConnectionFactory"/>
    </bean>

    <bean id="fileChunkService" class="com.armedia.acm.plugins.ecm.service.impl.FileChunkServiceImpl">
        <property name="folderAndFilesUtils" ref="folderAndFilesUtils"/>
        <property name="ecmFileService" ref="ecmFileService"/>
        <property name="auditPropertyEntityAdapter" ref="auditPropertyEntityAdapter"/>
        <property name="ecmFileUploaderConfig" ref="ecmFileUploaderConfig"/>
    </bean>

    <bean id="ecmFileUploaderConfig" class="com.armedia.acm.plugins.ecm.model.EcmFileUploaderConfig" scope="refresh">
        <aop:scoped-proxy/>
    </bean>

    <bean id="ecmFileUploaderConfigurationService" class="com.armedia.acm.plugins.ecm.service.impl.EcmFileUploaderConfigurationServiceImpl">
        <property name="ecmFileUploaderConfig" ref="ecmFileUploaderConfig"/>
        <property name="configurationPropertyService" ref="configurationPropertyService"/>
    </bean>

    <bean id="ecmFileDeDuplicationConfig" class="com.armedia.acm.plugins.ecm.model.EcmFileDeDuplicationConfig" scope="refresh">
        <aop:scoped-proxy/>
    </bean>

    <bean id="ecmFileDeDuplicationConfigurationService" class="com.armedia.acm.plugins.ecm.service.impl.EcmFileDeDuplicationConfigurationServiceImpl">
        <property name="ecmFileDeDuplicationConfig" ref="ecmFileDeDuplicationConfig"/>
        <property name="configurationPropertyService" ref="configurationPropertyService"/>
    </bean>

    <bean id="removeExpiredFilesService" class="com.armedia.acm.plugins.ecm.service.RemoveExpiredFilesService">
        <property name="fileChunkService" ref="fileChunkService"/>
        <property name="ecmFileService" ref="ecmFileService"/>
        <property name="ecmFileUploaderConfig" ref="ecmFileUploaderConfig"/>
    </bean>

    <bean id="removeExpiredFilesJobDescriptor" class="com.armedia.acm.plugins.ecm.service.RemoveExpiredFilesJobDescriptor"
        parent="acmJobDescriptor">
        <property name="removeExpiredFilesService" ref="removeExpiredFilesService"/>
    </bean>

    <bean id="changedParticipantToArkcaseListener" class="com.armedia.acm.plugins.ecm.service.ChangedParticipantToArkcaseListener">
        <property name="objectConverter" ref="objectConverter"/>
        <property name="folderAndFilesUtils" ref="folderAndFilesUtils"/>
        <property name="ecmFileParticipantServiceHelper" ref="fileParticipantServiceHelper"/>
        <property name="auditPropertyEntityAdapter" ref="auditPropertyEntityAdapter"/>
    </bean>

    <bean id="messageDestination" class="org.apache.activemq.command.ActiveMQQueue">
        <constructor-arg value="com.armedia.acm.v1.alfrescoParticipantChange.queue"/>
    </bean>

    <!-- and this is the message listener container for ChangedParticipantToArkcaseListener -->
    <bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
        <property name="connectionFactory" ref="jmsConnectionFactory"/>
        <property name="destination" ref="messageDestination"/>
        <property name="messageListener" ref="changedParticipantToArkcaseListener"/>
    </bean>


    <bean id="ecmFileAddedListener" class="com.armedia.acm.plugins.ecm.service.EcmFileAddedListener">
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="ecmFileUpdatedListener" class="com.armedia.acm.plugins.ecm.service.EcmFileUpdatedListener">
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="ecmFileCopiedListener" class="com.armedia.acm.plugins.ecm.service.EcmFileCopiedListener">
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="ecmFIleMovedToRecycleBinListener" class="com.armedia.acm.plugins.ecm.service.EcmFileMovedToRecycleBinListener">
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="ecmFileEditingEnabledConfig" class="com.armedia.acm.plugins.ecm.model.EcmFileEditingEnabledConfig" scope="refresh">
        <aop:scoped-proxy/>
    </bean>

    <bean id="emailAttachmentExtractorComponent" class="com.armedia.acm.plugins.ecm.service.impl.EmailAttachmentExtractorComponent"/>
</beans>
