diff --git a/api/src/com/cloud/user/UserContext.java b/api/src/com/cloud/user/UserContext.java index 39da4eafd2e..54c01347097 100644 --- a/api/src/com/cloud/user/UserContext.java +++ b/api/src/com/cloud/user/UserContext.java @@ -16,7 +16,6 @@ // under the License. package com.cloud.user; - public class UserContext { private static ThreadLocal s_currentContext = new ThreadLocal(); diff --git a/client/WEB-INF/web.xml b/client/WEB-INF/web.xml index c6fd30fa3ac..0d75165659e 100644 --- a/client/WEB-INF/web.xml +++ b/client/WEB-INF/web.xml @@ -25,7 +25,7 @@ contextConfigLocation - classpath:applicationContext.xml + classpath:applicationContext.xml, classpath:componentContext.xml diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in index aabf9636d95..34bb853c52e 100644 --- a/client/tomcatconf/applicationContext.xml.in +++ b/client/tomcatconf/applicationContext.xml.in @@ -13,6 +13,7 @@ http://www.springframework.org/schema/context/spring-context-3.0.xsd"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java b/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java index 36d4580ccb8..cf8d43a70bc 100644 --- a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java +++ b/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java @@ -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, diff --git a/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java b/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java index 6bc08f6c787..ebae66061b3 100644 --- a/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java +++ b/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java @@ -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 diff --git a/server/src/com/cloud/api/ApiDBUtils.java b/server/src/com/cloud/api/ApiDBUtils.java index 8a15dd12a7d..af061b11cff 100755 --- a/server/src/com/cloud/api/ApiDBUtils.java +++ b/server/src/com/cloud/api/ApiDBUtils.java @@ -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(); diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java index b4c0e2760f8..4cb892f448a 100755 --- a/server/src/com/cloud/api/ApiServer.java +++ b/server/src/com/cloud/api/ApiServer.java @@ -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 _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 parameterNames = new ArrayList(); diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java index 116e7113066..6760dec2f44 100644 --- a/server/src/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/com/cloud/api/query/QueryManagerImpl.java @@ -214,8 +214,7 @@ public class QueryManagerImpl implements QueryService, Manager { @Override public boolean configure(String name, Map params) throws ConfigurationException { _name = name; - // _responseGenerator = new ViewResponseHelper(); - return false; + return true; } @Override diff --git a/server/src/com/cloud/event/dao/EventJoinDaoImpl.java b/server/src/com/cloud/event/dao/EventJoinDaoImpl.java index 764df99557f..873ee292224 100644 --- a/server/src/com/cloud/event/dao/EventJoinDaoImpl.java +++ b/server/src/com/cloud/event/dao/EventJoinDaoImpl.java @@ -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 implements EventJoinDao { public static final Logger s_logger = Logger.getLogger(EventJoinDaoImpl.class); diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index bca676e00a2..f74abfc0807 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -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 _networkGurus; - // @com.cloud.utils.component.Inject(adapter = NetworkElement.class) @Inject List _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) { diff --git a/server/src/com/cloud/network/element/BareMetalElement.java b/server/src/com/cloud/network/element/BareMetalElement.java index d13cf141c0d..553fe1d63b2 100644 --- a/server/src/com/cloud/network/element/BareMetalElement.java +++ b/server/src/com/cloud/network/element/BareMetalElement.java @@ -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); diff --git a/server/src/com/cloud/network/element/CloudZonesNetworkElement.java b/server/src/com/cloud/network/element/CloudZonesNetworkElement.java index 0cf632cb666..cc3546084de 100644 --- a/server/src/com/cloud/network/element/CloudZonesNetworkElement.java +++ b/server/src/com/cloud/network/element/CloudZonesNetworkElement.java @@ -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); diff --git a/server/src/com/cloud/network/element/ExternalDhcpElement.java b/server/src/com/cloud/network/element/ExternalDhcpElement.java index 0f99abdc698..f7c465ddd35 100755 --- a/server/src/com/cloud/network/element/ExternalDhcpElement.java +++ b/server/src/com/cloud/network/element/ExternalDhcpElement.java @@ -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); diff --git a/server/src/com/cloud/network/element/SecurityGroupElement.java b/server/src/com/cloud/network/element/SecurityGroupElement.java index bcc8ecc9269..0659db781e3 100644 --- a/server/src/com/cloud/network/element/SecurityGroupElement.java +++ b/server/src/com/cloud/network/element/SecurityGroupElement.java @@ -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> capabilities = setCapabilities(); diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java index b25d4c47876..8a69e56bd2c 100755 --- a/server/src/com/cloud/network/element/VirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VirtualRouterElement.java @@ -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, diff --git a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java index 49ca0b4878d..60924a2a6ab 100644 --- a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java @@ -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); diff --git a/server/src/com/cloud/server/CloudStackComponentComposer.java b/server/src/com/cloud/server/CloudStackComponentComposer.java new file mode 100644 index 00000000000..6bd9bc5db45 --- /dev/null +++ b/server/src/com/cloud/server/CloudStackComponentComposer.java @@ -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 _managers = new ArrayList(); + + 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 getManagers() { + return _managers; + } +} diff --git a/server/src/com/cloud/server/ManagementServerExtImpl.java b/server/src/com/cloud/server/ManagementServerExtImpl.java index 310698536b0..ed05395d45c 100644 --- a/server/src/com/cloud/server/ManagementServerExtImpl.java +++ b/server/src/com/cloud/server/ManagementServerExtImpl.java @@ -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; diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index c9a59040216..65501e3b416 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -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; diff --git a/server/src/com/cloud/storage/s3/S3ManagerImpl.java b/server/src/com/cloud/storage/s3/S3ManagerImpl.java index 62db0bb671d..16e2ad900db 100644 --- a/server/src/com/cloud/storage/s3/S3ManagerImpl.java +++ b/server/src/com/cloud/storage/s3/S3ManagerImpl.java @@ -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)) { diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java index 3a8bec5ff87..1ce9578408f 100755 --- a/server/src/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/com/cloud/template/TemplateManagerImpl.java @@ -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() { diff --git a/utils/src/com/cloud/utils/component/AdapterBase.java b/utils/src/com/cloud/utils/component/AdapterBase.java index 7b75993776b..8fd374aebee 100644 --- a/utils/src/com/cloud/utils/component/AdapterBase.java +++ b/utils/src/com/cloud/utils/component/AdapterBase.java @@ -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() {