<?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.
-->
<!--
  components.xml is the configuration file for the VM Ops
  insertion servers.  Someone can quickly pull together an
  insertion server by selecting the correct adapters to use.

  Here are some places to look for information.
    - To find out the general functionality that each Manager 
      or Adapter provide, look at the javadoc for the interface
      that it implements.  The interface is usually the
      "key" attribute in the declaration.
    - To find specific implementation of each Manager or
      Adapter, look at the javadoc for the actual class.  The 
      class can be found in the <class> element.
    - To find out the configuration parameters for each Manager 
      or Adapter, look at the javadoc for the actual implementation
      class.  It should be documented in the description of the 
      class.
    - To know more about the components.xml in general, look for
      the javadoc for ComponentLocator.java.

  If you found that the Manager or Adapter are not properly 
  documented, please contact the author.
-->
<components.xml>
    <interceptor library="com.cloud.configuration.DefaultInterceptorLibrary"/>
    <management-server class="com.cloud.network.NetworkManagerImpl" library="com.cloud.network.NetworkManagerTestComponentLibrary">
        <dao name="Configuration configuration server" class="com.cloud.configuration.dao.ConfigurationDaoImpl">
             <param name="premium">true</param>
        </dao>
        <adapters key="com.cloud.network.guru.NetworkGuru">
            <!--
                 NOTE: The order of those gurus implicates priority of network traffic types the guru implements.
                 The upper the higher priority. It effects listTafficTypeImplementors API which returns impelmentor
                 of a specific network traffic.
                 A fair question is, if two gurus implement the same two network traffic types, but these traffic types
                 have cross priority, how to rank them? For example:
                    GuruA (TrafficTypeA, TrafficTypeB)
                    GuruB (TrafficTypeA, TrafficTypeB)
                 we want GuruB.TrafficTypeB > GuruA.TrafficTypeB and GuruB.TrafficTypeA < GuruA.TrafficTypeA. As the priority
                 implicated by order can not map to multiple traffic type, you have to do implement GuruC which inherits GuruB
                 for TrafficTypeB. Then ranking them in order of:
                    GuruC (TrafficTypeB)
                    GuruA (TrafficTypeA, TrafficTypeB)
                    GuruB (TrafficTypeA, TrafficTypeB)
                 now GuruC represents TrafficTypeB with highest priority while GuruA represents TrafficTypeA with highest pirority.

                 However, above case barely happens.
            -->

            <adapter name="StorageNetworkGuru" class="com.cloud.network.guru.StorageNetworkGuru"/>
            <adapter name="ExternalGuestNetworkGuru" class="com.cloud.network.guru.ExternalGuestNetworkGuru"/>
            <adapter name="PublicNetworkGuru" class="com.cloud.network.guru.PublicNetworkGuru"/>
            <adapter name="PodBasedNetworkGuru" class="com.cloud.network.guru.PodBasedNetworkGuru"/>
            <adapter name="ControlNetworkGuru" class="com.cloud.network.guru.ControlNetworkGuru"/>
            <adapter name="DirectNetworkGuru" class="com.cloud.network.guru.DirectNetworkGuru"/>
            <adapter name="DirectPodBasedNetworkGuru" class="com.cloud.network.guru.DirectPodBasedNetworkGuru"/>
            <!--<adapter name="OvsGuestNetworkGuru" class="com.cloud.network.guru.OvsGuestNetworkGuru"/> -->
            <adapter name="PrivateNetworkGuru" class="com.cloud.network.guru.PrivateNetworkGuru"/>
            <!--<adapter name="NiciraNvpGuestNetworkGuru" class="com.cloud.network.guru.NiciraNvpGuestNetworkGuru"/> -->
        </adapters>
        <adapters key="com.cloud.network.IpAddrAllocator">
            <adapter name="Basic" class="com.cloud.network.ExternalIpAddressAllocator"/>
        </adapters>
        <adapters key="com.cloud.network.element.NetworkElement">
            <adapter name="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement"/>
            <!--<adapter name="Ovs" class="com.cloud.network.element.OvsElement"/> -->
            <!--<adapter name="ExternalDhcpServer" class="com.cloud.network.element.ExternalDhcpElement"/>-->
            <adapter name="BareMetal" class="com.cloud.network.element.BareMetalElement"/>
            <adapter name="SecurityGroupProvider" class="com.cloud.network.element.SecurityGroupElement"/>
            <adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/>
            <!--<adapter name="NiciraNvp" class="com.cloud.network.element.NiciraNvpElement"/> -->
        </adapters>
        <adapters key="com.cloud.network.element.FirewallServiceProvider">
            <adapter name="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement"/>
            <adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/>
        </adapters>
        <adapters key="com.cloud.network.element.DhcpServiceProvider">
            <adapter name="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement"/>
            <adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/>
            <adapter name="ExternalDhcpElement" class="com.cloud.network.element.ExternalDhcpElement"/>
        </adapters>
        <adapters key="com.cloud.network.element.UserDataServiceProvider">
            <adapter name="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement"/>
            <adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/>
        </adapters>
        <adapters key="com.cloud.network.element.SourceNatServiceProvider">
            <adapter name="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement"/>
            <adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/>
            <!--<adapter name="NiciraNvp" class="com.cloud.network.element.NiciraNvpElement"/>   -->
        </adapters>
        <adapters key="com.cloud.network.element.StaticNatServiceProvider">
            <adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/>
            <adapter name="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement"/>
            <!-- <adapter name="NiciraNvp" class="com.cloud.network.element.NiciraNvpElement"/> -->
        </adapters>
        <adapters key="com.cloud.network.element.PortForwardingServiceProvider">
            <adapter name="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement"/>
            <adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/>
            <!-- <adapter name="NiciraNvp" class="com.cloud.network.element.NiciraNvpElement"/> -->
        </adapters>
        <adapters key="com.cloud.network.element.LoadBalancingServiceProvider">
            <adapter name="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement"/>
            <adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/>
        </adapters>
        <adapters key="com.cloud.network.element.RemoteAccessVPNServiceProvider">
            <adapter name="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement"/>
        </adapters>
        <adapters key="com.cloud.network.element.Site2SiteVpnServiceProvider">
            <adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/>
        </adapters>
        <adapters key="com.cloud.network.element.IpDeployer">
            <adapter name="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement"/>
            <adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/>
            <!-- <adapter name="NiciraNvp" class="com.cloud.network.element.NiciraNvpElement"/> -->
        </adapters>
        <adapters key="com.cloud.network.element.ConnectivityProvider">
            <!-- <adapter name="NiciraNvp" class="com.cloud.network.element.NiciraNvpElement"/> -->
        </adapters>
        <adapters key="com.cloud.network.element.NetworkACLServiceProvider">
            <adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/>
        </adapters>
        <adapters key="com.cloud.network.element.VpcProvider">
            <adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/>
        </adapters>

        <!--<manager name="OvsTunnelManager" key="com.cloud.network.ovs.OvsTunnelManager" class="com.cloud.network.ovs.OvsTunnelManagerImpl"/>-->
        <!--<manager name="ElasticLoadBalancerManager" key="com.cloud.network.lb.ElasticLoadBalancerManager" class="com.cloud.network.lb.ElasticLoadBalancerManagerImpl"/>-->
        <pluggableservice name="VirtualRouterElementService" key="com.cloud.network.element.VirtualRouterElementService" class="com.cloud.network.element.VirtualRouterElement"/>
        <!-- <pluggableservice name="NiciraNvpElementService" key="com.cloud.network.element.NiciraNvpElementService" class="com.cloud.network.element.NiciraNvpElement"/> -->
        <!--<dao name="OvsTunnelInterfaceDao" class="com.cloud.network.ovs.dao.OvsTunnelInterfaceDaoImpl" singleton="false"/> -->
        <!--<dao name="OvsTunnelAccountDao" class="com.cloud.network.ovs.dao.OvsTunnelNetworkDaoImpl" singleton="false"/> -->
        <!--<dao name="NiciraNvpDao" class="com.cloud.network.dao.NiciraNvpDaoImpl" singleton="false"/> -->
        <!--<dao name="NiciraNvpNicMappingDao" class="com.cloud.network.dao.NiciraNvpNicMappingDaoImpl" singleton="false"/> -->
        <!--<dao name="NiciraNvpRouterMappingDao" class="com.cloud.network.dao.NiciraNvpRouterMappingDaoImpl" singleton="false"/> -->
        <!--<dao name="ElasticLbVmMapDao" class="com.cloud.network.lb.dao.ElasticLbVmMapDaoImpl" singleton="false"/> -->
    </management-server>

    <configuration-server class="com.cloud.server.ConfigurationServerImpl">
        <dao name="Configuration configuration server" class="com.cloud.configuration.dao.ConfigurationDaoImpl" singleton="false">
             <param name="premium">true</param>
        </dao>
        <dao name="Snapshot policy defaults" class="com.cloud.storage.dao.SnapshotPolicyDaoImpl" singleton="false"/>
        <dao name="DiskOffering configuration server" class="com.cloud.storage.dao.DiskOfferingDaoImpl" singleton="false"/>         
        <dao name="ServiceOffering configuration server" class="com.cloud.service.dao.ServiceOfferingDaoImpl" singleton="false"/>
        <dao name="host zone configuration server" class="com.cloud.dc.dao.DataCenterDaoImpl" singleton="false"/>
        <dao name="host pod configuration server" class="com.cloud.dc.dao.HostPodDaoImpl" singleton="false"/>
        <dao name="DomainDao" class="com.cloud.domain.dao.DomainDaoImpl" singleton="false"/>
        <dao name="NetworkOfferingDao" class="com.cloud.offerings.dao.NetworkOfferingDaoImpl" singleton="false"/>
        <dao name="DataCenterDao" class="com.cloud.dc.dao.DataCenterDaoImpl" singleton="false"/>
        <dao name="NetworkDao" class="com.cloud.network.dao.NetworkDaoImpl" singleton="false"/>
        <dao name="IpAddressDao" class="com.cloud.network.dao.IPAddressDaoImpl" singleton="false"/>     
        <dao name="VlanDao" class="com.cloud.dc.dao.VlanDaoImpl" singleton="false"/>
        <dao name="ResouceCountDao" class="com.cloud.configuration.dao.ResourceCountDaoImpl" singleton="false"/>
        <dao name="AccountDao" class="com.cloud.user.dao.AccountDaoImpl" singleton="false"/>
        <dao name="UserDao" class="com.cloud.user.dao.UserDaoImpl" singleton="false"/>
        <dao name="NetworkOfferingServiceDao" class="com.cloud.offerings.dao.NetworkOfferingServiceMapDaoImpl" singleton="false"/>
        <dao name="VirtualRouterProviderDao" class="com.cloud.network.dao.VirtualRouterProviderDaoImpl" singleton="false"/>
        <dao name="IdentityDao" class="com.cloud.uuididentity.dao.IdentityDaoImpl" singleton="false"/>
        <dao name="Site2SiteCustomerGatewayDao" class="com.cloud.network.dao.Site2SiteCustomerGatewayDaoImpl" singleton="false"/>
        <dao name="Site2SiteVpnGatewayDao" class="com.cloud.network.dao.Site2SiteVpnGatewayDaoImpl" singleton="false"/>
        <dao name="Site2SiteVpnConnectionDao" class="com.cloud.network.dao.Site2SiteVpnConnectionDaoImpl" singleton="false"/>
    </configuration-server>
    
    
</components.xml>
