
<!--
  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">

  <context:annotation-config />


<!--

  OSS deployment configuration

  OSS/non-OSS counter-exclusive components and related configurations should be put here
  for example, configurationDaoImpl component, it has exclusive configuration settings in OSS and non-OSS deployment,
  its component declaration should be put in both componentContext.xml.in and nonossComponentContext.xml.in, each with
  independent configuration

-->
  
  <bean id="databaseUpgradeChecker" class="com.cloud.upgrade.DatabaseUpgradeChecker" />
  <bean id="configurationDaoImpl" class="com.cloud.configuration.dao.ConfigurationDaoImpl" />
  <bean id="GlobalLoadBalancingRulesServiceImpl" class ="org.apache.cloudstack.region.gslb.GlobalLoadBalancingRulesServiceImpl" />

  <!--
    Nicira support components
  -->
  <bean id="niciraNvpDaoImpl" class="com.cloud.network.dao.NiciraNvpDaoImpl" />
  <bean id="niciraNvpNicMappingDaoImpl" class="com.cloud.network.dao.NiciraNvpNicMappingDaoImpl" />
  <bean id="niciraNvpRouterMappingDaoImpl" class="com.cloud.network.dao.NiciraNvpRouterMappingDaoImpl" />
  <bean id="NiciraNvpGuestNetworkGuru" class="com.cloud.network.guru.NiciraNvpGuestNetworkGuru">
    <property name="name" value="NiciraNvpGuestNetworkGuru"/>
  </bean>
  <bean id="NiciraNvp" class="com.cloud.network.element.NiciraNvpElement">
    <property name="name" value="NiciraNvp"/>
  </bean>

  <!-- 
    Midonet support components
  -->
  <bean id="MidoNetGuestNetworkGuru" class="com.cloud.network.guru.MidoNetGuestNetworkGuru">
    <property name="name" value="MidoNetGuestNetworkGuru"/>
  </bean>
  <bean id="MidoNetElement" class="com.cloud.network.element.MidoNetElement">
    <property name="name" value="MidoNetElement"/>
  </bean>

  <!--
    Stratosphere SSP support components
  -->
  <bean id="sspCredentialDaoImpl" class="org.apache.cloudstack.network.dao.SspCredentialDaoImpl"/>
  <bean id="sspTenantDaoImpl" class="org.apache.cloudstack.network.dao.SspTenantDaoImpl"/>
  <bean id="sspUuidDaoImpl" class="org.apache.cloudstack.network.dao.SspUuidDaoImpl"/>
  <bean id="SspGuestNetworkGuru" class="org.apache.cloudstack.network.guru.SspGuestNetworkGuru">
    <property name="name" value="SspGuestNetworkGuru"/>
  </bean>
  <bean id="StratosphereSsp" class="org.apache.cloudstack.network.element.SspElement">
    <property name="name" value="StratosphereSsp"/>
  </bean>

  <!--
    UCS support components
  -->
  <bean id="ucsBladeDaoImpl" class="com.cloud.ucs.database.UcsBladeDaoImpl" />
  <bean id="ucsManagerDaoImpl" class="com.cloud.ucs.database.UcsManagerDaoImpl" />

<!--

  Deployment configurations of various adapters

  It determines whether or not a adapter is activated or how it is loaded in order in its managing provider,

-->
  <bean id="cloudStackImageStoreProviderImpl"
        class="org.apache.cloudstack.storage.datastore.provider.CloudStackImageStoreProviderImpl"/>
  <bean id="s3ImageStoreProviderImpl"
        class="org.apache.cloudstack.storage.datastore.provider.S3ImageStoreProviderImpl"/>
  <bean id="swiftImageStoreProviderImpl"
        class="org.apache.cloudstack.storage.datastore.provider.SwiftImageStoreProviderImpl"/>
  <bean id="solidFireDataStoreProvider"
        class="org.apache.cloudstack.storage.datastore.provider.SolidfirePrimaryDataStoreProvider"/>

  <!--Storage Providers-->
  <bean id="dataStoreProviderManager"
        class="org.apache.cloudstack.storage.datastore.provider.DataStoreProviderManagerImpl">
    <property name="providers">
      <list merge="true">
        <ref bean="cloudStackPrimaryDataStoreProviderImpl"/>
        <ref local="cloudStackImageStoreProviderImpl"/>
        <ref local="s3ImageStoreProviderImpl"/>
        <ref local="swiftImageStoreProviderImpl"/>
        <ref local="solidFireDataStoreProvider"/>
      </list>
    </property>
  </bean>

  <!-- Security adapters -->
  <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="XcpServerDiscoverer"/>
          <ref bean="SecondaryStorageDiscoverer"/>
          <ref bean="KvmServerDiscoverer"/>
          <ref bean="LxcServerDiscoverer"/>
          <ref bean="BareMetalDiscoverer"/>
          <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="ImplicitDedicationPlanner" />
          <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"/>
          <ref bean="NiciraNvp"/>
          <ref bean="InternalLbVm"/>
      </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"/>
          <ref bean="NiciraNvpGuestNetworkGuru"/>
          <ref bean="MidoNetGuestNetworkGuru"/>
          <ref bean="SspGuestNetworkGuru"/>
      </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="NiciraNvp" />
          <ref bean="MidoNetElement"/>
          <ref bean="StratosphereSsp"/>
          <ref bean="InternalLbVm"/>
          <ref bean="BareMetalDhcp"/>
          <ref bean="BareMetalPxe"/>
          <ref bean="BareMetalUserdata"/>
      </list>
    </property>
  </bean>

  <!--
   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" />
          <ref bean="ExplicitDedicationProcessor"/>
      </list>
    </property>
  </bean>

  <!--
    Dedicated Resources components
  -->
  <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>
