<?xml version="1.0"?>

<!--
  ~ 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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
       default-lazy-init="true">

    <bean name="queueExecutor#default"
          class="org.apache.archiva.components.taskqueue.execution.ThreadedTaskQueueExecutor">
        <property name="queue" ref="taskQueue#default"/>
        <property name="executor" ref="taskExecutor#build-project"/>
        <property name="name" value="default"/>
    </bean>

    <bean name="queueExecutor#taskQueueTest"
          class="org.apache.archiva.components.taskqueue.execution.ThreadedTaskQueueExecutor">
        <property name="queue" ref="taskQueue#taskQueueTest"/>
        <property name="executor" ref="taskExecutor#build-project"/>
        <property name="name" value="taskQueueTest"/>
    </bean>

    <bean abstract="true" name="abstractQueue" class="org.apache.archiva.components.taskqueue.DefaultTaskQueue">
        <property name="taskEntryEvaluators">
            <list>
                <ref bean="taskEntryEvaluator#a"/>
                <ref bean="taskEntryEvaluator#b"/>
            </list>
        </property>
        <property name="taskExitEvaluators">
            <list>
                <ref bean="taskExitEvaluator#a"/>
                <ref bean="taskExitEvaluator#b"/>
            </list>
        </property>
        <property name="taskViabilityEvaluators">
            <list>
                <ref bean="taskViabilityEvaluator#build-project"/>
            </list>
        </property>
    </bean>

    <bean name="taskQueue#default" parent="abstractQueue"/>

    <bean name="taskQueue#taskQueueTest" parent="abstractQueue"/>

</beans>
