You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ch...@apache.org on 2013/03/27 14:20:20 UTC
[1/7] CLOUDSTACK-1276, CLOUDSTACK-1729: Remove autoscanning,
ensure adpater execution order in runtime
Updated Branches:
refs/heads/4.1 8a358980b -> e221d18bc
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6aaa4f68/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java
index f03f5b8..3a57b2f 100755
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@ -106,6 +106,7 @@ import org.apache.cloudstack.api.command.user.zone.*;
import org.apache.cloudstack.api.response.ExtractResponse;
import org.apache.commons.codec.binary.Base64;
import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
import com.cloud.agent.AgentManager;
import com.cloud.agent.api.GetVncPortAnswer;
@@ -233,8 +234,10 @@ import com.cloud.utils.EnumUtils;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair;
import com.cloud.utils.PasswordGenerator;
+import com.cloud.utils.ReflectUtil;
import com.cloud.utils.Ternary;
import com.cloud.utils.component.Adapter;
+import com.cloud.utils.component.AdapterBase;
import com.cloud.utils.component.ComponentContext;
import com.cloud.utils.component.ComponentLifecycle;
import com.cloud.utils.component.Manager;
@@ -370,9 +373,9 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Inject
private HypervisorCapabilitiesDao _hypervisorCapabilitiesDao;
- @Inject
private List<HostAllocator> _hostAllocators;
- @Inject
+
+ @Inject
private ConfigurationManager _configMgr;
@Inject
private ResourceTagDao _resourceTagDao;
@@ -391,13 +394,6 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Inject
S3Manager _s3Mgr;
-/*
- @Inject
- ComponentContext _forceContextRef; // create a dependency to ComponentContext so that it can be loaded beforehead
-
- @Inject
- EventUtils _forceEventUtilsRef;
-*/
private final ScheduledExecutorService _eventExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("EventChecker"));
private KeystoreManager _ksMgr;
@@ -405,7 +401,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
private Map<String, Boolean> _availableIdsMap;
- @Inject List<UserAuthenticator> _userAuthenticators;
+ List<UserAuthenticator> _userAuthenticators;
@Inject ClusterManager _clusterMgr;
private String _hashKey = null;
@@ -413,6 +409,22 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
public ManagementServerImpl() {
setRunLevel(ComponentLifecycle.RUN_LEVEL_APPLICATION_MAINLOOP);
}
+
+ public List<UserAuthenticator> getUserAuthenticators() {
+ return _userAuthenticators;
+ }
+
+ public void setUserAuthenticators(List<UserAuthenticator> authenticators) {
+ _userAuthenticators = authenticators;
+ }
+
+ public List<HostAllocator> getHostAllocators() {
+ return _hostAllocators;
+ }
+
+ public void setHostAllocators(List<HostAllocator> _hostAllocators) {
+ this._hostAllocators = _hostAllocators;
+ }
@Override
public boolean configure(String name, Map<String, Object> params)
@@ -437,7 +449,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
return true;
}
- @Override
+ @Override
public boolean start() {
s_logger.info("Startup CloudStack management server...");
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6aaa4f68/server/src/com/cloud/storage/StorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java
index 05e0cfe..624361f 100755
--- a/server/src/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/com/cloud/storage/StorageManagerImpl.java
@@ -260,17 +260,28 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
protected DownloadMonitor _downloadMonitor;
@Inject
protected ResourceTagDao _resourceTagDao;
- @Inject
+
protected List<StoragePoolAllocator> _storagePoolAllocators;
- @Inject ConfigurationDao _configDao;
+ public List<StoragePoolAllocator> getStoragePoolAllocators() {
+ return _storagePoolAllocators;
+ }
+ public void setStoragePoolAllocators(
+ List<StoragePoolAllocator> _storagePoolAllocators) {
+ this._storagePoolAllocators = _storagePoolAllocators;
+ }
+
+ @Inject ConfigurationDao _configDao;
@Inject ManagementServer _msServer;
- // TODO : we don't have any instantiated pool discover, disable injection temporarily
- // @Inject
protected List<StoragePoolDiscoverer> _discoverers;
-
-
- protected SearchBuilder<VMTemplateHostVO> HostTemplateStatesSearch;
+ public List<StoragePoolDiscoverer> getDiscoverers() {
+ return _discoverers;
+ }
+ public void setDiscoverers(List<StoragePoolDiscoverer> _discoverers) {
+ this._discoverers = _discoverers;
+ }
+
+ protected SearchBuilder<VMTemplateHostVO> HostTemplateStatesSearch;
protected GenericSearchBuilder<StoragePoolHostVO, Long> UpHostsInPoolSearch;
protected SearchBuilder<VMInstanceVO> StoragePoolSearch;
protected SearchBuilder<StoragePoolVO> LocalStorageSearch;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6aaa4f68/server/src/com/cloud/user/AccountManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java
index ca4465d..f46db0e 100755
--- a/server/src/com/cloud/user/AccountManagerImpl.java
+++ b/server/src/com/cloud/user/AccountManagerImpl.java
@@ -222,7 +222,6 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
@Inject
private AutoScaleManager _autoscaleMgr;
- @Inject
private List<UserAuthenticator> _userAuthenticators;
private final ScheduledExecutorService _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("AccountChecker"));
@@ -232,10 +231,26 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
UserVO _systemUser;
AccountVO _systemAccount;
- @Inject
List<SecurityChecker> _securityCheckers;
- int _cleanupInterval;
+
+ int _cleanupInterval;
+ public List<UserAuthenticator> getUserAuthenticators() {
+ return _userAuthenticators;
+ }
+
+ public void setUserAuthenticators(List<UserAuthenticator> authenticators) {
+ _userAuthenticators = authenticators;
+ }
+
+ public List<SecurityChecker> getSecurityCheckers() {
+ return _securityCheckers;
+ }
+
+ public void setSecurityCheckers(List<SecurityChecker> securityCheckers) {
+ this._securityCheckers = securityCheckers;
+ }
+
@Override
public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
_systemAccount = _accountDao.findById(AccountVO.ACCOUNT_ID_SYSTEM);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6aaa4f68/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
index c22adfb..47ed622 100755
--- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -228,13 +228,23 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
@Inject
protected NetworkDao _networkDao;
- @Inject
protected List<DeploymentPlanner> _planners;
+ public List<DeploymentPlanner> getPlanners() {
+ return _planners;
+ }
+ public void setPlanners(List<DeploymentPlanner> _planners) {
+ this._planners = _planners;
+ }
- @Inject
protected List<HostAllocator> _hostAllocators;
-
- @Inject
+ public List<HostAllocator> getHostAllocators() {
+ return _hostAllocators;
+ }
+ public void setHostAllocators(List<HostAllocator> _hostAllocators) {
+ this._hostAllocators = _hostAllocators;
+ }
+
+ @Inject
protected ResourceManager _resourceMgr;
@Inject
[2/7] git commit: updated refs/heads/4.1 to e221d18
Posted by ch...@apache.org.
CLOUDSTACK-1276, CLOUDSTACK-1729: Remove autoscanning, ensure adpater execution order in runtime
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6aaa4f68
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6aaa4f68
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6aaa4f68
Branch: refs/heads/4.1
Commit: 6aaa4f68ffad80079ae9e1f9987b376dfef336b1
Parents: 8a35898
Author: Kelven Yang <ke...@gmail.com>
Authored: Thu Mar 21 20:21:11 2013 -0700
Committer: Chip Childers <ch...@gmail.com>
Committed: Wed Mar 27 13:02:18 2013 +0000
----------------------------------------------------------------------
client/tomcatconf/applicationContext.xml.in | 586 ++++++++++++++-
client/tomcatconf/componentContext.xml.in | 422 ++++-------
client/tomcatconf/nonossComponentContext.xml.in | 469 ++++++------
server/src/com/cloud/deploy/FirstFitPlanner.java | 24 +-
.../com/cloud/ha/HighAvailabilityManagerImpl.java | 20 +-
.../src/com/cloud/network/NetworkManagerImpl.java | 39 +-
server/src/com/cloud/network/NetworkModelImpl.java | 12 +-
.../com/cloud/resource/ResourceManagerImpl.java | 24 +-
.../src/com/cloud/server/ManagementServerImpl.java | 34 +-
.../src/com/cloud/storage/StorageManagerImpl.java | 25 +-
server/src/com/cloud/user/AccountManagerImpl.java | 21 +-
.../com/cloud/vm/VirtualMachineManagerImpl.java | 18 +-
12 files changed, 1117 insertions(+), 577 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6aaa4f68/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in
index 6cec8b3..608ffc4 100644
--- a/client/tomcatconf/applicationContext.xml.in
+++ b/client/tomcatconf/applicationContext.xml.in
@@ -32,8 +32,6 @@
<context:annotation-config />
- <context:component-scan base-package="org.apache.cloudstack, com.cloud" />
-
<!--
@DB support
-->
@@ -91,9 +89,6 @@
<!--
DAO with customized configuration
-->
- <bean id="configurationDaoImpl" class="com.cloud.configuration.dao.ConfigurationDaoImpl">
- </bean>
-
<bean id="serviceOfferingDaoImpl" class="com.cloud.service.dao.ServiceOfferingDaoImpl">
<property name="configParams">
<map>
@@ -165,5 +160,586 @@
</map>
</property>
</bean>
+
+ <!--
+ DAOs with default configuration
+ -->
+ <bean id="accountDaoImpl" class="com.cloud.user.dao.AccountDaoImpl" />
+ <bean id="accountDetailsDaoImpl" class="com.cloud.user.AccountDetailsDaoImpl" />
+ <bean id="accountJoinDaoImpl" class="com.cloud.api.query.dao.AccountJoinDaoImpl" />
+ <bean id="accountVlanMapDaoImpl" class="com.cloud.dc.dao.AccountVlanMapDaoImpl" />
+ <bean id="agentUpgradeDaoImpl" class="com.cloud.maint.dao.AgentUpgradeDaoImpl" />
+ <bean id="alertDaoImpl" class="com.cloud.alert.dao.AlertDaoImpl" />
+ <bean id="asyncJobDaoImpl" class="com.cloud.async.dao.AsyncJobDaoImpl" />
+ <bean id="asyncJobJoinDaoImpl" class="com.cloud.api.query.dao.AsyncJobJoinDaoImpl" />
+ <bean id="autoScalePolicyConditionMapDaoImpl" class="com.cloud.network.as.dao.AutoScalePolicyConditionMapDaoImpl" />
+ <bean id="autoScalePolicyDaoImpl" class="com.cloud.network.as.dao.AutoScalePolicyDaoImpl" />
+ <bean id="autoScaleVmGroupDaoImpl" class="com.cloud.network.as.dao.AutoScaleVmGroupDaoImpl" />
+ <bean id="autoScaleVmGroupPolicyMapDaoImpl" class="com.cloud.network.as.dao.AutoScaleVmGroupPolicyMapDaoImpl" />
+ <bean id="autoScaleVmProfileDaoImpl" class="com.cloud.network.as.dao.AutoScaleVmProfileDaoImpl" />
+ <bean id="baremetalDhcpDaoImpl" class="com.cloud.baremetal.database.BaremetalDhcpDaoImpl" />
+ <bean id="baremetalPxeDaoImpl" class="com.cloud.baremetal.database.BaremetalPxeDaoImpl" />
+ <bean id="capacityDaoImpl" class="com.cloud.capacity.dao.CapacityDaoImpl" />
+ <bean id="certificateDaoImpl" class="com.cloud.certificate.dao.CertificateDaoImpl" />
+ <bean id="clusterDaoImpl" class="com.cloud.dc.dao.ClusterDaoImpl" />
+ <bean id="clusterDetailsDaoImpl" class="com.cloud.dc.ClusterDetailsDaoImpl" />
+ <bean id="commandExecLogDaoImpl" class="com.cloud.secstorage.CommandExecLogDaoImpl" />
+ <bean id="conditionDaoImpl" class="com.cloud.network.as.dao.ConditionDaoImpl" />
+ <bean id="consoleProxyDaoImpl" class="com.cloud.vm.dao.ConsoleProxyDaoImpl" />
+ <bean id="counterDaoImpl" class="com.cloud.network.as.dao.CounterDaoImpl" />
+ <bean id="dataCenterIpAddressDaoImpl" class="com.cloud.dc.dao.DataCenterIpAddressDaoImpl" />
+ <bean id="dataCenterJoinDaoImpl" class="com.cloud.api.query.dao.DataCenterJoinDaoImpl" />
+ <bean id="dataCenterLinkLocalIpAddressDaoImpl" class="com.cloud.dc.dao.DataCenterLinkLocalIpAddressDaoImpl" />
+ <bean id="dataCenterVnetDaoImpl" class="com.cloud.dc.dao.DataCenterVnetDaoImpl" />
+ <bean id="dataStoreProviderDaoImpl" class="org.apache.cloudstack.storage.datastore.db.DataStoreProviderDaoImpl" />
+ <bean id="dcDetailsDaoImpl" class="com.cloud.dc.dao.DcDetailsDaoImpl" />
+ <bean id="engineDcDetailsDaoImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.db.dao.DcDetailsDaoImpl" />
+ <bean id="diskOfferingJoinDaoImpl" class="com.cloud.api.query.dao.DiskOfferingJoinDaoImpl" />
+ <bean id="domainDaoImpl" class="com.cloud.domain.dao.DomainDaoImpl" />
+ <bean id="domainRouterDaoImpl" class="com.cloud.vm.dao.DomainRouterDaoImpl" />
+ <bean id="domainRouterJoinDaoImpl" class="com.cloud.api.query.dao.DomainRouterJoinDaoImpl" />
+ <bean id="elasticLbVmMapDaoImpl" class="com.cloud.network.lb.dao.ElasticLbVmMapDaoImpl" />
+ <bean id="engineClusterDaoImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.db.dao.EngineClusterDaoImpl" />
+ <bean id="engineDataCenterDaoImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.db.dao.EngineDataCenterDaoImpl" />
+ <bean id="engineHostDaoImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.db.dao.EngineHostDaoImpl" />
+ <bean id="engineHostPodDaoImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.db.dao.EngineHostPodDaoImpl" />
+ <bean id="eventDaoImpl" class="com.cloud.event.dao.EventDaoImpl" />
+ <bean id="eventJoinDaoImpl" class="com.cloud.event.dao.EventJoinDaoImpl" />
+ <bean id="externalFirewallDeviceDaoImpl" class="com.cloud.network.dao.ExternalFirewallDeviceDaoImpl" />
+ <bean id="externalLoadBalancerDeviceDaoImpl" class="com.cloud.network.dao.ExternalLoadBalancerDeviceDaoImpl" />
+ <bean id="externalPublicIpStatisticsDaoImpl" class="com.cloud.usage.dao.ExternalPublicIpStatisticsDaoImpl" />
+ <bean id="firewallRulesCidrsDaoImpl" class="com.cloud.network.dao.FirewallRulesCidrsDaoImpl" />
+ <bean id="firewallRulesDaoImpl" class="com.cloud.network.dao.FirewallRulesDaoImpl" />
+ <bean id="guestOSCategoryDaoImpl" class="com.cloud.storage.dao.GuestOSCategoryDaoImpl" />
+ <bean id="guestOSDaoImpl" class="com.cloud.storage.dao.GuestOSDaoImpl" />
+ <bean id="highAvailabilityDaoImpl" class="com.cloud.ha.dao.HighAvailabilityDaoImpl" />
+ <bean id="hostDaoImpl" class="com.cloud.host.dao.HostDaoImpl" />
+ <bean id="hostDetailsDaoImpl" class="com.cloud.host.dao.HostDetailsDaoImpl" />
+ <bean id="engineHostDetailsDaoImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.db.dao.HostDetailsDaoImpl" />
+ <bean id="hostJoinDaoImpl" class="com.cloud.api.query.dao.HostJoinDaoImpl" />
+ <bean id="engineHostTagsDaoImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.db.dao.HostTagsDaoImpl" />
+ <bean id="hostTagsDaoImpl" class="com.cloud.host.dao.HostTagsDaoImpl" />
+ <bean id="hostTransferMapDaoImpl" class="com.cloud.cluster.agentlb.dao.HostTransferMapDaoImpl" />
+ <bean id="iPAddressDaoImpl" class="com.cloud.network.dao.IPAddressDaoImpl" />
+ <bean id="identityDaoImpl" class="com.cloud.uuididentity.dao.IdentityDaoImpl" />
+ <bean id="imageDaoStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.ImageDaoStoreDaoImpl" />
+ <bean id="imageDataDaoImpl" class="org.apache.cloudstack.storage.image.db.ImageDataDaoImpl" />
+ <bean id="imageDataStoreProviderDaoImpl" class="org.apache.cloudstack.storage.image.db.ImageDataStoreProviderDaoImpl" />
+ <bean id="inlineLoadBalancerNicMapDaoImpl" class="com.cloud.network.dao.InlineLoadBalancerNicMapDaoImpl" />
+ <bean id="instanceGroupDaoImpl" class="com.cloud.vm.dao.InstanceGroupDaoImpl" />
+ <bean id="instanceGroupJoinDaoImpl" class="com.cloud.api.query.dao.InstanceGroupJoinDaoImpl" />
+ <bean id="instanceGroupVMMapDaoImpl" class="com.cloud.vm.dao.InstanceGroupVMMapDaoImpl" />
+ <bean id="itWorkDaoImpl" class="com.cloud.vm.ItWorkDaoImpl" />
+ <bean id="keystoreDaoImpl" class="com.cloud.keystore.KeystoreDaoImpl" />
+ <bean id="lBStickinessPolicyDaoImpl" class="com.cloud.network.dao.LBStickinessPolicyDaoImpl" />
+ <bean id="launchPermissionDaoImpl" class="com.cloud.storage.dao.LaunchPermissionDaoImpl" />
+ <bean id="loadBalancerDaoImpl" class="com.cloud.network.dao.LoadBalancerDaoImpl" />
+ <bean id="loadBalancerVMMapDaoImpl" class="com.cloud.network.dao.LoadBalancerVMMapDaoImpl" />
+ <bean id="managementServerHostDaoImpl" class="com.cloud.cluster.dao.ManagementServerHostDaoImpl" />
+ <bean id="managementServerHostPeerDaoImpl" class="com.cloud.cluster.dao.ManagementServerHostPeerDaoImpl" />
+ <bean id="networkAccountDaoImpl" class="com.cloud.network.dao.NetworkAccountDaoImpl" />
+ <bean id="networkDaoImpl" class="com.cloud.network.dao.NetworkDaoImpl" />
+ <bean id="networkDomainDaoImpl" class="com.cloud.network.dao.NetworkDomainDaoImpl" />
+ <bean id="networkExternalFirewallDaoImpl" class="com.cloud.network.dao.NetworkExternalFirewallDaoImpl" />
+ <bean id="networkExternalLoadBalancerDaoImpl" class="com.cloud.network.dao.NetworkExternalLoadBalancerDaoImpl" />
+ <bean id="networkOfferingDaoImpl" class="com.cloud.offerings.dao.NetworkOfferingDaoImpl" />
+ <bean id="networkOfferingServiceMapDaoImpl" class="com.cloud.offerings.dao.NetworkOfferingServiceMapDaoImpl" />
+ <bean id="networkOpDaoImpl" class="com.cloud.network.dao.NetworkOpDaoImpl" />
+ <bean id="networkRuleConfigDaoImpl" class="com.cloud.network.dao.NetworkRuleConfigDaoImpl" />
+ <bean id="networkServiceMapDaoImpl" class="com.cloud.network.dao.NetworkServiceMapDaoImpl" />
+ <bean id="nicDaoImpl" class="com.cloud.vm.dao.NicDaoImpl" />
+ <bean id="objectInDataStoreDaoImpl" class="org.apache.cloudstack.storage.db.ObjectInDataStoreDaoImpl" />
+ <bean id="ovsTunnelInterfaceDaoImpl" class="com.cloud.network.ovs.dao.OvsTunnelInterfaceDaoImpl" />
+ <bean id="ovsTunnelNetworkDaoImpl" class="com.cloud.network.ovs.dao.OvsTunnelNetworkDaoImpl" />
+ <bean id="physicalNetworkDaoImpl" class="com.cloud.network.dao.PhysicalNetworkDaoImpl" />
+ <bean id="physicalNetworkIsolationMethodDaoImpl" class="com.cloud.network.dao.PhysicalNetworkIsolationMethodDaoImpl" />
+ <bean id="physicalNetworkServiceProviderDaoImpl" class="com.cloud.network.dao.PhysicalNetworkServiceProviderDaoImpl" />
+ <bean id="physicalNetworkTagDaoImpl" class="com.cloud.network.dao.PhysicalNetworkTagDaoImpl" />
+ <bean id="physicalNetworkTrafficTypeDaoImpl" class="com.cloud.network.dao.PhysicalNetworkTrafficTypeDaoImpl" />
+ <bean id="podVlanDaoImpl" class="com.cloud.dc.dao.PodVlanDaoImpl" />
+ <bean id="podVlanMapDaoImpl" class="com.cloud.dc.dao.PodVlanMapDaoImpl" />
+ <bean id="portForwardingRulesDaoImpl" class="com.cloud.network.rules.dao.PortForwardingRulesDaoImpl" />
+ <bean id="primaryDataStoreDaoImpl" class="org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDaoImpl" />
+ <bean id="primaryDataStoreDetailsDaoImpl" class="org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDetailsDaoImpl" />
+ <bean id="privateIpDaoImpl" class="com.cloud.network.vpc.dao.PrivateIpDaoImpl" />
+ <bean id="projectAccountDaoImpl" class="com.cloud.projects.dao.ProjectAccountDaoImpl" />
+ <bean id="projectAccountJoinDaoImpl" class="com.cloud.api.query.dao.ProjectAccountJoinDaoImpl" />
+ <bean id="projectDaoImpl" class="com.cloud.projects.dao.ProjectDaoImpl" />
+ <bean id="projectInvitationDaoImpl" class="com.cloud.projects.dao.ProjectInvitationDaoImpl" />
+ <bean id="projectInvitationJoinDaoImpl" class="com.cloud.api.query.dao.ProjectInvitationJoinDaoImpl" />
+ <bean id="projectJoinDaoImpl" class="com.cloud.api.query.dao.ProjectJoinDaoImpl" />
+ <bean id="regionDaoImpl" class="org.apache.cloudstack.region.dao.RegionDaoImpl" />
+ <bean id="remoteAccessVpnDaoImpl" class="com.cloud.network.dao.RemoteAccessVpnDaoImpl" />
+ <bean id="resourceCountDaoImpl" class="com.cloud.configuration.dao.ResourceCountDaoImpl" />
+ <bean id="resourceLimitDaoImpl" class="com.cloud.configuration.dao.ResourceLimitDaoImpl" />
+ <bean id="resourceTagJoinDaoImpl" class="com.cloud.api.query.dao.ResourceTagJoinDaoImpl" />
+ <bean id="resourceTagsDaoImpl" class="com.cloud.tags.dao.ResourceTagsDaoImpl" />
+ <bean id="routerNetworkDaoImpl" class="com.cloud.network.dao.RouterNetworkDaoImpl" />
+ <bean id="s3DaoImpl" class="com.cloud.storage.dao.S3DaoImpl" />
+ <bean id="sSHKeyPairDaoImpl" class="com.cloud.user.dao.SSHKeyPairDaoImpl" />
+ <bean id="secondaryStorageVmDaoImpl" class="com.cloud.vm.dao.SecondaryStorageVmDaoImpl" />
+ <bean id="securityGroupDaoImpl" class="com.cloud.network.security.dao.SecurityGroupDaoImpl" />
+ <bean id="securityGroupJoinDaoImpl" class="com.cloud.api.query.dao.SecurityGroupJoinDaoImpl" />
+ <bean id="securityGroupRuleDaoImpl" class="com.cloud.network.security.dao.SecurityGroupRuleDaoImpl" />
+ <bean id="securityGroupRulesDaoImpl" class="com.cloud.network.security.dao.SecurityGroupRulesDaoImpl" />
+ <bean id="securityGroupVMMapDaoImpl" class="com.cloud.network.security.dao.SecurityGroupVMMapDaoImpl" />
+ <bean id="securityGroupWorkDaoImpl" class="com.cloud.network.security.dao.SecurityGroupWorkDaoImpl" />
+ <bean id="serviceOfferingJoinDaoImpl" class="com.cloud.api.query.dao.ServiceOfferingJoinDaoImpl" />
+ <bean id="site2SiteCustomerGatewayDaoImpl" class="com.cloud.network.dao.Site2SiteCustomerGatewayDaoImpl" />
+ <bean id="site2SiteVpnConnectionDaoImpl" class="com.cloud.network.dao.Site2SiteVpnConnectionDaoImpl" />
+ <bean id="site2SiteVpnGatewayDaoImpl" class="com.cloud.network.dao.Site2SiteVpnGatewayDaoImpl" />
+ <bean id="snapshotDao2Impl" class="org.apache.cloudstack.storage.snapshot.db.SnapshotDao2Impl" />
+ <bean id="snapshotDaoImpl" class="com.cloud.storage.dao.SnapshotDaoImpl" />
+ <bean id="snapshotPolicyDaoImpl" class="com.cloud.storage.dao.SnapshotPolicyDaoImpl" />
+ <bean id="snapshotScheduleDaoImpl" class="com.cloud.storage.dao.SnapshotScheduleDaoImpl" />
+ <bean id="stackMaidDaoImpl" class="com.cloud.cluster.dao.StackMaidDaoImpl" />
+ <bean id="staticRouteDaoImpl" class="com.cloud.network.vpc.dao.StaticRouteDaoImpl" />
+ <bean id="storageNetworkIpAddressDaoImpl" class="com.cloud.dc.dao.StorageNetworkIpAddressDaoImpl" />
+ <bean id="storageNetworkIpRangeDaoImpl" class="com.cloud.dc.dao.StorageNetworkIpRangeDaoImpl" />
+ <bean id="storagePoolDaoImpl" class="com.cloud.storage.dao.StoragePoolDaoImpl" />
+ <bean id="storagePoolDetailsDaoImpl" class="com.cloud.storage.dao.StoragePoolDetailsDaoImpl" />
+ <bean id="storagePoolHostDaoImpl" class="com.cloud.storage.dao.StoragePoolHostDaoImpl" />
+ <bean id="storagePoolJoinDaoImpl" class="com.cloud.api.query.dao.StoragePoolJoinDaoImpl" />
+ <bean id="storagePoolWorkDaoImpl" class="com.cloud.storage.dao.StoragePoolWorkDaoImpl" />
+ <bean id="swiftDaoImpl" class="com.cloud.storage.dao.SwiftDaoImpl" />
+ <bean id="syncQueueDaoImpl" class="com.cloud.async.dao.SyncQueueDaoImpl" />
+ <bean id="syncQueueItemDaoImpl" class="com.cloud.async.dao.SyncQueueItemDaoImpl" />
+ <bean id="templatePrimaryDataStoreDaoImpl" class="org.apache.cloudstack.storage.volume.db.TemplatePrimaryDataStoreDaoImpl" />
+ <bean id="uploadDaoImpl" class="com.cloud.storage.dao.UploadDaoImpl" />
+ <bean id="usageDaoImpl" class="com.cloud.usage.dao.UsageDaoImpl" />
+ <bean id="usageEventDaoImpl" class="com.cloud.event.dao.UsageEventDaoImpl" />
+ <bean id="usageIPAddressDaoImpl" class="com.cloud.usage.dao.UsageIPAddressDaoImpl" />
+ <bean id="usageJobDaoImpl" class="com.cloud.usage.dao.UsageJobDaoImpl" />
+ <bean id="usageLoadBalancerPolicyDaoImpl" class="com.cloud.usage.dao.UsageLoadBalancerPolicyDaoImpl" />
+ <bean id="usageNetworkDaoImpl" class="com.cloud.usage.dao.UsageNetworkDaoImpl" />
+ <bean id="usageNetworkOfferingDaoImpl" class="com.cloud.usage.dao.UsageNetworkOfferingDaoImpl" />
+ <bean id="usagePortForwardingRuleDaoImpl" class="com.cloud.usage.dao.UsagePortForwardingRuleDaoImpl" />
+ <bean id="usageSecurityGroupDaoImpl" class="com.cloud.usage.dao.UsageSecurityGroupDaoImpl" />
+ <bean id="usageStorageDaoImpl" class="com.cloud.usage.dao.UsageStorageDaoImpl" />
+ <bean id="usageVMInstanceDaoImpl" class="com.cloud.usage.dao.UsageVMInstanceDaoImpl" />
+ <bean id="usageVPNUserDaoImpl" class="com.cloud.usage.dao.UsageVPNUserDaoImpl" />
+ <bean id="usageVolumeDaoImpl" class="com.cloud.usage.dao.UsageVolumeDaoImpl" />
+ <bean id="userAccountDaoImpl" class="com.cloud.user.dao.UserAccountDaoImpl" />
+ <bean id="userAccountJoinDaoImpl" class="com.cloud.api.query.dao.UserAccountJoinDaoImpl" />
+ <bean id="userIpv6AddressDaoImpl" class="com.cloud.network.dao.UserIpv6AddressDaoImpl" />
+ <bean id="userStatisticsDaoImpl" class="com.cloud.user.dao.UserStatisticsDaoImpl" />
+ <bean id="userStatsLogDaoImpl" class="com.cloud.user.dao.UserStatsLogDaoImpl" />
+ <bean id="userVmDetailsDaoImpl" class="com.cloud.vm.dao.UserVmDetailsDaoImpl" />
+ <bean id="userVmJoinDaoImpl" class="com.cloud.api.query.dao.UserVmJoinDaoImpl" />
+ <bean id="vMComputeTagDaoImpl" class="org.apache.cloudstack.engine.cloud.entity.api.db.dao.VMComputeTagDaoImpl" />
+ <bean id="vMEntityDaoImpl" class="org.apache.cloudstack.engine.cloud.entity.api.db.dao.VMEntityDaoImpl" />
+ <bean id="vMInstanceDaoImpl" class="com.cloud.vm.dao.VMInstanceDaoImpl" />
+ <bean id="vMNetworkMapDaoImpl" class="org.apache.cloudstack.engine.cloud.entity.api.db.dao.VMNetworkMapDaoImpl" />
+ <bean id="vMReservationDaoImpl" class="org.apache.cloudstack.engine.cloud.entity.api.db.dao.VMReservationDaoImpl" />
+ <bean id="vMRootDiskTagDaoImpl" class="org.apache.cloudstack.engine.cloud.entity.api.db.dao.VMRootDiskTagDaoImpl" />
+ <bean id="vMTemplateDetailsDaoImpl" class="com.cloud.storage.dao.VMTemplateDetailsDaoImpl" />
+ <bean id="vMTemplateHostDaoImpl" class="com.cloud.storage.dao.VMTemplateHostDaoImpl" />
+ <bean id="vMTemplatePoolDaoImpl" class="com.cloud.storage.dao.VMTemplatePoolDaoImpl" />
+ <bean id="vMTemplateS3DaoImpl" class="com.cloud.storage.dao.VMTemplateS3DaoImpl" />
+ <bean id="vMTemplateSwiftDaoImpl" class="com.cloud.storage.dao.VMTemplateSwiftDaoImpl" />
+ <bean id="vMTemplateZoneDaoImpl" class="com.cloud.storage.dao.VMTemplateZoneDaoImpl" />
+ <bean id="versionDaoImpl" class="com.cloud.upgrade.dao.VersionDaoImpl" />
+ <bean id="virtualRouterProviderDaoImpl" class="com.cloud.network.dao.VirtualRouterProviderDaoImpl" />
+ <bean id="vmRulesetLogDaoImpl" class="com.cloud.network.security.dao.VmRulesetLogDaoImpl" />
+ <bean id="volumeDao2Impl" class="org.apache.cloudstack.storage.volume.db.VolumeDao2Impl" />
+ <bean id="volumeDaoImpl" class="com.cloud.storage.dao.VolumeDaoImpl" />
+ <bean id="volumeHostDaoImpl" class="com.cloud.storage.dao.VolumeHostDaoImpl" />
+ <bean id="volumeJoinDaoImpl" class="com.cloud.api.query.dao.VolumeJoinDaoImpl" />
+ <bean id="volumeReservationDaoImpl" class="org.apache.cloudstack.engine.cloud.entity.api.db.dao.VolumeReservationDaoImpl" />
+ <bean id="vpcDaoImpl" class="com.cloud.network.vpc.dao.VpcDaoImpl" />
+ <bean id="vpcGatewayDaoImpl" class="com.cloud.network.vpc.dao.VpcGatewayDaoImpl" />
+ <bean id="vpcOfferingDaoImpl" class="com.cloud.network.vpc.dao.VpcOfferingDaoImpl" />
+ <bean id="vpcOfferingServiceMapDaoImpl" class="com.cloud.network.vpc.dao.VpcOfferingServiceMapDaoImpl" />
+ <bean id="vpnUserDaoImpl" class="com.cloud.network.dao.VpnUserDaoImpl" />
+ <bean id="userVmDaoImpl" class="com.cloud.vm.dao.UserVmDaoImpl" />
+ <bean id="portProfileDaoImpl" class="com.cloud.network.dao.PortProfileDaoImpl" />
+ <bean id="clusterVSMMapDaoImpl" class="com.cloud.dc.dao.ClusterVSMMapDaoImpl" />
+
+ <!--
+ Checkers
+ -->
+ <bean id="encryptionSecretKeyChecker" class="com.cloud.utils.crypt.EncryptionSecretKeyChecker" />
+ <bean id="StaticRoleBasedAPIAccessChecker" class="org.apache.cloudstack.acl.StaticRoleBasedAPIAccessChecker"/>
+ <bean id="databaseIntegrityChecker" class="com.cloud.upgrade.DatabaseIntegrityChecker" />
+ <bean id="domainChecker" class="com.cloud.acl.DomainChecker" />
+
+ <!--
+ Authenticators
+ -->
+ <bean id="basicAgentAuthManager" class="com.cloud.agent.manager.authn.impl.BasicAgentAuthManager">
+ <property name="name" value="BASIC"/>
+ </bean>
+ <bean id="MD5UserAuthenticator" class="com.cloud.server.auth.MD5UserAuthenticator">
+ <property name="name" value="MD5"/>
+ </bean>
+ <bean id="LDAPUserAuthenticator" class="com.cloud.server.auth.LDAPUserAuthenticator">
+ <property name="name" value="LDAP"/>
+ </bean>
+
+ <!--
+ Network Elements
+ -->
+ <bean id="Ovs" class="com.cloud.network.element.OvsElement">
+ <property name="name" value="Ovs"/>
+ </bean>
+ <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="SecurityGroupProvider" class="com.cloud.network.element.SecurityGroupElement">
+ <property name="name" value="SecurityGroupProvider"/>
+ </bean>
+ <bean id="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement">
+ <property name="name" value="VirtualRouter"/>
+ </bean>
+ <bean id="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement">
+ <property name="name" value="VpcVirtualRouter"/>
+ </bean>
+
+ <bean id="elasticLoadBalancerElement" class="com.cloud.network.element.ElasticLoadBalancerElement">
+ <property name="name" value="ElasticLoadBalancerElement"/>
+ </bean>
+
+ <!--
+ General allocators
+ -->
+ <bean id="firstFitAllocator" class="com.cloud.agent.manager.allocator.impl.FirstFitAllocator" />
+ <bean id="randomAllocator" class="com.cloud.agent.manager.allocator.impl.RandomAllocator" />
+
+ <!--
+ Host Allocators
+ -->
+ <bean id="FirstFitRouting" class="com.cloud.agent.manager.allocator.impl.FirstFitRoutingAllocator">
+ <property name="name" value="FirstFitRouting"/>
+ </bean>
+
+ <!--
+ Storage pool allocators
+ -->
+ <bean id="LocalStoragePoolAllocator" class="com.cloud.storage.allocator.LocalStoragePoolAllocator">
+ <property name="name" value="LocalStorage"/>
+ </bean>
+ <bean id="FirstFitStoragePoolAllocator" class="com.cloud.storage.allocator.FirstFitStoragePoolAllocator">
+ <property name="name" value="Storage"/>
+ </bean>
+
+ <bean id="UserConcentratedAllocator" class="com.cloud.agent.manager.allocator.impl.UserConcentratedAllocator">
+ <property name="name" value="UserFirst"/>
+ </bean>
+
+ <bean id="useLocalForRootAllocator" class="com.cloud.storage.allocator.UseLocalForRootAllocator">
+ <property name="name" value="LocalForRoot"/>
+ </bean>
+
+ <bean id="garbageCollectingStoragePoolAllocator" class="com.cloud.storage.allocator.GarbageCollectingStoragePoolAllocator">
+ <property name="name" value="GCStorage"/>
+ </bean>
+ <bean id="randomStoragePoolAllocator" class="com.cloud.storage.allocator.RandomStoragePoolAllocator" />
+ <bean id="recreatableFencer" class="com.cloud.ha.RecreatableFencer" />
+ <bean id="recreateHostAllocator" class="com.cloud.agent.manager.allocator.impl.RecreateHostAllocator" />
+ <bean id="secondaryStorageVmDefaultAllocator" class="com.cloud.storage.secondary.SecondaryStorageVmDefaultAllocator" />
+
+ <!--
+ Misc allocator & Adapters
+ -->
+ <bean id="ConsoleProxyAllocator" class="com.cloud.consoleproxy.ConsoleProxyBalanceAllocator">
+ <property name="name" value="Balance"/>
+ </bean>
+
+ <bean id="ExteralIpAddressAllocator" class="com.cloud.network.ExteralIpAddressAllocator">
+ <property name="name" value="Basic"/>
+ </bean>
+
+ <bean id="BareMetalTemplateAdapter" class="com.cloud.baremetal.manager.BareMetalTemplateAdapter" />
+ <bean id="hyervisorTemplateAdapter" class="com.cloud.template.HyervisorTemplateAdapter" />
+ <bean id="clusterAlertAdapter" class="com.cloud.alert.ClusterAlertAdapter" />
+ <bean id="consoleProxyAlertAdapter" class="com.cloud.alert.ConsoleProxyAlertAdapter" />
+ <bean id="secondaryStorageVmAlertAdapter" class="com.cloud.alert.SecondaryStorageVmAlertAdapter" />
+ <bean id="clusterServiceServletAdapter" class="com.cloud.cluster.ClusterServiceServletAdapter" />
+
+ <!--
+ Investigators
+ -->
+ <bean id="CheckOnAgentInvestigator" class="com.cloud.ha.CheckOnAgentInvestigator">
+ <property name="name" value="SimpleInvestigator"/>
+ </bean>
+
+ <bean id="XenServerInvestigator" class="com.cloud.ha.XenServerInvestigator">
+ <property name="name" value="XenServerInvestigator"/>
+ </bean>
+
+ <bean id="UserVmDomRInvestigator" class="com.cloud.ha.UserVmDomRInvestigator">
+ <property name="name" value="PingInvestigator"/>
+ </bean>
+
+ <bean id="ManagementIPSystemVMInvestigator" class="com.cloud.ha.ManagementIPSystemVMInvestigator">
+ <property name="name" value="ManagementIPSysVMInvestigator"/>
+ </bean>
+
+ <!--
+ Fencers
+ -->
+ <bean id="XenServerFencer" class="com.cloud.ha.XenServerFencer">
+ <property name="name" value="XenServerFenceBuilder"/>
+ </bean>
+ <bean id="KVMFencer" class="com.cloud.ha.KVMFencer">
+ <property name="name" value="KVMFenceBuilder"/>
+ </bean>
+ <bean id="OvmFencer" class="com.cloud.ovm.hypervisor.OvmFencer">
+ <property name="name" value="OvmFenceBuilder"/>
+ </bean>
+
+ <!--
+ Discovers
+ -->
+ <bean id="XcpServerDiscoverer" class="com.cloud.hypervisor.xen.discoverer.XcpServerDiscoverer">
+ <property name="name" value="XCP Agent"/>
+ </bean>
+
+ <bean id="SecondaryStorageDiscoverer" class="com.cloud.storage.secondary.SecondaryStorageDiscoverer">
+ <property name="name" value="SecondaryStorage"/>
+ </bean>
+
+ <bean id="KvmServerDiscoverer" class="com.cloud.hypervisor.kvm.discoverer.KvmServerDiscoverer">
+ <property name="name" value="KVM Agent"/>
+ </bean>
+
+ <bean id="BareMetalDiscoverer" class="com.cloud.baremetal.manager.BareMetalDiscoverer">
+ <property name="name" value="Bare Metal Agent"/>
+ </bean>
+
+ <bean id="HypervServerDiscoverer" class="com.cloud.hypervisor.hyperv.HypervServerDiscoverer">
+ <property name="name" value="SCVMMServer"/>
+ </bean>
+
+ <bean id="OvmDiscoverer" class="com.cloud.ovm.hypervisor.OvmDiscoverer">
+ <property name="name" value="Ovm Discover"/>
+ </bean>
+
+ <bean id="dummyHostDiscoverer" class="com.cloud.resource.DummyHostDiscoverer">
+ <property name="name" value="dummyHostDiscoverer" />
+ </bean>
+
+ <!--
+ Deployment planners
+ -->
+ <bean id="UserDispersingPlanner" class="com.cloud.deploy.UserDispersingPlanner">
+ <property name="name" value="UserDispersing"/>
+ </bean>
+
+ <bean id="UserConcentratedPodPlanner" class="com.cloud.deploy.UserConcentratedPodPlanner">
+ <property name="name" value="UserConcentratedPod"/>
+ </bean>
+
+ <bean id="BareMetalPlanner" class="com.cloud.baremetal.manager.BareMetalPlanner">
+ <property name="name" value="BareMetal Fit"/>
+ </bean>
+
+ <bean id="clusterBasedAgentLoadBalancerPlanner" class="com.cloud.cluster.agentlb.ClusterBasedAgentLoadBalancerPlanner">
+ <property name="name" value="ClusterBasedAgentLoadBalancerPlanner"/>
+ </bean>
+
+ <!--
+ Network Gurus
+ -->
+ <bean id="StorageNetworkGuru" class="com.cloud.network.guru.StorageNetworkGuru">
+ <property name="name" value="StorageNetworkGuru"/>
+ </bean>
+ <bean id="ExternalGuestNetworkGuru" class="com.cloud.network.guru.ExternalGuestNetworkGuru">
+ <property name="name" value="ExternalGuestNetworkGuru"/>
+ </bean>
+ <bean id="PublicNetworkGuru" class="com.cloud.network.guru.PublicNetworkGuru">
+ <property name="name" value="PublicNetworkGuru"/>
+ </bean>
+ <bean id="PodBasedNetworkGuru" class="com.cloud.network.guru.PodBasedNetworkGuru">
+ <property name="name" value="PodBasedNetworkGuru"/>
+ </bean>
+ <bean id="ControlNetworkGuru" class="com.cloud.network.guru.ControlNetworkGuru">
+ <property name="name" value="ControlNetworkGuru"/>
+ </bean>
+ <bean id="DirectNetworkGuru" class="com.cloud.network.guru.DirectNetworkGuru">
+ <property name="name" value="DirectNetworkGuru"/>
+ </bean>
+ <bean id="DirectPodBasedNetworkGuru" class="com.cloud.network.guru.DirectPodBasedNetworkGuru">
+ <property name="name" value="DirectPodBasedNetworkGuru"/>
+ </bean>
+ <bean id="OvsGuestNetworkGuru" class="com.cloud.network.guru.OvsGuestNetworkGuru">
+ <property name="name" value="OvsGuestNetworkGuru"/>
+ </bean>
+ <bean id="PrivateNetworkGuru" class="com.cloud.network.guru.PrivateNetworkGuru">
+ <property name="name" value="PrivateNetworkGuru"/>
+ </bean>
+ <!--
+ Hypervisor Gurus
+ -->
+ <bean id="XenServerGuru" class="com.cloud.hypervisor.XenServerGuru">
+ <property name="name" value="XenServerGuru"/>
+ </bean>
+
+ <bean id="KVMGuru" class="com.cloud.hypervisor.KVMGuru">
+ <property name="name" value="KVMGuru"/>
+ </bean>
+
+ <bean id="OvmGuru" class="com.cloud.ovm.hypervisor.OvmGuru">
+ <property name="name" value="OvmGuru"/>
+ </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="HypervisorPlannerSelector" class="com.cloud.deploy.HypervisorVmPlannerSelector">
+ <property name="name" value="HypervisorPlannerSelector"/>
+ </bean>
+
+ <!--
+ Managers
+ -->
+ <bean id="configurationServerImpl" class="com.cloud.server.ConfigurationServerImpl" />
+
+ <bean id="clusterManagerImpl" class="com.cloud.cluster.ClusterManagerImpl" />
+ <bean id="clusteredAgentManagerImpl" class="com.cloud.agent.manager.ClusteredAgentManagerImpl" />
+
+ <bean id="userVmManagerImpl" class="com.cloud.vm.UserVmManagerImpl" />
+ <bean id="consoleProxyManagerImpl" class="com.cloud.consoleproxy.ConsoleProxyManagerImpl" />
+ <bean id="securityGroupManagerImpl2" class="com.cloud.network.security.SecurityGroupManagerImpl2" />
+ <bean id="premiumSecondaryStorageManagerImpl" class="com.cloud.secstorage.PremiumSecondaryStorageManagerImpl" />
+
+ <bean id="ipv6AddressManagerImpl" class="com.cloud.network.Ipv6AddressManagerImpl" />
+
+ <bean id="apiRateLimitServiceImpl" class="org.apache.cloudstack.ratelimit.ApiRateLimitServiceImpl"/>
+
+ <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="alertManagerImpl" class="com.cloud.alert.AlertManagerImpl" />
+ <bean id="asyncJobExecutorContextImpl" class="com.cloud.async.AsyncJobExecutorContextImpl" />
+ <bean id="asyncJobManagerImpl" class="com.cloud.async.AsyncJobManagerImpl" />
+ <bean id="autoScaleManagerImpl" class="com.cloud.network.as.AutoScaleManagerImpl" />
+ <bean id="capacityManagerImpl" class="com.cloud.capacity.CapacityManagerImpl" />
+ <bean id="clusterFenceManagerImpl" class="com.cloud.cluster.ClusterFenceManagerImpl" />
+ <bean id="configurationManagerImpl" class="com.cloud.configuration.ConfigurationManagerImpl" />
+ <bean id="dataStoreProviderManagerImpl" class="org.apache.cloudstack.storage.datastore.provider.DataStoreProviderManagerImpl" />
+ <bean id="domainManagerImpl" class="com.cloud.user.DomainManagerImpl" />
+ <bean id="downloadMonitorImpl" class="com.cloud.storage.download.DownloadMonitorImpl" />
+ <bean id="elasticLoadBalancerManagerImpl" class="com.cloud.network.lb.ElasticLoadBalancerManagerImpl" />
+ <bean id="entityManagerImpl" class="com.cloud.dao.EntityManagerImpl" />
+ <bean id="externalLoadBalancerUsageManagerImpl" class="com.cloud.network.ExternalLoadBalancerUsageManagerImpl" />
+ <bean id="externalNetworkDeviceManagerImpl" class="com.cloud.network.ExternalNetworkDeviceManagerImpl" />
+ <bean id="firewallManagerImpl" class="com.cloud.network.firewall.FirewallManagerImpl" />
+ <bean id="hypervisorGuruManagerImpl" class="com.cloud.hypervisor.HypervisorGuruManagerImpl" />
+ <bean id="identityServiceImpl" class="com.cloud.uuididentity.IdentityServiceImpl" />
+ <bean id="keystoreManagerImpl" class="com.cloud.keystore.KeystoreManagerImpl" />
+ <bean id="loadBalancingRulesManagerImpl" class="com.cloud.network.lb.LoadBalancingRulesManagerImpl" />
+ <bean id="networkACLManagerImpl" class="com.cloud.network.vpc.NetworkACLManagerImpl" />
+ <bean id="networkServiceImpl" class="com.cloud.network.NetworkServiceImpl" />
+ <bean id="networkUsageManagerImpl" class="com.cloud.network.NetworkUsageManagerImpl" />
+ <bean id="oCFS2ManagerImpl" class="com.cloud.storage.OCFS2ManagerImpl" />
+ <bean id="ovsTunnelManagerImpl" class="com.cloud.network.ovs.OvsTunnelManagerImpl" />
+ <bean id="projectManagerImpl" class="com.cloud.projects.ProjectManagerImpl" />
+ <bean id="queryManagerImpl" class="com.cloud.api.query.QueryManagerImpl" />
+ <bean id="regionManagerImpl" class="org.apache.cloudstack.region.RegionManagerImpl" />
+ <bean id="regionServiceImpl" class="org.apache.cloudstack.region.RegionServiceImpl" />
+ <bean id="remoteAccessVpnManagerImpl" class="com.cloud.network.vpn.RemoteAccessVpnManagerImpl" />
+ <bean id="resourceLimitManagerImpl" class="com.cloud.resourcelimit.ResourceLimitManagerImpl" />
+ <bean id="rulesManagerImpl" class="com.cloud.network.rules.RulesManagerImpl" />
+ <bean id="s3ManagerImpl" class="com.cloud.storage.s3.S3ManagerImpl" />
+ <bean id="site2SiteVpnManagerImpl" class="com.cloud.network.vpn.Site2SiteVpnManagerImpl" />
+ <bean id="snapshotManagerImpl" class="com.cloud.storage.snapshot.SnapshotManagerImpl" />
+ <bean id="snapshotSchedulerImpl" class="com.cloud.storage.snapshot.SnapshotSchedulerImpl" />
+ <bean id="storageNetworkManagerImpl" class="com.cloud.network.StorageNetworkManagerImpl" />
+ <bean id="swiftManagerImpl" class="com.cloud.storage.swift.SwiftManagerImpl" />
+ <bean id="syncQueueManagerImpl" class="com.cloud.async.SyncQueueManagerImpl" />
+ <bean id="taggedResourceManagerImpl" class="com.cloud.tags.TaggedResourceManagerImpl" />
+ <bean id="templateManagerImpl" class="com.cloud.template.TemplateManagerImpl" />
+ <bean id="upgradeManagerImpl" class="com.cloud.maint.UpgradeManagerImpl" />
+ <bean id="uploadMonitorImpl" class="com.cloud.storage.upload.UploadMonitorImpl" />
+ <bean id="usageServiceImpl" class="com.cloud.usage.UsageServiceImpl" />
+ <bean id="virtualNetworkApplianceManagerImpl" class="com.cloud.network.router.VirtualNetworkApplianceManagerImpl" />
+ <bean id="vpcManagerImpl" class="com.cloud.network.vpc.VpcManagerImpl" />
+ <bean id="vpcVirtualNetworkApplianceManagerImpl" class="com.cloud.network.router.VpcVirtualNetworkApplianceManagerImpl" />
+
+ <!--
+ Misc components
+ -->
+ <bean id="cloudZonesStartupProcessor" class="com.cloud.hypervisor.CloudZonesStartupProcessor" />
+ <bean id="managementServerNode" class="com.cloud.cluster.ManagementServerNode" />
+ <bean id="actionEventUtils" class="com.cloud.event.ActionEventUtils" />
+ <bean id="agentMonitor" class="com.cloud.agent.manager.AgentMonitor" />
+ <bean id="alertGenerator" class="com.cloud.event.AlertGenerator" />
+ <bean id="apiDBUtils" class="com.cloud.api.ApiDBUtils" />
+ <bean id="apiDiscoveryServiceImpl" class="org.apache.cloudstack.discovery.ApiDiscoveryServiceImpl" />
+ <bean id="apiDispatcher" class="com.cloud.api.ApiDispatcher" />
+ <bean id="apiResponseHelper" class="com.cloud.api.ApiResponseHelper" />
+ <bean id="apiServer" class="com.cloud.api.ApiServer" />
+ <bean id="apiServlet" class="com.cloud.api.ApiServlet" />
+ <bean id="bAREMETAL" class="org.apache.cloudstack.storage.image.format.BAREMETAL" />
+ <bean id="cloudOrchestrator" class="org.apache.cloudstack.platform.orchestration.CloudOrchestrator" />
+ <bean id="clusterRestService" class="org.apache.cloudstack.engine.rest.service.api.ClusterRestService" />
+ <bean id="componentContext" class="com.cloud.utils.component.ComponentContext" />
+ <bean id="consoleProxyServlet" class="com.cloud.servlet.ConsoleProxyServlet" />
+ <bean id="dataCenterResourceManagerImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceManagerImpl" />
+ <bean id="dataDisk" class="org.apache.cloudstack.engine.subsystem.api.storage.type.DataDisk" />
+ <bean id="dataMotionServiceImpl" class="org.apache.cloudstack.storage.motion.DataMotionServiceImpl" />
+ <bean id="dataObjectManagerImpl" class="org.apache.cloudstack.storage.datastore.DataObjectManagerImpl" />
+ <bean id="dataStoreManagerImpl" class="org.apache.cloudstack.storage.datastore.DataStoreManagerImpl" />
+ <bean id="defaultEndPointSelector" class="org.apache.cloudstack.storage.endpoint.DefaultEndPointSelector" />
+ <bean id="defaultImageDataStoreProvider" class="org.apache.cloudstack.storage.image.store.DefaultImageDataStoreProvider" />
+ <bean id="defaultImageMotionStrategy" class="org.apache.cloudstack.storage.image.motion.DefaultImageMotionStrategy" />
+ <bean id="defaultPrimaryDataStoreProviderManagerImpl" class="org.apache.cloudstack.storage.datastore.manager.DefaultPrimaryDataStoreProviderManagerImpl" />
+ <bean id="defaultPrimaryDatastoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.DefaultPrimaryDatastoreProviderImpl" />
+ <bean id="eventUtils" class="com.cloud.event.EventUtils" />
+ <bean id="hypervisorBasedSnapshot" class="org.apache.cloudstack.storage.snapshot.strategy.HypervisorBasedSnapshot" />
+ <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="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" />
+ <bean id="imageDataStoreManagerImpl" class="org.apache.cloudstack.storage.image.manager.ImageDataStoreManagerImpl" />
+ <bean id="imageFormatHelper" class="org.apache.cloudstack.storage.image.format.ImageFormatHelper" />
+ <bean id="imageMotionServiceImpl" class="org.apache.cloudstack.storage.image.motion.ImageMotionServiceImpl" />
+ <bean id="imageServiceImpl" class="org.apache.cloudstack.storage.image.ImageServiceImpl" />
+ <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="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="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" />
+ <bean id="snapshotServiceImpl" class="org.apache.cloudstack.storage.snapshot.SnapshotServiceImpl" />
+ <bean id="statsCollector" class="com.cloud.server.StatsCollector" />
+ <bean id="templateInstallStrategyImpl" class="org.apache.cloudstack.storage.volume.TemplateInstallStrategyImpl" />
+ <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="vMEntityManagerImpl" class="org.apache.cloudstack.engine.cloud.entity.api.VMEntityManagerImpl" />
+ <bean id="virtualMachineEntityImpl" class="org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntityImpl" />
+ <bean id="virtualMachineRestService" class="org.apache.cloudstack.engine.rest.service.api.VirtualMachineRestService" />
+ <bean id="volumeDataFactoryImpl" class="org.apache.cloudstack.storage.volume.VolumeDataFactoryImpl" />
+ <bean id="volumeManagerImpl" class="org.apache.cloudstack.storage.volume.VolumeManagerImpl" />
+ <bean id="volumeRestService" class="org.apache.cloudstack.engine.rest.service.api.VolumeRestService" />
+ <bean id="volumeServiceImpl" class="org.apache.cloudstack.storage.volume.VolumeServiceImpl" />
+ <bean id="volumeTypeHelper" class="org.apache.cloudstack.engine.subsystem.api.storage.type.VolumeTypeHelper" />
+ <bean id="zoneRestService" class="org.apache.cloudstack.engine.rest.service.api.ZoneRestService" />
+
</beans>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6aaa4f68/client/tomcatconf/componentContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/componentContext.xml.in b/client/tomcatconf/componentContext.xml.in
index f67dbb7..609155c 100644
--- a/client/tomcatconf/componentContext.xml.in
+++ b/client/tomcatconf/componentContext.xml.in
@@ -30,290 +30,172 @@
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
-
<!--
- Compose a CloudStack deployment with selected components here
+ OSS deployment component configuration
-->
- <bean id="databaseUpgradeChecker" class="com.cloud.upgrade.DatabaseUpgradeChecker" />
- <bean id="encryptionSecretKeyChecker" class="com.cloud.utils.crypt.EncryptionSecretKeyChecker" />
-
- <bean id="managementServerImpl" class ="com.cloud.server.ManagementServerImpl" />
- <bean id="configurationServerImpl" class="com.cloud.server.ConfigurationServerImpl" />
-
- <bean id="clusterManagerImpl" class="com.cloud.cluster.ClusterManagerImpl" />
- <bean id="clusteredAgentManagerImpl" class="com.cloud.agent.manager.ClusteredAgentManagerImpl" />
- <bean id="clusteredVirtualMachineManagerImpl" class="com.cloud.vm.ClusteredVirtualMachineManagerImpl" />
- <bean id="highAvailabilityManagerExtImpl" class="com.cloud.ha.HighAvailabilityManagerExtImpl" />
- <bean id="userVmManagerImpl" class="com.cloud.vm.UserVmManagerImpl" />
- <bean id="consoleProxyManagerImpl" class="com.cloud.consoleproxy.ConsoleProxyManagerImpl" />
- <bean id="securityGroupManagerImpl2" class="com.cloud.network.security.SecurityGroupManagerImpl2" />
- <bean id="premiumSecondaryStorageManagerImpl" class="com.cloud.secstorage.PremiumSecondaryStorageManagerImpl" />
- <!-- <bean id="randomlyIncreasingVMInstanceDaoImpl" class="com.cloud.vm.dao.RandomlyIncreasingVMInstanceDaoImpl" /> -->
- <bean id="userVmDaoImpl" class="com.cloud.vm.dao.UserVmDaoImpl" />
- <bean id="ipv6AddressManagerImpl" class="com.cloud.network.Ipv6AddressManagerImpl" />
- <bean id="apiRateLimitServiceImpl" class="org.apache.cloudstack.ratelimit.ApiRateLimitServiceImpl"/>
- <!--
- <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="UcsManager" class="com.cloud.ucs.manager.UcsManagerImpl" />
- <bean id="UcsBladeDao" class="com.cloud.ucs.database.UcsBladeDaoImpl" />
- <bean id="UcsManagerDao" class="com.cloud.ucs.database.UcsManagerDaoImpl" />
- -->
-
- <!--
- Network Elements
- -->
- <bean id="Ovs" class="com.cloud.network.element.OvsElement">
- <property name="name" value="Ovs"/>
- </bean>
- <!--
- <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="SecurityGroupProvider" class="com.cloud.network.element.SecurityGroupElement">
- <property name="name" value="SecurityGroupProvider"/>
- </bean>
- <bean id="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement">
- <property name="name" value="VirtualRouter"/>
- </bean>
- <bean id="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement">
- <property name="name" value="VpcVirtualRouter"/>
- </bean>
- <!--
- <bean id="NiciraNvp" class="com.cloud.network.element.NiciraNvpElement">
- <property name="name" value="NiciraNvp"/>
- </bean>
- -->
+ <bean id="databaseUpgradeChecker" class="com.cloud.upgrade.DatabaseUpgradeChecker" />
+ <bean id="configurationDaoImpl" class="com.cloud.configuration.dao.ConfigurationDaoImpl" />
-<!--
- <bean id="BigSwitchVnsElementService" class="com.cloud.network.element.BigSwitchVnsElement">
- <property name="name" value="BigSwitchVnsElementService"/>
- </bean>
--->
-
- <!--
- Adapters
- -->
- <bean id="FirstFitRouting" class="com.cloud.agent.manager.allocator.impl.FirstFitRoutingAllocator">
- <property name="name" value="FirstFitRouting"/>
+ <!--
+ Managers & pluggable adapters configuration under OSS deployment
+ -->
+ <bean id="accountManagerImpl" class="com.cloud.user.AccountManagerImpl" >
+ <property name="UserAuthenticators">
+ <list>
+ <ref bean="MD5UserAuthenticator"/>
+ <ref bean="LDAPUserAuthenticator"/>
+ </list>
+ </property>
+ <property name="SecurityCheckers">
+ <list>
+ <ref bean="domainChecker"/>
+ </list>
+ </property>
</bean>
- <!--
- Storage pool allocators
- -->
- <bean id="LocalStoragePoolAllocator" class="com.cloud.storage.allocator.LocalStoragePoolAllocator">
- <property name="name" value="LocalStorage"/>
- </bean>
- <bean id="FirstFitStoragePoolAllocator" class="com.cloud.storage.allocator.FirstFitStoragePoolAllocator">
- <property name="name" value="Storage"/>
- </bean>
-
- <bean id="UserConcentratedAllocator" class="com.cloud.agent.manager.allocator.impl.UserConcentratedAllocator">
- <property name="name" value="User First"/>
- </bean>
-
- <bean id="ConsoleProxyAllocator" class="com.cloud.consoleproxy.ConsoleProxyBalanceAllocator">
- <property name="name" value="Balance"/>
- </bean>
-
- <bean id="StaticRoleBasedAPIAccessChecker" class="org.apache.cloudstack.acl.StaticRoleBasedAPIAccessChecker"/>
-
- <bean id="ExteralIpAddressAllocator" class="com.cloud.network.ExteralIpAddressAllocator">
- <property name="name" value="Basic"/>
- </bean>
-
- <bean id="hyervisorTemplateAdapter" class="com.cloud.template.HyervisorTemplateAdapter">
- <property name="name" value="HypervisorAdapter"/>
- </bean>
-
- <!--
- <bean id="BareMetalTemplateAdapter" class="com.cloud.baremetal.manager.BareMetalTemplateAdapter" >
- <property name="name" value="BareMetalTemplateAdapter"/>
- </bean>
- -->
-
- <!--
- Authenticators
- -->
- <bean id="MD5UserAuthenticator" class="com.cloud.server.auth.MD5UserAuthenticator">
- <property name="name" value="MD5"/>
- </bean>
-
- <bean id="LDAPUserAuthenticator" class="com.cloud.server.auth.LDAPUserAuthenticator">
- <property name="name" value="LDAP"/>
- </bean>
-
- <!--
- Investigators
- -->
- <bean id="CheckOnAgentInvestigator" class="com.cloud.ha.CheckOnAgentInvestigator">
- <property name="name" value="SimpleInvestigator"/>
- </bean>
-
- <bean id="XenServerInvestigator" class="com.cloud.ha.XenServerInvestigator">
- <property name="name" value="XenServerInvestigator"/>
- </bean>
-
- <bean id="UserVmDomRInvestigator" class="com.cloud.ha.UserVmDomRInvestigator">
- <property name="name" value="PingInvestigator"/>
- </bean>
-
- <bean id="ManagementIPSystemVMInvestigator" class="com.cloud.ha.ManagementIPSystemVMInvestigator">
- <property name="name" value="ManagementIPSysVMInvestigator"/>
- </bean>
-
- <!--
- Fencers
- -->
- <bean id="XenServerFencer" class="com.cloud.ha.XenServerFencer">
- <property name="name" value="XenServerFenceBuilder"/>
- </bean>
- <bean id="KVMFencer" class="com.cloud.ha.KVMFencer">
- <property name="name" value="KVMFenceBuilder"/>
- </bean>
- <bean id="OvmFencer" class="com.cloud.ovm.hypervisor.OvmFencer">
- <property name="name" value="OvmFenceBuilder"/>
- </bean>
-
- <bean id="XcpServerDiscoverer" class="com.cloud.hypervisor.xen.discoverer.XcpServerDiscoverer">
- <property name="name" value="XCP Agent"/>
- </bean>
-
- <bean id="SecondaryStorageDiscoverer" class="com.cloud.storage.secondary.SecondaryStorageDiscoverer">
- <property name="name" value="SecondaryStorage"/>
- </bean>
-
- <bean id="KvmServerDiscoverer" class="com.cloud.hypervisor.kvm.discoverer.KvmServerDiscoverer">
- <property name="name" value="KVM Agent"/>
- </bean>
-
- <!--
- <bean id="BareMetalDiscoverer" class="com.cloud.baremetal.manager.BareMetalDiscoverer">
- <property name="name" value="Bare Metal Agent"/>
- </bean>
- -->
-
- <!--
- <bean id="SimulatorDiscoverer" class="com.cloud.resource.SimulatorDiscoverer">
- <property name="name" value="KVM Agent"/>
- </bean>
- -->
-
-
- <bean id="HypervServerDiscoverer" class="com.cloud.hypervisor.hyperv.HypervServerDiscoverer">
- <property name="name" value="SCVMMServer"/>
- </bean>
-
- <bean id="OvmDiscoverer" class="com.cloud.ovm.hypervisor.OvmDiscoverer">
- <property name="name" value="Ovm Discover"/>
+ <bean id="managementServerImpl" class ="com.cloud.server.ManagementServerImpl">
+ <property name="UserAuthenticators">
+ <list>
+ <ref bean="MD5UserAuthenticator"/>
+ <ref bean="LDAPUserAuthenticator"/>
+ </list>
+ </property>
+ <property name="HostAllocators">
+ <list>
+ <ref bean="FirstFitRouting"/>
+ </list>
+ </property>
+ </bean>
+
+ <bean id="storageManagerImpl" class="com.cloud.storage.StorageManagerImpl">
+ <property name="StoragePoolAllocators">
+ <list>
+ <ref bean="LocalStoragePoolAllocator"/>
+ <ref bean="FirstFitStoragePoolAllocator"/>
+ </list>
+ </property>
</bean>
<bean id="FirstFitPlanner" class="com.cloud.deploy.FirstFitPlanner">
<property name="name" value="First Fit"/>
- </bean>
-
- <bean id="UserDispersingPlanner" class="com.cloud.deploy.UserDispersingPlanner">
- <property name="name" value="UserDispersing"/>
- </bean>
-
- <bean id="UserConcentratedPodPlanner" class="com.cloud.deploy.UserConcentratedPodPlanner">
- <property name="name" value="UserConcentratedPod"/>
- </bean>
-
- <!--
- <bean id="BareMetalPlanner" class="com.cloud.baremetal.manager.BareMetalPlanner">
- <property name="name" value="BareMetal Fit"/>
- </bean>
-
- <bean id="BaremetalPlannerSelector" class="com.cloud.baremetal.manager.BaremetalPlannerSelector">
- <property name="name" value="BaremetalPlannerSelector"/>
- </bean>
- -->
-
- <bean id="HypervisorPlannerSelector" class="com.cloud.deploy.HypervisorVmPlannerSelector">
- <property name="name" value="HypervisorPlannerSelector"/>
- </bean>
-
-
- <!--
- Network Gurus
- -->
- <bean id="StorageNetworkGuru" class="com.cloud.network.guru.StorageNetworkGuru">
- <property name="name" value="StorageNetworkGuru"/>
- </bean>
- <bean id="ExternalGuestNetworkGuru" class="com.cloud.network.guru.ExternalGuestNetworkGuru">
- <property name="name" value="ExternalGuestNetworkGuru"/>
- </bean>
- <bean id="PublicNetworkGuru" class="com.cloud.network.guru.PublicNetworkGuru">
- <property name="name" value="PublicNetworkGuru"/>
- </bean>
- <bean id="PodBasedNetworkGuru" class="com.cloud.network.guru.PodBasedNetworkGuru">
- <property name="name" value="PodBasedNetworkGuru"/>
- </bean>
- <bean id="ControlNetworkGuru" class="com.cloud.network.guru.ControlNetworkGuru">
- <property name="name" value="ControlNetworkGuru"/>
- </bean>
- <bean id="DirectNetworkGuru" class="com.cloud.network.guru.DirectNetworkGuru">
- <property name="name" value="DirectNetworkGuru"/>
- </bean>
- <bean id="DirectPodBasedNetworkGuru" class="com.cloud.network.guru.DirectPodBasedNetworkGuru">
- <property name="name" value="DirectPodBasedNetworkGuru"/>
- </bean>
- <bean id="OvsGuestNetworkGuru" class="com.cloud.network.guru.OvsGuestNetworkGuru">
- <property name="name" value="OvsGuestNetworkGuru"/>
- </bean>
- <bean id="PrivateNetworkGuru" class="com.cloud.network.guru.PrivateNetworkGuru">
- <property name="name" value="PrivateNetworkGuru"/>
- </bean>
- <bean id="NiciraNvpGuestNetworkGuru" class="com.cloud.network.guru.NiciraNvpGuestNetworkGuru">
- <property name="name" value="NiciraNvpGuestNetworkGuru"/>
+ <property name="StoragePoolAllocators">
+ <list>
+ <ref bean="LocalStoragePoolAllocator"/>
+ <ref bean="FirstFitStoragePoolAllocator"/>
+ </list>
+ </property>
+ <property name="HostAllocators">
+ <list>
+ <ref bean="FirstFitRouting"/>
+ </list>
+ </property>
</bean>
-<!--
- <bean id="BigSwitchVnsGuestNetworkGuru" class=".BigSwitchVnsGuestNetworkGuru">
- <property name="name" value="com.cloud.network.guru.BigSwitchVnsGuestNetworkGuru"/>
- </bean>
--->
-
- <!--
- Hypervisor Gurus
- -->
- <bean id="XenServerGuru" class="com.cloud.hypervisor.XenServerGuru">
- <property name="name" value="XenServerGuru"/>
+ <bean id="resourceManagerImpl" class="com.cloud.resource.ResourceManagerImpl" >
+ <property name="PodAllocators">
+ <list>
+ <ref bean="UserConcentratedAllocator"/>
+ </list>
+ </property>
+ <property name="Discoverers">
+ <list>
+ <ref bean="XcpServerDiscoverer"/>
+ <ref bean="SecondaryStorageDiscoverer"/>
+ <ref bean="KvmServerDiscoverer"/>
+ <ref bean="BareMetalDiscoverer"/>
+ <ref bean="OvmDiscoverer"/>
+ </list>
+ </property>
+ </bean>
+
+ <bean id="highAvailabilityManagerExtImpl" class="com.cloud.ha.HighAvailabilityManagerExtImpl" >
+ <property name="Investigators">
+ <list>
+ <ref bean="CheckOnAgentInvestigator"/>
+ <ref bean="XenServerInvestigator"/>
+ <ref bean="UserVmDomRInvestigator"/>
+ <ref bean="ManagementIPSystemVMInvestigator"/>
+ </list>
+ </property>
+ <property name="FenceBuilders">
+ <list>
+ <ref bean="XenServerFencer"/>
+ <ref bean="KVMFencer"/>
+ <ref bean="OvmFencer"/>
+ </list>
+ </property>
+ </bean>
+
+ <bean id="clusteredVirtualMachineManagerImpl" class="com.cloud.vm.ClusteredVirtualMachineManagerImpl" >
+ <property name="HostAllocators">
+ <list>
+ <ref bean="FirstFitRouting"/>
+ </list>
+ </property>
+ <property name="Planners">
+ <list>
+ <ref bean="FirstFitPlanner" />
+ <ref bean="UserDispersingPlanner" />
+ <ref bean="UserConcentratedPodPlanner" />
+ <ref bean="BareMetalPlanner" />
+ </list>
+ </property>
</bean>
- <bean id="KVMGuru" class="com.cloud.hypervisor.KVMGuru">
- <property name="name" value="KVMGuru"/>
- </bean>
-
- <bean id="HypervGuru" class="com.cloud.hypervisor.guru.HypervGuru">
- <property name="name" value="HypervGuru"/>
- </bean>
-
- <bean id="OvmGuru" class="com.cloud.ovm.hypervisor.OvmGuru">
- <property name="name" value="OvmGuru"/>
+ <bean id="networkManagerImpl" class="com.cloud.network.NetworkManagerImpl" >
+ <property name="NetworkGurus">
+ <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>
+ <property name="NetworkElements">
+ <list>
+ <ref bean="VirtualRouter"/>
+ <ref bean="Ovs"/>
+ <ref bean="SecurityGroupProvider"/>
+ <ref bean="VpcVirtualRouter"/>
+ <ref bean="BareMetalDhcp"/>
+ <ref bean="BareMetalPxe"/>
+ <ref bean="BareMetalUserdata"/>
+ </list>
+ </property>
+ <property name="IpDeployers">
+ <list>
+ <ref bean="elasticLoadBalancerElement"/>
+ <ref bean="VirtualRouter"/>
+ <ref bean="VpcVirtualRouter"/>
+ </list>
+ </property>
+ <property name="DhcpProviders">
+ <list>
+ <ref bean="VirtualRouter"/>
+ <ref bean="VpcVirtualRouter"/>
+ <ref bean="BareMetalDhcp"/>
+ </list>
+ </property>
+ </bean>
+
+ <bean id="networkModelImpl" class="com.cloud.network.NetworkModelImpl">
+ <property name="NetworkElements">
+ <list>
+ <ref bean="VirtualRouter"/>
+ <ref bean="Ovs"/>
+ <ref bean="SecurityGroupProvider"/>
+ <ref bean="VpcVirtualRouter"/>
+ <ref bean="BareMetalDhcp"/>
+ <ref bean="BareMetalPxe"/>
+ <ref bean="BareMetalUserdata"/>
+ </list>
+ </property>
</bean>
-
- <!--
- <bean id="BaremetalGuru" class="com.cloud.baremetal.manager.BareMetalGuru">
- <property name="name" value="BaremetalGuru"/>
- </bean>
- -->
- <!--
- <bean id="SimulatorGuru" class="com.cloud.simulator.SimulatorGuru">
- <property name="name" value="SimulatorGuru"/>
- </bean>
- -->
</beans>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6aaa4f68/client/tomcatconf/nonossComponentContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/nonossComponentContext.xml.in b/client/tomcatconf/nonossComponentContext.xml.in
index 531b3b9..948ef24 100644
--- a/client/tomcatconf/nonossComponentContext.xml.in
+++ b/client/tomcatconf/nonossComponentContext.xml.in
@@ -33,301 +33,270 @@
<!--
- Compose a CloudStack deployment with selected components here
+ Non-OSS deployment component configuration
-->
<bean id="premiumDatabaseUpgradeChecker" class="com.cloud.upgrade.PremiumDatabaseUpgradeChecker"/>
- <bean id="managementServerImpl" class ="com.cloud.server.ManagementServerImpl" />
- <bean id="configurationServerImpl" class="com.cloud.server.ConfigurationServerImpl" />
-
- <bean id="clusterManagerImpl" class="com.cloud.cluster.ClusterManagerImpl" />
- <bean id="clusteredAgentManagerImpl" class="com.cloud.agent.manager.ClusteredAgentManagerImpl" />
- <bean id="clusteredVirtualMachineManagerImpl" class="com.cloud.vm.ClusteredVirtualMachineManagerImpl" />
- <bean id="highAvailabilityManagerExtImpl" class="com.cloud.ha.HighAvailabilityManagerExtImpl" />
-
- <bean id="userVmManagerImpl" class="com.cloud.vm.UserVmManagerImpl" />
- <bean id="consoleProxyManagerImpl" class="com.cloud.consoleproxy.ConsoleProxyManagerImpl" />
- <bean id="securityGroupManagerImpl2" class="com.cloud.network.security.SecurityGroupManagerImpl2" />
- <bean id="premiumSecondaryStorageManagerImpl" class="com.cloud.secstorage.PremiumSecondaryStorageManagerImpl" />
- <!-- <bean id="randomlyIncreasingVMInstanceDaoImpl" class="com.cloud.vm.dao.RandomlyIncreasingVMInstanceDaoImpl" /> -->
- <bean id="userVmDaoImpl" class="com.cloud.vm.dao.UserVmDaoImpl" />
-
- <bean id="ipv6AddressManagerImpl" class="com.cloud.network.Ipv6AddressManagerImpl" />
-
- <bean id="apiRateLimitServiceImpl" class="org.apache.cloudstack.ratelimit.ApiRateLimitServiceImpl"/>
-
- <!-- bean id="bareMetalVmManagerImpl" class="com.cloud.baremetal.BareMetalVmManagerImpl" / -->
- <bean id="VmwareManager" class="com.cloud.hypervisor.vmware.manager.VmwareManagerImpl"/>
- <bean id="NetappManager" class="com.cloud.netapp.NetappManagerImpl"/>
- <!--
- <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" />
- -->
<!--
- Network Elements
+ DAO with customized configuration under non-OSS deployment
-->
- <bean id="Ovs" class="com.cloud.network.element.OvsElement">
- <property name="name" value="Ovs"/>
+ <bean id="configurationDaoImpl" class="com.cloud.configuration.dao.ConfigurationDaoImpl">
+ <property name="configParams">
+ <map>
+ <entry key="premium" value="true" />
+ </map>
+ </property>
</bean>
<!--
- <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="SecurityGroupProvider" class="com.cloud.network.element.SecurityGroupElement">
- <property name="name" value="SecurityGroupProvider"/>
+ VMware support components
+ -->
+ <bean id="VmwareFencer" class="com.cloud.ha.VmwareFencer">
+ <property name="name" value="VMwareFenceBuilder"/>
</bean>
- <bean id="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement">
- <property name="name" value="VirtualRouter"/>
+ <bean id="vmwareServerDiscoverer" class="com.cloud.hypervisor.vmware.VmwareServerDiscoverer">
+ <property name="name" value="VMware Discover"/>
</bean>
- <bean id="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement">
- <property name="name" value="VpcVirtualRouter"/>
+ <bean id="VMwareGuru" class="com.cloud.hypervisor.guru.VMwareGuru">
+ <property name="name" value="VMwareGuru"/>
</bean>
- <bean id="NiciraNvp" class="com.cloud.network.element.NiciraNvpElement">
- <property name="name" value="NiciraNvp"/>
+ <bean id="VmwareInvestigator" class="com.cloud.ha.VmwareInvestigator">
+ <property name="name" value="VMwareInvestigator"/>
</bean>
+ <bean id="VmwareManager" class="com.cloud.hypervisor.vmware.manager.VmwareManagerImpl"/>
+ <bean id="vmwareContextFactory" class="com.cloud.hypervisor.vmware.resource.VmwareContextFactory" />
- <bean id="JuniperSRX" class="com.cloud.network.element.JuniperSRXExternalFirewallElement">
- <property name="name" value="JuniperSRX"/>
- </bean>
- <bean id="Netscaler" class="com.cloud.network.element.NetscalerElement">
- <property name="name" value="Netscaler"/>
- </bean>
- <bean id="F5BigIP" class="com.cloud.network.element.F5ExternalLoadBalancerElement">
- <property name="name" value="F5BigIP"/>
- </bean>
- <bean id="CiscoNexus1000vVSM" class="com.cloud.network.element.CiscoNexusVSMElement">
- <property name="name" value="CiscoNexus1000vVSM"/>
- </bean>
-
- <!--
- Adapters
- -->
- <bean id="FirstFitRouting" class="com.cloud.agent.manager.allocator.impl.FirstFitRoutingAllocator">
- <property name="name" value="FirstFitRouting"/>
- </bean>
-
<!--
- Storage pool allocators
+ Nicira support components
-->
- <bean id="LocalStoragePoolAllocator" class="com.cloud.storage.allocator.LocalStoragePoolAllocator">
- <property name="name" value="LocalStorage"/>
- </bean>
- <bean id="FirstFitStoragePoolAllocator" class="com.cloud.storage.allocator.FirstFitStoragePoolAllocator">
- <property name="name" value="Storage"/>
- </bean>
-
- <bean id="UserConcentratedAllocator" class="com.cloud.agent.manager.allocator.impl.UserConcentratedAllocator">
- <property name="name" value="User First"/>
- </bean>
-
- <bean id="ConsoleProxyAllocator" class="com.cloud.consoleproxy.ConsoleProxyBalanceAllocator">
- <property name="name" value="Balance"/>
- </bean>
-
- <bean id="StaticRoleBasedAPIAccessChecker" class="org.apache.cloudstack.acl.StaticRoleBasedAPIAccessChecker"/>
-
- <bean id="ExteralIpAddressAllocator" class="com.cloud.network.ExteralIpAddressAllocator">
- <property name="name" value="Basic"/>
+ <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="BareMetalTemplateAdapter" class="com.cloud.baremetal.manager.BareMetalTemplateAdapter" >
- <property name="name" value="BareMetalTemplateAdapter"/>
+ <bean id="NiciraNvp" class="com.cloud.network.element.NiciraNvpElement">
+ <property name="name" value="NiciraNvp"/>
</bean>
- -->
<!--
- Authenticators
- -->
- <bean id="MD5UserAuthenticator" class="com.cloud.server.auth.MD5UserAuthenticator">
- <property name="name" value="MD5"/>
- </bean>
-
- <bean id="LDAPUserAuthenticator" class="com.cloud.server.auth.LDAPUserAuthenticator">
- <property name="name" value="LDAP"/>
- </bean>
+ Netapp support components
+ -->
+ <bean id="lunDaoImpl" class="com.cloud.netapp.dao.LunDaoImpl" />
+ <bean id="poolDaoImpl" class="com.cloud.netapp.dao.PoolDaoImpl" />
+ <bean id="netappVolumeDaoImpl" class="com.cloud.netapp.dao.VolumeDaoImpl" />
+ <bean id="NetappManager" class="com.cloud.netapp.NetappManagerImpl"/>
<!--
- Investigators
+ JuniperSRX support components
-->
- <bean id="CheckOnAgentInvestigator" class="com.cloud.ha.CheckOnAgentInvestigator">
- <property name="name" value="SimpleInvestigator"/>
- </bean>
-
- <bean id="XenServerInvestigator" class="com.cloud.ha.XenServerInvestigator">
- <property name="name" value="XenServerInvestigator"/>
+ <bean id="JuniperSRX" class="com.cloud.network.element.JuniperSRXExternalFirewallElement">
+ <property name="name" value="JuniperSRX"/>
</bean>
- <bean id="UserVmDomRInvestigator" class="com.cloud.ha.UserVmDomRInvestigator">
- <property name="name" value="PingInvestigator"/>
- </bean>
-
- <bean id="ManagementIPSystemVMInvestigator" class="com.cloud.ha.ManagementIPSystemVMInvestigator">
- <property name="name" value="ManagementIPSysVMInvestigator"/>
- </bean>
-
- <bean id="VmwareInvestigator" class="com.cloud.ha.VmwareInvestigator">
- <property name="name" value="VMwareInvestigator"/>
- </bean>
-
<!--
- Fencers
+ NetScalar support components
-->
- <bean id="XenServerFencer" class="com.cloud.ha.XenServerFencer">
- <property name="name" value="XenServerFenceBuilder"/>
- </bean>
- <bean id="KVMFencer" class="com.cloud.ha.KVMFencer">
- <property name="name" value="KVMFenceBuilder"/>
- </bean>
- <bean id="OvmFencer" class="com.cloud.ovm.hypervisor.OvmFencer">
- <property name="name" value="OvmFenceBuilder"/>
- </bean>
- <bean id="VmwareFencer" class="com.cloud.ha.VmwareFencer">
- <property name="name" value="VMwareFenceBuilder"/>
- </bean>
-
- <!--
- Discovers
- -->
- <bean id="XcpServerDiscoverer" class="com.cloud.hypervisor.xen.discoverer.XcpServerDiscoverer">
- <property name="name" value="XCP Agent"/>
- </bean>
-
- <bean id="SecondaryStorageDiscoverer" class="com.cloud.storage.secondary.SecondaryStorageDiscoverer">
- <property name="name" value="SecondaryStorage"/>
- </bean>
-
- <bean id="KvmServerDiscoverer" class="com.cloud.hypervisor.kvm.discoverer.KvmServerDiscoverer">
- <property name="name" value="KVM Agent"/>
+ <bean id="netScalerPodDaoImpl" class="com.cloud.network.dao.NetScalerPodDaoImpl" />
+ <bean id="Netscaler" class="com.cloud.network.element.NetscalerElement">
+ <property name="name" value="Netscaler"/>
</bean>
-
+
<!--
- <bean id="BareMetalDiscoverer" class="com.cloud.baremetal.manager.BareMetalDiscoverer">
- <property name="name" value="Bare Metal Agent"/>
- </bean>
+ F5BigIP support components
-->
-
- <bean id="HypervServerDiscoverer" class="com.cloud.hypervisor.hyperv.HypervServerDiscoverer">
- <property name="name" value="SCVMMServer"/>
- </bean>
-
- <bean id="OvmDiscoverer" class="com.cloud.ovm.hypervisor.OvmDiscoverer">
- <property name="name" value="Ovm Discover"/>
+ <bean id="F5BigIP" class="com.cloud.network.element.F5ExternalLoadBalancerElement">
+ <property name="name" value="F5BigIP"/>
</bean>
- <bean id="vmwareServerDiscoverer" class="com.cloud.hypervisor.vmware.VmwareServerDiscoverer">
- <property name="name" value="VMware Discover"/>
- </bean>
-
<!--
- Deployment planners
- -->
- <bean id="FirstFitPlanner" class="com.cloud.deploy.FirstFitPlanner">
- <property name="name" value="First Fit"/>
- </bean>
-
- <bean id="UserDispersingPlanner" class="com.cloud.deploy.UserDispersingPlanner">
- <property name="name" value="UserDispersing"/>
+ Cisco Nexus support components
+ -->
+ <bean id="ciscoNexusVSMDeviceDaoImpl" class="com.cloud.network.dao.CiscoNexusVSMDeviceDaoImpl" />
+ <bean id="CiscoNexus1000vVSM" class="com.cloud.network.element.CiscoNexusVSMElement">
+ <property name="name" value="CiscoNexus1000vVSM"/>
</bean>
- <bean id="UserConcentratedPodPlanner" class="com.cloud.deploy.UserConcentratedPodPlanner">
- <property name="name" value="UserConcentratedPod"/>
- </bean>
-
<!--
- <bean id="BareMetalPlanner" class="com.cloud.baremetal.manager.BareMetalPlanner">
- <property name="name" value="BareMetal Fit"/>
+ BigSwitch support components
+ -->
+ <bean id="bigSwitchVnsDaoImpl" class="com.cloud.network.dao.BigSwitchVnsDaoImpl" />
+ <bean id="bigSwitchVnsElement" class="com.cloud.network.element.BigSwitchVnsElement">
+ <property name="name" value="BigSwitchVnsElement"/>
</bean>
- -->
- <!--
- Network Gurus
+ <!--
+ Managers & pluggable adapters configuration under non-OSS deployment
-->
- <bean id="StorageNetworkGuru" class="com.cloud.network.guru.StorageNetworkGuru">
- <property name="name" value="StorageNetworkGuru"/>
- </bean>
- <bean id="ExternalGuestNetworkGuru" class="com.cloud.network.guru.ExternalGuestNetworkGuru">
- <property name="name" value="ExternalGuestNetworkGuru"/>
- </bean>
- <bean id="PublicNetworkGuru" class="com.cloud.network.guru.PublicNetworkGuru">
- <property name="name" value="PublicNetworkGuru"/>
- </bean>
- <bean id="PodBasedNetworkGuru" class="com.cloud.network.guru.PodBasedNetworkGuru">
- <property name="name" value="PodBasedNetworkGuru"/>
- </bean>
- <bean id="ControlNetworkGuru" class="com.cloud.network.guru.ControlNetworkGuru">
- <property name="name" value="ControlNetworkGuru"/>
- </bean>
- <bean id="DirectNetworkGuru" class="com.cloud.network.guru.DirectNetworkGuru">
- <property name="name" value="DirectNetworkGuru"/>
- </bean>
- <bean id="DirectPodBasedNetworkGuru" class="com.cloud.network.guru.DirectPodBasedNetworkGuru">
- <property name="name" value="DirectPodBasedNetworkGuru"/>
- </bean>
- <bean id="OvsGuestNetworkGuru" class="com.cloud.network.guru.OvsGuestNetworkGuru">
- <property name="name" value="OvsGuestNetworkGuru"/>
- </bean>
- <bean id="PrivateNetworkGuru" class="com.cloud.network.guru.PrivateNetworkGuru">
- <property name="name" value="PrivateNetworkGuru"/>
- </bean>
- <bean id="NiciraNvpGuestNetworkGuru" class="com.cloud.network.guru.NiciraNvpGuestNetworkGuru">
- <property name="name" value="NiciraNvpGuestNetworkGuru"/>
- </bean>
-
- <!--
- Hypervisor Gurus
- -->
- <bean id="XenServerGuru" class="com.cloud.hypervisor.XenServerGuru">
- <property name="name" value="XenServerGuru"/>
+ <bean id="accountManagerImpl" class="com.cloud.user.AccountManagerImpl" >
+ <property name="UserAuthenticators">
+ <list>
+ <ref bean="MD5UserAuthenticator"/>
+ <ref bean="LDAPUserAuthenticator"/>
+ </list>
+ </property>
+ <property name="SecurityCheckers">
+ <list>
+ <ref bean="domainChecker"/>
+ </list>
+ </property>
</bean>
- <bean id="KVMGuru" class="com.cloud.hypervisor.KVMGuru">
- <property name="name" value="KVMGuru"/>
+ <bean id="managementServerImpl" class ="com.cloud.server.ManagementServerImpl">
+ <property name="UserAuthenticators">
+ <list>
+ <ref bean="MD5UserAuthenticator"/>
+ <ref bean="LDAPUserAuthenticator"/>
+ </list>
+ </property>
+ <property name="HostAllocators">
+ <list>
+ <ref bean="FirstFitRouting"/>
+ </list>
+ </property>
+ </bean>
+
+ <bean id="storageManagerImpl" class="com.cloud.storage.StorageManagerImpl">
+ <property name="StoragePoolAllocators">
+ <list>
+ <ref bean="LocalStoragePoolAllocator"/>
+ <ref bean="FirstFitStoragePoolAllocator"/>
+ </list>
+ </property>
</bean>
- <bean id="OvmGuru" class="com.cloud.ovm.hypervisor.OvmGuru">
- <property name="name" value="OvmGuru"/>
+ <bean id="FirstFitPlanner" class="com.cloud.deploy.FirstFitPlanner">
+ <property name="name" value="First Fit"/>
+ <property name="StoragePoolAllocators">
+ <list>
+ <ref bean="LocalStoragePoolAllocator"/>
+ <ref bean="FirstFitStoragePoolAllocator"/>
+ </list>
+ </property>
+ <property name="HostAllocators">
+ <list>
+ <ref bean="FirstFitRouting"/>
+ </list>
+ </property>
</bean>
- <bean id="VMwareGuru" class="com.cloud.hypervisor.guru.VMwareGuru">
- <property name="name" value="VMwareGuru"/>
- </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 id="resourceManagerImpl" class="com.cloud.resource.ResourceManagerImpl" >
+ <property name="PodAllocators">
+ <list>
+ <ref bean="UserConcentratedAllocator"/>
+ </list>
+ </property>
+ <property name="Discoverers">
+ <list>
+ <ref bean="XcpServerDiscoverer"/>
+ <ref bean="SecondaryStorageDiscoverer"/>
+ <ref bean="KvmServerDiscoverer"/>
+ <ref bean="BareMetalDiscoverer"/>
+ <ref bean="OvmDiscoverer"/>
+ <ref bean="vmwareServerDiscoverer"/>
+ </list>
+ </property>
+ </bean>
+
+ <bean id="highAvailabilityManagerExtImpl" class="com.cloud.ha.HighAvailabilityManagerExtImpl" >
+ <property name="Investigators">
+ <list>
+ <ref bean="CheckOnAgentInvestigator"/>
+ <ref bean="XenServerInvestigator"/>
+ <ref bean="VmwareInvestigator"/>
+ <ref bean="UserVmDomRInvestigator"/>
+ <ref bean="ManagementIPSystemVMInvestigator"/>
+ </list>
+ </property>
+ <property name="FenceBuilders">
+ <list>
+ <ref bean="XenServerFencer"/>
+ <ref bean="KVMFencer"/>
+ <ref bean="OvmFencer"/>
+ <ref bean="VmwareFencer"/>
+ </list>
+ </property>
+ </bean>
+
+ <bean id="clusteredVirtualMachineManagerImpl" class="com.cloud.vm.ClusteredVirtualMachineManagerImpl" >
+ <property name="HostAllocators">
+ <list>
+ <ref bean="FirstFitRouting"/>
+ </list>
+ </property>
+ <property name="Planners">
+ <list>
+ <ref bean="FirstFitPlanner" />
+ <ref bean="UserDispersingPlanner" />
+ <ref bean="UserConcentratedPodPlanner" />
+ <ref bean="BareMetalPlanner" />
+ </list>
+ </property>
</bean>
- -->
-
- <bean id="HypervisorPlannerSelector" class="com.cloud.deploy.HypervisorVmPlannerSelector">
- <property name="name" value="HypervisorPlannerSelector"/>
- </bean>
-
- <!--
- DAO with customized configuration
- -->
- <bean id="configurationDaoImpl" class="com.cloud.configuration.dao.ConfigurationDaoImpl">
- <property name="configParams">
- <map>
- <entry key="premium" value="true" />
- </map>
- </property>
+
+ <bean id="networkManagerImpl" class="com.cloud.network.NetworkManagerImpl" >
+ <property name="NetworkGurus">
+ <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>
+ <property name="NetworkElements">
+ <list>
+ <ref bean="JuniperSRX"/>
+ <ref bean="Netscaler"/>
+ <ref bean="F5BigIP"/>
+ <ref bean="CiscoNexus1000vVSM"/>
+ <ref bean="bigSwitchVnsElement"/>
+ <ref bean="VirtualRouter"/>
+ <ref bean="Ovs"/>
+ <ref bean="SecurityGroupProvider"/>
+ <ref bean="VpcVirtualRouter"/>
+ <ref bean="BareMetalDhcp"/>
+ <ref bean="BareMetalPxe"/>
+ <ref bean="BareMetalUserdata"/>
+ </list>
+ </property>
+ <property name="IpDeployers">
+ <list>
+ <ref bean="elasticLoadBalancerElement"/>
+ <ref bean="VirtualRouter"/>
+ <ref bean="VpcVirtualRouter"/>
+ </list>
+ </property>
+ <property name="DhcpProviders">
+ <list>
+ <ref bean="VirtualRouter"/>
+ <ref bean="VpcVirtualRouter"/>
+ <ref bean="BareMetalDhcp"/>
+ </list>
+ </property>
+ </bean>
+
+ <bean id="networkModelImpl" class="com.cloud.network.NetworkModelImpl">
+ <property name="NetworkElements">
+ <list>
+ <ref bean="JuniperSRX"/>
+ <ref bean="Netscaler"/>
+ <ref bean="F5BigIP"/>
+ <ref bean="CiscoNexus1000vVSM"/>
+ <ref bean="bigSwitchVnsElement"/>
+ <ref bean="VirtualRouter"/>
+ <ref bean="Ovs"/>
+ <ref bean="SecurityGroupProvider"/>
+ <ref bean="VpcVirtualRouter"/>
+ <ref bean="BareMetalDhcp"/>
+ <ref bean="BareMetalPxe"/>
+ <ref bean="BareMetalUserdata"/>
+ </list>
+ </property>
</bean>
</beans>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6aaa4f68/server/src/com/cloud/deploy/FirstFitPlanner.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/deploy/FirstFitPlanner.java b/server/src/com/cloud/deploy/FirstFitPlanner.java
index 66a24ac..31fc43c 100755
--- a/server/src/com/cloud/deploy/FirstFitPlanner.java
+++ b/server/src/com/cloud/deploy/FirstFitPlanner.java
@@ -100,12 +100,24 @@ public class FirstFitPlanner extends PlannerBase implements DeploymentPlanner {
@Inject protected AccountManager _accountMgr;
@Inject protected StorageManager _storageMgr;
- //@com.cloud.utils.component.Inject(adapter=StoragePoolAllocator.class)
- @Inject protected List<StoragePoolAllocator> _storagePoolAllocators;
-
- //@com.cloud.utils.component.Inject(adapter=HostAllocator.class)
- @Inject protected List<HostAllocator> _hostAllocators;
- protected String _allocationAlgorithm = "random";
+ protected List<StoragePoolAllocator> _storagePoolAllocators;
+ public List<StoragePoolAllocator> getStoragePoolAllocators() {
+ return _storagePoolAllocators;
+ }
+ public void setStoragePoolAllocators(
+ List<StoragePoolAllocator> _storagePoolAllocators) {
+ this._storagePoolAllocators = _storagePoolAllocators;
+ }
+
+ protected List<HostAllocator> _hostAllocators;
+ public List<HostAllocator> getHostAllocators() {
+ return _hostAllocators;
+ }
+ public void setHostAllocators(List<HostAllocator> _hostAllocators) {
+ this._hostAllocators = _hostAllocators;
+ }
+
+ protected String _allocationAlgorithm = "random";
@Override
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6aaa4f68/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java b/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
index eb27fda..d8b8da1 100755
--- a/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
+++ b/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
@@ -116,11 +116,23 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
ClusterDetailsDao _clusterDetailsDao;
long _serverId;
- @Inject
List<Investigator> _investigators;
- @Inject
- List<FenceBuilder> _fenceBuilders;
- @Inject
+ public List<Investigator> getInvestigators() {
+ return _investigators;
+ }
+ public void setInvestigators(List<Investigator> _investigators) {
+ this._investigators = _investigators;
+ }
+
+ List<FenceBuilder> _fenceBuilders;
+ public List<FenceBuilder> getFenceBuilders() {
+ return _fenceBuilders;
+ }
+ public void setFenceBuilders(List<FenceBuilder> _fenceBuilders) {
+ this._fenceBuilders = _fenceBuilders;
+ }
+
+ @Inject
AgentManager _agentMgr;
@Inject
AlertManager _alertMgr;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6aaa4f68/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java
index bdc5577..1669430 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -193,16 +193,41 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
@Inject
PodVlanMapDao _podVlanMapDao;
- @Inject
List<NetworkGuru> _networkGurus;
+ public List<NetworkGuru> getNetworkGurus() {
+ return _networkGurus;
+ }
+ public void setNetworkGurus(List<NetworkGuru> _networkGurus) {
+ this._networkGurus = _networkGurus;
+ }
+
+ List<NetworkElement> _networkElements;
+ public List<NetworkElement> getNetworkElements() {
+ return _networkElements;
+ }
+ public void setNetworkElements(List<NetworkElement> _networkElements) {
+ this._networkElements = _networkElements;
+ }
- @Inject protected List<NetworkElement> _networkElements;
+ @Inject NetworkDomainDao _networkDomainDao;
- @Inject NetworkDomainDao _networkDomainDao;
- @Inject List<IpDeployer> _ipDeployers;
- @Inject List<DhcpServiceProvider> _dhcpProviders;
-
- @Inject
+ List<IpDeployer> _ipDeployers;
+ public List<IpDeployer> getIpDeployers() {
+ return _ipDeployers;
+ }
+ public void setIpDeployers(List<IpDeployer> _ipDeployers) {
+ this._ipDeployers = _ipDeployers;
+ }
+
+ List<DhcpServiceProvider> _dhcpProviders;
+ public List<DhcpServiceProvider> getDhcpProviders() {
+ return _dhcpProviders;
+ }
+ public void setDhcpProviders(List<DhcpServiceProvider> _dhcpProviders) {
+ this._dhcpProviders = _dhcpProviders;
+ }
+
+ @Inject
VMInstanceDao _vmDao;
@Inject
FirewallManager _firewallMgr;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6aaa4f68/server/src/com/cloud/network/NetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java
index 3c7329f..e3759ca 100644
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@ -143,9 +143,15 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
@Inject
PodVlanMapDao _podVlanMapDao;
- @Inject List<NetworkElement> _networkElements;
-
- @Inject
+ List<NetworkElement> _networkElements;
+ public List<NetworkElement> getNetworkElements() {
+ return _networkElements;
+ }
+ public void setNetworkElements(List<NetworkElement> _networkElements) {
+ this._networkElements = _networkElements;
+ }
+
+ @Inject
NetworkDomainDao _networkDomainDao;
@Inject
VMInstanceDao _vmDao;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6aaa4f68/server/src/com/cloud/resource/ResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java
index 79ccdb3..bd454cb 100755
--- a/server/src/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/com/cloud/resource/ResourceManagerImpl.java
@@ -211,19 +211,29 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
protected HighAvailabilityManager _haMgr;
@Inject
protected StorageService _storageSvr;
- // @com.cloud.utils.component.Inject(adapter = Discoverer.class)
+
+ protected List<? extends Discoverer> _discoverers;
+ public List<? extends Discoverer> getDiscoverers() {
+ return _discoverers;
+ }
+ public void setDiscoverers(List<? extends Discoverer> _discoverers) {
+ this._discoverers = _discoverers;
+ }
+
@Inject
- protected List<? extends Discoverer> _discoverers;
- @Inject
protected ClusterManager _clusterMgr;
@Inject
protected StoragePoolHostDao _storagePoolHostDao;
- // @com.cloud.utils.component.Inject(adapter = PodAllocator.class)
- @Inject
- protected List<PodAllocator> _podAllocators = null;
+ protected List<PodAllocator> _podAllocators;
+ public List<PodAllocator> getPodAllocators() {
+ return _podAllocators;
+ }
+ public void setPodAllocators(List<PodAllocator> _podAllocators) {
+ this._podAllocators = _podAllocators;
+ }
- @Inject
+ @Inject
protected VMTemplateDao _templateDao;
@Inject
protected ConfigurationManager _configMgr;
[5/7] git commit: updated refs/heads/4.1 to e221d18
Posted by ch...@apache.org.
CLOUDSTACK-1795: implement custom AOP to fully support legacy CloudStack AOP semantcis
Signed-off-by: Chip Childers <ch...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/519532db
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/519532db
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/519532db
Branch: refs/heads/4.1
Commit: 519532db2b5ec49ea587c9961b1f14b7f25e7edb
Parents: b24cbcf
Author: Kelven Yang <ke...@gmail.com>
Authored: Wed Mar 27 13:06:49 2013 +0000
Committer: Chip Childers <ch...@gmail.com>
Committed: Wed Mar 27 13:06:49 2013 +0000
----------------------------------------------------------------------
client/tomcatconf/applicationContext.xml.in | 27 +--
server/src/com/cloud/api/ApiDispatcher.java | 5 +-
server/src/com/cloud/api/ApiServer.java | 39 ++--
.../src/com/cloud/cluster/ClusterManagerImpl.java | 4 +-
.../com/cloud/event/ActionEventInterceptor.java | 52 +----
.../ExternalLoadBalancerDeviceManagerImpl.java | 2 +-
.../src/com/cloud/network/NetworkManagerImpl.java | 16 +-
server/src/com/cloud/network/NetworkModelImpl.java | 6 +-
server/src/com/cloud/server/StatsCollector.java | 3 +-
.../src/com/cloud/utils/component/AdapterBase.java | 4 +-
.../cloud/utils/component/ComponentContext.java | 32 +++-
.../ComponentInstantiationPostProcessor.java | 152 +++++++++++++++
.../component/ComponentMethodInterceptable.java | 24 +++
.../component/ComponentMethodInterceptor.java | 27 +++
.../utils/component/ComponentNamingPolicy.java | 63 ++++++
.../src/com/cloud/utils/component/ManagerBase.java | 2 +-
utils/src/com/cloud/utils/db/GenericDaoBase.java | 29 +---
.../cloud/utils/db/TransactionContextBuilder.java | 68 ++-----
.../utils/log/CglibThrowableRendererTest.java | 2 +-
utils/test/resources/testContext.xml | 20 +--
20 files changed, 383 insertions(+), 194 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in
index 3c93b8a..6bab4fd 100644
--- a/client/tomcatconf/applicationContext.xml.in
+++ b/client/tomcatconf/applicationContext.xml.in
@@ -35,27 +35,18 @@
<!--
@DB support
-->
- <aop:config>
- <aop:aspect id="dbContextBuilder" ref="transactionContextBuilder">
- <aop:pointcut id="captureAnyMethod"
- expression="execution(* *(..))"
- />
-
- <aop:around pointcut-ref="captureAnyMethod" method="AroundAnyMethod"/>
- </aop:aspect>
-
- <aop:aspect id="actionEventInterceptorAspect" ref="actionEventInterceptor">
- <aop:pointcut id="captureEventMethod"
- expression="execution(* *(..)) and @annotation(com.cloud.event.ActionEvent)"
- />
-
- <aop:around pointcut-ref="captureEventMethod" method="AroundAnyMethod"/>
- </aop:aspect>
- </aop:config>
-
<bean id="transactionContextBuilder" class="com.cloud.utils.db.TransactionContextBuilder" />
<bean id="actionEventInterceptor" class="com.cloud.event.ActionEventInterceptor" />
+ <bean id="instantiatePostProcessor" class="com.cloud.utils.component.ComponentInstantiationPostProcessor">
+ <property name="Interceptors">
+ <list>
+ <ref bean="transactionContextBuilder" />
+ <ref bean="actionEventInterceptor" />
+ </list>
+ </property>
+ </bean>
+
<!--
RPC/Async/EventBus
-->
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/server/src/com/cloud/api/ApiDispatcher.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiDispatcher.java b/server/src/com/cloud/api/ApiDispatcher.java
index 764b3ae..3422170 100755
--- a/server/src/com/cloud/api/ApiDispatcher.java
+++ b/server/src/com/cloud/api/ApiDispatcher.java
@@ -136,8 +136,7 @@ public class ApiDispatcher {
UserContext ctx = UserContext.current();
ctx.setAccountId(cmd.getEntityOwnerId());
- BaseCmd realCmdObj = ComponentContext.getTargetObject(cmd);
- if (realCmdObj instanceof BaseAsyncCmd) {
+ if (cmd instanceof BaseAsyncCmd) {
BaseAsyncCmd asyncCmd = (BaseAsyncCmd) cmd;
String startEventId = params.get("ctxStartEventId");
@@ -169,8 +168,6 @@ public class ApiDispatcher {
Map<Object, AccessType> entitiesToAccess = new HashMap<Object, AccessType>();
Map<String, Object> unpackedParams = cmd.unpackParams(params);
- cmd = ComponentContext.getTargetObject(cmd);
-
if (cmd instanceof BaseListCmd) {
Object pageSizeObj = unpackedParams.get(ApiConstants.PAGE_SIZE);
Long pageSize = null;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/server/src/com/cloud/api/ApiServer.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java
index 0439c6e..4c1cf2d 100755
--- a/server/src/com/cloud/api/ApiServer.java
+++ b/server/src/com/cloud/api/ApiServer.java
@@ -433,16 +433,15 @@ public class ApiServer implements HttpRequestHandler, ApiServerService {
Long callerUserId = ctx.getCallerUserId();
Account caller = ctx.getCaller();
- BaseCmd realCmdObj = ComponentContext.getTargetObject(cmdObj);
// Queue command based on Cmd super class:
// BaseCmd: cmd is dispatched to ApiDispatcher, executed, serialized and returned.
// BaseAsyncCreateCmd: cmd params are processed and create() is called, then same workflow as BaseAsyncCmd.
// BaseAsyncCmd: cmd is processed and submitted as an AsyncJob, job related info is serialized and returned.
- if (realCmdObj instanceof BaseAsyncCmd) {
+ if (cmdObj instanceof BaseAsyncCmd) {
Long objectId = null;
String objectUuid = null;
- if (realCmdObj instanceof BaseAsyncCreateCmd) {
+ if (cmdObj instanceof BaseAsyncCreateCmd) {
BaseAsyncCreateCmd createCmd = (BaseAsyncCreateCmd) cmdObj;
_dispatcher.dispatchCreateCmd(createCmd, params);
objectId = createCmd.getEntityId();
@@ -478,7 +477,7 @@ public class ApiServer implements HttpRequestHandler, ApiServerService {
ctx.setAccountId(asyncCmd.getEntityOwnerId());
Long instanceId = (objectId == null) ? asyncCmd.getInstanceId() : objectId;
- AsyncJobVO job = new AsyncJobVO(callerUserId, caller.getId(), realCmdObj.getClass().getName(),
+ AsyncJobVO job = new AsyncJobVO(callerUserId, caller.getId(), cmdObj.getClass().getName(),
ApiGsonHelper.getBuilder().create().toJson(params), instanceId, asyncCmd.getInstanceType());
long jobId = _asyncMgr.submitAsyncJob(job);
@@ -502,22 +501,22 @@ public class ApiServer implements HttpRequestHandler, ApiServerService {
// if the command is of the listXXXCommand, we will need to also return the
// the job id and status if possible
// For those listXXXCommand which we have already created DB views, this step is not needed since async job is joined in their db views.
- if (realCmdObj instanceof BaseListCmd && !(realCmdObj instanceof ListVMsCmd) && !(realCmdObj instanceof ListRoutersCmd)
- && !(realCmdObj instanceof ListSecurityGroupsCmd)
- && !(realCmdObj instanceof ListTagsCmd)
- && !(realCmdObj instanceof ListEventsCmd)
- && !(realCmdObj instanceof ListVMGroupsCmd)
- && !(realCmdObj instanceof ListProjectsCmd)
- && !(realCmdObj instanceof ListProjectAccountsCmd)
- && !(realCmdObj instanceof ListProjectInvitationsCmd)
- && !(realCmdObj instanceof ListHostsCmd)
- && !(realCmdObj instanceof ListVolumesCmd)
- && !(realCmdObj instanceof ListUsersCmd)
- && !(realCmdObj instanceof ListAccountsCmd)
- && !(realCmdObj instanceof ListStoragePoolsCmd)
- && !(realCmdObj instanceof ListDiskOfferingsCmd)
- && !(realCmdObj instanceof ListServiceOfferingsCmd)
- && !(realCmdObj instanceof ListZonesByCmd)
+ if (cmdObj instanceof BaseListCmd && !(cmdObj instanceof ListVMsCmd) && !(cmdObj instanceof ListRoutersCmd)
+ && !(cmdObj instanceof ListSecurityGroupsCmd)
+ && !(cmdObj instanceof ListTagsCmd)
+ && !(cmdObj instanceof ListEventsCmd)
+ && !(cmdObj instanceof ListVMGroupsCmd)
+ && !(cmdObj instanceof ListProjectsCmd)
+ && !(cmdObj instanceof ListProjectAccountsCmd)
+ && !(cmdObj instanceof ListProjectInvitationsCmd)
+ && !(cmdObj instanceof ListHostsCmd)
+ && !(cmdObj instanceof ListVolumesCmd)
+ && !(cmdObj instanceof ListUsersCmd)
+ && !(cmdObj instanceof ListAccountsCmd)
+ && !(cmdObj instanceof ListStoragePoolsCmd)
+ && !(cmdObj instanceof ListDiskOfferingsCmd)
+ && !(cmdObj instanceof ListServiceOfferingsCmd)
+ && !(cmdObj instanceof ListZonesByCmd)
) {
buildAsyncListResponse((BaseListCmd) cmdObj, caller);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/server/src/com/cloud/cluster/ClusterManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/cluster/ClusterManagerImpl.java b/server/src/com/cloud/cluster/ClusterManagerImpl.java
index 27e0e03..118de41 100755
--- a/server/src/com/cloud/cluster/ClusterManagerImpl.java
+++ b/server/src/com/cloud/cluster/ClusterManagerImpl.java
@@ -365,11 +365,11 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager {
try {
// schedule a scan task immediately
- if (ComponentContext.getTargetObject(_agentMgr) instanceof ClusteredAgentManagerImpl) {
+ if (_agentMgr instanceof ClusteredAgentManagerImpl) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Received notification as part of addHost command to start a host scan task");
}
- ClusteredAgentManagerImpl clusteredAgentMgr = (ClusteredAgentManagerImpl)ComponentContext.getTargetObject(_agentMgr);
+ ClusteredAgentManagerImpl clusteredAgentMgr = (ClusteredAgentManagerImpl)_agentMgr;
clusteredAgentMgr.scheduleHostScanTask();
}
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/server/src/com/cloud/event/ActionEventInterceptor.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/event/ActionEventInterceptor.java b/server/src/com/cloud/event/ActionEventInterceptor.java
index a6c2565..01eefcd 100644
--- a/server/src/com/cloud/event/ActionEventInterceptor.java
+++ b/server/src/com/cloud/event/ActionEventInterceptor.java
@@ -16,55 +16,22 @@
// under the License.
package com.cloud.event;
-import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Method;
import org.apache.log4j.Logger;
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.reflect.MethodSignature;
import com.cloud.user.UserContext;
-import com.cloud.utils.component.ComponentMethodProxyCache;
+import com.cloud.utils.component.ComponentMethodInterceptor;
-public class ActionEventInterceptor {
+public class ActionEventInterceptor implements ComponentMethodInterceptor {
private static final Logger s_logger = Logger.getLogger(ActionEventInterceptor.class);
public ActionEventInterceptor() {
}
- public Object AroundAnyMethod(ProceedingJoinPoint call) throws Throwable {
- MethodSignature methodSignature = (MethodSignature)call.getSignature();
-
- // Note: AOP for ActionEvent is triggered annotation, no need to check the annotation on method again
- Method targetMethod = ComponentMethodProxyCache.getTargetMethod(
- methodSignature.getMethod(), call.getTarget());
-
- if(targetMethod != null) {
- EventVO event = interceptStart(targetMethod);
-
- boolean success = true;
- Object ret = null;
- try {
- ret = call.proceed();
- } catch (Throwable e) {
- success = false;
- interceptException(targetMethod, event);
- throw e;
- } finally {
- if(success){
- interceptComplete(targetMethod, event);
- }
- }
- return ret;
- } else {
- s_logger.error("Unable to find the proxied method behind. Method: " + methodSignature.getMethod().getName());
- }
- return call.proceed();
- }
-
- public EventVO interceptStart(AnnotatedElement element) {
+ @Override
+ public Object interceptStart(Method method, Object target) {
EventVO event = null;
- Method method = (Method)element;
ActionEvent actionEvent = method.getAnnotation(ActionEvent.class);
if (actionEvent != null) {
boolean async = actionEvent.async();
@@ -83,8 +50,8 @@ public class ActionEventInterceptor {
return event;
}
- public void interceptComplete(AnnotatedElement element, EventVO event) {
- Method method = (Method)element;
+ @Override
+ public void interceptComplete(Method method, Object target, Object event) {
ActionEvent actionEvent = method.getAnnotation(ActionEvent.class);
if (actionEvent != null) {
UserContext ctx = UserContext.current();
@@ -105,8 +72,8 @@ public class ActionEventInterceptor {
}
}
- public void interceptException(AnnotatedElement element, EventVO event) {
- Method method = (Method)element;
+ @Override
+ public void interceptException(Method method, Object target, Object event) {
ActionEvent actionEvent = method.getAnnotation(ActionEvent.class);
if (actionEvent != null) {
UserContext ctx = UserContext.current();
@@ -126,7 +93,8 @@ public class ActionEventInterceptor {
}
}
- private boolean needToIntercept(Method method) {
+ @Override
+ public boolean needToIntercept(Method method) {
ActionEvent actionEvent = method.getAnnotation(ActionEvent.class);
if (actionEvent != null) {
return true;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java b/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
index d7b6d78..a358441 100644
--- a/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
+++ b/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
@@ -1104,7 +1104,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
}
NetworkElement element = _networkModel.getElementImplementingProvider(providers.get(0).getName());
- if (!(ComponentContext.getTargetObject(element) instanceof IpDeployer)) {
+ if (!(element instanceof IpDeployer)) {
s_logger.error("The firewall provider for network " + network.getName() + " don't have ability to deploy IP address!");
return null;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java
index 1669430..77222c0 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -559,10 +559,10 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
}
IpDeployer deployer = null;
NetworkElement element = _networkModel.getElementImplementingProvider(provider.getName());
- if (!(ComponentContext.getTargetObject(element) instanceof IpDeployingRequester)) {
+ if (!(element instanceof IpDeployingRequester)) {
throw new CloudRuntimeException("Element " + element + " is not a IpDeployingRequester!");
}
- deployer = ((IpDeployingRequester)ComponentContext.getTargetObject(element)).getIpDeployer(network);
+ deployer = ((IpDeployingRequester)element).getIpDeployer(network);
if (deployer == null) {
throw new CloudRuntimeException("Fail to get ip deployer for element: " + element);
}
@@ -1542,13 +1542,13 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
if (vmProfile.getType() == Type.User && element.getProvider() != null) {
if (_networkModel.areServicesSupportedInNetwork(network.getId(), Service.Dhcp) &&
_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Dhcp, element.getProvider()) &&
- (ComponentContext.getTargetObject(element) instanceof DhcpServiceProvider)) {
+ element instanceof DhcpServiceProvider) {
DhcpServiceProvider sp = (DhcpServiceProvider) element;
sp.addDhcpEntry(network, profile, vmProfile, dest, context);
}
if (_networkModel.areServicesSupportedInNetwork(network.getId(), Service.UserData) &&
_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.UserData, element.getProvider()) &&
- (ComponentContext.getTargetObject(element) instanceof UserDataServiceProvider)) {
+ element instanceof UserDataServiceProvider) {
UserDataServiceProvider sp = (UserDataServiceProvider) element;
sp.addPasswordAndUserdata(network, profile, vmProfile, dest, context);
}
@@ -3579,15 +3579,15 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
@Override
public StaticNatServiceProvider getStaticNatProviderForNetwork(Network network) {
NetworkElement element = getElementForServiceInNetwork(network, Service.StaticNat);
- assert ComponentContext.getTargetObject(element) instanceof StaticNatServiceProvider;
- return (StaticNatServiceProvider)ComponentContext.getTargetObject(element);
+ assert element instanceof StaticNatServiceProvider;
+ return (StaticNatServiceProvider)element;
}
@Override
public LoadBalancingServiceProvider getLoadBalancingProviderForNetwork(Network network) {
NetworkElement element = getElementForServiceInNetwork(network, Service.Lb);
- assert ComponentContext.getTargetObject(element) instanceof LoadBalancingServiceProvider;
- return ( LoadBalancingServiceProvider)ComponentContext.getTargetObject(element);
+ assert element instanceof LoadBalancingServiceProvider;
+ return (LoadBalancingServiceProvider)element;
}
@Override
public boolean isNetworkInlineMode(Network network) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/server/src/com/cloud/network/NetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java
index e3759ca..a9031b1 100644
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@ -402,9 +402,9 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
Network network = _networksDao.findById(networkId);
NetworkElement oldElement = getElementImplementingProvider(oldProvider.getName());
NetworkElement newElement = getElementImplementingProvider(newProvider.getName());
- if (ComponentContext.getTargetObject(oldElement) instanceof IpDeployingRequester && ComponentContext.getTargetObject(newElement) instanceof IpDeployingRequester) {
- IpDeployer oldIpDeployer = ((IpDeployingRequester)ComponentContext.getTargetObject(oldElement)).getIpDeployer(network);
- IpDeployer newIpDeployer = ((IpDeployingRequester)ComponentContext.getTargetObject(newElement)).getIpDeployer(network);
+ if (oldElement instanceof IpDeployingRequester && newElement instanceof IpDeployingRequester) {
+ IpDeployer oldIpDeployer = ((IpDeployingRequester)oldElement).getIpDeployer(network);
+ IpDeployer newIpDeployer = ((IpDeployingRequester)newElement).getIpDeployer(network);
if (!oldIpDeployer.getProvider().getName().equals(newIpDeployer.getProvider().getName())) {
throw new InvalidParameterException("There would be multiple providers for IP " + publicIp.getAddress() + "!");
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/server/src/com/cloud/server/StatsCollector.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/StatsCollector.java b/server/src/com/cloud/server/StatsCollector.java
index 6546044..4ae4999 100755
--- a/server/src/com/cloud/server/StatsCollector.java
+++ b/server/src/com/cloud/server/StatsCollector.java
@@ -63,6 +63,7 @@ import com.cloud.storage.dao.StoragePoolHostDao;
import com.cloud.storage.dao.VolumeDao;
import com.cloud.storage.secondary.SecondaryStorageVmManager;
import com.cloud.utils.NumbersUtil;
+import com.cloud.utils.component.ComponentMethodInterceptable;
import com.cloud.utils.concurrency.NamedThreadFactory;
import com.cloud.utils.db.SearchCriteria;
import com.cloud.vm.UserVmManager;
@@ -75,7 +76,7 @@ import com.cloud.vm.dao.UserVmDao;
*
*/
@Component
-public class StatsCollector {
+public class StatsCollector implements ComponentMethodInterceptable {
public static final Logger s_logger = Logger.getLogger(StatsCollector.class.getName());
private static StatsCollector s_instance = null;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/utils/src/com/cloud/utils/component/AdapterBase.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/component/AdapterBase.java b/utils/src/com/cloud/utils/component/AdapterBase.java
index ea5e961..8353cee 100644
--- a/utils/src/com/cloud/utils/component/AdapterBase.java
+++ b/utils/src/com/cloud/utils/component/AdapterBase.java
@@ -19,7 +19,7 @@ package com.cloud.utils.component;
import java.util.List;
// Typical Adapter implementation.
-public class AdapterBase extends ComponentLifecycleBase implements Adapter {
+public class AdapterBase extends ComponentLifecycleBase implements Adapter, ComponentMethodInterceptable {
public AdapterBase() {
// set default run level for adapter components
@@ -29,7 +29,7 @@ public class AdapterBase extends ComponentLifecycleBase implements Adapter {
public static <T extends Adapter> T getAdapterByName(List<T> adapters, String name) {
for(T adapter : adapters) {
if(adapter.getName() != null && adapter.getName().equalsIgnoreCase(name))
- return ComponentContext.getTargetObject(adapter);
+ return adapter;
}
return null;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/utils/src/com/cloud/utils/component/ComponentContext.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/component/ComponentContext.java b/utils/src/com/cloud/utils/component/ComponentContext.java
index ca7ad5c..d11d354 100644
--- a/utils/src/com/cloud/utils/component/ComponentContext.java
+++ b/utils/src/com/cloud/utils/component/ComponentContext.java
@@ -59,16 +59,18 @@ public class ComponentContext implements ApplicationContextAware {
public static ApplicationContext getApplicationContext() {
return s_appContext;
- }
-
+ }
+
public static void initComponentsLifeCycle() {
- // Run the SystemIntegrityCheckers first
- Map<String, SystemIntegrityChecker> integrityCheckers = getApplicationContext().getBeansOfType(SystemIntegrityChecker.class);
- for (Entry<String,SystemIntegrityChecker> entry : integrityCheckers.entrySet() ){
- s_logger.info ("Running SystemIntegrityChecker " + entry.getKey());
- entry.getValue().check();
- }
-
+ AutowireCapableBeanFactory beanFactory = s_appContext.getAutowireCapableBeanFactory();
+
+ Map<String, ComponentMethodInterceptable> interceptableComponents = getApplicationContext().getBeansOfType(
+ ComponentMethodInterceptable.class);
+ for(Map.Entry<String, ComponentMethodInterceptable> entry : interceptableComponents.entrySet()) {
+ Object bean = getTargetObject(entry.getValue());
+ beanFactory.configureBean(bean, entry.getKey());
+ }
+
Map<String, ComponentLifecycle> lifecyleComponents = getApplicationContext().getBeansOfType(ComponentLifecycle.class);
Map[] classifiedComponents = new Map[ComponentLifecycle.MAX_RUN_LEVELS];
@@ -103,6 +105,18 @@ public class ComponentContext implements ApplicationContextAware {
avoidMap.put(implClassName, implClassName);
}
}
+
+ // Run the SystemIntegrityCheckers first
+ Map<String, SystemIntegrityChecker> integrityCheckers = getApplicationContext().getBeansOfType(SystemIntegrityChecker.class);
+ for (Entry<String,SystemIntegrityChecker> entry : integrityCheckers.entrySet() ){
+ s_logger.info ("Running SystemIntegrityChecker " + entry.getKey());
+ try {
+ entry.getValue().check();
+ } catch(Throwable e) {
+ s_logger.error("System integrity check failed. Refuse to startup");
+ System.exit(1);
+ }
+ }
// starting phase
avoidMap.clear();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/utils/src/com/cloud/utils/component/ComponentInstantiationPostProcessor.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/component/ComponentInstantiationPostProcessor.java b/utils/src/com/cloud/utils/component/ComponentInstantiationPostProcessor.java
new file mode 100644
index 0000000..cb64975
--- /dev/null
+++ b/utils/src/com/cloud/utils/component/ComponentInstantiationPostProcessor.java
@@ -0,0 +1,152 @@
+// 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.beans.PropertyDescriptor;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import net.sf.cglib.proxy.Callback;
+import net.sf.cglib.proxy.CallbackFilter;
+import net.sf.cglib.proxy.Enhancer;
+import net.sf.cglib.proxy.MethodInterceptor;
+import net.sf.cglib.proxy.MethodProxy;
+import net.sf.cglib.proxy.NoOp;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.PropertyValues;
+import org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor;
+
+import com.cloud.utils.Pair;
+
+public class ComponentInstantiationPostProcessor implements InstantiationAwareBeanPostProcessor {
+ private static final Logger s_logger = Logger.getLogger(ComponentInstantiationPostProcessor.class);
+
+ private List<ComponentMethodInterceptor> _interceptors = new ArrayList<ComponentMethodInterceptor>();
+ private Callback[] _callbacks;
+ private CallbackFilter _callbackFilter;
+
+ public ComponentInstantiationPostProcessor() {
+ _callbacks = new Callback[2];
+ _callbacks[0] = NoOp.INSTANCE;
+ _callbacks[1] = new InterceptorDispatcher();
+
+ _callbackFilter = new InterceptorFilter();
+ }
+
+ public List<ComponentMethodInterceptor> getInterceptors() {
+ return _interceptors;
+ }
+
+ public void setInterceptors(List<ComponentMethodInterceptor> interceptors) {
+ _interceptors = interceptors;
+ }
+
+ private Callback[] getCallbacks() {
+ return _callbacks;
+ }
+
+ private CallbackFilter getCallbackFilter() {
+ return _callbackFilter;
+ }
+
+ @Override
+ public Object postProcessBeforeInitialization(Object bean, String beanName)
+ throws BeansException {
+ return bean;
+ }
+
+ @Override
+ public Object postProcessAfterInitialization(Object bean, String beanName)
+ throws BeansException {
+ return bean;
+ }
+
+ @Override
+ public Object postProcessBeforeInstantiation(Class<?> beanClass,
+ String beanName) throws BeansException {
+ if(_interceptors != null && _interceptors.size() > 0) {
+ if(ComponentMethodInterceptable.class.isAssignableFrom(beanClass)) {
+ Enhancer enhancer = new Enhancer();
+ enhancer.setSuperclass(beanClass);
+ enhancer.setCallbacks(getCallbacks());
+ enhancer.setCallbackFilter(getCallbackFilter());
+ enhancer.setNamingPolicy(ComponentNamingPolicy.INSTANCE);
+
+ Object bean = enhancer.create();
+ return bean;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public boolean postProcessAfterInstantiation(Object bean, String beanName)
+ throws BeansException {
+ return true;
+ }
+
+ @Override
+ public PropertyValues postProcessPropertyValues(PropertyValues pvs,
+ PropertyDescriptor[] pds, Object bean, String beanName)
+ throws BeansException {
+ return pvs;
+ }
+
+ protected class InterceptorDispatcher implements MethodInterceptor {
+ @Override
+ public Object intercept(Object target, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {
+ ArrayList<Pair<ComponentMethodInterceptor, Object>> interceptors = new ArrayList<Pair<ComponentMethodInterceptor, Object>>();
+
+ for (ComponentMethodInterceptor interceptor : getInterceptors()) {
+ if (interceptor.needToIntercept(method)) {
+ Object objReturnedInInterceptStart = interceptor.interceptStart(method, target);
+ interceptors.add(new Pair<ComponentMethodInterceptor, Object>(interceptor, objReturnedInInterceptStart));
+ }
+ }
+ boolean success = false;
+ try {
+ Object obj = methodProxy.invokeSuper(target, args);
+ success = true;
+ return obj;
+ } finally {
+ for (Pair<ComponentMethodInterceptor, Object> interceptor : interceptors) {
+ if (success) {
+ interceptor.first().interceptComplete(method, target, interceptor.second());
+ } else {
+ interceptor.first().interceptException(method, target, interceptor.second());
+ }
+ }
+ }
+ }
+ }
+
+ protected class InterceptorFilter implements CallbackFilter {
+ @Override
+ public int accept(Method method) {
+ for(ComponentMethodInterceptor interceptor : getInterceptors()) {
+
+ if (interceptor.needToIntercept(method)) {
+ return 1;
+ }
+ }
+ return 0;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/utils/src/com/cloud/utils/component/ComponentMethodInterceptable.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/component/ComponentMethodInterceptable.java b/utils/src/com/cloud/utils/component/ComponentMethodInterceptable.java
new file mode 100644
index 0000000..5a95c43
--- /dev/null
+++ b/utils/src/com/cloud/utils/component/ComponentMethodInterceptable.java
@@ -0,0 +1,24 @@
+// 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;
+
+/**
+ * Marker interface to work with CGLIB based CloudStack legacy AOP
+ *
+ */
+public interface ComponentMethodInterceptable {
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/utils/src/com/cloud/utils/component/ComponentMethodInterceptor.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/component/ComponentMethodInterceptor.java b/utils/src/com/cloud/utils/component/ComponentMethodInterceptor.java
new file mode 100644
index 0000000..39a81d0
--- /dev/null
+++ b/utils/src/com/cloud/utils/component/ComponentMethodInterceptor.java
@@ -0,0 +1,27 @@
+// 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.lang.reflect.Method;
+
+public interface ComponentMethodInterceptor {
+ boolean needToIntercept(Method method);
+
+ Object interceptStart(Method method, Object target);
+ void interceptComplete(Method method, Object target, Object objReturnedInInterceptStart);
+ void interceptException(Method method, Object target, Object objReturnedInInterceptStart);
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/utils/src/com/cloud/utils/component/ComponentNamingPolicy.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/component/ComponentNamingPolicy.java b/utils/src/com/cloud/utils/component/ComponentNamingPolicy.java
new file mode 100644
index 0000000..5659a48
--- /dev/null
+++ b/utils/src/com/cloud/utils/component/ComponentNamingPolicy.java
@@ -0,0 +1,63 @@
+// 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 net.sf.cglib.core.NamingPolicy;
+import net.sf.cglib.core.Predicate;
+
+/**
+ * Copied/Modified from Spring source
+ *
+ */
+public class ComponentNamingPolicy implements NamingPolicy {
+
+ public static final ComponentNamingPolicy INSTANCE = new ComponentNamingPolicy();
+
+ public String getClassName(String prefix, String source, Object key, Predicate names) {
+ if (prefix == null) {
+ prefix = "net.sf.cglib.empty.Object";
+ } else if (prefix.startsWith("java")) {
+ prefix = "_" + prefix;
+ }
+ String base =
+ prefix + "_" +
+ source.substring(source.lastIndexOf('.') + 1) +
+ getTag() + "_" +
+ Integer.toHexString(key.hashCode());
+ String attempt = base;
+ int index = 2;
+ while (names.evaluate(attempt))
+ attempt = base + "_" + index++;
+ return attempt;
+ }
+
+ /**
+ * Returns a string which is incorporated into every generated class name.
+ * By default returns "ByCloudStack"
+ */
+ protected String getTag() {
+ return "ByCloudStack";
+ }
+
+ public int hashCode() {
+ return getTag().hashCode();
+ }
+
+ public boolean equals(Object o) {
+ return (o instanceof ComponentNamingPolicy) && ((ComponentNamingPolicy) o).getTag().equals(getTag());
+ }
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/utils/src/com/cloud/utils/component/ManagerBase.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/component/ManagerBase.java b/utils/src/com/cloud/utils/component/ManagerBase.java
index 529ef62..1908f4e 100644
--- a/utils/src/com/cloud/utils/component/ManagerBase.java
+++ b/utils/src/com/cloud/utils/component/ManagerBase.java
@@ -16,7 +16,7 @@
// under the License.
package com.cloud.utils.component;
-public class ManagerBase extends ComponentLifecycleBase {
+public class ManagerBase extends ComponentLifecycleBase implements ComponentMethodInterceptable {
public ManagerBase() {
// set default run level for manager components
setRunLevel(ComponentLifecycle.RUN_LEVEL_COMPONENT_BOOTSTRAP);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/utils/src/com/cloud/utils/db/GenericDaoBase.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/db/GenericDaoBase.java b/utils/src/com/cloud/utils/db/GenericDaoBase.java
index afb1247..f0fc700 100755
--- a/utils/src/com/cloud/utils/db/GenericDaoBase.java
+++ b/utils/src/com/cloud/utils/db/GenericDaoBase.java
@@ -71,6 +71,7 @@ import com.cloud.utils.Ternary;
import com.cloud.utils.component.ComponentContext;
import com.cloud.utils.component.ComponentLifecycle;
import com.cloud.utils.component.ComponentLifecycleBase;
+import com.cloud.utils.component.ComponentMethodInterceptable;
import com.cloud.utils.crypt.DBEncryptionUtil;
import com.cloud.utils.db.SearchCriteria.SelectType;
import com.cloud.utils.exception.CloudRuntimeException;
@@ -114,7 +115,7 @@ import edu.emory.mathcs.backport.java.util.Collections;
*
**/
@DB
-public abstract class GenericDaoBase<T, ID extends Serializable> extends ComponentLifecycleBase implements GenericDao<T, ID> {
+public abstract class GenericDaoBase<T, ID extends Serializable> extends ComponentLifecycleBase implements GenericDao<T, ID>, ComponentMethodInterceptable {
private final static Logger s_logger = Logger.getLogger(GenericDaoBase.class);
protected final static TimeZone s_gmtTimeZone = TimeZone.getTimeZone("GMT");
@@ -193,15 +194,14 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
( (Class<?>)((Class<?>)t).getGenericSuperclass()).getGenericSuperclass()).getActualTypeArguments()[0];
}
-/*
- s_daoMaps.put(_entityBeanType, ComponentContext.getComponent(this.getClass()));
+ s_daoMaps.put(_entityBeanType, this);
Class<?>[] interphaces = _entityBeanType.getInterfaces();
if (interphaces != null) {
for (Class<?> interphace : interphaces) {
- s_daoMaps.put(interphace, ComponentContext.getComponent(this.getClass()));
+ s_daoMaps.put(interphace, this);
}
}
-*/
+
_table = DbUtil.getTableName(_entityBeanType);
final SqlGenerator generator = new SqlGenerator(_entityBeanType);
@@ -1750,25 +1750,6 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
_name = name;
- Class<?> daoInterface = null;
- for(Class<?> intf : this.getClass().getInterfaces()) {
- if(GenericDao.class.isAssignableFrom(intf)) {
- daoInterface = intf;
- break;
- }
- }
-
- if(daoInterface != null) {
- s_logger.info("Register dao interface in GenericDaoBase entity-DAO map. " + daoInterface.getName());
- s_daoMaps.put(_entityBeanType, (GenericDao<?, ? extends Serializable>) ComponentContext.getComponent(daoInterface));
- Class<?>[] interphaces = _entityBeanType.getInterfaces();
- if (interphaces != null) {
- for (Class<?> interphace : interphaces) {
- s_daoMaps.put(interphace, (GenericDao<?, ? extends Serializable>) ComponentContext.getComponent(daoInterface));
- }
- }
- }
-
final String value = (String)params.get("lock.timeout");
_timeoutSeconds = NumbersUtil.parseInt(value, 300);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/utils/src/com/cloud/utils/db/TransactionContextBuilder.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/db/TransactionContextBuilder.java b/utils/src/com/cloud/utils/db/TransactionContextBuilder.java
index b003c6a..40fcbbf 100644
--- a/utils/src/com/cloud/utils/db/TransactionContextBuilder.java
+++ b/utils/src/com/cloud/utils/db/TransactionContextBuilder.java
@@ -18,63 +18,20 @@ package com.cloud.utils.db;
import java.lang.reflect.Method;
-import org.aopalliance.intercept.MethodInterceptor;
-import org.aopalliance.intercept.MethodInvocation;
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.reflect.MethodSignature;
+import com.cloud.utils.component.ComponentMethodInterceptor;
-import com.cloud.utils.component.ComponentMethodProxyCache;
-
-public class TransactionContextBuilder implements MethodInterceptor {
+public class TransactionContextBuilder implements ComponentMethodInterceptor {
public TransactionContextBuilder() {
}
- public Object AroundAnyMethod(ProceedingJoinPoint call) throws Throwable {
- MethodSignature methodSignature = (MethodSignature)call.getSignature();
- Method targetMethod = methodSignature.getMethod();
- if(needToIntercept(targetMethod, call.getTarget())) {
- Transaction txn = Transaction.open(call.getSignature().getName());
- Object ret = null;
- try {
- ret = call.proceed();
- } finally {
- txn.close();
- }
- return ret;
- }
- return call.proceed();
- }
-
@Override
- public Object invoke(MethodInvocation method) throws Throwable {
- Method targetMethod = method.getMethod();
-
- if(needToIntercept(targetMethod, method.getThis())) {
- Transaction txn = Transaction.open(targetMethod.getName());
- Object ret = null;
- try {
- ret = method.proceed();
- } finally {
- txn.close();
- }
- return ret;
- }
- return method.proceed();
- }
-
- private boolean needToIntercept(Method method, Object target) {
+ public boolean needToIntercept(Method method) {
DB db = method.getAnnotation(DB.class);
if (db != null) {
return true;
}
Class<?> clazz = method.getDeclaringClass();
- if(clazz.isInterface()) {
- clazz = target.getClass();
- Method targetMethod = ComponentMethodProxyCache.getTargetMethod(method, target);
- if(targetMethod != null && targetMethod.getAnnotation(DB.class) != null)
- return true;
- }
do {
db = clazz.getAnnotation(DB.class);
@@ -86,4 +43,23 @@ public class TransactionContextBuilder implements MethodInterceptor {
return false;
}
+
+ @Override
+ public Object interceptStart(Method method, Object target) {
+ return Transaction.open(method.getName());
+ }
+
+ @Override
+ public void interceptComplete(Method method, Object target, Object objReturnedInInterceptStart) {
+ Transaction txn = (Transaction)objReturnedInInterceptStart;
+ if(txn != null)
+ txn.close();
+ }
+
+ @Override
+ public void interceptException(Method method, Object target, Object objReturnedInInterceptStart) {
+ Transaction txn = (Transaction)objReturnedInInterceptStart;
+ if(txn != null)
+ txn.close();
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/utils/test/com/cloud/utils/log/CglibThrowableRendererTest.java
----------------------------------------------------------------------
diff --git a/utils/test/com/cloud/utils/log/CglibThrowableRendererTest.java b/utils/test/com/cloud/utils/log/CglibThrowableRendererTest.java
index f765a85..3f08c13 100644
--- a/utils/test/com/cloud/utils/log/CglibThrowableRendererTest.java
+++ b/utils/test/com/cloud/utils/log/CglibThrowableRendererTest.java
@@ -76,7 +76,7 @@ public class CglibThrowableRendererTest extends TestCase {
Writer w = new CharArrayWriter();
Logger alt = getAlternateLogger(w, null);
- TestClass test = ComponentContext.inject(TestClass.class);
+ TestClass test = new TestClass();
try {
test.exception();
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/519532db/utils/test/resources/testContext.xml
----------------------------------------------------------------------
diff --git a/utils/test/resources/testContext.xml b/utils/test/resources/testContext.xml
index 26cdaae..5cccfcd 100644
--- a/utils/test/resources/testContext.xml
+++ b/utils/test/resources/testContext.xml
@@ -33,22 +33,18 @@
<context:annotation-config />
<context:component-scan base-package="org.apache.cloudstack, com.cloud" />
-
+
<!--
@DB support
-->
- <aop:config proxy-target-class="true">
- <aop:aspect id="dbContextBuilder" ref="transactionContextBuilder">
- <aop:pointcut id="captureAnyMethod"
- expression="execution(* *(..))"
- />
-
- <aop:around pointcut-ref="captureAnyMethod" method="AroundAnyMethod"/>
- </aop:aspect>
-
- </aop:config>
-
<bean id="transactionContextBuilder" class="com.cloud.utils.db.TransactionContextBuilder" />
+ <bean id="instantiatePostProcessor" class="com.cloud.utils.component.ComponentInstantiationPostProcessor">
+ <property name="Interceptors">
+ <list>
+ <ref bean="transactionContextBuilder" />
+ </list>
+ </property>
+ </bean>
</beans>
[3/7] git commit: updated refs/heads/4.1 to e221d18
Posted by ch...@apache.org.
CLOUDSTACK-1795: implement custom AOP to fully support legacy CloudStack AOP semantcis (rebase fixups)
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8613db05
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8613db05
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8613db05
Branch: refs/heads/4.1
Commit: 8613db05524f049ce147224a7337db2b8742dc04
Parents: 6aaa4f6
Author: Kelven Yang <ke...@gmail.com>
Authored: Tue Mar 26 14:25:52 2013 -0700
Committer: Chip Childers <ch...@gmail.com>
Committed: Wed Mar 27 13:02:22 2013 +0000
----------------------------------------------------------------------
client/tomcatconf/applicationContext.xml.in | 78 ++++++++-------
client/tomcatconf/componentContext.xml.in | 16 +++-
client/tomcatconf/nonossComponentContext.xml.in | 11 ++
.../src/com/cloud/network/NetworkServiceImpl.java | 4 +
4 files changed, 72 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8613db05/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in
index 608ffc4..3c93b8a 100644
--- a/client/tomcatconf/applicationContext.xml.in
+++ b/client/tomcatconf/applicationContext.xml.in
@@ -177,8 +177,6 @@
<bean id="autoScaleVmGroupDaoImpl" class="com.cloud.network.as.dao.AutoScaleVmGroupDaoImpl" />
<bean id="autoScaleVmGroupPolicyMapDaoImpl" class="com.cloud.network.as.dao.AutoScaleVmGroupPolicyMapDaoImpl" />
<bean id="autoScaleVmProfileDaoImpl" class="com.cloud.network.as.dao.AutoScaleVmProfileDaoImpl" />
- <bean id="baremetalDhcpDaoImpl" class="com.cloud.baremetal.database.BaremetalDhcpDaoImpl" />
- <bean id="baremetalPxeDaoImpl" class="com.cloud.baremetal.database.BaremetalPxeDaoImpl" />
<bean id="capacityDaoImpl" class="com.cloud.capacity.dao.CapacityDaoImpl" />
<bean id="certificateDaoImpl" class="com.cloud.certificate.dao.CertificateDaoImpl" />
<bean id="clusterDaoImpl" class="com.cloud.dc.dao.ClusterDaoImpl" />
@@ -382,15 +380,6 @@
<bean id="Ovs" class="com.cloud.network.element.OvsElement">
<property name="name" value="Ovs"/>
</bean>
- <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="SecurityGroupProvider" class="com.cloud.network.element.SecurityGroupElement">
<property name="name" value="SecurityGroupProvider"/>
</bean>
@@ -455,7 +444,6 @@
<property name="name" value="Basic"/>
</bean>
- <bean id="BareMetalTemplateAdapter" class="com.cloud.baremetal.manager.BareMetalTemplateAdapter" />
<bean id="hyervisorTemplateAdapter" class="com.cloud.template.HyervisorTemplateAdapter" />
<bean id="clusterAlertAdapter" class="com.cloud.alert.ClusterAlertAdapter" />
<bean id="consoleProxyAlertAdapter" class="com.cloud.alert.ConsoleProxyAlertAdapter" />
@@ -509,10 +497,6 @@
<property name="name" value="KVM Agent"/>
</bean>
- <bean id="BareMetalDiscoverer" class="com.cloud.baremetal.manager.BareMetalDiscoverer">
- <property name="name" value="Bare Metal Agent"/>
- </bean>
-
<bean id="HypervServerDiscoverer" class="com.cloud.hypervisor.hyperv.HypervServerDiscoverer">
<property name="name" value="SCVMMServer"/>
</bean>
@@ -536,10 +520,6 @@
<property name="name" value="UserConcentratedPod"/>
</bean>
- <bean id="BareMetalPlanner" class="com.cloud.baremetal.manager.BareMetalPlanner">
- <property name="name" value="BareMetal Fit"/>
- </bean>
-
<bean id="clusterBasedAgentLoadBalancerPlanner" class="com.cloud.cluster.agentlb.ClusterBasedAgentLoadBalancerPlanner">
<property name="name" value="ClusterBasedAgentLoadBalancerPlanner"/>
</bean>
@@ -590,14 +570,6 @@
<property name="name" value="OvmGuru"/>
</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="HypervisorPlannerSelector" class="com.cloud.deploy.HypervisorVmPlannerSelector">
<property name="name" value="HypervisorPlannerSelector"/>
</bean>
@@ -619,12 +591,6 @@
<bean id="apiRateLimitServiceImpl" class="org.apache.cloudstack.ratelimit.ApiRateLimitServiceImpl"/>
- <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="alertManagerImpl" class="com.cloud.alert.AlertManagerImpl" />
<bean id="asyncJobExecutorContextImpl" class="com.cloud.async.AsyncJobExecutorContextImpl" />
<bean id="asyncJobManagerImpl" class="com.cloud.async.AsyncJobManagerImpl" />
@@ -673,6 +639,49 @@
<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="cloudZonesStartupProcessor" class="com.cloud.hypervisor.CloudZonesStartupProcessor" />
@@ -686,7 +695,6 @@
<bean id="apiResponseHelper" class="com.cloud.api.ApiResponseHelper" />
<bean id="apiServer" class="com.cloud.api.ApiServer" />
<bean id="apiServlet" class="com.cloud.api.ApiServlet" />
- <bean id="bAREMETAL" class="org.apache.cloudstack.storage.image.format.BAREMETAL" />
<bean id="cloudOrchestrator" class="org.apache.cloudstack.platform.orchestration.CloudOrchestrator" />
<bean id="clusterRestService" class="org.apache.cloudstack.engine.rest.service.api.ClusterRestService" />
<bean id="componentContext" class="com.cloud.utils.component.ComponentContext" />
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8613db05/client/tomcatconf/componentContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/componentContext.xml.in b/client/tomcatconf/componentContext.xml.in
index 609155c..2a4a29f 100644
--- a/client/tomcatconf/componentContext.xml.in
+++ b/client/tomcatconf/componentContext.xml.in
@@ -33,7 +33,6 @@
<!--
OSS deployment component configuration
-->
-
<bean id="databaseUpgradeChecker" class="com.cloud.upgrade.DatabaseUpgradeChecker" />
<bean id="configurationDaoImpl" class="com.cloud.configuration.dao.ConfigurationDaoImpl" />
@@ -103,7 +102,11 @@
<ref bean="XcpServerDiscoverer"/>
<ref bean="SecondaryStorageDiscoverer"/>
<ref bean="KvmServerDiscoverer"/>
+
+ <!--
<ref bean="BareMetalDiscoverer"/>
+ -->
+
<ref bean="OvmDiscoverer"/>
</list>
</property>
@@ -138,7 +141,11 @@
<ref bean="FirstFitPlanner" />
<ref bean="UserDispersingPlanner" />
<ref bean="UserConcentratedPodPlanner" />
+
+<!--
<ref bean="BareMetalPlanner" />
+-->
+
</list>
</property>
</bean>
@@ -163,9 +170,11 @@
<ref bean="Ovs"/>
<ref bean="SecurityGroupProvider"/>
<ref bean="VpcVirtualRouter"/>
+<!--
<ref bean="BareMetalDhcp"/>
<ref bean="BareMetalPxe"/>
<ref bean="BareMetalUserdata"/>
+-->
</list>
</property>
<property name="IpDeployers">
@@ -179,7 +188,9 @@
<list>
<ref bean="VirtualRouter"/>
<ref bean="VpcVirtualRouter"/>
+<!--
<ref bean="BareMetalDhcp"/>
+-->
</list>
</property>
</bean>
@@ -191,11 +202,12 @@
<ref bean="Ovs"/>
<ref bean="SecurityGroupProvider"/>
<ref bean="VpcVirtualRouter"/>
+<!--
<ref bean="BareMetalDhcp"/>
<ref bean="BareMetalPxe"/>
<ref bean="BareMetalUserdata"/>
+-->
</list>
</property>
</bean>
-
</beans>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8613db05/client/tomcatconf/nonossComponentContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/nonossComponentContext.xml.in b/client/tomcatconf/nonossComponentContext.xml.in
index 948ef24..13004c3 100644
--- a/client/tomcatconf/nonossComponentContext.xml.in
+++ b/client/tomcatconf/nonossComponentContext.xml.in
@@ -167,6 +167,7 @@
<bean id="FirstFitPlanner" class="com.cloud.deploy.FirstFitPlanner">
<property name="name" value="First Fit"/>
+
<property name="StoragePoolAllocators">
<list>
<ref bean="LocalStoragePoolAllocator"/>
@@ -191,7 +192,9 @@
<ref bean="XcpServerDiscoverer"/>
<ref bean="SecondaryStorageDiscoverer"/>
<ref bean="KvmServerDiscoverer"/>
+<!--
<ref bean="BareMetalDiscoverer"/>
+-->
<ref bean="OvmDiscoverer"/>
<ref bean="vmwareServerDiscoverer"/>
</list>
@@ -229,7 +232,9 @@
<ref bean="FirstFitPlanner" />
<ref bean="UserDispersingPlanner" />
<ref bean="UserConcentratedPodPlanner" />
+<!--
<ref bean="BareMetalPlanner" />
+-->
</list>
</property>
</bean>
@@ -259,9 +264,11 @@
<ref bean="Ovs"/>
<ref bean="SecurityGroupProvider"/>
<ref bean="VpcVirtualRouter"/>
+<!--
<ref bean="BareMetalDhcp"/>
<ref bean="BareMetalPxe"/>
<ref bean="BareMetalUserdata"/>
+-->
</list>
</property>
<property name="IpDeployers">
@@ -275,7 +282,9 @@
<list>
<ref bean="VirtualRouter"/>
<ref bean="VpcVirtualRouter"/>
+<!--
<ref bean="BareMetalDhcp"/>
+-->
</list>
</property>
</bean>
@@ -292,9 +301,11 @@
<ref bean="Ovs"/>
<ref bean="SecurityGroupProvider"/>
<ref bean="VpcVirtualRouter"/>
+<!--
<ref bean="BareMetalDhcp"/>
<ref bean="BareMetalPxe"/>
<ref bean="BareMetalUserdata"/>
+-->
</list>
</property>
</bean>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8613db05/server/src/com/cloud/network/NetworkServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java b/server/src/com/cloud/network/NetworkServiceImpl.java
index 0f2fc5a..83a2734 100755
--- a/server/src/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/com/cloud/network/NetworkServiceImpl.java
@@ -2786,9 +2786,13 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
PhysicalNetworkVO pvo = _physicalNetworkDao.findById(physicalNetworkId);
DataCenterVO dvo = _dcDao.findById(pvo.getDataCenterId());
if (dvo.getNetworkType() == NetworkType.Basic) {
+
+ // Baremetal is currently disabled
+/*
addProviderToPhysicalNetwork(physicalNetworkId, "BaremetalDhcpProvider", null, null);
addProviderToPhysicalNetwork(physicalNetworkId, "BaremetalPxeProvider", null, null);
addProviderToPhysicalNetwork(physicalNetworkId, "BaremetaUserdataProvider", null, null);
+*/
}
return null;
}
[4/7] git commit: updated refs/heads/4.1 to e221d18
Posted by ch...@apache.org.
CLOUDSTACK-1818: add a missing file that is missed in previous patch
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b24cbcf0
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b24cbcf0
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b24cbcf0
Branch: refs/heads/4.1
Commit: b24cbcf09f23be24bf64b3eff96e5b0bab9c4f0e
Parents: 8613db0
Author: Kelven Yang <ke...@gmail.com>
Authored: Tue Mar 26 18:47:05 2013 -0700
Committer: Chip Childers <ch...@gmail.com>
Committed: Wed Mar 27 13:02:25 2013 +0000
----------------------------------------------------------------------
.../com/cloud/upgrade/databaseCreatorContext.xml | 52 +++++++++++++++
1 files changed, 52 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b24cbcf0/server/resources/com/cloud/upgrade/databaseCreatorContext.xml
----------------------------------------------------------------------
diff --git a/server/resources/com/cloud/upgrade/databaseCreatorContext.xml b/server/resources/com/cloud/upgrade/databaseCreatorContext.xml
new file mode 100644
index 0000000..d2ed26f
--- /dev/null
+++ b/server/resources/com/cloud/upgrade/databaseCreatorContext.xml
@@ -0,0 +1,52 @@
+<!--
+ 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 />
+
+ <!--
+ @DB support
+ -->
+ <bean id="componentContext" class="com.cloud.utils.component.ComponentContext" />
+ <bean id="transactionContextBuilder" class="com.cloud.utils.db.TransactionContextBuilder" />
+ <bean id="instantiatePostProcessor" class="com.cloud.utils.component.ComponentInstantiationPostProcessor">
+ <property name="Interceptors">
+ <list>
+ <ref bean="transactionContextBuilder" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="versionDaoImpl" class="com.cloud.upgrade.dao.VersionDaoImpl" />
+ <bean id="databaseUpgradeChecker" class="com.cloud.upgrade.DatabaseUpgradeChecker" />
+ <bean id="premiumDatabaseUpgradeChecker" class="com.cloud.upgrade.PremiumDatabaseUpgradeChecker" />
+
+</beans>
[7/7] git commit: updated refs/heads/4.1 to e221d18
Posted by ch...@apache.org.
Resolving merge issue after applying 8613db0 on top of 8a35898
Signed-off-by: Chip Childers <ch...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e221d18b
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e221d18b
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e221d18b
Branch: refs/heads/4.1
Commit: e221d18bcbe15d64ba2e43c186255a6f58896151
Parents: 5a75a3c
Author: Chip Childers <ch...@gmail.com>
Authored: Wed Mar 27 13:20:01 2013 +0000
Committer: Chip Childers <ch...@gmail.com>
Committed: Wed Mar 27 13:20:01 2013 +0000
----------------------------------------------------------------------
.../src/com/cloud/network/NetworkServiceImpl.java | 4 ----
1 files changed, 0 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e221d18b/server/src/com/cloud/network/NetworkServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java b/server/src/com/cloud/network/NetworkServiceImpl.java
index 83a2734..0f2fc5a 100755
--- a/server/src/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/com/cloud/network/NetworkServiceImpl.java
@@ -2786,13 +2786,9 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
PhysicalNetworkVO pvo = _physicalNetworkDao.findById(physicalNetworkId);
DataCenterVO dvo = _dcDao.findById(pvo.getDataCenterId());
if (dvo.getNetworkType() == NetworkType.Basic) {
-
- // Baremetal is currently disabled
-/*
addProviderToPhysicalNetwork(physicalNetworkId, "BaremetalDhcpProvider", null, null);
addProviderToPhysicalNetwork(physicalNetworkId, "BaremetalPxeProvider", null, null);
addProviderToPhysicalNetwork(physicalNetworkId, "BaremetaUserdataProvider", null, null);
-*/
}
return null;
}
[6/7] git commit: updated refs/heads/4.1 to e221d18
Posted by ch...@apache.org.
CLOUDSTACK-1818: make DababaseCreator ready to invoke DatabaseUpgradeChecker, adjust Component startup sequence for integrity checkers
Signed-off-by: Chip Childers <ch...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5a75a3cb
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5a75a3cb
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5a75a3cb
Branch: refs/heads/4.1
Commit: 5a75a3cbda553f26dc12961ad5a051ab12d4a560
Parents: 519532d
Author: Kelven Yang <ke...@gmail.com>
Authored: Wed Mar 27 13:08:03 2013 +0000
Committer: Chip Childers <ch...@gmail.com>
Committed: Wed Mar 27 13:08:03 2013 +0000
----------------------------------------------------------------------
client/tomcatconf/applicationContext.xml.in | 2 +-
server/pom.xml | 8 +++++
server/src/com/cloud/upgrade/DatabaseCreator.java | 12 ++++++-
.../cloud/utils/component/ComponentContext.java | 24 +++++++-------
4 files changed, 31 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5a75a3cb/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in
index 6bab4fd..17725f0 100644
--- a/client/tomcatconf/applicationContext.xml.in
+++ b/client/tomcatconf/applicationContext.xml.in
@@ -35,6 +35,7 @@
<!--
@DB support
-->
+ <bean id="componentContext" class="com.cloud.utils.component.ComponentContext" />
<bean id="transactionContextBuilder" class="com.cloud.utils.db.TransactionContextBuilder" />
<bean id="actionEventInterceptor" class="com.cloud.event.ActionEventInterceptor" />
@@ -688,7 +689,6 @@
<bean id="apiServlet" class="com.cloud.api.ApiServlet" />
<bean id="cloudOrchestrator" class="org.apache.cloudstack.platform.orchestration.CloudOrchestrator" />
<bean id="clusterRestService" class="org.apache.cloudstack.engine.rest.service.api.ClusterRestService" />
- <bean id="componentContext" class="com.cloud.utils.component.ComponentContext" />
<bean id="consoleProxyServlet" class="com.cloud.servlet.ConsoleProxyServlet" />
<bean id="dataCenterResourceManagerImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceManagerImpl" />
<bean id="dataDisk" class="org.apache.cloudstack.engine.subsystem.api.storage.type.DataDisk" />
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5a75a3cb/server/pom.xml
----------------------------------------------------------------------
diff --git a/server/pom.xml b/server/pom.xml
index 3218fdd..0a4b705 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -103,6 +103,14 @@
<defaultGoal>install</defaultGoal>
<sourceDirectory>src</sourceDirectory>
<testSourceDirectory>test</testSourceDirectory>
+ <resources>
+ <resource>
+ <directory>resources</directory>
+ <includes>
+ <include>**/*.xml</include>
+ </includes>
+ </resource>
+ </resources>
<testResources>
<testResource>
<directory>test/resources</directory>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5a75a3cb/server/src/com/cloud/upgrade/DatabaseCreator.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/upgrade/DatabaseCreator.java b/server/src/com/cloud/upgrade/DatabaseCreator.java
index 4d70634..c393055 100755
--- a/server/src/com/cloud/upgrade/DatabaseCreator.java
+++ b/server/src/com/cloud/upgrade/DatabaseCreator.java
@@ -27,8 +27,11 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
import com.cloud.utils.PropertiesUtil;
+import com.cloud.utils.component.ComponentContext;
import com.cloud.utils.component.SystemIntegrityChecker;
import com.cloud.utils.db.ScriptRunner;
import com.cloud.utils.db.Transaction;
@@ -116,6 +119,11 @@ public class DatabaseCreator {
}
public static void main(String[] args) {
+
+ ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(
+ new String[] {"/com/cloud/upgrade/databaseCreatorContext.xml"});
+ appContext.getBean(ComponentContext.class);
+
String dbPropsFile = "";
List<String> sqlFiles = new ArrayList<String>();
List<String> upgradeClasses = new ArrayList<String>();
@@ -207,8 +215,8 @@ public class DatabaseCreator {
System.exit(1);
}
- //SystemIntegrityChecker checker = (SystemIntegrityChecker)ComponentLocator.inject(clazz);
- //checker.check();
+ // SystemIntegrityChecker checker = (SystemIntegrityChecker)ComponentContext.getComponent(clazz);
+ // checker.check();
}
}
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5a75a3cb/utils/src/com/cloud/utils/component/ComponentContext.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/component/ComponentContext.java b/utils/src/com/cloud/utils/component/ComponentContext.java
index d11d354..796d4ec 100644
--- a/utils/src/com/cloud/utils/component/ComponentContext.java
+++ b/utils/src/com/cloud/utils/component/ComponentContext.java
@@ -81,6 +81,18 @@ public class ComponentContext implements ApplicationContextAware {
for(Map.Entry<String, ComponentLifecycle> entry : lifecyleComponents.entrySet()) {
classifiedComponents[entry.getValue().getRunLevel()].put(entry.getKey(), entry.getValue());
}
+
+ // Run the SystemIntegrityCheckers first
+ Map<String, SystemIntegrityChecker> integrityCheckers = getApplicationContext().getBeansOfType(SystemIntegrityChecker.class);
+ for (Entry<String,SystemIntegrityChecker> entry : integrityCheckers.entrySet() ){
+ s_logger.info ("Running SystemIntegrityChecker " + entry.getKey());
+ try {
+ entry.getValue().check();
+ } catch(Throwable e) {
+ s_logger.error("System integrity check failed. Refuse to startup");
+ System.exit(1);
+ }
+ }
// configuration phase
Map<String, String> avoidMap = new HashMap<String, String>();
@@ -105,18 +117,6 @@ public class ComponentContext implements ApplicationContextAware {
avoidMap.put(implClassName, implClassName);
}
}
-
- // Run the SystemIntegrityCheckers first
- Map<String, SystemIntegrityChecker> integrityCheckers = getApplicationContext().getBeansOfType(SystemIntegrityChecker.class);
- for (Entry<String,SystemIntegrityChecker> entry : integrityCheckers.entrySet() ){
- s_logger.info ("Running SystemIntegrityChecker " + entry.getKey());
- try {
- entry.getValue().check();
- } catch(Throwable e) {
- s_logger.error("System integrity check failed. Refuse to startup");
- System.exit(1);
- }
- }
// starting phase
avoidMap.clear();