<?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="roleModelProcessor" class="org.apache.archiva.redback.role.processor.DefaultRoleModelProcessor">
    <property name="rbacManager" ref="rbacManager#jpa"/>
  </bean>

  <alias name="roleModelProcessor" alias="roleModelProcessor#jpox"/>

  <bean name="roleTemplateProcessor" class="org.apache.archiva.redback.role.template.DefaultRoleTemplateProcessor">
    <property name="rbacManager" ref="rbacManager#jpa"/>
  </bean>

  <alias name="roleTemplateProcessor" alias="roleTemplateProcessor#jpox"/>

  <bean name="roleManager" class="org.apache.archiva.redback.role.DefaultRoleManager">
    <property name="modelValidator" ref="roleModelValidator"/>
    <property name="modelProcessor" ref="roleModelProcessor#jpox"/>
    <property name="templateProcessor" ref="roleTemplateProcessor#jpox"/>
    <property name="rbacManager" ref="rbacManager#jpa"/>
  </bean>
  <alias name="roleManager" alias="roleManager#jpox"/>

  <bean name="userConfiguration#default" class="org.apache.archiva.redback.configuration.DefaultUserConfiguration">
    <property name="registry" ref="test-conf"/>
  </bean>

  <bean name="commons-configuration" class="org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry">
  </bean>

  <alias name="commons-configuration" alias="test-conf"/>

</beans>