You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by pr...@apache.org on 2013/04/05 23:03:42 UTC
[47/50] [abbrv] git commit: updated refs/heads/affinity_groups to
ca1a794
CLOUDSTACK-1917: Finalize componentContext.xml/nonComponentContext.xml content organization to be plugin friendly
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c0628089
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c0628089
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c0628089
Branch: refs/heads/affinity_groups
Commit: c06280891271d265778256d7017bee2fa4700560
Parents: 42ffac3
Author: Kelven Yang <ke...@gmail.com>
Authored: Thu Apr 4 14:16:13 2013 -0700
Committer: Kelven Yang <ke...@gmail.com>
Committed: Thu Apr 4 15:35:18 2013 -0700
----------------------------------------------------------------------
client/tomcatconf/applicationContext.xml.in | 157 ++++++++----
client/tomcatconf/componentContext.xml.in | 205 ++++++++-------
client/tomcatconf/nonossComponentContext.xml.in | 190 +++++++-------
.../src/com/cloud/utils/component/AdapterList.java | 34 +++
4 files changed, 352 insertions(+), 234 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c0628089/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in
index d3699b9..50a755a 100644
--- a/client/tomcatconf/applicationContext.xml.in
+++ b/client/tomcatconf/applicationContext.xml.in
@@ -32,6 +32,12 @@
<context:annotation-config />
+<!--=====================================================================================================-->
+<!-- -->
+<!-- core OSS/non-OSS Common components -->
+<!-- -->
+<!--=====================================================================================================-->
+
<!--
@DB support
-->
@@ -640,7 +646,53 @@
<!--
Managers
- -->
+ -->
+ <bean id="accountManagerImpl" class="com.cloud.user.AccountManagerImpl" >
+ <property name="UserAuthenticators" value="#{userAuthenticators.Adapters}" />
+ <property name="SecurityCheckers" value="#{securityCheckers.Adapters}" />
+ </bean>
+
+ <bean id="managementServerImpl" class ="com.cloud.server.ManagementServerImpl">
+ <property name="UserAuthenticators" value="#{userAuthenticators.Adapters}" />
+ <property name="HostAllocators" value="#{hostAllocators.Adapters}" />
+ </bean>
+
+ <bean id="storageManagerImpl" class="com.cloud.storage.StorageManagerImpl">
+ <property name="StoragePoolAllocators" value="#{storagePoolAllocators.Adapters}" />
+ </bean>
+
+ <bean id="FirstFitPlanner" class="com.cloud.deploy.FirstFitPlanner">
+ <property name="name" value="First Fit"/>
+ <property name="StoragePoolAllocators" value="#{storagePoolAllocators.Adapters}" />
+ <property name="HostAllocators" value="#{hostAllocators.Adapters}" />
+ </bean>
+
+ <bean id="resourceManagerImpl" class="com.cloud.resource.ResourceManagerImpl" >
+ <property name="PodAllocators" value="#{podAllocators.Adapters}" />
+ <property name="Discoverers" value="#{resourceDiscoverers.Adapters}" />
+ </bean>
+
+ <bean id="highAvailabilityManagerExtImpl" class="com.cloud.ha.HighAvailabilityManagerExtImpl" >
+ <property name="Investigators" value="#{haInvestigators.Adapters}" />
+ <property name="FenceBuilders" value="#{haFenceBuilders.Adapters}" />
+ </bean>
+
+ <bean id="clusteredVirtualMachineManagerImpl" class="com.cloud.vm.ClusteredVirtualMachineManagerImpl" >
+ <property name="HostAllocators" value="#{hostAllocators.Adapters}" />
+ <property name="Planners" value="#{deploymentPlanners.Adapters}" />
+ </bean>
+
+ <bean id="networkManagerImpl" class="com.cloud.network.NetworkManagerImpl" >
+ <property name="NetworkGurus" value="#{networkGurus.Adapters}" />
+ <property name="NetworkElements" value="#{networkElements.Adapters}" />
+ <property name="IpDeployers" value="#{ipDeployers.Adapters}" />
+ <property name="DhcpProviders" value="#{dhcpProviders.Adapters}" />
+ </bean>
+
+ <bean id="networkModelImpl" class="com.cloud.network.NetworkModelImpl">
+ <property name="NetworkElements" value="#{networkElements.Adapters}" />
+ </bean>
+
<bean id="configurationServerImpl" class="com.cloud.server.ConfigurationServerImpl" />
<bean id="clusterManagerImpl" class="com.cloud.cluster.ClusterManagerImpl" />
@@ -701,49 +753,6 @@
<bean id="vpcVirtualNetworkApplianceManagerImpl" class="com.cloud.network.router.VpcVirtualNetworkApplianceManagerImpl" />
<!--
- Baremetal components
- -->
-<!--
- <bean id="BareMetalDhcp" class="com.cloud.baremetal.networkservice.BaremetalDhcpElement">
- <property name="name" value="BareMetalDhcp"/>
- </bean>
- <bean id="BareMetalPxe" class="com.cloud.baremetal.networkservice.BaremetalPxeElement">
- <property name="name" value="BareMetalPxe"/>
- </bean>
- <bean id="BareMetalUserdata" class="com.cloud.baremetal.networkservice.BaremetalUserdataElement">
- <property name="name" value="BareMetalUserdata"/>
- </bean>
-
- <bean id="BareMetalTemplateAdapter" class="com.cloud.baremetal.manager.BareMetalTemplateAdapter" />
-
- <bean id="BareMetalDiscoverer" class="com.cloud.baremetal.manager.BareMetalDiscoverer">
- <property name="name" value="Bare Metal Agent"/>
- </bean>
-
- <bean id="BareMetalPlanner" class="com.cloud.baremetal.manager.BareMetalPlanner">
- <property name="name" value="BareMetal Fit"/>
- </bean>
-
- <bean id="BaremetalGuru" class="com.cloud.baremetal.manager.BareMetalGuru">
- <property name="name" value="BaremetalGuru"/>
- </bean>
-
- <bean id="BaremetalPlannerSelector" class="com.cloud.baremetal.manager.BaremetalPlannerSelector">
- <property name="name" value="BaremetalPlannerSelector"/>
- </bean>
-
- <bean id="BaremetalManager" class="com.cloud.baremetal.manager.BaremetalManagerImpl"/>
- <bean id="BaremetalDhcpManager" class="com.cloud.baremetal.networkservice.BaremetalDhcpManagerImpl"/>
- <bean id="BaremetalKickStartPxeService" class="com.cloud.baremetal.networkservice.BaremetalKickStartServiceImpl"/>
- <bean id="BaremetalPingPxeService" class="com.cloud.baremetal.networkservice.BareMetalPingServiceImpl" />
- <bean id="BaremetalPxeManager" class="com.cloud.baremetal.networkservice.BaremetalPxeManagerImpl" />
-
- <bean id="bAREMETAL" class="org.apache.cloudstack.storage.image.format.BAREMETAL" />
- <bean id="baremetalDhcpDaoImpl" class="com.cloud.baremetal.database.BaremetalDhcpDaoImpl" />
- <bean id="baremetalPxeDaoImpl" class="com.cloud.baremetal.database.BaremetalPxeDaoImpl" />
--->
-
- <!--
Misc components
-->
<bean id="actionEventUtils" class="com.cloud.event.ActionEventUtils" />
@@ -773,7 +782,7 @@
<bean id="globalLoadBalancingRulesServiceImpl" class="org.apache.cloudstack.region.gslb.GlobalLoadBalancingRulesServiceImpl" />
<bean id="hypervsiorHostEndPointRpcServer" class="org.apache.cloudstack.storage.HypervsiorHostEndPointRpcServer" />
<bean id="iSCSI" class="org.apache.cloudstack.storage.datastore.type.ISCSI" />
- <bean id="iSO" class="org.apache.cloudstack.storage.image.format.ISO" />
+ <bean id="ISO" class="org.apache.cloudstack.storage.image.format.ISO" />
<bean id="imageDataFactoryImpl" class="org.apache.cloudstack.storage.image.ImageDataFactoryImpl" />
<bean id="imageDataManagerImpl" class="org.apache.cloudstack.storage.image.manager.ImageDataManagerImpl" />
<bean id="imageDataStoreHelper" class="org.apache.cloudstack.storage.image.datastore.ImageDataStoreHelper" />
@@ -783,12 +792,12 @@
<bean id="iso" class="org.apache.cloudstack.engine.subsystem.api.storage.type.Iso" />
<bean id="networkFileSystem" class="org.apache.cloudstack.storage.datastore.type.NetworkFileSystem" />
<bean id="networkRestService" class="org.apache.cloudstack.engine.rest.service.api.NetworkRestService" />
- <bean id="oVA" class="org.apache.cloudstack.storage.image.format.OVA" />
+ <bean id="OVA" class="org.apache.cloudstack.storage.image.format.OVA" />
<bean id="objectInDataStoreManagerImpl" class="org.apache.cloudstack.storage.datastore.ObjectInDataStoreManagerImpl" />
<bean id="podRestService" class="org.apache.cloudstack.engine.rest.service.api.PodRestService" />
<bean id="primaryDataStoreHelper" class="org.apache.cloudstack.storage.volume.datastore.PrimaryDataStoreHelper" />
<bean id="provisioningServiceImpl" class="org.apache.cloudstack.engine.service.api.ProvisioningServiceImpl" />
- <bean id="qCOW2" class="org.apache.cloudstack.storage.image.format.QCOW2" />
+ <bean id="QCOW2" class="org.apache.cloudstack.storage.image.format.QCOW2" />
<bean id="registerCompleteServlet" class="com.cloud.servlet.RegisterCompleteServlet" />
<bean id="rootDisk" class="org.apache.cloudstack.engine.subsystem.api.storage.type.RootDisk" />
<bean id="snapshotDataFactoryImpl" class="org.apache.cloudstack.storage.snapshot.SnapshotDataFactoryImpl" />
@@ -800,7 +809,7 @@
<bean id="unknown" class="org.apache.cloudstack.storage.image.format.Unknown" />
<bean id="usageEventUtils" class="com.cloud.event.UsageEventUtils" />
<bean id="userContextInitializer" class="com.cloud.user.UserContextInitializer" />
- <bean id="vHD" class="org.apache.cloudstack.storage.image.format.VHD" />
+ <bean id="VHD" class="org.apache.cloudstack.storage.image.format.VHD" />
<bean id="vMEntityManagerImpl" class="org.apache.cloudstack.engine.cloud.entity.api.VMEntityManagerImpl" />
<bean id="virtualMachineEntityFactory" class="org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntityFactory" />
<bean id="virtualMachineEntityImpl" class="org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntityImpl" />
@@ -819,10 +828,60 @@
<bean id="mockAgentManagerImpl" class="com.cloud.agent.manager.MockAgentManagerImpl" />
<bean id="mockStorageManagerImpl" class="com.cloud.agent.manager.MockStorageManagerImpl" />
<bean id="mockVmManagerImpl" class="com.cloud.agent.manager.MockVmManagerImpl" />
- <bean id="resourceManagerImpl" class="com.cloud.resource.ResourceManagerImpl" />
<bean id="simulatorManagerImpl" class="com.cloud.agent.manager.SimulatorManagerImpl" />
<bean id="vMSnapshotManagerImpl" class="com.cloud.vm.snapshot.VMSnapshotManagerImpl" />
<bean id="volumeManagerImpl" class="com.cloud.storage.VolumeManagerImpl" />
<bean id="ClassicalPrimaryDataStoreProvider" class="org.apache.cloudstack.storage.datastore.provider.CloudStackPrimaryDataStoreProviderImpl" />
+
+
+<!--=======================================================================================================-->
+<!-- -->
+<!-- Module-basis OSS/non-OSS Common components -->
+<!-- -->
+<!--=======================================================================================================-->
+
+ <!--
+ Baremetal components
+ -->
+
+<!--
+ <bean id="BareMetalDhcp" class="com.cloud.baremetal.networkservice.BaremetalDhcpElement">
+ <property name="name" value="BareMetalDhcp"/>
+ </bean>
+ <bean id="BareMetalPxe" class="com.cloud.baremetal.networkservice.BaremetalPxeElement">
+ <property name="name" value="BareMetalPxe"/>
+ </bean>
+ <bean id="BareMetalUserdata" class="com.cloud.baremetal.networkservice.BaremetalUserdataElement">
+ <property name="name" value="BareMetalUserdata"/>
+ </bean>
+
+ <bean id="BareMetalTemplateAdapter" class="com.cloud.baremetal.manager.BareMetalTemplateAdapter" />
+
+ <bean id="BareMetalDiscoverer" class="com.cloud.baremetal.manager.BareMetalDiscoverer">
+ <property name="name" value="Bare Metal Agent"/>
+ </bean>
+
+ <bean id="BareMetalPlanner" class="com.cloud.baremetal.manager.BareMetalPlanner">
+ <property name="name" value="BareMetal Fit"/>
+ </bean>
+
+ <bean id="BaremetalGuru" class="com.cloud.baremetal.manager.BareMetalGuru">
+ <property name="name" value="BaremetalGuru"/>
+ </bean>
+
+ <bean id="BaremetalPlannerSelector" class="com.cloud.baremetal.manager.BaremetalPlannerSelector">
+ <property name="name" value="BaremetalPlannerSelector"/>
+ </bean>
+
+ <bean id="BaremetalManager" class="com.cloud.baremetal.manager.BaremetalManagerImpl"/>
+ <bean id="BaremetalDhcpManager" class="com.cloud.baremetal.networkservice.BaremetalDhcpManagerImpl"/>
+ <bean id="BaremetalKickStartPxeService" class="com.cloud.baremetal.networkservice.BaremetalKickStartServiceImpl"/>
+ <bean id="BaremetalPingPxeService" class="com.cloud.baremetal.networkservice.BareMetalPingServiceImpl" />
+ <bean id="BaremetalPxeManager" class="com.cloud.baremetal.networkservice.BaremetalPxeManagerImpl" />
+
+ <bean id="BAREMETAL" class="org.apache.cloudstack.storage.image.format.BAREMETAL" />
+ <bean id="baremetalDhcpDaoImpl" class="com.cloud.baremetal.database.BaremetalDhcpDaoImpl" />
+ <bean id="baremetalPxeDaoImpl" class="com.cloud.baremetal.database.BaremetalPxeDaoImpl" />
+-->
</beans>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c0628089/client/tomcatconf/componentContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/componentContext.xml.in b/client/tomcatconf/componentContext.xml.in
index 6c7c7d4..e2e6834 100644
--- a/client/tomcatconf/componentContext.xml.in
+++ b/client/tomcatconf/componentContext.xml.in
@@ -31,50 +31,74 @@
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
- <!--
- OSS deployment component configuration
- -->
+<!--
+
+ 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" />
+
<!--
- Managers & pluggable adapters configuration under OSS deployment
+ Nicira support components
-->
- <bean id="storageManagerImpl" class="com.cloud.storage.StorageManagerImpl">
- <property name="StoragePoolAllocators">
- <list>
- <ref bean="LocalStoragePoolAllocator"/>
- <ref bean="clusterScopeStoragePoolAllocator"/>
- <ref bean="zoneWideStoragePoolAllocator"/>
- <ref bean="garbageCollectingStoragePoolAllocator"/>
- </list>
- </property>
+ <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>
- <bean id="FirstFitPlanner" class="com.cloud.deploy.FirstFitPlanner">
- <property name="name" value="First Fit"/>
- <property name="StoragePoolAllocators">
- <list>
- <ref bean="LocalStoragePoolAllocator"/>
- <ref bean="clusterScopeStoragePoolAllocator"/>
- <ref bean="zoneWideStoragePoolAllocator"/>
- <ref bean="garbageCollectingStoragePoolAllocator"/>
- </list>
- </property>
- <property name="HostAllocators">
+ <!--
+ 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>
+
+<!--
+
+ 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,
+
+-->
+
+ <!-- Security adapters -->
+ <bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList">
+ <property name="Adapters">
<list>
- <ref bean="FirstFitRouting"/>
+ <ref bean="MD5UserAuthenticator"/>
+ <ref bean="LDAPUserAuthenticator"/>
</list>
</property>
</bean>
-
- <bean id="resourceManagerImpl" class="com.cloud.resource.ResourceManagerImpl" >
- <property name="PodAllocators">
+
+ <bean id="securityCheckers" class="com.cloud.utils.component.AdapterList">
+ <property name="Adapters">
<list>
- <ref bean="UserConcentratedAllocator"/>
+ <ref bean="domainChecker"/>
</list>
</property>
- <property name="Discoverers">
+ </bean>
+
+ <!-- Resource discoverers -->
+ <bean id="resourceDiscoverers" class="com.cloud.utils.component.AdapterList">
+ <property name="Adapters">
<list>
<ref bean="XcpServerDiscoverer"/>
<ref bean="SecondaryStorageDiscoverer"/>
@@ -86,12 +110,13 @@
-->
<ref bean="OvmDiscoverer"/>
- </list>
+ </list>
</property>
</bean>
- <bean id="highAvailabilityManagerExtImpl" class="com.cloud.ha.HighAvailabilityManagerExtImpl" >
- <property name="Investigators">
+ <!-- HA adapters -->
+ <bean id="haInvestigators" class="com.cloud.utils.component.AdapterList">
+ <property name="Adapters">
<list>
<ref bean="CheckOnAgentInvestigator"/>
<ref bean="XenServerInvestigator"/>
@@ -99,7 +124,10 @@
<ref bean="ManagementIPSystemVMInvestigator"/>
</list>
</property>
- <property name="FenceBuilders">
+ </bean>
+
+ <bean id="haFenceBuilders" class="com.cloud.utils.component.AdapterList">
+ <property name="Adapters">
<list>
<ref bean="XenServerFencer"/>
<ref bean="KVMFencer"/>
@@ -108,13 +136,9 @@
</property>
</bean>
- <bean id="clusteredVirtualMachineManagerImpl" class="com.cloud.vm.ClusteredVirtualMachineManagerImpl" >
- <property name="HostAllocators">
- <list>
- <ref bean="FirstFitRouting"/>
- </list>
- </property>
- <property name="Planners">
+ <!-- Deployment/allocation adapters -->
+ <bean id="deploymentPlanners" class="com.cloud.utils.component.AdapterList">
+ <property name="Adapters">
<list>
<ref bean="FirstFitPlanner" />
<ref bean="UserDispersingPlanner" />
@@ -123,50 +147,50 @@
<!--
<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="networkManagerImpl" class="com.cloud.network.NetworkManagerImpl" >
- <property name="NetworkGurus">
+ <bean id="hostAllocators" 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="FirstFitRouting"/>
</list>
</property>
- <property name="NetworkElements">
+ </bean>
+
+ <bean id="storagePoolAllocators" 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="BareMetalDhcp"/>
- <ref bean="BareMetalPxe"/>
- <ref bean="BareMetalUserdata"/>
--->
+ <ref bean="LocalStoragePoolAllocator"/>
+ <ref bean="clusterScopeStoragePoolAllocator"/>
+ <ref bean="zoneWideStoragePoolAllocator"/>
+ <ref bean="garbageCollectingStoragePoolAllocator"/>
</list>
</property>
- <property name="IpDeployers">
+ </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>
- <property name="DhcpProviders">
+ </bean>
+
+ <bean id="dhcpProviders" class="com.cloud.utils.component.AdapterList">
+ <property name="Adapters">
<list>
<ref bean="VirtualRouter"/>
<ref bean="VpcVirtualRouter"/>
@@ -177,8 +201,24 @@
</property>
</bean>
- <bean id="networkModelImpl" class="com.cloud.network.NetworkModelImpl">
- <property name="NetworkElements">
+ <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"/>
@@ -195,30 +235,5 @@
</property>
</bean>
- <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>
-
</beans>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c0628089/client/tomcatconf/nonossComponentContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/nonossComponentContext.xml.in b/client/tomcatconf/nonossComponentContext.xml.in
index 479c03f..9b23698 100644
--- a/client/tomcatconf/nonossComponentContext.xml.in
+++ b/client/tomcatconf/nonossComponentContext.xml.in
@@ -32,9 +32,16 @@
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
- <!--
- Non-OSS deployment component configuration
- -->
+<!--
+
+ non-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="premiumDatabaseUpgradeChecker" class="com.cloud.upgrade.PremiumDatabaseUpgradeChecker"/>
<!--
@@ -132,45 +139,47 @@
<property name="name" value="BigSwitchVnsElement"/>
</bean>
- <!--
- Managers & pluggable adapters configuration under non-OSS deployment
+
+ <!--
+ Midonet support components
-->
- <bean id="storageManagerImpl" class="com.cloud.storage.StorageManagerImpl">
- <property name="StoragePoolAllocators">
- <list>
- <ref bean="LocalStoragePoolAllocator"/>
- <ref bean="clusterScopeStoragePoolAllocator"/>
- <ref bean="zoneWideStoragePoolAllocator"/>
- <ref bean="garbageCollectingStoragePoolAllocator"/>
- </list>
- </property>
+ <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>
- <bean id="FirstFitPlanner" class="com.cloud.deploy.FirstFitPlanner">
- <property name="name" value="First Fit"/>
- <property name="StoragePoolAllocators">
+<!--
+
+ 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,
+
+-->
+
+ <!-- Security adapters -->
+ <bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList">
+ <property name="Adapters">
<list>
- <ref bean="LocalStoragePoolAllocator"/>
- <ref bean="clusterScopeStoragePoolAllocator"/>
- <ref bean="zoneWideStoragePoolAllocator"/>
- <ref bean="garbageCollectingStoragePoolAllocator"/>
- </list>
- </property>
- <property name="HostAllocators">
- <list>
- <ref bean="FirstFitRouting"/>
+ <ref bean="MD5UserAuthenticator"/>
+ <ref bean="LDAPUserAuthenticator"/>
</list>
</property>
</bean>
-
- <bean id="resourceManagerImpl" class="com.cloud.resource.ResourceManagerImpl" >
- <property name="PodAllocators">
+
+ <bean id="securityCheckers" class="com.cloud.utils.component.AdapterList">
+ <property name="Adapters">
<list>
- <ref bean="UserConcentratedAllocator"/>
+ <ref bean="domainChecker"/>
</list>
</property>
- <property name="Discoverers">
+ </bean>
+
+ <!-- Resource discoverers -->
+ <bean id="resourceDiscoverers" class="com.cloud.utils.component.AdapterList">
+ <property name="Adapters">
<list>
<ref bean="XcpServerDiscoverer"/>
<ref bean="SecondaryStorageDiscoverer"/>
@@ -180,12 +189,13 @@
-->
<ref bean="OvmDiscoverer"/>
<ref bean="vmwareServerDiscoverer"/>
- </list>
+ </list>
</property>
</bean>
- <bean id="highAvailabilityManagerExtImpl" class="com.cloud.ha.HighAvailabilityManagerExtImpl" >
- <property name="Investigators">
+ <!-- HA adapters -->
+ <bean id="haInvestigators" class="com.cloud.utils.component.AdapterList">
+ <property name="Adapters">
<list>
<ref bean="CheckOnAgentInvestigator"/>
<ref bean="XenServerInvestigator"/>
@@ -194,7 +204,10 @@
<ref bean="ManagementIPSystemVMInvestigator"/>
</list>
</property>
- <property name="FenceBuilders">
+ </bean>
+
+ <bean id="haFenceBuilders" class="com.cloud.utils.component.AdapterList">
+ <property name="Adapters">
<list>
<ref bean="XenServerFencer"/>
<ref bean="KVMFencer"/>
@@ -204,80 +217,89 @@
</property>
</bean>
- <bean id="clusteredVirtualMachineManagerImpl" class="com.cloud.vm.ClusteredVirtualMachineManagerImpl" >
- <property name="HostAllocators">
- <list>
- <ref bean="FirstFitRouting"/>
- </list>
- </property>
- <property name="Planners">
+ <!-- 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="networkManagerImpl" class="com.cloud.network.NetworkManagerImpl" >
- <property name="NetworkGurus">
+ <bean id="hostAllocators" 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="FirstFitRouting"/>
</list>
</property>
- <property name="NetworkElements">
+ </bean>
+
+ <bean id="storagePoolAllocators" class="com.cloud.utils.component.AdapterList">
+ <property name="Adapters">
<list>
- <ref bean="JuniperSRX"/>
- <ref bean="Netscaler"/>
- <ref bean="F5BigIP"/>
- <ref bean="CiscoNexus1000vVSM"/>
- <ref bean="NiciraNvp" />
- <ref bean="MidoNetElement" />
- <ref bean="bigSwitchVnsElement"/>
- <ref bean="VirtualRouter"/>
- <ref bean="Ovs"/>
- <ref bean="SecurityGroupProvider"/>
- <ref bean="VpcVirtualRouter"/>
-<!--
- <ref bean="BareMetalDhcp"/>
- <ref bean="BareMetalPxe"/>
- <ref bean="BareMetalUserdata"/>
--->
+ <ref bean="LocalStoragePoolAllocator"/>
+ <ref bean="clusterScopeStoragePoolAllocator"/>
+ <ref bean="zoneWideStoragePoolAllocator"/>
+ <ref bean="garbageCollectingStoragePoolAllocator"/>
</list>
</property>
- <property name="IpDeployers">
+ </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>
- <property name="DhcpProviders">
+ </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="networkModelImpl" class="com.cloud.network.NetworkModelImpl">
- <property name="NetworkElements">
+ <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="JuniperSRX"/>
<ref bean="Netscaler"/>
@@ -299,16 +321,4 @@
</property>
</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>
-
-
-
</beans>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c0628089/utils/src/com/cloud/utils/component/AdapterList.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/component/AdapterList.java b/utils/src/com/cloud/utils/component/AdapterList.java
new file mode 100644
index 0000000..ae86717
--- /dev/null
+++ b/utils/src/com/cloud/utils/component/AdapterList.java
@@ -0,0 +1,34 @@
+// 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
+// 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.
+package com.cloud.utils.component;
+
+import java.util.List;
+
+public class AdapterList<T extends Adapter> {
+ protected List<T> adapters;
+
+ public AdapterList() {
+ }
+
+ public List<T> getAdapters() {
+ return adapters;
+ }
+
+ public void setAdapters(List<T> adapters) {
+ this.adapters = adapters;
+ }
+}