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

    <bean id="userInfoAPIController" class="com.armedia.acm.services.users.web.api.UserInfoAPIController">
        <property name="userDao" ref="userJpaDao"/>
        <property name="acmUserService" ref="acmUserService"/>
        <property name="acmSpringActiveProfile" ref="acmSpringActiveProfile"/>
    </bean>

    <bean id="findParticipantTypesForObjectTypeNameAPIController"
        class="com.armedia.acm.services.users.web.api.FindParticipantTypesForObjectTypeNameAPIController">
        <property name="acmApplication" ref="acmApplication"/>
    </bean>

    <bean id="getGroupSupervisorAPIController" class="com.armedia.acm.services.users.web.api.group.GetGroupSupervisorAPIController">
        <property name="groupDao" ref="groupDao"/>
        <property name="executeSolrQuery" ref="executeSolrQuery"/>
    </bean>

    <bean id="getGroupMembersAPIController" class="com.armedia.acm.services.users.web.api.group.GetGroupMembersAPIController">
        <property name="groupDao" ref="groupDao"/>
        <property name="executeSolrQuery" ref="executeSolrQuery"/>
    </bean>

    <bean id="acmGroupAPIController" class="com.armedia.acm.services.users.web.api.group.AcmGroupAPIController">
        <property name="groupService" ref="groupService"/>
        <property name="executeSolrQuery" ref="executeSolrQuery"/>
    </bean>

    <bean id="searchGroupAPIController" class="com.armedia.acm.services.users.web.api.group.SearchGroupAPIController">
        <property name="groupService" ref="groupService"/>
    </bean>

    <bean id="supervisorGroupAPIController" class="com.armedia.acm.services.users.web.api.group.SupervisorGroupAPIController">
        <property name="groupService" ref="groupService"/>
    </bean>

    <bean id="adHocGroupMembersAPIController" class="com.armedia.acm.services.users.web.api.group.AdHocGroupMembersAPIController">
        <property name="groupService" ref="groupService"/>
    </bean>

    <bean id="getUsersByGroupAPIController" class="com.armedia.acm.services.users.web.api.GetUsersByGroupAPIController">
        <property name="groupService" ref="groupService"/>
    </bean>

    <bean id="searchUserAPIController" class="com.armedia.acm.services.users.web.api.SearchUserAPIController">
        <property name="acmUserService" ref="acmUserService"/>
    </bean>

    <bean id="acmUserAPIController" class="com.armedia.acm.services.users.web.api.AcmUserAPIController" parent="secureLdapController">
        <property name="ldapUserService" ref="ldapUserService"/>
        <property name="acmUserEventPublisher" ref="acmUserEventPublisher"/>
        <property name="acmSpringActiveProfile" ref="acmSpringActiveProfile"/>
    </bean>

    <bean id="ldapGroupAPIController" class="com.armedia.acm.services.users.web.api.group.LdapGroupAPIController"
        parent="secureLdapController">
        <property name="ldapGroupService" ref="ldapGroupService"/>
    </bean>

    <bean id="secureLdapController" class="com.armedia.acm.services.users.web.api.SecureLdapController">
        <property name="acmContextHolder" ref="acmContextHolder"/>
        <property name="passwordValidationService" ref="passwordValidationService"/>
    </bean>

    <bean id="ldapSyncAPIController" class="com.armedia.acm.services.users.web.api.LdapSyncAPIController">
        <property name="acmContextHolder" ref="acmContextHolder"/>
        <property name="ldapSyncService" ref="ldapSyncService"/>
    </bean>
</beans>