http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java index ddc79a0..7d8934f 100644 --- a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java +++ b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java @@ -93,6 +93,7 @@ public class Site2SiteVpnManagerImpl implements Site2SiteVpnManager, Manager { @Inject VpcDao _vpcDao; @Inject IPAddressDao _ipAddressDao; @Inject AccountDao _accountDao; + @Inject ConfigurationDao _configDao; @Inject VpcManager _vpcMgr; @Inject AccountManager _accountMgr; @@ -104,9 +105,7 @@ public class Site2SiteVpnManagerImpl implements Site2SiteVpnManager, Manager { public boolean configure(String name, Map<String, Object> params) throws ConfigurationException { _name = name; - ComponentLocator locator = ComponentLocator.getCurrentLocator(); - ConfigurationDao configDao = locator.getDao(ConfigurationDao.class); - Map<String, String> configs = configDao.getConfiguration(params); + Map<String, String> configs = _configDao.getConfiguration(params); _connLimit = NumbersUtil.parseInt(configs.get(Config.Site2SiteVpnConnectionPerVpnGatewayLimit.key()), 4); _subnetsLimit = NumbersUtil.parseInt(configs.get(Config.Site2SiteVpnSubnetsPerCustomerGatewayLimit.key()), 10); return true;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/server/src/com/cloud/resource/DiscovererBase.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/resource/DiscovererBase.java b/server/src/com/cloud/resource/DiscovererBase.java index 01dd126..6f6d1ba 100644 --- a/server/src/com/cloud/resource/DiscovererBase.java +++ b/server/src/com/cloud/resource/DiscovererBase.java @@ -48,8 +48,7 @@ public abstract class DiscovererBase implements Discoverer { @Override public boolean configure(String name, Map<String, Object> params) throws ConfigurationException { - ConfigurationDao dao = ComponentLocator.getCurrentLocator().getDao(ConfigurationDao.class); - _params = dao.getConfiguration(params); + _params = _configDao.getConfiguration(params); _name = name; return true; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/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 6289a7a..bb2f599 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -331,6 +331,8 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag protected ResourceTagDao _resourceTagDao; @Inject protected List<StoragePoolAllocator> _storagePoolAllocators; + @Inject ConfigurationDao _configDao; + @Inject ManagementServer _msServer; // TODO : we don't have any instantiated pool discover, disable injection temporarily // @Inject @@ -930,15 +932,7 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag public boolean configure(String name, Map<String, Object> params) throws ConfigurationException { _name = name; - ComponentLocator locator = ComponentLocator.getCurrentLocator(); - - ConfigurationDao configDao = locator.getDao(ConfigurationDao.class); - if (configDao == null) { - s_logger.error("Unable to get the configuration dao."); - return false; - } - - Map<String, String> configs = configDao.getConfiguration("management-server", params); + Map<String, String> configs = _configDao.getConfiguration("management-server", params); String overProvisioningFactorStr = configs.get("storage.overprovisioning.factor"); if (overProvisioningFactorStr != null) { @@ -956,27 +950,27 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag String storageCleanupEnabled = configs.get("storage.cleanup.enabled"); _storageCleanupEnabled = (storageCleanupEnabled == null) ? true : Boolean.parseBoolean(storageCleanupEnabled); - String value = configDao.getValue(Config.CreateVolumeFromSnapshotWait.toString()); + String value = _configDao.getValue(Config.CreateVolumeFromSnapshotWait.toString()); _createVolumeFromSnapshotWait = NumbersUtil.parseInt(value, Integer.parseInt(Config.CreateVolumeFromSnapshotWait.getDefaultValue())); - value = configDao.getValue(Config.CopyVolumeWait.toString()); + value = _configDao.getValue(Config.CopyVolumeWait.toString()); _copyvolumewait = NumbersUtil.parseInt(value, Integer.parseInt(Config.CopyVolumeWait.getDefaultValue())); - value = configDao.getValue(Config.RecreateSystemVmEnabled.key()); + value = _configDao.getValue(Config.RecreateSystemVmEnabled.key()); _recreateSystemVmEnabled = Boolean.parseBoolean(value); - value = configDao.getValue(Config.StorageTemplateCleanupEnabled.key()); + value = _configDao.getValue(Config.StorageTemplateCleanupEnabled.key()); _templateCleanupEnabled = (value == null ? true : Boolean.parseBoolean(value)); String time = configs.get("storage.cleanup.interval"); _storageCleanupInterval = NumbersUtil.parseInt(time, 86400); - String storageUsedThreshold = configDao.getValue(Config.StorageCapacityDisableThreshold.key()); + String storageUsedThreshold = _configDao.getValue(Config.StorageCapacityDisableThreshold.key()); if (storageUsedThreshold != null) { _storageUsedThreshold = Double.parseDouble(storageUsedThreshold); } - String storageAllocatedThreshold = configDao.getValue(Config.StorageAllocatedCapacityDisableThreshold.key()); + String storageAllocatedThreshold = _configDao.getValue(Config.StorageAllocatedCapacityDisableThreshold.key()); if (storageAllocatedThreshold != null) { _storageAllocatedThreshold = Double.parseDouble(storageAllocatedThreshold); } @@ -992,13 +986,13 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag _agentMgr.registerForHostEvents(ComponentLocator.inject(LocalStoragePoolListener.class), true, false, false); - String maxVolumeSizeInGbString = configDao.getValue("storage.max.volume.size"); + String maxVolumeSizeInGbString = _configDao.getValue("storage.max.volume.size"); _maxVolumeSizeInGb = NumbersUtil.parseLong(maxVolumeSizeInGbString, 2000); - String _customDiskOfferingMinSizeStr = configDao.getValue(Config.CustomDiskOfferingMinSize.toString()); + String _customDiskOfferingMinSizeStr = _configDao.getValue(Config.CustomDiskOfferingMinSize.toString()); _customDiskOfferingMinSize = NumbersUtil.parseInt(_customDiskOfferingMinSizeStr, Integer.parseInt(Config.CustomDiskOfferingMinSize.getDefaultValue())); - String _customDiskOfferingMaxSizeStr = configDao.getValue(Config.CustomDiskOfferingMaxSize.toString()); + String _customDiskOfferingMaxSizeStr = _configDao.getValue(Config.CustomDiskOfferingMaxSize.toString()); _customDiskOfferingMaxSize = NumbersUtil.parseInt(_customDiskOfferingMaxSizeStr, Integer.parseInt(Config.CustomDiskOfferingMaxSize.getDefaultValue())); HostTemplateStatesSearch = _vmTemplateHostDao.createSearchBuilder(); @@ -1012,7 +1006,7 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag HostSearch.done(); HostTemplateStatesSearch.done(); - _serverId = ((ManagementServer) ComponentLocator.getComponent(ManagementServer.Name)).getId(); + _serverId = _msServer.getId(); UpHostsInPoolSearch = _storagePoolHostDao.createSearchBuilder(Long.class); UpHostsInPoolSearch.selectField(UpHostsInPoolSearch.entity().getHostId()); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/server/src/com/cloud/storage/allocator/GarbageCollectingStoragePoolAllocator.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/storage/allocator/GarbageCollectingStoragePoolAllocator.java b/server/src/com/cloud/storage/allocator/GarbageCollectingStoragePoolAllocator.java index a6d227b..3e1030d 100644 --- a/server/src/com/cloud/storage/allocator/GarbageCollectingStoragePoolAllocator.java +++ b/server/src/com/cloud/storage/allocator/GarbageCollectingStoragePoolAllocator.java @@ -20,6 +20,7 @@ import java.util.List; import java.util.Map; import javax.ejb.Local; +import javax.inject.Inject; import javax.naming.ConfigurationException; import org.apache.log4j.Logger; @@ -42,8 +43,8 @@ public class GarbageCollectingStoragePoolAllocator extends AbstractStoragePoolAl StoragePoolAllocator _firstFitStoragePoolAllocator; StoragePoolAllocator _localStoragePoolAllocator; - StorageManager _storageMgr; - ConfigurationDao _configDao; + @Inject StorageManager _storageMgr; + @Inject ConfigurationDao _configDao; boolean _storagePoolCleanupEnabled; @Override @@ -94,16 +95,6 @@ public class GarbageCollectingStoragePoolAllocator extends AbstractStoragePoolAl _localStoragePoolAllocator = ComponentLocator.inject(LocalStoragePoolAllocator.class); _localStoragePoolAllocator.configure("GCLocalStoragePoolAllocator", params); - _storageMgr = locator.getManager(StorageManager.class); - if (_storageMgr == null) { - throw new ConfigurationException("Unable to get " + StorageManager.class.getName()); - } - - _configDao = locator.getDao(ConfigurationDao.class); - if (_configDao == null) { - throw new ConfigurationException("Unable to get the configuration dao."); - } - String storagePoolCleanupEnabled = _configDao.getValue("storage.pool.cleanup.enabled"); _storagePoolCleanupEnabled = (storagePoolCleanupEnabled == null) ? true : Boolean.parseBoolean(storagePoolCleanupEnabled); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java index 31beeaf..6afcf32 100755 --- a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java +++ b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java @@ -793,27 +793,21 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V _name = name; - ComponentLocator locator = ComponentLocator.getCurrentLocator(); - ConfigurationDao configDao = locator.getDao(ConfigurationDao.class); - if (configDao == null) { - throw new ConfigurationException("Unable to get the configuration dao."); - } - - Map<String, String> configs = configDao.getConfiguration("management-server", params); + Map<String, String> configs = _configDao.getConfiguration("management-server", params); _secStorageVmMtuSize = NumbersUtil.parseInt(configs.get("secstorage.vm.mtu.size"), DEFAULT_SS_VM_MTUSIZE); - String useServiceVM = configDao.getValue("secondary.storage.vm"); + String useServiceVM = _configDao.getValue("secondary.storage.vm"); boolean _useServiceVM = false; if ("true".equalsIgnoreCase(useServiceVM)) { _useServiceVM = true; } - String sslcopy = configDao.getValue("secstorage.encrypt.copy"); + String sslcopy = _configDao.getValue("secstorage.encrypt.copy"); if ("true".equalsIgnoreCase(sslcopy)) { _useSSlCopy = true; } - _allowedInternalSites = configDao.getValue("secstorage.allowed.internal.sites"); + _allowedInternalSites = _configDao.getValue("secstorage.allowed.internal.sites"); String value = configs.get("secstorage.capacityscan.interval"); _capacityScanInterval = NumbersUtil.parseLong(value, DEFAULT_CAPACITY_SCAN_INTERVAL); @@ -823,7 +817,7 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V _instance = "DEFAULT"; } - Map<String, String> agentMgrConfigs = configDao.getConfiguration("AgentManager", params); + Map<String, String> agentMgrConfigs = _configDao.getConfiguration("AgentManager", params); _mgmt_host = agentMgrConfigs.get("host"); if (_mgmt_host == null) { s_logger.warn("Critical warning! Please configure your management server host address right after you have started your management server and then restart it, otherwise you won't have access to secondary storage"); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java index b8b530a..583f90d 100755 --- a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java +++ b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java @@ -183,6 +183,8 @@ public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Ma private VolumeDao _volumeDao; @Inject private ResourceTagDao _resourceTagDao; + @Inject + private ConfigurationDao _configDao; String _name; private int _totalRetries; @@ -1330,23 +1332,16 @@ public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Ma public boolean configure(String name, Map<String, Object> params) throws ConfigurationException { _name = name; - ComponentLocator locator = ComponentLocator.getCurrentLocator(); - - ConfigurationDao configDao = locator.getDao(ConfigurationDao.class); - if (configDao == null) { - throw new ConfigurationException("Unable to get the configuration dao."); - } - - String value = configDao.getValue(Config.BackupSnapshotWait.toString()); + String value = _configDao.getValue(Config.BackupSnapshotWait.toString()); _backupsnapshotwait = NumbersUtil.parseInt(value, Integer.parseInt(Config.BackupSnapshotWait.getDefaultValue())); - Type.HOURLY.setMax(NumbersUtil.parseInt(configDao.getValue("snapshot.max.hourly"), HOURLYMAX)); - Type.DAILY.setMax(NumbersUtil.parseInt(configDao.getValue("snapshot.max.daily"), DAILYMAX)); - Type.WEEKLY.setMax(NumbersUtil.parseInt(configDao.getValue("snapshot.max.weekly"), WEEKLYMAX)); - Type.MONTHLY.setMax(NumbersUtil.parseInt(configDao.getValue("snapshot.max.monthly"), MONTHLYMAX)); - _deltaSnapshotMax = NumbersUtil.parseInt(configDao.getValue("snapshot.delta.max"), DELTAMAX); - _totalRetries = NumbersUtil.parseInt(configDao.getValue("total.retries"), 4); - _pauseInterval = 2 * NumbersUtil.parseInt(configDao.getValue("ping.interval"), 60); + Type.HOURLY.setMax(NumbersUtil.parseInt(_configDao.getValue("snapshot.max.hourly"), HOURLYMAX)); + Type.DAILY.setMax(NumbersUtil.parseInt(_configDao.getValue("snapshot.max.daily"), DAILYMAX)); + Type.WEEKLY.setMax(NumbersUtil.parseInt(_configDao.getValue("snapshot.max.weekly"), WEEKLYMAX)); + Type.MONTHLY.setMax(NumbersUtil.parseInt(_configDao.getValue("snapshot.max.monthly"), MONTHLYMAX)); + _deltaSnapshotMax = NumbersUtil.parseInt(_configDao.getValue("snapshot.delta.max"), DELTAMAX); + _totalRetries = NumbersUtil.parseInt(_configDao.getValue("total.retries"), 4); + _pauseInterval = 2 * NumbersUtil.parseInt(_configDao.getValue("ping.interval"), 60); s_logger.info("Snapshot Manager is configured."); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java b/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java index bea077d..09f43be 100644 --- a/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java +++ b/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java @@ -73,7 +73,8 @@ public class SnapshotSchedulerImpl implements SnapshotScheduler { @Inject protected SnapshotPolicyDao _snapshotPolicyDao; @Inject protected AsyncJobManager _asyncMgr; @Inject protected VolumeDao _volsDao; - + @Inject protected ConfigurationDao _configDao; + private static final int ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION = 5; // 5 seconds private int _snapshotPollInterval; private Timer _testClockTimer; @@ -340,23 +341,16 @@ public class SnapshotSchedulerImpl implements SnapshotScheduler { throws ConfigurationException { _name = name; - ComponentLocator locator = ComponentLocator.getCurrentLocator(); - - ConfigurationDao configDao = locator.getDao(ConfigurationDao.class); - if (configDao == null) { - s_logger.error("Unable to get the configuration dao. " + ConfigurationDao.class.getName()); - return false; - } - _snapshotPollInterval = NumbersUtil.parseInt(configDao.getValue("snapshot.poll.interval"), 300); - boolean snapshotsRecurringTest = Boolean.parseBoolean(configDao.getValue("snapshot.recurring.test")); + _snapshotPollInterval = NumbersUtil.parseInt(_configDao.getValue("snapshot.poll.interval"), 300); + boolean snapshotsRecurringTest = Boolean.parseBoolean(_configDao.getValue("snapshot.recurring.test")); if (snapshotsRecurringTest) { // look for some test values in the configuration table so that snapshots can be taken more frequently (QA test code) - int minutesPerHour = NumbersUtil.parseInt(configDao.getValue("snapshot.test.minutes.per.hour"), 60); - int hoursPerDay = NumbersUtil.parseInt(configDao.getValue("snapshot.test.hours.per.day"), 24); - int daysPerWeek = NumbersUtil.parseInt(configDao.getValue("snapshot.test.days.per.week"), 7); - int daysPerMonth = NumbersUtil.parseInt(configDao.getValue("snapshot.test.days.per.month"), 30); - int weeksPerMonth = NumbersUtil.parseInt(configDao.getValue("snapshot.test.weeks.per.month"), 4); - int monthsPerYear = NumbersUtil.parseInt(configDao.getValue("snapshot.test.months.per.year"), 12); + int minutesPerHour = NumbersUtil.parseInt(_configDao.getValue("snapshot.test.minutes.per.hour"), 60); + int hoursPerDay = NumbersUtil.parseInt(_configDao.getValue("snapshot.test.hours.per.day"), 24); + int daysPerWeek = NumbersUtil.parseInt(_configDao.getValue("snapshot.test.days.per.week"), 7); + int daysPerMonth = NumbersUtil.parseInt(_configDao.getValue("snapshot.test.days.per.month"), 30); + int weeksPerMonth = NumbersUtil.parseInt(_configDao.getValue("snapshot.test.weeks.per.month"), 4); + int monthsPerYear = NumbersUtil.parseInt(_configDao.getValue("snapshot.test.months.per.year"), 12); _testTimerTask = new TestClock(this, minutesPerHour, hoursPerDay, daysPerWeek, daysPerMonth, weeksPerMonth, monthsPerYear); } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/server/src/com/cloud/template/TemplateManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java index 289bcf9..ccfb459 100755 --- a/server/src/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/com/cloud/template/TemplateManagerImpl.java @@ -1018,8 +1018,6 @@ public class TemplateManagerImpl implements TemplateManager, Manager, TemplateSe public boolean configure(String name, Map<String, Object> params) throws ConfigurationException { _name = name; - ComponentLocator locator = ComponentLocator.getCurrentLocator(); - final Map<String, String> configs = _configDao.getConfiguration("AgentManager", params); _routerTemplateId = NumbersUtil.parseInt(configs.get("router.template.id"), 1); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/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 d0ae748..23f6d04 100755 --- a/server/src/com/cloud/user/AccountManagerImpl.java +++ b/server/src/com/cloud/user/AccountManagerImpl.java @@ -250,9 +250,7 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag throw new ConfigurationException("Unable to find the system user using " + User.UID_SYSTEM); } - ComponentLocator locator = ComponentLocator.getCurrentLocator(); - ConfigurationDao configDao = locator.getDao(ConfigurationDao.class); - Map<String, String> configs = configDao.getConfiguration(params); + Map<String, String> configs = _configDao.getConfiguration(params); String loginAttempts = configs.get(Config.IncorrectLoginAttemptsAllowed.key()); _allowedLoginAttempts = NumbersUtil.parseInt(loginAttempts, 5); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/server/src/com/cloud/vm/UserVmManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index e0454c3..09d5578 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -381,7 +381,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager protected String _instance; protected String _zone; - private ConfigurationDao _configDao; + @Inject private ConfigurationDao _configDao; private int _createprivatetemplatefromvolumewait; private int _createprivatetemplatefromsnapshotwait; @@ -1333,13 +1333,6 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager throws ConfigurationException { _name = name; - ComponentLocator locator = ComponentLocator.getCurrentLocator(); - _configDao = locator.getDao(ConfigurationDao.class); - if (_configDao == null) { - throw new ConfigurationException( - "Unable to get the configuration dao."); - } - Map<String, String> configs = _configDao.getConfiguration( "AgentManager", params); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/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 68ad1d3..00df41c 100755 --- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java @@ -22,7 +22,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Date; -import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -141,8 +140,6 @@ import com.cloud.utils.Journal; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; -import com.cloud.utils.component.Adapters; -import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.GlobalLock; @@ -239,6 +236,9 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene @Inject protected ResourceManager _resourceMgr; + @Inject + protected ConfigurationDao _configDao; + Map<VirtualMachine.Type, VirtualMachineGuru<? extends VMInstanceVO>> _vmGurus = new HashMap<VirtualMachine.Type, VirtualMachineGuru<? extends VMInstanceVO>>(); protected StateMachine2<State, VirtualMachine.Event, VirtualMachine> _stateMachine; @@ -428,9 +428,7 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene public boolean configure(String name, Map<String, Object> xmlParams) throws ConfigurationException { _name = name; - ComponentLocator locator = ComponentLocator.getCurrentLocator(); - ConfigurationDao configDao = locator.getDao(ConfigurationDao.class); - Map<String, String> params = configDao.getConfiguration(xmlParams); + Map<String, String> params = _configDao.getConfiguration(xmlParams); _retry = NumbersUtil.parseInt(params.get(Config.StartRetry.key()), 10); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/server/src/com/cloud/vm/dao/UserVmDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/vm/dao/UserVmDaoImpl.java b/server/src/com/cloud/vm/dao/UserVmDaoImpl.java index 1284408..8eda2e2 100755 --- a/server/src/com/cloud/vm/dao/UserVmDaoImpl.java +++ b/server/src/com/cloud/vm/dao/UserVmDaoImpl.java @@ -284,7 +284,6 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use @Override public List<UserVmVO> listByNetworkIdAndStates(long networkId, State... states) { if (UserVmSearch == null) { - NicDao _nicDao = ComponentLocator.getLocator("management-server").getDao(NicDao.class); SearchBuilder<NicVO> nicSearch = _nicDao.createSearchBuilder(); nicSearch.and("networkId", nicSearch.entity().getNetworkId(), SearchCriteria.Op.EQ); nicSearch.and("ip4Address", nicSearch.entity().getIp4Address(), SearchCriteria.Op.NNULL); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/usage/src/com/cloud/usage/UsageAlertManagerImpl.java ---------------------------------------------------------------------- diff --git a/usage/src/com/cloud/usage/UsageAlertManagerImpl.java b/usage/src/com/cloud/usage/UsageAlertManagerImpl.java index 6d46262..2b698c8 100644 --- a/usage/src/com/cloud/usage/UsageAlertManagerImpl.java +++ b/usage/src/com/cloud/usage/UsageAlertManagerImpl.java @@ -22,6 +22,7 @@ import java.util.Map; import java.util.Properties; import javax.ejb.Local; +import javax.inject.Inject; import javax.mail.Authenticator; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; @@ -32,6 +33,7 @@ import javax.mail.internet.InternetAddress; import javax.naming.ConfigurationException; import org.apache.log4j.Logger; +import org.springframework.stereotype.Component; import com.cloud.alert.AlertManager; import com.cloud.alert.AlertVO; @@ -43,26 +45,21 @@ import com.sun.mail.smtp.SMTPMessage; import com.sun.mail.smtp.SMTPSSLTransport; import com.sun.mail.smtp.SMTPTransport; +@Component @Local(value={AlertManager.class}) public class UsageAlertManagerImpl implements AlertManager { private static final Logger s_logger = Logger.getLogger(UsageAlertManagerImpl.class.getName()); private String _name = null; private EmailAlert _emailAlert; - private AlertDao _alertDao; + @Inject private AlertDao _alertDao; + @Inject private ConfigurationDao _configDao; @Override public boolean configure(String name, Map<String, Object> params) throws ConfigurationException { _name = name; - ComponentLocator locator = ComponentLocator.getCurrentLocator(); - ConfigurationDao configDao = locator.getDao(ConfigurationDao.class); - if (configDao == null) { - s_logger.error("Unable to get the configuration dao."); - return false; - } - - Map<String, String> configs = configDao.getConfiguration("management-server", params); + Map<String, String> configs = _configDao.getConfiguration("management-server", params); // set up the email system for alerts String emailAddressList = configs.get("alert.email.addresses"); @@ -85,14 +82,7 @@ public class UsageAlertManagerImpl implements AlertManager { } _emailAlert = new EmailAlert(emailAddresses, smtpHost, smtpPort, useAuth, smtpUsername, smtpPassword, emailSender, smtpDebug); - - _alertDao = locator.getDao(AlertDao.class); - if (_alertDao == null) { - s_logger.error("Unable to get the alert dao."); - return false; - } - - return true; + return true; } @Override http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/usage/src/com/cloud/usage/UsageManagerImpl.java ---------------------------------------------------------------------- diff --git a/usage/src/com/cloud/usage/UsageManagerImpl.java b/usage/src/com/cloud/usage/UsageManagerImpl.java index 53ebb14..bbf2cd6 100644 --- a/usage/src/com/cloud/usage/UsageManagerImpl.java +++ b/usage/src/com/cloud/usage/UsageManagerImpl.java @@ -124,7 +124,7 @@ public class UsageManagerImpl implements UsageManager, Runnable { private Future m_heartbeat = null; private Future m_sanity = null; - protected UsageManagerImpl() { + public UsageManagerImpl() { } private void mergeConfigs(Map<String, String> dbParams, Map<String, Object> xmlParams) { http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/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 5d3f8c6..ce46423 100644 --- a/utils/src/com/cloud/utils/component/ComponentContext.java +++ b/utils/src/com/cloud/utils/component/ComponentContext.java @@ -23,7 +23,6 @@ import org.apache.log4j.Logger; import org.springframework.aop.Advisor; import org.springframework.aop.framework.Advised; import org.springframework.aop.framework.ProxyFactory; -import org.springframework.aop.support.AopUtils; import org.springframework.aop.support.DefaultPointcutAdvisor; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; @@ -85,9 +84,21 @@ public class ComponentContext implements ApplicationContextAware { } public static <T> boolean isPrimary(Object instance, Class<T> beanType) { - Map<String, T> matchedTypes = ComponentContext.getComponentsOfType(beanType); + + // we assume single line of interface inheritance of beanType + Class<?> componentType = beanType; + Class<?> targetClass = getTargetClass(instance); + Class<?> interfaces[] = targetClass.getInterfaces(); + for(Class<?> intf : interfaces) { + if(beanType.isAssignableFrom(intf)) { + componentType = intf; + break; + } + } + + Map<String, T> matchedTypes = (Map<String, T>)ComponentContext.getComponentsOfType(componentType); if(matchedTypes.size() > 1) { - Primary primary = getTargetClass(instance).getAnnotation(Primary.class); + Primary primary = targetClass.getAnnotation(Primary.class); if(primary != null) return true; @@ -96,7 +107,7 @@ public class ComponentContext implements ApplicationContextAware { return true; } - + public static Class<?> getTargetClass(Object instance) { if(instance instanceof Advised) { try { http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b274c570/utils/src/com/cloud/utils/component/ComponentLocator.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/component/ComponentLocator.java b/utils/src/com/cloud/utils/component/ComponentLocator.java index 90118b6..d8d6e63 100644 --- a/utils/src/com/cloud/utils/component/ComponentLocator.java +++ b/utils/src/com/cloud/utils/component/ComponentLocator.java @@ -24,7 +24,6 @@ import com.cloud.utils.db.GenericDao; @Component public class ComponentLocator { - public static ComponentLocator getCurrentLocator() { return ComponentContext.getCompanent(ComponentLocator.class); }
