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

    <bean id="listAllTasksAPIController" class="com.armedia.acm.plugins.task.web.api.ListAllTasksAPIController">
        <property ref="acmTaskDao" name="taskDao"/>
        <property ref="taskEventPublisher" name="taskEventPublisher"/>
    </bean>
    <bean id="retrieveTasksAPIController" class="com.armedia.acm.plugins.task.web.api.RetrieveTasksAPIController">
        <property name="executeSolrQuery" ref="executeSolrQuery"/>
    </bean>
    <bean id="retrieveBusinessProcessTasksAPIController"
        class="com.armedia.acm.plugins.task.web.api.RetrieveBusinessProcessTasksAPIController">
        <property name="executeSolrQuery" ref="executeSolrQuery"/>
    </bean>
    <bean id="completeTaskAPIController" class="com.armedia.acm.plugins.task.web.api.CompleteTaskAPIController">
        <property name="taskDao" ref="acmTaskDao"/>
        <property name="taskEventPublisher" ref="taskEventPublisher"/>
    </bean>
    <bean id="completeTaskWithOutcomeAPIController" class="com.armedia.acm.plugins.task.web.api.CompleteTaskWithOutcomeAPIController">
        <property name="taskDao" ref="acmTaskDao"/>
        <property name="taskEventPublisher" ref="taskEventPublisher"/>
    </bean>
    <bean id="deleteTaskAPIController" class="com.armedia.acm.plugins.task.web.api.DeleteTaskAPIController">
        <property name="taskDao" ref="acmTaskDao"/>
        <property name="taskEventPublisher" ref="taskEventPublisher"/>
    </bean>

    <bean id="createAdHocTaskAPIController" class="com.armedia.acm.plugins.task.web.api.CreateAdHocTaskAPIController">
        <property name="createAdHocTaskService" ref="createAdHocTaskService"/>
    </bean>

    <bean id="createBusinessProcessTasksAPIController" class="com.armedia.acm.plugins.task.web.api.CreateBusinessProcessTasksAPIController">
        <property name="taskEventPublisher" ref="taskEventPublisher"/>
        <property name="taskService" ref="acmTaskService"/>
    </bean>

    <bean id="findTaskByIdAPIController" class="com.armedia.acm.plugins.task.web.api.FindTaskByIdAPIController">
        <property name="taskEventPublisher" ref="taskEventPublisher"/>
        <property name="taskService" ref="acmTaskService"/>
    </bean>

    <bean id="saveTaskAPIController" class="com.armedia.acm.plugins.task.web.api.SaveTaskAPIController">
        <property name="taskDao" ref="acmTaskDao"/>
        <property name="taskEventPublisher" ref="taskEventPublisher"/>
    </bean>

    <bean id="workflowHistoryAPIController" class="com.armedia.acm.plugins.task.web.api.WorkflowHistoryAPIController">
        <property name="taskDao" ref="acmTaskDao"/>
    </bean>

    <bean id="claimTaskAPIController" class="com.armedia.acm.plugins.task.web.api.ClaimTaskAPIController">
        <property name="taskDao" ref="acmTaskDao"/>
        <property name="taskEventPublisher" ref="taskEventPublisher"/>
    </bean>

    <bean id="deleteProcessInstanceAPIController" class="com.armedia.acm.plugins.task.web.api.DeleteProcessInstanceAPIController">
        <property name="taskDao" ref="acmTaskDao"/>
    </bean>

    <bean id="taskNotifierAPIController" class="com.armedia.acm.plugins.task.web.api.TaskNotifierAPIController">
        <property name="upcomingTasksNotifier" ref="upcomingTasksNotifier"/>
        <property name="overdueTasksNotifier" ref="overdueTasksNotifier"/>
    </bean>

    <bean id="diagramTaskAPIController" class="com.armedia.acm.plugins.task.web.api.DiagramTaskAPIController">
        <property name="acmTaskService" ref="acmTaskService"/>
    </bean>

    <bean id="acmTaskAPIController" class="com.armedia.acm.plugins.task.web.api.AcmTaskAPIController">
        <property name="acmTaskService" ref="acmTaskService"/>
    </bean>

</beans>