<?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="fileUploadController" class="com.armedia.acm.plugins.ecm.web.api.FileUploadAPIController">
        <property name="ecmFileService" ref="ecmFileService"/>
        <property name="acmFolderService" ref="acmFolderService"/>
        <property name="objectConverter" ref="objectConverter"/>
        <property name="arkPermissionEvaluator" ref="arkPermissionEvaluator"/>
        <property name="fileChunkService" ref="fileChunkService"/>
        <property name="ecmFileUploaderConfig" ref="ecmFileUploaderConfig"/>
        <property name="permissionEvaluator" ref="arkPermissionEvaluator"/>
    </bean>

    <bean id="fileDownloadAPIController" class="com.armedia.acm.plugins.ecm.web.api.FileDownloadAPIController">
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="fileDownloadFromEmailAPIController" class="com.armedia.acm.plugins.ecm.web.api.FileDownloadFromEmailApiController">
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

   <!-- <bean id="documentUiController" class="com.armedia.acm.plugins.ecm.web.DocumentUiController">
        <property name="ecmFileServiceProperties" ref="ecmFileServiceProperties"/>
        <property name="fileService" ref="ecmFileService"/>
        <property name="authenticationTokenService" ref="authenticationTokenService"/>
    </bean>-->

    <bean id="folderListAPIController" class="com.armedia.acm.plugins.ecm.web.api.FolderListAPIController">
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="folderDocumentCountAPIController" class="com.armedia.acm.plugins.ecm.web.api.FolderDocumentCountAPIController">
        <property name="executeSolrQuery" ref="executeSolrQuery"/>
        <property name="searchResults" ref="searchResults"/>
    </bean>

    <bean id="containerListAPIController" class="com.armedia.acm.plugins.ecm.web.api.ContainerListAPIController">
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="addNewFolderAPIController" class="com.armedia.acm.plugins.ecm.web.api.AddNewFolderAPIController">
        <property name="folderService" ref="acmFolderService"/>
        <property name="folderEventPublisher" ref="folderEventPublisher"/>
    </bean>

    <bean id="moveFolderAPIController" class="com.armedia.acm.plugins.ecm.web.api.MoveFolderAPIController">
        <property name="folderService" ref="acmFolderService"/>
        <property name="folderEventPublisher" ref="folderEventPublisher"/>
    </bean>

    <bean id="renameFolderAPIController" class="com.armedia.acm.plugins.ecm.web.api.RenameFolderAPIController">
        <property name="folderService" ref="acmFolderService"/>
        <property name="folderEventPublisher" ref="folderEventPublisher"/>
    </bean>

    <bean id="deleteFolderAPIController" class="com.armedia.acm.plugins.ecm.web.api.DeleteFolderAPIController">
        <property name="folderService" ref="acmFolderService"/>
        <property name="folderEventPublisher" ref="folderEventPublisher"/>
        <property name="recycleBinItemEventPublisher" ref="recycleBinItemEventPublisher"/>
    </bean>

    <bean id="renameFileAPIController" class="com.armedia.acm.plugins.ecm.web.api.RenameFileAPIController">
        <property name="fileService" ref="ecmFileService"/>
        <property name="fileEventPublisher" ref="fileEventPublisher"/>
    </bean>

    <bean id="deleteFileAPIController" class="com.armedia.acm.plugins.ecm.web.api.DeleteFileAPIController">
        <property name="fileService" ref="ecmFileService"/>
        <property name="fileEventPublisher" ref="fileEventPublisher"/>
        <property name="recycleBinItemService" ref="recycleBinItemServiceImpl"/>
        <property name="recycleBinItemEventPublisher" ref="recycleBinItemEventPublisher"/>
    </bean>

    <bean id="moveFileAPIController" class="com.armedia.acm.plugins.ecm.web.api.MoveFileAPIController">
        <property name="fileService" ref="ecmFileService"/>
        <property name="fileEventPublisher" ref="fileEventPublisher"/>
    </bean>

    <bean id="copyFileAPIController" class="com.armedia.acm.plugins.ecm.web.api.CopyFileAPIController">
        <property name="fileService" ref="ecmFileService"/>
        <property name="fileEventPublisher" ref="fileEventPublisher"/>
    </bean>

    <bean id="copyFileAsLinkAPIController" class="com.armedia.acm.plugins.ecm.web.api.CopyFileAsLinkAPIController">
        <property name="fileService" ref="ecmFileService"/>
        <property name="fileEventPublisher" ref="fileEventPublisher"/>
    </bean>

    <bean id="replaceFileAPIController" class="com.armedia.acm.plugins.ecm.web.api.ReplaceFileAPIController">
        <property name="fileService" ref="ecmFileService"/>
        <property name="fileEventPublisher" ref="fileEventPublisher"/>
        <property name="fileTransaction" ref="ecmFileTransaction"/>
        <property name="folderAndFilesUtils" ref="folderAndFilesUtils"/>
    </bean>

    <bean id="subFolderListAPIController" class="com.armedia.acm.plugins.ecm.web.api.SubFolderListAPIController">
        <property name="fileService" ref="ecmFileService"/>
    </bean>

    <bean id="getEcmFileByIdAPIController" class="com.armedia.acm.plugins.ecm.web.api.GetEcmFileByIdAPIController">
        <property name="fileService" ref="ecmFileService"/>
    </bean>

    <bean id="setActiveFileVersionAPIController" class="com.armedia.acm.plugins.ecm.web.api.SetActiveFileVersionAPIController">
        <property name="fileService" ref="ecmFileService"/>
        <property name="fileEventPublisher" ref="fileEventPublisher"/>
    </bean>

    <bean id="copyFolderAPIController" class="com.armedia.acm.plugins.ecm.web.api.CopyFolderAPIController">
        <property name="folderService" ref="acmFolderService"/>
        <property name="folderEventPublisher" ref="folderEventPublisher"/>
    </bean>

    <bean id="copyFolderAsLinkAPIController" class="com.armedia.acm.plugins.ecm.web.api.CopyFolderAsLinkAPIController">
        <property name="folderService" ref="acmFolderService"/>
        <property name="folderEventPublisher" ref="folderEventPublisher"/>
    </bean>

    <bean id="createFolderByPathAPIController" class="com.armedia.acm.plugins.ecm.web.api.CreateFolderByPathAPIController">
        <property name="containerDao" ref="acmContainerFolderDao"/>
        <property name="folderService" ref="acmFolderService"/>
        <property name="folderEventPublisher" ref="folderEventPublisher"/>
        <property name="folderAndFilesUtils" ref="folderAndFilesUtils"/>
        <property name="ecmFileService" ref="ecmFileService"/>
        <property name="fileEventPublisher" ref="fileEventPublisher"/>
        <property name="arkPermissionEvaluator" ref="arkPermissionEvaluator"/>
    </bean>

    <bean id="declareFileFolderAPIController" class="com.armedia.acm.plugins.ecm.web.api.DeclareFileFolderAPIController">
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="listFileFolderByCategory" class="com.armedia.acm.plugins.ecm.web.api.ListFileFolderByCategoryAPIController">
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="updateFileTypeAPIController" class="com.armedia.acm.plugins.ecm.web.api.UpdateFileTypeAPIController">
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="getTotalPageCountAPIController" class="com.armedia.acm.plugins.ecm.web.api.GetTotalPageCountAPIController">
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="updateSecurityFieldAPIController" class="com.armedia.acm.plugins.ecm.web.api.UpdateSecurityFieldAPIController">
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="updateFileMetadataAPIController" class="com.armedia.acm.plugins.ecm.web.api.UpdateFileMetadataAPIController">
        <property name="ecmFileService" ref="ecmFileService"/>
    </bean>

    <bean id="streamAPIController" class="com.armedia.acm.plugins.ecm.web.api.StreamAPIController">
        <property name="streamService" ref="streamService"/>
    </bean>

    <bean id="uploadTempFilesAPIController" class="com.armedia.acm.plugins.ecm.web.api.UploadTempFilesAPIController">
        <property name="fileFolderService" ref="ecmFileService"/>
    </bean>

    <bean id="fileParticipantAPIController" class="com.armedia.acm.plugins.ecm.web.api.EcmFileParticipantsAPIController">
        <property name="fileParticipantService" ref="fileParticipantService"/>
    </bean>

    <bean id="ecmFileUploaderManagementAPIController" class="com.armedia.acm.plugins.ecm.web.api.EcmFileUploaderManagementAPIController">
        <property name="ecmFileUploaderConfigurationService" ref="ecmFileUploaderConfigurationService"/>
    </bean>

    <bean id="getLinkTargetEcmFile" class="com.armedia.acm.plugins.ecm.web.api.GetLinkTargetEcmFileAPIController">
        <property name="fileService" ref="ecmFileService"/>
    </bean>

    <bean id="fileDuplicatesAPIController" class="com.armedia.acm.plugins.ecm.web.api.FileDuplicatesAPIController">
        <property name="fileService" ref="ecmFileService"/>
        <property name="ecmFileDeDuplicationConfigurationService" ref="ecmFileDeDuplicationConfigurationService"/>
    </bean>

    <bean id="ecmFileEditingEnabledAPIController" class="com.armedia.acm.plugins.ecm.web.api.EcmFileEditingEnabledAPIController">
        <property name="ecmFileEditingEnabledConfig" ref="ecmFileEditingEnabledConfig"/>
    </bean>
</beans>
