<?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"
       xmlns:task="http://www.springframework.org/schema/task" 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 http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">

    <bean id="arm_subscriptionEventBatchInsertJob"
          class="com.armedia.acm.services.subscription.service.SubscriptionEventBatchInsertService">
        <property name="auditPropertyEntityAdapter" ref="auditPropertyEntityAdapter"/>
        <property name="subscriptionDao" ref="subscriptionDao"/>
        <property name="subscriptionEventDao" ref="subscriptionEventDao"/>
        <property name="subscriptionEventPublisher" ref="subscriptionEventPublisher"/>
        <property name="subscriptionConfig" ref="subscriptionConfig"/>
    </bean>

    <bean id="subscriptionEventInsertJobDescriptor" class="com.armedia.acm.services.subscription.service.SubscriptionEventJobDescriptor"
          parent="acmJobDescriptor">
        <property name="subscriptionEventBatchInsertService" ref="arm_subscriptionEventBatchInsertJob"/>
    </bean>

    <bean id="subscriptionService" class="com.armedia.acm.services.subscription.service.impl.SubscriptionServiceImpl">
        <property name="subscriptionDao" ref="subscriptionDao"/>
        <property name="subscriptionEventDao" ref="subscriptionEventDao"/>
        <property name="subscriptionEventPublisher" ref="subscriptionEventPublisher"/>
    </bean>

    <bean id="subscriptionEventPublisher" class="com.armedia.acm.services.subscription.service.SubscriptionEventPublisher"/>

    <bean id="subscriptionDao" class="com.armedia.acm.services.subscription.dao.SubscriptionDao"/>

    <bean id="subscriptionEventDao" class="com.armedia.acm.services.subscription.dao.SubscriptionEventDao"/>

    <bean id="subscriptionEventToSolrTransformer" class="com.armedia.acm.services.subscription.service.SubscriptionEventToSolrTransformer">
        <property name="subscriptionEventDao" ref="subscriptionEventDao"/>
        <property name="userDao" ref="userJpaDao"/>
        <property name="notificationFormatter" ref="notificationFormatter"/>
        <property name="auditEventConfig" ref="auditEventConfig"/>
    </bean>

    <bean id="subscriptionToSolrTransformer" class="com.armedia.acm.services.subscription.service.SubscriptionToSolrTransformer">
        <property name="subscriptionDao" ref="subscriptionDao"/>
    </bean>

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

    <bean id="subscriptionConfig" class="com.armedia.acm.services.subscription.model.SubscriptionConfig" scope="refresh">
        <aop:scoped-proxy/>
    </bean>

    <task:executor id="deleteTaskExecutor" pool-size="1"/>
</beans>