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

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

  <alias name="rbacManager#memory" alias="rbacManager#default"/>
  <alias name="userManager#ldap" alias="userManager#default"/>

  <bean name="apacheDS#test" class="org.apache.archiva.components.apacheds.DefaultApacheDs"
        scope="prototype">
    <property name="basedir" value="${basedir}/target/apacheds"/>
    <property name="port" value="${ldapPort}"/>
    <property name="enableNetworking" value="true"/>
    <property name="password" value="secret"/>
  </bean>

  <bean name="ldapConnectionFactory#configurable"
        class="org.apache.archiva.redback.common.ldap.connection.ConfigurableLdapConnectionFactory">
    <property name="hostname" value="localhost"/>
    <property name="port" value="${ldapPort}"/>
    <!--property name="baseDn" value="dc=redback,dc=plexus,dc=codehaus,dc=org"/-->
    <property name="baseDn" value="dc=archiva,dc=apache,dc=org"/>
    <property name="contextFactory" value="com.sun.jndi.ldap.LdapCtxFactory"/>
    <property name="password" value="secret"/>
    <property name="bindDn" value="uid=admin,ou=system"/>
    <property name="userConf" ref="userConfiguration#default"/>
  </bean>


  <bean name="ldapRoleMapper#test" class="org.apache.archiva.redback.common.ldap.role.DefaultLdapRoleMapper">
    <property name="groupsDn" value="dc=archiva,dc=apache,dc=org"/>
    <property name="ldapGroupClass" value="groupOfUniqueNames"/>
    <property name="baseDn" value="ou=People,dc=archiva,dc=apache,dc=org"/>
    <property name="ldapConnectionFactory" ref="ldapConnectionFactory#configurable"/>
    <property name="userConf" ref="userConfiguration#default"/>
  </bean>

  <alias name="ldapRoleMapper#test" alias="ldapRoleMapper#default"/>

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

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

  <bean name= "rbacManager#cached" class="org.apache.archiva.redback.rbac.cached.CachedRbacManager">
    <property name="rbacImpl" ref="rbacManager#memory"/>
    <property name="effectiveRoleSetCache" ref="cache#effectiveRoleSet"/>
    <property name="operationsCache" ref="cache#operations"/>
    <property name="permissionsCache" ref="cache#permissions"/>
    <property name="resourcesCache" ref="cache#resources"/>
    <property name="rolesCache" ref="cache#roles"/>
    <property name="userAssignmentsCache" ref="cache#userAssignments"/>
    <property name="userPermissionsCache" ref="cache#userPermissions"/>
  </bean>

  <bean name="cache#userAssignments" class="org.apache.archiva.components.cache.impl.NoCacheCache">
  </bean>

  <bean name="cache#userPermissions" class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
      init-method="initialize">
    <property name="diskPersistent" value="false"/>
    <property name="eternal" value="false"/>
    <property name="maxElementsInMemory" value="1000"/>
    <property name="memoryEvictionPolicy" value="LRU"/>
    <property name="name" value="userPermissions"/>
    <property name="timeToIdleSeconds" value="300"/>
    <property name="timeToLiveSeconds" value="600"/>
  </bean>

  <!--
  *** jpa init ***
  Needed because of the dependency redback-user-cache -> redback-user-jpa
  ***
-->
  <bean name="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">

    <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="slf4j" />
        <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 />
  <!-- ****  jpa init *** -->
</beans>