<!--
  ~ 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"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                      http://www.springframework.org/schema/tx
                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
                      http://www.springframework.org/schema/aop
                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
                      http://www.springframework.org/schema/context
                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">

  <!--
    OSS deployment component configuration
  -->
  <bean id="databaseUpgradeChecker" class="com.cloud.upgrade.DatabaseUpgradeChecker"/>
  <bean id="configurationDaoImpl" class="com.cloud.configuration.dao.ConfigurationDaoImpl"/>

  <!-- simulator components -->
  <bean id="SimulatorSecondaryDiscoverer" class="com.cloud.resource.SimulatorSecondaryDiscoverer">
    <property name="name" value="SecondaryStorage"/>
  </bean>
  <bean id="SimulatorDiscoverer" class="com.cloud.resource.SimulatorDiscoverer">
    <property name="name" value="Simulator Agent"/>
  </bean>
  <bean id="SimulatorGuru" class="com.cloud.simulator.SimulatorGuru">
    <property name="name" value="Simulator Guru"/>
  </bean>

  <!--
    Managers & pluggable adapters configuration under OSS deployment
  -->
  <bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
        <ref bean="SHA256SaltedUserAuthenticator"/>
        <ref bean="MD5UserAuthenticator"/>
        <ref bean="LDAPUserAuthenticator"/>
        <ref bean="PlainTextUserAuthenticator"/>
      </list>
    </property>
  </bean>
  <bean id="userPasswordEncoders" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
        <ref bean="SHA256SaltedUserAuthenticator"/>
        <ref bean="MD5UserAuthenticator"/>
        <ref bean="LDAPUserAuthenticator"/>
        <ref bean="PlainTextUserAuthenticator"/>
      </list>
    </property>
  </bean>


  <bean id="securityCheckers" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
        <ref bean="domainChecker"/>
      </list>
    </property>
  </bean>

  <!-- Resource discoverers -->
  <bean id="resourceDiscoverers" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
        <ref bean="SimulatorDiscoverer"/>
        <ref bean="SimulatorSecondaryDiscoverer"/>
        <ref bean="XcpServerDiscoverer"/>
        <ref bean="SecondaryStorageDiscoverer"/>
        <ref bean="KvmServerDiscoverer"/>
        <ref bean="LxcServerDiscoverer"/>
        <ref bean="OvmDiscoverer"/>
      </list>
    </property>
  </bean>

  <!-- HA adapters -->
  <bean id="haInvestigators" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
        <ref bean="CheckOnAgentInvestigator"/>
        <ref bean="XenServerInvestigator"/>
        <ref bean="UserVmDomRInvestigator"/>
        <ref bean="ManagementIPSystemVMInvestigator"/>
      </list>
    </property>
  </bean>

  <bean id="haFenceBuilders" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
        <ref bean="XenServerFencer"/>
        <ref bean="KVMFencer"/>
        <ref bean="OvmFencer"/>
      </list>
    </property>
  </bean>

  <!-- Deployment/allocation adapters -->
  <bean id="deploymentPlanners" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
        <ref bean="FirstFitPlanner"/>
        <ref bean="UserDispersingPlanner"/>
        <ref bean="UserConcentratedPodPlanner"/>

        <!--
                  <ref bean="BareMetalPlanner" />
        -->
      </list>
    </property>
  </bean>

  <bean id="podAllocators" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
        <ref bean="UserConcentratedAllocator"/>
      </list>
    </property>
  </bean>

  <bean id="hostAllocators" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
        <ref bean="FirstFitRouting"/>
      </list>
    </property>
  </bean>

  <bean id="storagePoolAllocators" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
        <ref bean="LocalStoragePoolAllocator"/>
        <ref bean="clusterScopeStoragePoolAllocator"/>
        <ref bean="zoneWideStoragePoolAllocator"/>
        <ref bean="garbageCollectingStoragePoolAllocator"/>
      </list>
    </property>
  </bean>

  <!-- Networking adapters -->
  <bean id="ipDeployers" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
        <ref bean="elasticLoadBalancerElement"/>
        <ref bean="VirtualRouter"/>
        <ref bean="VpcVirtualRouter"/>
      </list>
    </property>
  </bean>

  <bean id="dhcpProviders" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
        <ref bean="VirtualRouter"/>
        <ref bean="VpcVirtualRouter"/>
        <!--
                  <ref bean="BareMetalDhcp"/>
        -->
      </list>
    </property>
  </bean>

  <bean id="networkGurus" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
        <ref bean="StorageNetworkGuru"/>
        <ref bean="ExternalGuestNetworkGuru"/>
        <ref bean="PublicNetworkGuru"/>
        <ref bean="PodBasedNetworkGuru"/>
        <ref bean="DirectPodBasedNetworkGuru"/>
        <ref bean="ControlNetworkGuru"/>
        <ref bean="DirectNetworkGuru"/>
        <ref bean="OvsGuestNetworkGuru"/>
        <ref bean="PrivateNetworkGuru"/>
      </list>
    </property>
  </bean>

  <bean id="networkElements" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
        <ref bean="VirtualRouter"/>
        <ref bean="Ovs"/>
        <ref bean="SecurityGroupProvider"/>
        <ref bean="VpcVirtualRouter"/>
        <ref bean="InternalLbVm"/>
        <!--
                  <ref bean="BareMetalDhcp"/>
                  <ref bean="BareMetalPxe"/>
                  <ref bean="BareMetalUserdata"/>
        -->
      </list>
    </property>
  </bean>

  <bean id="GlobalLoadBalancingRulesServiceImpl"
        class="org.apache.cloudstack.region.gslb.GlobalLoadBalancingRulesServiceImpl"/>

  <!--
   AffinityGroup Processors
  -->
  <bean id="HostAntiAffinityProcessor" class="org.apache.cloudstack.affinity.HostAntiAffinityProcessor">
    <property name="name" value="HostAntiAffinityProcessor"/>
    <property name="type" value="host anti-affinity"/>
  </bean>

  <bean id="affinityProcessors" class="com.cloud.utils.component.AdapterList">
    <property name="Adapters">
      <list>
          <ref bean="HostAntiAffinityProcessor" />
      </list>
    </property>
  </bean>

  <bean id="DedicatedResourceManagerImpl" class="org.apache.cloudstack.dedicated.DedicatedResourceManagerImpl"/>
  <bean id="ExplicitDedicationProcessor" class="org.apache.cloudstack.affinity.ExplicitDedicationProcessor">
    <property name="name" value="ExplicitDedicationProcessor"/>
    <property name="type" value="ExplicitDedication"/>
  </bean>

</beans>
