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/cisco-vnmc-api-integration Commit: c06280891271d265778256d7017bee2fa4700560 Parents: 42ffac3 Author: Kelven Yang <[email protected]> Authored: Thu Apr 4 14:16:13 2013 -0700 Committer: Kelven Yang <[email protected]> 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; + } +}
