<?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">


  <alias name="commons-configuration" alias="default"/>

  <bean name="builder" class="org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry">
    <property name="properties">
      <value>
        <![CDATA[
          <configuration>
            <xml fileName="org/codehaus/plexus/registry/test.xml"/>
            <properties fileName="org/codehaus/plexus/registry/test.properties" config-name="properties"/>

          </configuration>
        ]]>
      </value>
    </property>
  </bean>

  <bean name="test-save" class="org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry">
    <property name="properties">
      <value>
        <![CDATA[
        <configuration>
          <system/>
          <xml fileName="${basedir}/target/test-classes/test-save.xml"
               config-name="org.codehaus.plexus.registry"
               config-at="org.codehaus.plexus.registry"/>
          <jndi prefix="java:comp/env" config-optional="true"/>
          <xml fileName="${basedir}/target/conf/continuum.xml" config-optional="true"
               config-at="org.apache.maven.continuum" config-forceCreate="true"/>
          <xml fileName="${basedir}/target/conf/shared.xml" config-optional="true"
               config-name="org.apache.maven.shared.app.user" config-at="org.apache.maven.shared.app"
               config-forceCreate="true"/>
          <xml fileName="${basedir}/target/conf/shared.xml" config-optional="true"
               config-name="org.apache.maven.shared.app.base" config-at="org.apache.maven.shared.app"/>
          <xml fileName="${basedir}/target/conf/common.xml" config-optional="true"/>
          <properties fileName="${basedir}/conf/security.properties" config-optional="true"
                      config-at="org.codehaus.plexus.redback"/>
          <xml fileName="${basedir}/target/conf/continuum.xml" config-optional="true"
               config-at="org.apache.maven.continuum" config-name="org.apache.maven.continuum.user"
               config-forceCreate="true"/>
          <xml fileName="${basedir}/target/conf/shared.xml" config-optional="true"
               config-at="org.apache.maven.shared.app" />
          <xml fileName="${basedir}/target/conf/common.xml" config-optional="true"/>
          <properties fileName="${basedir}/conf/security.properties" config-optional="true"
                      config-at="org.codehaus.plexus.redback"/>

        </configuration>
        ]]>
      </value>
    </property>
  </bean>

  <bean name="forceCreate" class="org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry">
    <property name="properties">
      <value>
        <![CDATA[
        <configuration>
          <xml fileName="${basedir}/target/foo-forced" config-name="foo" config-forceCreate="true" config-optional="true"/>
        </configuration>
        ]]>
      </value>
    </property>
  </bean>

  <bean name="noForceCreate" class="org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry">
    <property name="properties">
      <value>
        <![CDATA[
        <configuration>
          <xml fileName="${basedir}/target/foo" config-name="foo" config-optional="true"/>
        </configuration>
        ]]>
      </value>
    </property>
  </bean>

</beans>