<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements. See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership. The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License. You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied. See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       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
                      http://www.springframework.org/schema/context
                      http://www.springframework.org/schema/context/spring-context.xsd"
                      >

    <bean id="asyncJobDaoImpl"
        class="org.apache.cloudstack.framework.jobs.dao.AsyncJobDaoImpl" />
    <bean id="asyncJobJournalDaoImpl"
        class="org.apache.cloudstack.framework.jobs.dao.AsyncJobJournalDaoImpl" />
    <bean id="asyncJobJoinMapDaoImpl"
        class="org.apache.cloudstack.framework.jobs.dao.AsyncJobJoinMapDaoImpl" />
    <bean id="asyncJobManagerImpl"
        class="org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl" />
    <bean id="asyncJobMonitor"
        class="org.apache.cloudstack.framework.jobs.impl.AsyncJobMonitor" />
    <bean id="syncQueueDaoImpl"
        class="org.apache.cloudstack.framework.jobs.dao.SyncQueueDaoImpl" />
    <bean id="syncQueueItemDaoImpl"
        class="org.apache.cloudstack.framework.jobs.dao.SyncQueueItemDaoImpl" />
    <bean id="syncQueueManagerImpl"
        class="org.apache.cloudstack.framework.jobs.impl.SyncQueueManagerImpl" />
    <bean id="vmWorkJobDaoImpl"
        class="org.apache.cloudstack.framework.jobs.dao.VmWorkJobDaoImpl" />
</beans>
