<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util" xmlns="http://www.springframework.org/schema/beans"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/util
       http://www.springframework.org/schema/util/spring-util-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

    <bean id="rolesToGroupsConfig" class="com.armedia.acm.services.users.model.ApplicationRolesToGroupsConfig"/>

    <bean id="userJpaDao" class="com.armedia.acm.services.users.dao.UserDao" init-method="init">
        <property name="languageSettingsConfig" ref="languageSettingsConfig"/>
    </bean>

    <bean id="externalAuthenticationUtils" class="com.armedia.acm.auth.ExternalAuthenticationUtils">
        <property name="userDao" ref="userJpaDao"/>
    </bean>

    <bean id="acmUserEventPublisher" class="com.armedia.acm.services.users.service.AcmUserEventPublisher"/>

    <bean id="acmGroupEventPublisher" class="com.armedia.acm.services.users.service.AcmGroupEventPublisher"/>

    <bean id="userActionDao" class="com.armedia.acm.services.users.dao.UserActionDao"/>

    <bean id="groupDao" class="com.armedia.acm.services.users.dao.group.AcmGroupDao"/>

    <bean id="acmContextHolder" class="com.armedia.acm.spring.SpringContextHolder"/>

    <bean id="userActionExecutor" class="com.armedia.acm.services.users.service.ldap.AcmUserActionExecutor">
        <property name="userActionDao" ref="userActionDao"/>
    </bean>

    <bean id="rolesToPrivileges" class="com.armedia.acm.services.users.model.ApplicationRolesToPrivilegesConfig"/>

    <bean id="applicationRolesConfig" class="com.armedia.acm.services.users.model.ApplicationRolesConfig"/>

    <bean id="groupService" class="com.armedia.acm.services.users.service.group.GroupServiceImpl">
        <property name="userDao" ref="userJpaDao"/>
        <property name="groupDao" ref="groupDao"/>
        <property name="acmGroupEventPublisher" ref="acmGroupEventPublisher"/>
        <property name="springContextHolder" ref="acmContextHolder"/>
    </bean>

    <bean id="acmRoleToGroupConfig" class="com.armedia.acm.services.users.model.AcmRoleToGroupMapping">
        <property name="groupDao" ref="groupDao"/>
        <property name="rolesToGroupsConfig" ref="rolesToGroupsConfig"/>
    </bean>

  </beans>