diff --git a/api/src/org/apache/cloudstack/api/BaseCmd.java b/api/src/org/apache/cloudstack/api/BaseCmd.java index ba2c4d21a50..fe976946614 100644 --- a/api/src/org/apache/cloudstack/api/BaseCmd.java +++ b/api/src/org/apache/cloudstack/api/BaseCmd.java @@ -25,6 +25,8 @@ import java.util.List; import java.util.Map; import java.util.regex.Pattern; +import javax.inject.Inject; + import org.apache.cloudstack.query.QueryService; import org.apache.log4j.Logger; @@ -109,84 +111,43 @@ public abstract class BaseCmd { @Parameter(name = "response", type = CommandType.STRING) private String responseType; - public static ConfigurationService _configService; - public static AccountService _accountService; - public static UserVmService _userVmService; - public static ManagementService _mgr; - public static StorageService _storageService; - public static ResourceService _resourceService; - public static NetworkService _networkService; - public static TemplateService _templateService; - public static SecurityGroupService _securityGroupService; - public static SnapshotService _snapshotService; - public static ConsoleProxyService _consoleProxyService; - public static VpcVirtualNetworkApplianceService _routerService; - public static ResponseGenerator _responseGenerator; - public static EntityManager _entityMgr; - public static RulesService _rulesService; - public static AutoScaleService _autoScaleService; - public static LoadBalancingRulesService _lbService; - public static RemoteAccessVpnService _ravService; - public static BareMetalVmService _bareMetalVmService; - public static ProjectService _projectService; - public static FirewallService _firewallService; - public static DomainService _domainService; - public static ResourceLimitService _resourceLimitService; - public static IdentityService _identityService; - public static StorageNetworkService _storageNetworkService; - public static TaggedResourceService _taggedResourceService; - public static VpcService _vpcService; - public static NetworkACLService _networkACLService; - public static Site2SiteVpnService _s2sVpnService; + @Inject public ConfigurationService _configService; + @Inject public AccountService _accountService; + @Inject public UserVmService _userVmService; + @Inject public ManagementService _mgr; + @Inject public StorageService _storageService; + @Inject public ResourceService _resourceService; + @Inject public NetworkService _networkService; + @Inject public TemplateService _templateService; + @Inject public SecurityGroupService _securityGroupService; + @Inject public SnapshotService _snapshotService; + @Inject public ConsoleProxyService _consoleProxyService; + @Inject public VpcVirtualNetworkApplianceService _routerService; + @Inject public ResponseGenerator _responseGenerator; + @Inject public EntityManager _entityMgr; + @Inject public RulesService _rulesService; + @Inject public AutoScaleService _autoScaleService; + @Inject public LoadBalancingRulesService _lbService; + @Inject public RemoteAccessVpnService _ravService; + @Inject public BareMetalVmService _bareMetalVmService; + @Inject public ProjectService _projectService; + @Inject public FirewallService _firewallService; + @Inject public DomainService _domainService; + @Inject public ResourceLimitService _resourceLimitService; + @Inject public IdentityService _identityService; + @Inject public StorageNetworkService _storageNetworkService; + @Inject public TaggedResourceService _taggedResourceService; + @Inject public VpcService _vpcService; + @Inject public NetworkACLService _networkACLService; + @Inject public Site2SiteVpnService _s2sVpnService; - public static QueryService _queryService; - - public static void setComponents(ResponseGenerator generator) { - _mgr = ComponentContext.getComponent(ManagementService.class); - _accountService = ComponentContext.getComponent(AccountService.class); - _configService = ComponentContext.getComponent(ConfigurationService.class); - - _userVmService = ComponentContext.getComponent(UserVmService.class); - - // TODO, ugly and will change soon - // - Map svmServices = ComponentContext.getComponentsOfType(UserVmService.class); - _userVmService = svmServices.get("BareMetalVmManagerImpl"); - - _storageService = ComponentContext.getComponent(StorageService.class); - _resourceService = ComponentContext.getComponent(ResourceService.class); - - _networkService = ComponentContext.getComponent(NetworkService.class); - _templateService = ComponentContext.getComponent(TemplateService.class); - - // TODO, will change to looking for primary component - // ugly binding to a specific implementation - Map _sgServices = ComponentContext.getComponentsOfType(SecurityGroupService.class); - _securityGroupService = _sgServices.get("SecurityGroupManagerImpl2"); - - _snapshotService = ComponentContext.getComponent(SnapshotService.class); - _consoleProxyService = ComponentContext.getComponent(ConsoleProxyService.class); - _routerService = ComponentContext.getComponent(VpcVirtualNetworkApplianceService.class); - _entityMgr = ComponentContext.getComponent(EntityManager.class); - _rulesService = ComponentContext.getComponent(RulesService.class); - _lbService = ComponentContext.getComponent(LoadBalancingRulesService.class); - _ravService = ComponentContext.getComponent(RemoteAccessVpnService.class); - _responseGenerator = generator; - _bareMetalVmService = ComponentContext.getComponent(BareMetalVmService.class); - _projectService = ComponentContext.getComponent(ProjectService.class); - _firewallService = ComponentContext.getComponent(FirewallService.class); - _domainService = ComponentContext.getComponent(DomainService.class); - _resourceLimitService = ComponentContext.getComponent(ResourceLimitService.class); - _identityService = ComponentContext.getComponent(IdentityService.class); - _storageNetworkService = ComponentContext.getComponent(StorageNetworkService.class); - _taggedResourceService = ComponentContext.getComponent(TaggedResourceService.class); - _vpcService = ComponentContext.getComponent(VpcService.class); - _networkACLService = ComponentContext.getComponent(NetworkACLService.class); - _s2sVpnService = ComponentContext.getComponent(Site2SiteVpnService.class); - } + @Inject public QueryService _queryService; public abstract void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException, NetworkRuleConflictException; + public void configure() { + } + public String getResponseType() { if (responseType == null) { return RESPONSE_TYPE_XML; diff --git a/api/src/org/apache/cloudstack/api/BaseListCmd.java b/api/src/org/apache/cloudstack/api/BaseListCmd.java index 58e83f70929..bc0b2b8f3b5 100644 --- a/api/src/org/apache/cloudstack/api/BaseListCmd.java +++ b/api/src/org/apache/cloudstack/api/BaseListCmd.java @@ -42,6 +42,9 @@ public abstract class BaseListCmd extends BaseCmd { // ///////////////// Accessors /////////////////////// // /////////////////////////////////////////////////// + public BaseListCmd() { + } + public String getKeyword() { return keyword; } @@ -62,10 +65,14 @@ public abstract class BaseListCmd extends BaseCmd { return pageSize; } - public static void configure() { - if (_configService.getDefaultPageSize().longValue() != PAGESIZE_UNLIMITED) { - MAX_PAGESIZE = _configService.getDefaultPageSize(); - } + public void configure() { + if(MAX_PAGESIZE == null) { + if (_configService.getDefaultPageSize().longValue() != PAGESIZE_UNLIMITED) { + MAX_PAGESIZE = _configService.getDefaultPageSize(); + } else { + MAX_PAGESIZE = PAGESIZE_UNLIMITED; + } + } } @Override diff --git a/core/src/com/cloud/vm/VMInstanceVO.java b/core/src/com/cloud/vm/VMInstanceVO.java index c63dd839c58..33ebed99664 100644 --- a/core/src/com/cloud/vm/VMInstanceVO.java +++ b/core/src/com/cloud/vm/VMInstanceVO.java @@ -42,7 +42,6 @@ import com.cloud.utils.db.GenericDao; import com.cloud.utils.db.StateMachine; import com.cloud.utils.fsm.FiniteStateObject; import com.cloud.vm.VirtualMachine.State; -import org.apache.cloudstack.api.InternalIdentity; @Entity @Table(name="vm_instance") @@ -144,12 +143,6 @@ public class VMInstanceVO implements VirtualMachine, FiniteStateObject implements SnapshotDao2 { } diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java index f73d72c19da..faca54b569a 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java +++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java @@ -26,6 +26,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.inject.Inject; import javax.naming.ConfigurationException; import org.apache.cloudstack.storage.datastore.DataStoreStatus; @@ -49,7 +50,7 @@ public class PrimaryDataStoreDaoImpl extends GenericDaoBase DeleteLvmSearch; protected final GenericSearchBuilder StatusCountSearch; - protected final PrimaryDataStoreDetailsDao _detailsDao = null; + @Inject protected PrimaryDataStoreDetailsDao _detailsDao; private final String DetailsSqlPrefix = "SELECT storage_pool.* from storage_pool LEFT JOIN storage_pool_details ON storage_pool.id = storage_pool_details.pool_id WHERE storage_pool.removed is null and storage_pool.data_center_id = ? and (storage_pool.pod_id = ? or storage_pool.pod_id is null) and ("; private final String DetailsSqlSuffix = ") GROUP BY storage_pool_details.pool_id HAVING COUNT(storage_pool_details.name) >= ?"; @@ -95,8 +96,6 @@ public class PrimaryDataStoreDaoImpl extends GenericDaoBase cmdClass = getCmdClass(command[0]); if (cmdClass != null) { BaseCmd cmdObj = (BaseCmd) cmdClass.newInstance(); + cmdObj = ComponentContext.inject(cmdObj); + cmdObj.configure(); cmdObj.setFullUrlParams(paramMap); cmdObj.setResponseType(responseType); // This is where the command is either serialized, or directly dispatched