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

  <context:property-placeholder system-properties-mode="OVERRIDE"/>

  <bean name="commons-configuration" class="org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry">
    <property name="properties">
      <value>
        <![CDATA[
        <configuration>
          <system/>

          <xml fileName="${appserver.base}/conf/archiva-test-download-artifacts.xml" config-optional="true"
               config-name="org.apache.archiva.base"
               config-at="org.apache.archiva"/>

          <properties fileName="${appserver.base}/conf/security.properties" config-optional="true"
                      config-at="org.apache.archiva.redback"/>
          <properties fileName="org/apache/archiva/security.properties" config-at="org.apache.archiva.redback"/>
        </configuration>
        ]]>
      </value>
    </property>
  </bean>

  <bean name="repositorySessionFactory" class="org.apache.archiva.webtest.memory.TestRepositorySessionFactory"/>

  <alias name="userManager#configurable" alias="userManager#default"/>

  <bean name="TestRepositorySessionFactoryBean" class="org.apache.archiva.TestRepositorySessionFactoryBean">
    <constructor-arg>
      <value>jcr</value>
    </constructor-arg>
  </bean>

</beans>
