<?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"
       xmlns:tx="http://www.springframework.org/schema/tx"
       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

            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"
       default-lazy-init="true">

  <context:annotation-config/>
  <context:component-scan
      base-package="org.apache.archiva.redback.keys,org.apache.archiva.rest.services.utils,org.apache.archiva.repository.content.maven2"/>
  
  <bean name="scheduler" class="org.apache.archiva.components.scheduler.DefaultScheduler">
    <property name="properties">
      <props>
        <prop key="org.quartz.scheduler.instanceName">scheduler1</prop>
        <prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
        <prop key="org.quartz.threadPool.threadCount">2</prop>
        <prop key="org.quartz.threadPool.threadPriority">4</prop>
        <prop key="org.quartz.jobStore.class">org.quartz.simpl.RAMJobStore</prop>
      </props>
    </property>
  </bean>

  <!-- wire up more basic configuration so it doesn't overwrite any config files -->
  <bean name="archivaConfiguration#default" class="org.apache.archiva.configuration.DefaultArchivaConfiguration">
    <property name="registry" ref="registry#default"/>
  </bean>

  <alias name="archivaConfiguration#default" alias="archivaConfiguration"/>

  <bean name="registry#default" class="org.apache.archiva.components.registry.commons.CommonsConfigurationRegistry">
    <property name="properties">
      <value>
        <![CDATA[
        <configuration>
          <system/>
          <xml fileName="${appserver.base}/conf/archiva.xml" config-forceCreate="true"
               config-optional="true"
               config-name="org.apache.archiva.base" config-at="org.apache.archiva"/>
        </configuration>
        ]]>
      </value>
    </property>
  </bean>

  <bean name="taskQueueExecutor#repository-scanning"
        class="org.apache.archiva.components.taskqueue.execution.ThreadedTaskQueueExecutor" lazy-init="false">
    <property name="name" value="repository-scanning"/>
    <property name="executor" ref="taskExecutor#repository-scanning"/>
    <property name="queue" ref="taskQueue#repository-scanning"/>
  </bean>

  <!--
  <bean id="repository" class="org.apache.jackrabbit.core.RepositoryImpl" destroy-method="shutdown">
    <constructor-arg ref="config"/>
  </bean>

  <bean id="config" class="org.apache.jackrabbit.core.config.RepositoryConfig" factory-method="create">
    <constructor-arg value="${basedir}/src/test/repository.xml"/>
    <constructor-arg value="${appserver.base}/jcr"/>
  </bean>
  -->

  <bean name="commons-configuration" class="org.apache.archiva.components.registry.commons.CommonsConfigurationRegistry"
        init-method="initialize">
    <property name="properties">
      <value>
        <![CDATA[
        <configuration>
          <system/>
          <properties fileName="${basedir}/src/test/resources/security.properties" config-optional="true"
                      config-at="org.apache.archiva.redback"/>
        </configuration>
        ]]>
      </value>
    </property>
  </bean>

  <alias name="userConfiguration#redback" alias="userConfiguration#default"/>

  <alias name="authorizer#rbac" alias="authorizer#default"/>

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

  <!-- ***
 JPA settings
 *** -->
  <bean name="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="jpaVendorAdapter" >
      <bean class="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter" />
    </property>
    <property name="persistenceXmlLocation" value="classpath:META-INF/persistence-hsqldb.xml" />
    <property name="jpaPropertyMap">
      <map>
        <entry key="openjpa.ConnectionURL" value="jdbc:hsqldb:mem:redback_database" />
        <entry key="openjpa.ConnectionDriverName" value="org.hsqldb.jdbcDriver" />
        <entry key="openjpa.ConnectionUserName" value="sa" />
        <entry key="openjpa.ConnectionPassword" value="" />
        <entry key="openjpa.Log" value="${openjpa.Log:DefaultLevel=INFO,Runtime=ERROR,Tool=ERROR,SQL=ERROR,Schema=ERROR,MetaData=ERROR}" />
        <entry key="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)" />
        <entry key="openjpa.jdbc.MappingDefaults"
               value="ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict"/>
      </map>
    </property>

  </bean>

  <bean name="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" >
    <property name="entityManagerFactory" ref="entityManagerFactory" />
  </bean>

  <tx:annotation-driven />
  <!-- ***
     End of JPA settings
     *** -->
</beans>