Loadable components to be in separted Spring component bundling

This commit is contained in:
Kelven Yang 2013-01-11 15:04:44 -08:00
parent 53da542001
commit f57dcaa820
23 changed files with 446 additions and 42 deletions

View File

@ -16,7 +16,6 @@
// under the License.
package com.cloud.user;
public class UserContext {
private static ThreadLocal<UserContext> s_currentContext = new ThreadLocal<UserContext>();

View File

@ -25,7 +25,7 @@
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
<param-value>classpath:applicationContext.xml, classpath:componentContext.xml</param-value>
</context-param>
<servlet>

View File

@ -13,6 +13,7 @@
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config />
<context:component-scan base-package="org.apache.cloudstack, com.cloud" />
<!--

View File

@ -0,0 +1,52 @@
<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">
<!--
Configurable components
-->
<bean id="ManagementServerExtImpl" class ="com.cloud.server.ManagementServerExtImpl" />
<!--
Network Elements
-->
<bean id="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement">
<property name="name" value="VirtualRouter"/>
</bean>
<bean id="Ovs" class="com.cloud.network.element.OvsElement">
<property name="name" value="Ovs"/>
</bean>
<bean id="ExternalDhcpServer" class="com.cloud.network.element.ExternalDhcpElement">
<property name="name" value="ExternalDhcpServer"/>
</bean>
<bean id="BareMetal" class="com.cloud.network.element.BareMetalElement">
<property name="name" value="BareMetal"/>
</bean>
<bean id="SecurityGroupProvider" class="com.cloud.network.element.SecurityGroupElement">
<property name="name" value="SecurityGroupProvider"/>
</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>
<!--
Adapters
-->
<bean id="StaticRoleBasedAPIAccessChecker" class="org.apache.cloudstack.acl.StaticRoleBasedAPIAccessChecker"/>
</beans>

View File

@ -30,7 +30,6 @@ import javax.naming.ConfigurationException;
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import com.cloud.agent.AgentManager;
import com.cloud.agent.api.ConfigurePortForwardingRulesOnLogicalRouterAnswer;
@ -121,7 +120,6 @@ import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.NicDao;
@Component
@Local(value = NetworkElement.class)
public class NiciraNvpElement extends AdapterBase implements
ConnectivityProvider, SourceNatServiceProvider,

View File

@ -22,8 +22,6 @@ import java.util.Set;
import javax.ejb.Local;
import javax.inject.Inject;
import org.springframework.stereotype.Component;
import com.cloud.deploy.DeployDestination;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
@ -42,7 +40,6 @@ import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
@Component
@Local(value = NetworkElement.class)
public class OvsElement extends AdapterBase implements NetworkElement {
@Inject

View File

@ -22,6 +22,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import org.apache.cloudstack.api.ApiConstants.HostDetails;
@ -41,6 +42,7 @@ import org.apache.cloudstack.api.response.StoragePoolResponse;
import org.apache.cloudstack.api.response.UserResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
import org.springframework.stereotype.Component;
import com.cloud.api.query.dao.AccountJoinDao;
import com.cloud.api.query.dao.AsyncJobJoinDao;
@ -249,6 +251,7 @@ import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao;
import com.cloud.vm.dao.VMInstanceDao;
@Component
public class ApiDBUtils {
private static ManagementServer _ms;
@Inject static AsyncJobManager _asyncMgr;
@ -343,7 +346,191 @@ public class ApiDBUtils {
@Inject static SnapshotPolicyDao _snapshotPolicyDao;
@Inject static AsyncJobDao _asyncJobDao;
static {
@Inject private ManagementServer ms;
@Inject public AsyncJobManager asyncMgr;
@Inject private SecurityGroupManager securityGroupMgr;
@Inject private StorageManager storageMgr;
@Inject private UserVmManager userVmMgr;
@Inject private NetworkManager networkMgr;
@Inject private StatsCollector statsCollector;
@Inject private AccountDao accountDao;
@Inject private AccountVlanMapDao accountVlanMapDao;
@Inject private ClusterDao clusterDao;
@Inject private CapacityDao capacityDao;
@Inject private DiskOfferingDao diskOfferingDao;
@Inject private DomainDao domainDao;
@Inject private DomainRouterDao domainRouterDao;
@Inject private DomainRouterJoinDao domainRouterJoinDao;
@Inject private GuestOSDao guestOSDao;
@Inject private GuestOSCategoryDao guestOSCategoryDao;
@Inject private HostDao hostDao;
@Inject private IPAddressDao ipAddressDao;
@Inject private LoadBalancerDao loadBalancerDao;
@Inject private SecurityGroupDao securityGroupDao;
@Inject private SecurityGroupJoinDao securityGroupJoinDao;
@Inject private NetworkRuleConfigDao networkRuleConfigDao;
@Inject private HostPodDao podDao;
@Inject private ServiceOfferingDao serviceOfferingDao;
@Inject private SnapshotDao snapshotDao;
@Inject private StoragePoolDao storagePoolDao;
@Inject private VMTemplateDao templateDao;
@Inject private VMTemplateDetailsDao templateDetailsDao;
@Inject private VMTemplateHostDao templateHostDao;
@Inject private VMTemplateSwiftDao templateSwiftDao;
@Inject private VMTemplateS3Dao templateS3Dao;
@Inject private UploadDao uploadDao;
@Inject private UserDao userDao;
@Inject private UserStatisticsDao userStatsDao;
@Inject private UserVmDao userVmDao;
@Inject private UserVmJoinDao userVmJoinDao;
@Inject private VlanDao vlanDao;
@Inject private VolumeDao volumeDao;
@Inject private Site2SiteVpnGatewayDao site2SiteVpnGatewayDao;
@Inject private Site2SiteCustomerGatewayDao site2SiteCustomerGatewayDao;
@Inject private VolumeHostDao volumeHostDao;
@Inject private DataCenterDao zoneDao;
@Inject private NetworkOfferingDao networkOfferingDao;
@Inject private NetworkDao networkDao;
@Inject private PhysicalNetworkDao physicalNetworkDao;
@Inject private ConfigurationService configMgr;
@Inject private ConfigurationDao configDao;
@Inject private ConsoleProxyDao consoleProxyDao;
@Inject private FirewallRulesCidrsDao firewallCidrsDao;
@Inject private VMInstanceDao vmDao;
@Inject private ResourceLimitService resourceLimitMgr;
@Inject private ProjectService projectMgr;
@Inject private ResourceManager resourceMgr;
@Inject private AccountDetailsDao accountDetailsDao;
@Inject private NetworkDomainDao networkDomainDao;
@Inject private HighAvailabilityManager haMgr;
@Inject private VpcManager vpcMgr;
@Inject private TaggedResourceService taggedResourceService;
@Inject private UserVmDetailsDao userVmDetailsDao;
@Inject private SSHKeyPairDao sshKeyPairDao;
@Inject private ConditionDao asConditionDao;
@Inject private AutoScalePolicyConditionMapDao asPolicyConditionMapDao;
@Inject private AutoScaleVmGroupPolicyMapDao asVmGroupPolicyMapDao;
@Inject private AutoScalePolicyDao asPolicyDao;
@Inject private AutoScaleVmProfileDao asVmProfileDao;
@Inject private AutoScaleVmGroupDao asVmGroupDao;
@Inject private CounterDao counterDao;
@Inject private ResourceTagJoinDao tagJoinDao;
@Inject private EventJoinDao eventJoinDao;
@Inject private InstanceGroupJoinDao vmGroupJoinDao;
@Inject private UserAccountJoinDao userAccountJoinDao;
@Inject private ProjectJoinDao projectJoinDao;
@Inject private ProjectAccountJoinDao projectAccountJoinDao;
@Inject private ProjectInvitationJoinDao projectInvitationJoinDao;
@Inject private HostJoinDao hostJoinDao;
@Inject private VolumeJoinDao volJoinDao;
@Inject private StoragePoolJoinDao poolJoinDao;
@Inject private AccountJoinDao accountJoinDao;
@Inject private AsyncJobJoinDao jobJoinDao;
@Inject private PhysicalNetworkTrafficTypeDao physicalNetworkTrafficTypeDao;
@Inject private PhysicalNetworkServiceProviderDao physicalNetworkServiceProviderDao;
@Inject private FirewallRulesDao firewallRuleDao;
@Inject private StaticRouteDao staticRouteDao;
@Inject private VpcGatewayDao vpcGatewayDao;
@Inject private VpcDao vpcDao;
@Inject private VpcOfferingDao vpcOfferingDao;
@Inject private SnapshotPolicyDao snapshotPolicyDao;
@Inject private AsyncJobDao asyncJobDao;
@PostConstruct
void init() {
_ms = ms;
_asyncMgr = asyncMgr;
_securityGroupMgr = securityGroupMgr;
_storageMgr = storageMgr;
_userVmMgr = userVmMgr;
_networkMgr = networkMgr;
_configMgr = configMgr;
_accountDao = accountDao;
_accountVlanMapDao = accountVlanMapDao;
_clusterDao = clusterDao;
_capacityDao = capacityDao;
_diskOfferingDao = diskOfferingDao;
_domainDao = domainDao;
_domainRouterDao = domainRouterDao;
_domainRouterJoinDao = domainRouterJoinDao;
_guestOSDao = guestOSDao;
_guestOSCategoryDao = guestOSCategoryDao;
_hostDao = hostDao;
_ipAddressDao = ipAddressDao;
_loadBalancerDao = loadBalancerDao;
_networkRuleConfigDao = networkRuleConfigDao;
_podDao = podDao;
_serviceOfferingDao = serviceOfferingDao;
_snapshotDao = snapshotDao;
_storagePoolDao = storagePoolDao;
_templateDao = templateDao;
_templateDetailsDao = templateDetailsDao;
_templateHostDao = templateHostDao;
_templateSwiftDao = templateSwiftDao;
_templateS3Dao = templateS3Dao;
_uploadDao = uploadDao;
_userDao = userDao;
_userStatsDao = userStatsDao;
_userVmDao = userVmDao;
_userVmJoinDao = userVmJoinDao;
_vlanDao = vlanDao;
_volumeDao = volumeDao;
_site2SiteVpnGatewayDao = site2SiteVpnGatewayDao;
_site2SiteCustomerGatewayDao = site2SiteCustomerGatewayDao;
_volumeHostDao = volumeHostDao;
_zoneDao = zoneDao;
_securityGroupDao = securityGroupDao;
_securityGroupJoinDao = securityGroupJoinDao;
_networkOfferingDao = networkOfferingDao;
_networkDao = networkDao;
_physicalNetworkDao = physicalNetworkDao;
_configDao = configDao;
_consoleProxyDao = consoleProxyDao;
_firewallCidrsDao = firewallCidrsDao;
_vmDao = vmDao;
_resourceLimitMgr = resourceLimitMgr;
_projectMgr = projectMgr;
_resourceMgr = resourceMgr;
_accountDetailsDao = accountDetailsDao;
_networkDomainDao = networkDomainDao;
_haMgr = haMgr;
_vpcMgr = vpcMgr;
_taggedResourceService = taggedResourceService;
_sshKeyPairDao = sshKeyPairDao;
_userVmDetailsDao = userVmDetailsDao;
_asConditionDao = asConditionDao;
_asPolicyDao = asPolicyDao;
_asPolicyConditionMapDao = asPolicyConditionMapDao;
_counterDao = counterDao;
_asVmGroupPolicyMapDao = asVmGroupPolicyMapDao;
_tagJoinDao = tagJoinDao;
_vmGroupJoinDao = vmGroupJoinDao;
_eventJoinDao = eventJoinDao;
_userAccountJoinDao = userAccountJoinDao;
_projectJoinDao = projectJoinDao;
_projectAccountJoinDao = projectAccountJoinDao;
_projectInvitationJoinDao = projectInvitationJoinDao;
_hostJoinDao = hostJoinDao;
_volJoinDao = volJoinDao;
_poolJoinDao = poolJoinDao;
_accountJoinDao = accountJoinDao;
_jobJoinDao = jobJoinDao;
_physicalNetworkTrafficTypeDao = physicalNetworkTrafficTypeDao;
_physicalNetworkServiceProviderDao = physicalNetworkServiceProviderDao;
_firewallRuleDao = firewallRuleDao;
_staticRouteDao = staticRouteDao;
_vpcGatewayDao = vpcGatewayDao;
_asVmProfileDao = asVmProfileDao;
_asVmGroupDao = asVmGroupDao;
_vpcDao = vpcDao;
_vpcOfferingDao = vpcOfferingDao;
_snapshotPolicyDao = snapshotPolicyDao;
_asyncJobDao = asyncJobDao;
// Note: stats collector should already have been initialized by this time, otherwise a null instance is returned
_statsCollector = StatsCollector.getInstance();

View File

@ -148,8 +148,8 @@ public class ApiServer implements HttpRequestHandler {
@Inject ApiDispatcher _dispatcher;
@Inject private AccountManager _accountMgr;
@Inject private DomainManager _domainMgr = null;
@Inject private AsyncJobManager _asyncMgr = null;
@Inject private DomainManager _domainMgr;
@Inject private AsyncJobManager _asyncMgr;
@Inject private ConfigurationDao _configDao;
@Inject List<PluggableService> _pluggableServices;
@ -552,7 +552,7 @@ public class ApiServer implements HttpRequestHandler {
}
String commandName = command[0];
/*
// if userId not null, that mean that user is logged in
if (userId != null) {
User user = ApiDBUtils.findUserById(userId);
@ -568,7 +568,7 @@ public class ApiServer implements HttpRequestHandler {
throw new ServerApiException(BaseCmd.UNSUPPORTED_ACTION_ERROR, "The given command does not exist or it is not available for user");
}
}
*/
// - build a request string with sorted params, make sure it's all lowercase
// - sign the request, verify the signature is the same
List<String> parameterNames = new ArrayList<String>();

View File

@ -214,8 +214,7 @@ public class QueryManagerImpl implements QueryService, Manager {
@Override
public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
_name = name;
// _responseGenerator = new ViewResponseHelper();
return false;
return true;
}
@Override

View File

@ -27,6 +27,8 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.query.vo.EventJoinVO;
import org.apache.cloudstack.api.response.EventResponse;
import org.springframework.stereotype.Component;
import com.cloud.event.Event;
import com.cloud.event.Event.State;
import com.cloud.utils.db.Filter;
@ -34,7 +36,7 @@ import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
@Component
@Local(value={EventJoinDao.class})
public class EventJoinDaoImpl extends GenericDaoBase<EventJoinVO, Long> implements EventJoinDao {
public static final Logger s_logger = Logger.getLogger(EventJoinDaoImpl.class);

View File

@ -133,6 +133,7 @@ import com.cloud.utils.AnnotationHelper;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair;
import com.cloud.utils.component.AdapterBase;
import com.cloud.utils.component.ComponentContext;
import com.cloud.utils.component.Manager;
import com.cloud.utils.concurrency.NamedThreadFactory;
import com.cloud.utils.db.JoinBuilder.JoinType;
@ -212,11 +213,9 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
@Inject
PodVlanMapDao _podVlanMapDao;
//@com.cloud.utils.component.Inject(adapter = NetworkGuru.class)
@Inject
List<NetworkGuru> _networkGurus;
// @com.cloud.utils.component.Inject(adapter = NetworkElement.class)
@Inject
List<NetworkElement> _networkElements;
@ -1540,6 +1539,8 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
"multiple NetworkElements found for Provider: " + implementedProvider.getName());
return false;
}
s_logger.info("add element/provider mapping. provider: " + implementedProvider.getName() + " -> " + element.getName()
+ ", class: " + ComponentContext.getTargetClass(element).getName());
s_providerToNetworkElementMap.put(implementedProvider.getName(), element.getName());
}
if (capabilities != null && implementedProvider != null) {

View File

@ -16,7 +16,6 @@
// under the License.
package com.cloud.network.element;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -24,7 +23,6 @@ import javax.ejb.Local;
import javax.inject.Inject;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import com.cloud.baremetal.ExternalDhcpManager;
import com.cloud.deploy.DeployDestination;
@ -49,7 +47,6 @@ import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.NicDao;
@Component
@Local(value=NetworkElement.class)
public class BareMetalElement extends AdapterBase implements NetworkElement {
private static final Logger s_logger = Logger.getLogger(BareMetalElement.class);

View File

@ -17,7 +17,6 @@
package com.cloud.network.element;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -25,7 +24,6 @@ import javax.ejb.Local;
import javax.inject.Inject;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import com.cloud.agent.AgentManager;
import com.cloud.agent.AgentManager.OnError;
@ -64,7 +62,6 @@ import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.DomainRouterDao;
import com.cloud.vm.dao.UserVmDao;
@Component
@Local(value = NetworkElement.class)
public class CloudZonesNetworkElement extends AdapterBase implements NetworkElement, UserDataServiceProvider {
private static final Logger s_logger = Logger.getLogger(CloudZonesNetworkElement.class);

View File

@ -17,7 +17,6 @@
package com.cloud.network.element;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -25,7 +24,6 @@ import javax.ejb.Local;
import javax.inject.Inject;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import com.cloud.baremetal.ExternalDhcpManager;
import com.cloud.dc.DataCenter;
@ -51,7 +49,6 @@ import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
@Component
@Local(value = NetworkElement.class)
public class ExternalDhcpElement extends AdapterBase implements NetworkElement, DhcpServiceProvider {
private static final Logger s_logger = Logger.getLogger(ExternalDhcpElement.class);

View File

@ -17,14 +17,11 @@
package com.cloud.network.element;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.ejb.Local;
import org.springframework.stereotype.Component;
import com.cloud.deploy.DeployDestination;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
@ -42,7 +39,6 @@ import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
@Component
@Local(value=NetworkElement.class)
public class SecurityGroupElement extends AdapterBase implements NetworkElement {
private static final Map<Service, Map<Capability, String>> capabilities = setCapabilities();

View File

@ -29,7 +29,6 @@ import com.cloud.utils.PropertiesUtil;
import org.apache.cloudstack.api.command.admin.router.ConfigureVirtualRouterElementCmd;
import org.apache.cloudstack.api.command.admin.router.ListVirtualRouterElementsCmd;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import com.cloud.configuration.ConfigurationManager;
import com.cloud.configuration.dao.ConfigurationDao;
@ -90,7 +89,6 @@ import com.cloud.vm.dao.DomainRouterDao;
import com.cloud.vm.dao.UserVmDao;
import com.google.gson.Gson;
@Component
@Local(value = NetworkElement.class)
public class VirtualRouterElement extends AdapterBase implements VirtualRouterElementService, DhcpServiceProvider,
UserDataServiceProvider, SourceNatServiceProvider, StaticNatServiceProvider, FirewallServiceProvider,

View File

@ -26,7 +26,6 @@ import javax.ejb.Local;
import javax.inject.Inject;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import com.cloud.dc.DataCenter;
import com.cloud.deploy.DeployDestination;
@ -63,7 +62,6 @@ import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachine.Type;
import com.cloud.vm.VirtualMachineProfile;
@Component
@Local(value = NetworkElement.class)
public class VpcVirtualRouterElement extends VirtualRouterElement implements VpcProvider, Site2SiteVpnServiceProvider, NetworkACLServiceProvider{
private static final Logger s_logger = Logger.getLogger(VpcVirtualRouterElement.class);

View File

@ -0,0 +1,185 @@
// 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.
package com.cloud.server;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import org.springframework.stereotype.Component;
import com.cloud.agent.AgentManager;
import com.cloud.alert.AlertManagerImpl;
import com.cloud.api.query.QueryManagerImpl;
import com.cloud.async.AsyncJobManager;
import com.cloud.async.SyncQueueManager;
import com.cloud.capacity.CapacityManagerImpl;
import com.cloud.cluster.CheckPointManagerImpl;
import com.cloud.cluster.ClusterFenceManagerImpl;
import com.cloud.cluster.ClusterManagerImpl;
import com.cloud.configuration.ConfigurationManager;
import com.cloud.consoleproxy.ConsoleProxyManager;
import com.cloud.dao.EntityManagerImpl;
import com.cloud.ha.HighAvailabilityManager;
import com.cloud.hypervisor.HypervisorGuruManagerImpl;
import com.cloud.keystore.KeystoreManager;
import com.cloud.maint.UpgradeManagerImpl;
import com.cloud.network.ExternalLoadBalancerUsageManager;
import com.cloud.network.NetworkManagerImpl;
import com.cloud.network.StorageNetworkManager;
import com.cloud.network.as.AutoScaleManagerImpl;
import com.cloud.network.firewall.FirewallManagerImpl;
import com.cloud.network.lb.LoadBalancingRulesManagerImpl;
import com.cloud.network.router.VpcVirtualNetworkApplianceManager;
import com.cloud.network.rules.RulesManagerImpl;
import com.cloud.network.security.SecurityGroupManagerImpl2;
import com.cloud.network.vpc.NetworkACLManagerImpl;
import com.cloud.network.vpc.VpcManagerImpl;
import com.cloud.network.vpn.RemoteAccessVpnManagerImpl;
import com.cloud.network.vpn.Site2SiteVpnManagerImpl;
import com.cloud.projects.ProjectManagerImpl;
import com.cloud.resource.ResourceManagerImpl;
import com.cloud.resourcelimit.ResourceLimitManagerImpl;
import com.cloud.storage.OCFS2Manager;
import com.cloud.storage.StorageManagerImpl;
import com.cloud.storage.download.DownloadMonitor;
import com.cloud.storage.s3.S3Manager;
import com.cloud.storage.secondary.SecondaryStorageManagerImpl;
import com.cloud.storage.snapshot.SnapshotManagerImpl;
import com.cloud.storage.snapshot.SnapshotSchedulerImpl;
import com.cloud.storage.swift.SwiftManager;
import com.cloud.storage.upload.UploadMonitor;
import com.cloud.tags.TaggedResourceManagerImpl;
import com.cloud.template.TemplateManagerImpl;
import com.cloud.user.AccountManagerImpl;
import com.cloud.user.DomainManagerImpl;
import com.cloud.utils.component.Manager;
import com.cloud.vm.UserVmManagerImpl;
import com.cloud.vm.VirtualMachineManager;
@Component
public class CloudStackComponentComposer {
@Inject CheckPointManagerImpl _checkPointMgr;
@Inject ClusterManagerImpl _clusterMgr;
@Inject ClusterFenceManagerImpl _clusterFenceMgr;
@Inject AgentManager _AgentMgr;
@Inject SyncQueueManager _sycnQueueMgr;
@Inject AsyncJobManager _jobMgr;
@Inject ConfigurationManager _confMgr;
@Inject AccountManagerImpl _accountMgr;
@Inject DomainManagerImpl _domainMgr;
@Inject ResourceLimitManagerImpl _resLimitMgr;
@Inject NetworkManagerImpl _networkMgr;
@Inject DownloadMonitor _downloadMonitor;
@Inject UploadMonitor _uploadMonitor;
@Inject KeystoreManager _ksMgr;
@Inject SecondaryStorageManagerImpl _ssMgr;
@Inject UserVmManagerImpl _userVmMgr;
@Inject UpgradeManagerImpl _upgradeMgr;
@Inject StorageManagerImpl _storageMgr;
@Inject AlertManagerImpl _alertMgr;
@Inject TemplateManagerImpl _tmplMgr;
@Inject SnapshotManagerImpl _snpahsotMgr;
@Inject SnapshotSchedulerImpl _snapshotScheduleMgr;
@Inject SecurityGroupManagerImpl2 _sgMgr;
@Inject EntityManagerImpl _entityMgr;
@Inject LoadBalancingRulesManagerImpl _lbRuleMgr;
@Inject AutoScaleManagerImpl _asMgr;
@Inject RulesManagerImpl _rulesMgr;
@Inject RemoteAccessVpnManagerImpl _acVpnMgr;
@Inject CapacityManagerImpl _capacityMgr;
@Inject VirtualMachineManager _vmMgr;
@Inject HypervisorGuruManagerImpl _hvGuruMgr;
@Inject ResourceManagerImpl _resMgr;
@Inject OCFS2Manager _ocfsMgr;
@Inject FirewallManagerImpl _fwMgr;
@Inject ConsoleProxyManager _cpMgr;
@Inject ProjectManagerImpl _prjMgr;
@Inject SwiftManager _swiftMgr;
@Inject S3Manager _s3Mgr;
@Inject StorageNetworkManager _storageNetworkMgr;
@Inject ExternalLoadBalancerUsageManager _extlbUsageMgr;
@Inject HighAvailabilityManager _haMgr;
@Inject VpcManagerImpl _vpcMgr;
@Inject VpcVirtualNetworkApplianceManager _vpcNetApplianceMgr;
@Inject NetworkACLManagerImpl _networkAclMgr;
@Inject TaggedResourceManagerImpl _taggedResMgr;
@Inject Site2SiteVpnManagerImpl _s2sVpnMgr;
@Inject QueryManagerImpl _queryMgr;
List<Manager> _managers = new ArrayList<Manager>();
public CloudStackComponentComposer() {
}
@PostConstruct
void init() {
_managers.add(_checkPointMgr);
_managers.add(_clusterMgr);
_managers.add(_clusterFenceMgr);
_managers.add(_AgentMgr);
_managers.add(_sycnQueueMgr);
_managers.add(_jobMgr);
_managers.add(_confMgr);
_managers.add(_accountMgr);
_managers.add(_domainMgr);
_managers.add(_resLimitMgr);
_managers.add(_networkMgr);
_managers.add(_downloadMonitor);
_managers.add(_uploadMonitor);
_managers.add(_ksMgr);
_managers.add(_ssMgr);
_managers.add(_userVmMgr);
_managers.add(_upgradeMgr);
_managers.add(_storageMgr);
_managers.add(_alertMgr);
_managers.add(_tmplMgr);
_managers.add(_snpahsotMgr);
_managers.add(_snapshotScheduleMgr);
_managers.add(_sgMgr);
_managers.add(_entityMgr);
_managers.add(_lbRuleMgr);
_managers.add(_asMgr);
_managers.add(_rulesMgr);
_managers.add(_acVpnMgr);
_managers.add(_capacityMgr);
_managers.add(_vmMgr);
_managers.add(_hvGuruMgr);
_managers.add(_resMgr);
_managers.add(_ocfsMgr);
_managers.add(_fwMgr);
_managers.add(_cpMgr);
_managers.add(_prjMgr);
_managers.add(_swiftMgr);
_managers.add(_s3Mgr);
_managers.add(_storageNetworkMgr);
_managers.add(_extlbUsageMgr);
_managers.add(_haMgr);
_managers.add(_vpcMgr);
_managers.add(_vpcNetApplianceMgr);
_managers.add(_networkAclMgr);
_managers.add(_taggedResMgr);
_managers.add(_s2sVpnMgr);
_managers.add(_queryMgr);
}
public List<Manager> getManagers() {
return _managers;
}
}

View File

@ -34,7 +34,6 @@ import com.cloud.exception.PermissionDeniedException;
import com.cloud.projects.Project;
import com.cloud.utils.PropertiesUtil;
import org.apache.cloudstack.api.response.UsageTypeResponse;
import org.springframework.stereotype.Component;
import com.cloud.usage.UsageJobVO;
import com.cloud.usage.UsageTypes;
@ -49,7 +48,6 @@ import com.cloud.utils.db.Filter;
import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.Transaction;
@Component
public class ManagementServerExtImpl extends ManagementServerImpl implements ManagementServerExt {
@Inject private AccountDao _accountDao;
@Inject private DomainDao _domainDao;

View File

@ -85,14 +85,12 @@ import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
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;
import com.cloud.agent.api.GetVncPortCommand;
import com.cloud.agent.api.storage.CopyVolumeAnswer;
import com.cloud.agent.api.storage.CopyVolumeCommand;
import com.cloud.agent.manager.ClusteredAgentManagerImpl;
import com.cloud.agent.manager.allocator.HostAllocator;
import com.cloud.alert.Alert;
import com.cloud.alert.AlertManager;

View File

@ -41,6 +41,7 @@ import java.util.Map;
import java.util.UUID;
import java.util.concurrent.Callable;
import javax.annotation.PostConstruct;
import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
@ -119,10 +120,9 @@ public class S3ManagerImpl implements S3Manager {
@Inject
private SecondaryStorageVmManager secondaryStorageVMManager;
protected S3ManagerImpl() {
super();
public S3ManagerImpl() {
}
private void verifyConnection(final S3TO s3) throws DiscoveryException {
if (!canConnect(s3)) {

View File

@ -1098,7 +1098,7 @@ public class TemplateManagerImpl implements TemplateManager, Manager, TemplateSe
s_logger.info("S3 secondary storage synchronization is disabled.");
}
return false;
return true;
}
protected TemplateManagerImpl() {

View File

@ -35,6 +35,10 @@ public class AdapterBase implements Adapter {
public String getName() {
return _name;
}
public void setName(String name) {
_name = name;
}
@Override
public boolean start() {