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

    <beans:beans profile="extension-foia">
        <beans:bean id="foiaExtensionHandler" class="gov.foia.pipeline.presave.FOIAExtensionHandler">
            <beans:property name="foiaRequestDao" ref="foiaRequestDao"/>
            <beans:property name="holidayConfigurationService" ref="holidayConfigurationService"/>
            <beans:property name="queuesTimeToCompleteService" ref="queuesTimeToCompleteService"/>
            <beans:property name="arkPermissionEvaluator" ref="arkPermissionEvaluator"/>
            <beans:property name="foiaConfig" ref="foiaConfig"/>
        </beans:bean>

        <beans:bean id="foiaComponentUpdatedHandler"
            class="gov.foia.pipeline.presave.FOIARequestComponentUpdatedHandler">
            <beans:property name="foiaRequestDao" ref="foiaRequestDao"/>
            <beans:property name="holidayConfigurationService" ref="holidayConfigurationService"/>
            <beans:property name="foiaConfig" ref="foiaConfig"/>
            <beans:property name="queuesTimeToCompleteService" ref="queuesTimeToCompleteService"/>
            <beans:property name="dateTimeService" ref="dateTimeService"/>
        </beans:bean>

        <beans:bean id="foiaConfigurationHandler" class="gov.foia.pipeline.postsave.FOIAConfigurationHandler">
            <beans:property name="foiaConfigurationService" ref="foiaConfigurationService"/>
        </beans:bean>

        <beans:bean id="foiaExtensionEmailHandler" class="gov.foia.pipeline.postsave.FOIAExtensionEmailHandler">
            <beans:property name="documentGeneratorService" ref="documentGeneratorService"/>
            <beans:property name="documentGenerator" ref="correspondenceDocumentGenerator"/>
            <beans:property name="notificationSender" ref="notificationSender"/>
            <beans:property name="userDao" ref="userJpaDao"/>
            <beans:property name="ecmFileService" ref="ecmFileService"/>
            <beans:property name="notificationDao" ref="notificationDao"/>
            <beans:property name="translationService" ref="translationService"/>
            <beans:property name="templateManager" ref="correspondenceTemplateManager"/>
        </beans:bean>

        <beans:bean id="caseFilePipelineManager" class="com.armedia.acm.services.pipeline.PipelineManager">
            <beans:property name="preSaveHandlers">
                <beans:list value-type="com.armedia.acm.services.pipeline.handler.PipelineHandler">
                    <beans:ref bean="caseFileSetCreatorHandler"/>
                    <beans:ref bean="foiaExtensionHandler"/>
                    <beans:ref bean="foiaComponentUpdatedHandler"/>
                </beans:list>
            </beans:property>
            <beans:property name="postSaveHandlers">
                <beans:list value-type="com.armedia.acm.services.pipeline.handler.PipelineHandler">
                    <beans:ref bean="foiaConfigurationHandler"/>
                    <beans:ref bean="caseFileRulesHandler"/>
                    <beans:ref bean="requestPerfectedDateHandler"/>
                    <beans:ref bean="caseFileContainerHandler"/>
                    <beans:ref bean="caseFileEcmFolderHandler"/>
                    <beans:ref bean="caseFileFolderStructureHandler"/>
                    <beans:ref bean="caseFileEventHandler"/>
                    <beans:ref bean="caseFileUploadAttachmentsHandler"/>
                    <beans:ref bean="requestDocumentHandler"/>
                    <beans:ref bean="caseFileStartBusinessProcessIfNeededHandler"/>
                    <beans:ref bean="foiaExtensionEmailHandler"/>
                    <!--<ref beans:bean="caseFileAssignmentHandler"/>-->
                    <beans:ref bean="requestPerfectedDateHandler"/>
                    <beans:ref bean="requestPortalUserParticipantsHandler"/>
                </beans:list>
            </beans:property>
        </beans:bean>

        <beans:bean id="foiaRequestToSolrTransformer" class="gov.foia.transformer.FOIARequestToSolrTransformer"
            parent="caseFileToSolrTransformer"/>

        <beans:bean id="foiaPersonToSolrTransformer" class="gov.foia.transformer.FOIAPersonToSolrTransformer"
            parent="personToSolrTransformer"/>

        <beans:bean id="portalFOIAPersonToSolrTransformer" class="gov.foia.transformer.FOIAPortalPersonToSolrTransformer"
                    parent="foiaPersonToSolrTransformer">
        </beans:bean>

        <beans:bean id="foiaFileToSolrTransformer" class="gov.foia.transformer.FOIAFileToSolrTransformer"
                    parent="ecmFileToSolrTrasnformer"/>

        <beans:bean id="userToSolrTransformer" class="gov.foia.transformer.FOIAUserToSolrTransformer">
            <beans:property name="userDao" ref="userJpaDao"/>
            <beans:property name="acmContextHolder" ref="acmContextHolder"/>
        </beans:bean>

        <beans:bean id="foiaPersonEmailToSolrTransformer" class="gov.foia.transformer.FOIAPersonEmailToSolrTransformer"
                    parent="personEmailToSolrTransformer"/>

        <beans:bean id="foiaPortalPersonEmailToSolrTransformer" class="gov.foia.transformer.FOIAPortalPersonEmailToSolrTransformer"
                    parent="foiaPersonEmailToSolrTransformer"/>

        <beans:bean id="foiaRequestDao" class="gov.foia.dao.FOIARequestDao"/>

        <beans:bean id="foiaFileDao" class="gov.foia.dao.FOIAFileDao"/>

        <beans:bean id="foiaExemptionCodeDao" class="gov.foia.dao.FOIAExemptionCodeDao">
            <beans:property name="acmFolderService" ref="acmFolderService"/>
            <beans:property name="caseFileDao" ref="caseFileDao"/>
            <beans:property name="exemptionCodeDao" ref="exemptionCodeDao"/>
        </beans:bean>

        <beans:bean id="foiaExemptionStatuteDao" class="gov.foia.dao.FOIAExemptionStatuteDao">
            <beans:property name="acmFolderService" ref="acmFolderService"/>
            <beans:property name="caseFileDao" ref="caseFileDao"/>
        </beans:bean>

        <beans:bean id="foiaExemptionService" class="gov.foia.service.FOIAExemptionService">
            <beans:property name="foiaExemptionCodeDao" ref="foiaExemptionCodeDao"/>
            <beans:property name="foiaExemptionStatuteDao" ref="foiaExemptionStatuteDao"/>
            <beans:property name="translationService" ref="translationService"/>
        </beans:bean>

        <beans:bean id="foiaExemptionStatuteService" class="gov.foia.service.FOIAExemptionStatuteService">
            <beans:property name="foiaExemptionStatuteDao" ref="foiaExemptionStatuteDao"/>
            <beans:property name="ecmFileDao" ref="ecmFileDao"/>
            <beans:property name="exemptionStatuteEventPublisher" ref="exemptionStatuteEventPublisher"/>
        </beans:bean>

        <bean id="acmDispositionReasonDao" class="gov.foia.dao.DispositionReasonDao"/>

        <beans:bean id="foiaRequesterAssociationToSolrTransformer" class="gov.foia.transformer.FOIARequesterAssociationToSolrTransformer"
            parent="personAssociationToSolrTransformer"/>

        <beans:bean id="pdfDocumentGenerator" class="gov.foia.service.PDFDocumentGenerator">
            <beans:property name="ecmFileService" ref="ecmFileService"/>
            <beans:property name="pdfService" ref="pdfService"/>
            <beans:property name="fileConfigurationService" ref="fileConfigurationServiceImpl"/>
            <beans:property name="configurationClientConfig" ref="configurationClientConfig"/>
            <beans:property name="ecmFileDao" ref="ecmFileDao"/>
            <beans:property name="folderAndFilesUtils" ref="folderAndFilesUtils"/>
        </beans:bean>

        <beans:bean id="correspondenceDocumentGenerator" class="gov.foia.service.CorrespondenceDocumentGenerator">
            <beans:property name="correspondenceService" ref="correspondenceService"/>
        </beans:bean>

        <beans:bean id="docxDocumentGenerator" class="gov.foia.service.DocxDocumentGenerator">
            <beans:property name="ecmFileDao" ref="ecmFileDao"/>
            <beans:property name="ecmFileService" ref="ecmFileService"/>
            <beans:property name="wordGenerator" ref="poiWordGenerator"/>
        </beans:bean>

        <beans:bean id="acknowledgementDocumentService" class="gov.foia.service.AcknowledgementDocumentService">
            <beans:property name="requestDao" ref="foiaRequestDao"/>
            <beans:property name="ecmFileDao" ref="ecmFileDao"/>
            <beans:property name="documentGeneratorService" ref="documentGeneratorService"/>
            <beans:property name="documentGenerator" ref="correspondenceDocumentGenerator"/>
            <beans:property name="notificationSender" ref="notificationSender"/>
            <beans:property name="userDao" ref="userJpaDao"/>
            <beans:property name="foiaConfigurationService" ref="foiaConfigurationService"/>
            <beans:property name="foiaQueueCorrespondenceService" ref="foiaQueueCorrespondenceService"/>
            <beans:property name="notificationDao" ref="notificationDao"/>
            <beans:property name="templateManager" ref="correspondenceTemplateManager"/>

        </beans:bean>

        <beans:bean id="documentGeneratorService" class="gov.foia.service.FOIADocumentGeneratorService">
            <beans:property name="contextHolder" ref="acmContextHolder"/>
        </beans:bean>

        <beans:bean id="requestDocumentHandler" class="gov.foia.pipeline.postsave.RequestDocumentHandler">
            <beans:property name="requestDao" ref="foiaRequestDao"/>
            <beans:property name="ecmFileService" ref="ecmFileService"/>
            <beans:property name="documentGeneratorService" ref="documentGeneratorService"/>
            <beans:property name="documentGenerator" ref="correspondenceDocumentGenerator"/>
        </beans:bean>

        <beans:bean id="requestPerfectedDateHandler" class="gov.foia.pipeline.postsave.FOIARequestPerfectedDateHandler">
            <beans:property name="holidayConfigurationService" ref="holidayConfigurationService"/>
            <beans:property name="queuesTimeToCompleteService" ref="queuesTimeToCompleteService"/>
        </beans:bean>

        <beans:bean id="requestPortalUserParticipantsHandler" class="gov.foia.pipeline.postsave.FOIARequestPortalUserParticipantsHandler">
            <beans:property name="userDao" ref="userJpaDao"/>
            <beans:property name="acmParticipantService" ref="acmParticipantService"/>
        </beans:bean>

        <beans:bean id="scheduledBillingQueuePurger" class="gov.foia.service.ScheduledBillingQueuePurger">
            <beans:property name="requestDao" ref="foiaRequestDao"/>
            <beans:property name="acmBpmnService" ref="processDefinitionManagementService"/>
            <beans:property name="auditPropertyEntityAdapter" ref="auditPropertyEntityAdapter"/>
            <beans:property name="foiaConfigurationService" ref="foiaConfigurationService"/>
        </beans:bean>

        <beans:bean id="scheduledHoldQueuePurger" class="gov.foia.service.ScheduledHoldQueuePurger">
            <beans:property name="requestDao" ref="foiaRequestDao"/>
            <beans:property name="acmBpmnService" ref="processDefinitionManagementService"/>
            <beans:property name="auditPropertyEntityAdapter" ref="auditPropertyEntityAdapter"/>
            <beans:property name="foiaConfigurationService" ref="foiaConfigurationService"/>
        </beans:bean>

        <beans:bean id="responseFolderConverterService" class="gov.foia.service.ResponseFolderConverterService">
            <beans:property name="caseFileDao" ref="caseFileDao"/>
            <beans:property name="converter" ref="folderConverter"/>
            <beans:property name="responseFolderService" ref="responseFolderService"/>
            <beans:property name="pdfConversionConfigurationService" ref="pdfConversionConfigurationService"/>
        </beans:bean>

        <beans:bean id="responseFolderCompressorService" class="gov.foia.service.ResponseFolderCompressorService">
            <beans:property name="caseFileDao" ref="caseFileDao"/>
            <beans:property name="compressor" ref="folderCompressor"/>
            <beans:property name="responseFolderService" ref="responseFolderService"/>
            <beans:property name="acmFolderService" ref="acmFolderService"/>
            <beans:property name="foiaConfig" ref="foiaConfig"/>
        </beans:bean>

        <beans:bean id="responseFolderNotifyService" class="gov.foia.service.ResponseFolderNotifyService">
            <beans:property name="caseFileDao" ref="caseFileDao"/>
            <beans:property name="compressor" ref="folderCompressor"/>
            <beans:property name="notificationSender" ref="notificationSender"/>
            <beans:property name="userDao" ref="userJpaDao"/>
            <beans:property name="responseFolderService" ref="responseFolderService"/>
            <beans:property name="acmAppConfiguration" ref="acmApplication"/>
            <beans:property name="notificationDao" ref="notificationDao"/>
            <beans:property name="templateManager" ref="correspondenceTemplateManager"/>
        </beans:bean>

        <beans:bean id="responseFolderService" class="gov.foia.service.ResponseFolderService">
            <beans:property name="folderService" ref="acmFolderService"/>
            <beans:property name="responseFolderName" value="03 Response"/>
            <beans:property name="caseFileDao" ref="caseFileDao"/>
        </beans:bean>

        <beans:bean id="responseFolderFileUpdateService" class="gov.foia.service.ConvertAndCompressResponseFolderFileUpdateService">
            <beans:property name="converter" ref="folderConverter"/>
            <beans:property name="compressor" ref="folderCompressor"/>
            <beans:property name="auditPropertyEntityAdapter" ref="auditPropertyEntityAdapter"/>
        </beans:bean>

        <beans:bean id="responseFolderFileAddedListener" class="gov.foia.listener.ResponseFolderFileAddedListener">
            <beans:property name="responseFolderName" value="03 Response"/>
            <beans:property name="releaseQueueName" value="Release"/>
            <beans:property name="caseFileDao" ref="caseFileDao"/>
            <beans:property name="fileUpdateService" ref="responseFolderFileUpdateService"/>
        </beans:bean>

        <beans:bean id="foiaQueueCorrespondenceService" class="gov.foia.service.FOIAQueueCorrespondenceService">
            <beans:property name="notificationSender" ref="notificationSender"/>
            <beans:property name="userDao" ref="userJpaDao"/>
            <beans:property name="responseFolderService" ref="responseFolderService"/>
            <beans:property name="ecmFileService" ref="ecmFileService"/>
            <beans:property name="requestDao" ref="foiaRequestDao"/>
            <beans:property name="documentGenerator" ref="correspondenceDocumentGenerator"/>
            <beans:property name="documentGeneratorService" ref="documentGeneratorService"/>
            <beans:property name="foiaConfigurationService" ref="foiaConfigurationService"/>
            <beans:property name="templatingEngine" ref="templatingEngine"/>
            <beans:property name="emailBodyTemplate" value="file:${user.home}/.arkcase/acm/templates/requestDocumentAttached.html"/>
            <beans:property name="notificationService" ref="notificationService"/>
            <beans:property name="translationService" ref="translationService" />
            <beans:property name="lookupDao" ref="lookupDao" />
            <beans:property name="templateManager" ref="correspondenceTemplateManager"/>
        </beans:bean>

        <beans:bean id="requestAssignmentService" class="gov.foia.service.RequestAssignmentService">
            <beans:property name="saveCaseService" ref="saveCaseService"/>
            <beans:property name="requestDao" ref="foiaRequestDao"/>
            <beans:property name="groupService" ref="groupService"/>
            <beans:property name="acmParticipantService" ref="acmParticipantService"/>
            <beans:property name="userDao" ref="userJpaDao"/>
        </beans:bean>

        <beans:bean id="foiaRequestService" class="gov.foia.service.FOIARequestService">
            <beans:property name="saveCaseService" ref="saveCaseService"/>
            <beans:property name="responseFolderCompressorService" ref="responseFolderCompressorService"/>
            <beans:property name="foiaRequestFileBrokerClient" ref="foiaRequestFileBrokerClient"/>
            <beans:property name="foiaRequestDao" ref="foiaRequestDao"/>
            <beans:property name="caseFileDao" ref="caseFileDao"/>
            <beans:property name="notificationSender" ref="notificationSender"/>
            <beans:property name="ecmFileDao" ref="ecmFileDao"/>
            <beans:property name="ecmFileService" ref="ecmFileService"/>
            <beans:property name="originalRequestFolderNameFormat" ref="originalRequestFolderNameFormat"/>
            <beans:property name="appealTitleFormat" ref="appealTitleFormat"/>
            <beans:property name="queuesTimeToCompleteService" ref="queuesTimeToCompleteService"/>
            <beans:property name="foiaConfigurationService" ref="foiaConfigurationService"/>
            <beans:property name="executeSolrQuery" ref="executeSolrQuery"/>
            <beans:property name="foiaConfig" ref="foiaConfig"/>
            <beans:property name="objectAssociationService" ref="objectAssociationService"/>
            <beans:property name="acmFolderService" ref="acmFolderService"/>
        </beans:bean>

        <bean id="foiaRequestEventUtility" class="gov.foia.service.FOIARequestEventUtility"/>

        <bean id="exemptionStatuteEventPublisher" class="gov.foia.model.ExemptionStatuteEventPublisher"/>

        <beans:bean id="foiaRequestEventListener" class="gov.foia.service.FOIARequestEventListener">
            <beans:property name="acmObjectHistoryService" ref="acmObjectHistoryService"/>
            <beans:property name="acmObjectHistoryEventPublisher" ref="acmObjectHistoryEventPublisher"/>
            <beans:property name="foiaRequestEventUtility" ref="foiaRequestEventUtility"/>
            <beans:property name="objectConverter" ref="objectConverter"/>
            <beans:property name="lookupDao" ref="lookupDao"/>
            <beans:property name="translationService" ref="translationService"/>
            <beans:property name="foiaConfig" ref="foiaConfig"/>
            <beans:property name="authenticationMapper" ref="acmAuthenticationMapper"/>
            <beans:property name="saveFOIARequestService" ref="saveFOIARequestService"/>
        </beans:bean>

        <beans:bean id="saveFOIARequestService" class="gov.foia.service.SaveFOIARequestService">
            <beans:property name="foiaRequestService" ref="foiaRequestService"/>
            <beans:property name="caseFileEventUtility" ref="caseFileEventUtility"/>
            <beans:property name="personDao" ref="acmPersonDao"/>
            <beans:property name="lookupDao" ref="lookupDao"/>
            <beans:property name="translationService" ref="translationService"/>
            <beans:property name="foiaExemptionService" ref="foiaExemptionService"/>
        </beans:bean>

        <beans:bean id="originalRequestFolderNameFormat" class="java.lang.String">
            <beans:constructor-arg value="FOIA Request (%s)"/>
        </beans:bean>

        <beans:bean id="appealTitleFormat" class="java.lang.String">
            <beans:constructor-arg value=" (Appeal of %s)"/>
        </beans:bean>

        <beans:bean id="enqueueCaseFileService" class="com.armedia.acm.plugins.casefile.service.EnqueueCaseFileServiceImpl">
            <beans:property name="caseFileDao" ref="caseFileDao"/>
            <beans:property name="leaveCurrentQueueBusinessRule" ref="leaveCurrentQueueBusinessRule"/>
            <beans:property name="caseFileNextPossibleQueuesBusinessRule" ref="caseFileNextPossibleQueuesBusinessRule"/>
            <beans:property name="enterQueueBusinessRule" ref="enterQueueBusinessRule"/>
            <beans:property name="onLeaveQueueBusinessRule" ref="onLeaveQueueBusinessRule"/>
            <beans:property name="onEnterQueueBusinessRule" ref="onEnterQueueBusinessRule"/>
            <beans:property name="queueService" ref="queueService"/>
            <beans:property name="acmBpmnService" ref="processDefinitionManagementService"/>
            <beans:property name="saveCaseFileBusinessRule" ref="saveCaseFileBusinessRule"/>
            <beans:property name="acmObjectLockService" ref="objectLockService"/>
            <beans:property name="systemConfigurationService" ref="foiaConfigurationService"/>
            <beans:property name="caseFileEventUtility" ref="caseFileEventUtility"/>
            <beans:property name="timesheetService" ref="timesheetService"/>
        </beans:bean>

        <bean id="responseInstallmentDao" class="gov.foia.dao.ResponseInstallmentDao"/>

        <beans:bean id="requestResponseFolderService" class="gov.foia.service.RequestResponseFolderService">
            <beans:property name="responseFolderConverterService" ref="responseFolderConverterService"/>
            <beans:property name="responseFolderCompressorService" ref="responseFolderCompressorService"/>
            <beans:property name="foiaRequestFileBrokerClient" ref="foiaRequestFileBrokerClient"/>
            <beans:property name="responseFolderNotifyService" ref="responseFolderNotifyService"/>
            <beans:property name="responseInstallmentDao" ref="responseInstallmentDao"/>
            <beans:property name="caseFileDao" ref="caseFileDao"/>
            <beans:property name="portalConfig" ref="arkcasePortalConfig"/>
            <beans:property name="holidayConfigurationService" ref="holidayConfigurationService"/>
            <beans:property name="foiaConfig" ref="foiaConfig"/>
            <beans:property name="responseFolderService" ref="responseFolderService"/>
        </beans:bean>

        <beans:bean id="billingQueuePurgerJobDescriptor" class="gov.foia.service.BillingQueuePurgerJobDescriptor" parent="acmJobDescriptor">
            <beans:property name="billingQueuePurger" ref="scheduledBillingQueuePurger"/>
        </beans:bean>

        <beans:bean id="declareRequestFilesAsRecordsJobDescriptor" class="gov.foia.service.DeclareRequestFilesAsRecordsJobDescriptor" parent="acmJobDescriptor">
            <beans:property name="declareRequestAsRecordService" ref="declareRequestAsRecordService"/>
        </beans:bean>

        <beans:bean id="declareRequestAsRecordService" class="gov.foia.service.DeclareRequestAsRecordService">
            <beans:property name="alfrescoRecordsService" ref="alfrescoRecordsService"/>
            <beans:property name="authenticationMapper" ref="acmAuthenticationMapper"/>
            <beans:property name="requestDao" ref="foiaRequestDao"/>
            <beans:property name="activitiTaskDao" ref="acmTaskDao"/>
            <beans:property name="foiaConfig" ref="foiaConfig"/>
        </beans:bean>


        <beans:bean id="foiaRequestTemplateModelProvider" class="gov.foia.model.provider.FOIARequestTemplateModelProvider">
            <beans:property name="objectAssociationDao" ref="objectAssociationDao"/>
            <beans:property name="applicationConfig" ref="applicationProperties"/>
            <beans:property name="userDao" ref="userJpaDao"/>
            <beans:property name="userOrgService" ref="acmUserOrgService"/>
            <beans:property name="foiaExemptionService" ref="foiaExemptionService" />
            <beans:property name="foiaTemplateModelExemption" ref="foiaTemplateModelExemption" />
        </beans:bean>

        <beans:bean id="foiaTaskRequestTemplateModelProvider" class="gov.foia.model.provider.FOIATaskRequestTemplateModelProvider">
            <beans:property name="foiaRequestDao" ref="foiaRequestDao"/>
            <beans:property name="applicationConfig" ref="applicationProperties"/>
            <beans:property name="userDao" ref="userJpaDao"/>
            <beans:property name="userOrgService" ref="acmUserOrgService"/>
            <beans:property name="personAssociationService" ref="personAssociationService"/>
            <beans:property name="noteDao" ref="noteDao"/>
            <beans:property name="taskDao" ref="acmTaskDao"/>
            <beans:property name="foiaExemptionService" ref="foiaExemptionService"/>
            <beans:property name="lookupDao" ref="lookupDao"/>
            <beans:property name="foiaExemptionCodeDao" ref="foiaExemptionCodeDao"/>
        </beans:bean>

        <beans:bean id="foiaDeterminationLetterModelProvider" class="gov.foia.model.provider.FOIADeterminationLetterModelProvider">
            <beans:property name="foiaExemptionService" ref="foiaExemptionService" />
            <beans:property name="userDao" ref="userJpaDao" />
            <beans:property name="billingService" ref="billingService" />
            <beans:property name="foiaTemplateModelExemption" ref="foiaTemplateModelExemption" />
        </beans:bean>

        <beans:bean id="foiaTemplateModelExemption" class="gov.foia.model.provider.FOIATemplateModelExemption">
            <beans:property name="lookupDao" ref="lookupDao" />
            <beans:property name="foiaExemptionService" ref="foiaExemptionService" />
        </beans:bean>

        <beans:bean id="holdQueuePurgerJobDescriptor" class="gov.foia.service.HoldQueuePurgerJobDescriptor" parent="acmJobDescriptor">
            <beans:property name="holdQueuePurger" ref="scheduledHoldQueuePurger"/>
        </beans:bean>

        <beans:bean id="requestFolderStructureService" class="gov.foia.service.RequestFolderStructureService">
            <beans:property name="folderStructureAsString" value="#{caseConfig.folderStructure}"/>
        </beans:bean>

        <beans:bean id="newCaseFileMailHandler" class="gov.foia.service.NewCaseFileMailHandler" parent="caseFileMailHandler">
            <beans:constructor-arg index="0" ref="caseFileDao"/>
            <beans:property name="saveFOIARequestService" ref="saveFOIARequestService"/>
            <beans:property name="emailReceiverConfig" ref="emailReceiverConfig"/>
            <beans:property name="personDao" ref="acmPersonDao"/>
            <beans:property name="lookupDao" ref="lookupDao"/>
            <beans:property name="originalEmailExtractor" ref="originalEmailExtractor"/>
        </beans:bean>

        <beans:bean id="splitCaseService" class="gov.foia.service.SplitRequestServiceImpl">
            <beans:property name="saveCaseService" ref="saveCaseService"/>
            <beans:property name="caseFileDao" ref="caseFileDao"/>
            <beans:property name="acmTaskService" ref="acmTaskService"/>
            <beans:property name="acmFolderService" ref="acmFolderService"/>
            <beans:property name="typesToCopy" value="#{caseConfig.splitTypesToCopy}"/>
            <beans:property name="splitCaseFileBusinessRule" ref="splitCaseFileBusinessRule"/>
            <beans:property name="foiaRequestDao" ref="foiaRequestDao"/>
        </beans:bean>

        <beans:bean id="createPersonFromUser" class="gov.foia.service.CreateFOIAPersonFromUserListener">
            <beans:property name="personService" ref="personService"/>
            <beans:property name="personDao" ref="acmPersonDao"/>
        </beans:bean>

    </beans:beans>
</beans:beans>
