Updated Branches: refs/heads/javelin 8f3789dab -> e2078ec6e
Solve Spring loading issues with a few Dao and Manager components Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/e2078ec6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/e2078ec6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/e2078ec6 Branch: refs/heads/javelin Commit: e2078ec6e49b6c3f74bd7908d2bdbb026db5fb85 Parents: 8f3789d Author: Kelven Yang <[email protected]> Authored: Wed Jan 2 13:55:26 2013 -0800 Committer: Kelven Yang <[email protected]> Committed: Wed Jan 2 13:55:26 2013 -0800 ---------------------------------------------------------------------- .../agent/manager/ClusteredAgentManagerImpl.java | 2 + .../src/com/cloud/cluster/ClusterManagerImpl.java | 2 + .../configuration/ConfigurationManagerImpl.java | 2 +- .../consoleproxy/ConsoleProxyManagerImpl.java | 2 + .../cloud/ha/HighAvailabilityManagerExtImpl.java | 2 + server/src/com/cloud/host/dao/HostDaoImpl.java | 84 ++++++++------- .../com/cloud/network/NetworkAccountDaoImpl.java | 3 + .../com/cloud/network/dao/IPAddressDaoImpl.java | 18 ++-- .../src/com/cloud/network/dao/NetworkDaoImpl.java | 39 ++++--- .../network/dao/Site2SiteVpnConnectionDaoImpl.java | 13 ++- .../src/com/cloud/storage/dao/SnapshotDaoImpl.java | 27 +++-- .../vm/ClusteredVirtualMachineManagerImpl.java | 2 + .../src/com/cloud/vm/dao/DomainRouterDaoImpl.java | 20 ++-- server/src/com/cloud/vm/dao/VMInstanceDaoImpl.java | 39 ++++--- 14 files changed, 149 insertions(+), 106 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e2078ec6/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java b/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java index 08f4fa6..eb39c0e 100755 --- a/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java @@ -44,6 +44,7 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.SSLEngine; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import com.cloud.agent.AgentManager; @@ -90,6 +91,7 @@ import com.cloud.utils.nio.Link; import com.cloud.utils.nio.Task; @Component +@Primary @Local(value = { AgentManager.class, ClusteredAgentRebalanceService.class }) public class ClusteredAgentManagerImpl extends AgentManagerImpl implements ClusterManagerListener, ClusteredAgentRebalanceService { final static Logger s_logger = Logger.getLogger(ClusteredAgentManagerImpl.class); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e2078ec6/server/src/com/cloud/cluster/ClusterManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/cluster/ClusterManagerImpl.java b/server/src/com/cloud/cluster/ClusterManagerImpl.java index 9cb7891..19705ec 100755 --- a/server/src/com/cloud/cluster/ClusterManagerImpl.java +++ b/server/src/com/cloud/cluster/ClusterManagerImpl.java @@ -45,6 +45,7 @@ import javax.inject.Inject; import javax.naming.ConfigurationException; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import com.cloud.agent.AgentManager; @@ -91,6 +92,7 @@ import com.cloud.utils.net.NetUtils; import com.google.gson.Gson; @Component +@Primary @Local(value = { ClusterManager.class }) public class ClusterManagerImpl implements ClusterManager { private static final Logger s_logger = Logger.getLogger(ClusterManagerImpl.class); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e2078ec6/server/src/com/cloud/configuration/ConfigurationManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index 2a4bb89..e2e657d 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -237,7 +237,7 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura VpcManager _vpcMgr; // FIXME - why don't we have interface for DataCenterLinkLocalIpAddressDao? - protected static final DataCenterLinkLocalIpAddressDaoImpl _LinkLocalIpAllocDao = ComponentLocator.inject(DataCenterLinkLocalIpAddressDaoImpl.class); + @Inject protected DataCenterLinkLocalIpAddressDaoImpl _LinkLocalIpAllocDao; private int _maxVolumeSizeInGb; private long _defaultPageSize; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e2078ec6/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java index 154204b..ccfb353 100755 --- a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java +++ b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java @@ -33,6 +33,7 @@ import javax.naming.ConfigurationException; import javax.persistence.Table; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import com.cloud.agent.AgentManager; @@ -172,6 +173,7 @@ import com.google.gson.GsonBuilder; // because sooner or later, it will be driven into Running state // @Component +@Primary @Local(value = { ConsoleProxyManager.class, ConsoleProxyService.class }) public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProxyService, Manager, AgentHook, VirtualMachineGuru<ConsoleProxyVO>, SystemVmLoadScanHandler<Long>, ResourceStateAdapter { private static final Logger s_logger = Logger.getLogger(ConsoleProxyManagerImpl.class); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e2078ec6/server/src/com/cloud/ha/HighAvailabilityManagerExtImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/ha/HighAvailabilityManagerExtImpl.java b/server/src/com/cloud/ha/HighAvailabilityManagerExtImpl.java index e8c5005..ec6d20c 100644 --- a/server/src/com/cloud/ha/HighAvailabilityManagerExtImpl.java +++ b/server/src/com/cloud/ha/HighAvailabilityManagerExtImpl.java @@ -24,6 +24,7 @@ import javax.ejb.Local; import javax.inject.Inject; import javax.naming.ConfigurationException; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import com.cloud.alert.AlertManager; @@ -34,6 +35,7 @@ import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.db.Transaction; @Component +@Primary @Local(value={HighAvailabilityManager.class}) public class HighAvailabilityManagerExtImpl extends HighAvailabilityManagerImpl { http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e2078ec6/server/src/com/cloud/host/dao/HostDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/host/dao/HostDaoImpl.java b/server/src/com/cloud/host/dao/HostDaoImpl.java index 1da6b4c..e58d267 100755 --- a/server/src/com/cloud/host/dao/HostDaoImpl.java +++ b/server/src/com/cloud/host/dao/HostDaoImpl.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.Map; import java.util.TimeZone; +import javax.annotation.PostConstruct; import javax.ejb.Local; import javax.inject.Inject; import javax.persistence.TableGenerator; @@ -71,57 +72,60 @@ public class HostDaoImpl extends GenericDaoBase<HostVO, Long> implements HostDao private static final Logger status_logger = Logger.getLogger(Status.class); private static final Logger state_logger = Logger.getLogger(ResourceState.class); - protected final SearchBuilder<HostVO> TypePodDcStatusSearch; - - protected final SearchBuilder<HostVO> IdStatusSearch; - protected final SearchBuilder<HostVO> TypeDcSearch; - protected final SearchBuilder<HostVO> TypeDcStatusSearch; - protected final SearchBuilder<HostVO> TypeClusterStatusSearch; - protected final SearchBuilder<HostVO> MsStatusSearch; - protected final SearchBuilder<HostVO> DcPrivateIpAddressSearch; - protected final SearchBuilder<HostVO> DcStorageIpAddressSearch; - - protected final SearchBuilder<HostVO> GuidSearch; - protected final SearchBuilder<HostVO> DcSearch; - protected final SearchBuilder<HostVO> PodSearch; - protected final SearchBuilder<HostVO> TypeSearch; - protected final SearchBuilder<HostVO> StatusSearch; - protected final SearchBuilder<HostVO> ResourceStateSearch; - protected final SearchBuilder<HostVO> NameLikeSearch; - protected final SearchBuilder<HostVO> NameSearch; - protected final SearchBuilder<HostVO> SequenceSearch; - protected final SearchBuilder<HostVO> DirectlyConnectedSearch; - protected final SearchBuilder<HostVO> UnmanagedDirectConnectSearch; - protected final SearchBuilder<HostVO> UnmanagedApplianceSearch; - protected final SearchBuilder<HostVO> MaintenanceCountSearch; - protected final SearchBuilder<HostVO> ClusterStatusSearch; - protected final SearchBuilder<HostVO> TypeNameZoneSearch; - protected final SearchBuilder<HostVO> AvailHypevisorInZone; - - protected final SearchBuilder<HostVO> DirectConnectSearch; - protected final SearchBuilder<HostVO> ManagedDirectConnectSearch; - protected final SearchBuilder<HostVO> ManagedRoutingServersSearch; - protected final SearchBuilder<HostVO> SecondaryStorageVMSearch; + protected SearchBuilder<HostVO> TypePodDcStatusSearch; + + protected SearchBuilder<HostVO> IdStatusSearch; + protected SearchBuilder<HostVO> TypeDcSearch; + protected SearchBuilder<HostVO> TypeDcStatusSearch; + protected SearchBuilder<HostVO> TypeClusterStatusSearch; + protected SearchBuilder<HostVO> MsStatusSearch; + protected SearchBuilder<HostVO> DcPrivateIpAddressSearch; + protected SearchBuilder<HostVO> DcStorageIpAddressSearch; + + protected SearchBuilder<HostVO> GuidSearch; + protected SearchBuilder<HostVO> DcSearch; + protected SearchBuilder<HostVO> PodSearch; + protected SearchBuilder<HostVO> TypeSearch; + protected SearchBuilder<HostVO> StatusSearch; + protected SearchBuilder<HostVO> ResourceStateSearch; + protected SearchBuilder<HostVO> NameLikeSearch; + protected SearchBuilder<HostVO> NameSearch; + protected SearchBuilder<HostVO> SequenceSearch; + protected SearchBuilder<HostVO> DirectlyConnectedSearch; + protected SearchBuilder<HostVO> UnmanagedDirectConnectSearch; + protected SearchBuilder<HostVO> UnmanagedApplianceSearch; + protected SearchBuilder<HostVO> MaintenanceCountSearch; + protected SearchBuilder<HostVO> ClusterStatusSearch; + protected SearchBuilder<HostVO> TypeNameZoneSearch; + protected SearchBuilder<HostVO> AvailHypevisorInZone; + + protected SearchBuilder<HostVO> DirectConnectSearch; + protected SearchBuilder<HostVO> ManagedDirectConnectSearch; + protected SearchBuilder<HostVO> ManagedRoutingServersSearch; + protected SearchBuilder<HostVO> SecondaryStorageVMSearch; - protected final GenericSearchBuilder<HostVO, Long> HostsInStatusSearch; - protected final GenericSearchBuilder<HostVO, Long> CountRoutingByDc; - protected final SearchBuilder<HostTransferMapVO> HostTransferSearch; + protected GenericSearchBuilder<HostVO, Long> HostsInStatusSearch; + protected GenericSearchBuilder<HostVO, Long> CountRoutingByDc; + protected SearchBuilder<HostTransferMapVO> HostTransferSearch; protected SearchBuilder<ClusterVO> ClusterManagedSearch; - protected final SearchBuilder<HostVO> RoutingSearch; + protected SearchBuilder<HostVO> RoutingSearch; - protected final Attribute _statusAttr; - protected final Attribute _resourceStateAttr; - protected final Attribute _msIdAttr; - protected final Attribute _pingTimeAttr; + protected Attribute _statusAttr; + protected Attribute _resourceStateAttr; + protected Attribute _msIdAttr; + protected Attribute _pingTimeAttr; @Inject protected HostDetailsDaoImpl _detailsDao; @Inject protected HostTagsDaoImpl _hostTagsDao; @Inject protected HostTransferMapDaoImpl _hostTransferDao; @Inject protected ClusterDaoImpl _clusterDao; - public HostDaoImpl() { + } + + @PostConstruct + public void init() { MaintenanceCountSearch = createSearchBuilder(); MaintenanceCountSearch.and("cluster", MaintenanceCountSearch.entity().getClusterId(), SearchCriteria.Op.EQ); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e2078ec6/server/src/com/cloud/network/NetworkAccountDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/NetworkAccountDaoImpl.java b/server/src/com/cloud/network/NetworkAccountDaoImpl.java index 8881339..e8ff27c 100644 --- a/server/src/com/cloud/network/NetworkAccountDaoImpl.java +++ b/server/src/com/cloud/network/NetworkAccountDaoImpl.java @@ -16,9 +16,12 @@ // under the License. package com.cloud.network; +import org.springframework.stereotype.Component; + import com.cloud.utils.db.GenericDao; import com.cloud.utils.db.GenericDaoBase; +@Component public class NetworkAccountDaoImpl extends GenericDaoBase<NetworkAccountVO, Long> implements GenericDao<NetworkAccountVO, Long> { public NetworkAccountDaoImpl() { super(); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e2078ec6/server/src/com/cloud/network/dao/IPAddressDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/dao/IPAddressDaoImpl.java b/server/src/com/cloud/network/dao/IPAddressDaoImpl.java index 5b0a8d1..833c831 100755 --- a/server/src/com/cloud/network/dao/IPAddressDaoImpl.java +++ b/server/src/com/cloud/network/dao/IPAddressDaoImpl.java @@ -21,6 +21,7 @@ import java.sql.ResultSet; import java.util.Date; import java.util.List; +import javax.annotation.PostConstruct; import javax.ejb.Local; import javax.inject.Inject; @@ -52,19 +53,22 @@ import com.cloud.utils.net.Ip; public class IPAddressDaoImpl extends GenericDaoBase<IPAddressVO, Long> implements IPAddressDao { private static final Logger s_logger = Logger.getLogger(IPAddressDaoImpl.class); - protected final SearchBuilder<IPAddressVO> AllFieldsSearch; - protected final SearchBuilder<IPAddressVO> VlanDbIdSearchUnallocated; - protected final GenericSearchBuilder<IPAddressVO, Integer> AllIpCount; - protected final GenericSearchBuilder<IPAddressVO, Integer> AllocatedIpCount; - protected final GenericSearchBuilder<IPAddressVO, Integer> AllIpCountForDashboard; - protected final GenericSearchBuilder<IPAddressVO, Long> AllocatedIpCountForAccount; + protected SearchBuilder<IPAddressVO> AllFieldsSearch; + protected SearchBuilder<IPAddressVO> VlanDbIdSearchUnallocated; + protected GenericSearchBuilder<IPAddressVO, Integer> AllIpCount; + protected GenericSearchBuilder<IPAddressVO, Integer> AllocatedIpCount; + protected GenericSearchBuilder<IPAddressVO, Integer> AllIpCountForDashboard; + protected GenericSearchBuilder<IPAddressVO, Long> AllocatedIpCountForAccount; @Inject protected VlanDaoImpl _vlanDao; protected GenericSearchBuilder<IPAddressVO, Long> CountFreePublicIps; @Inject ResourceTagsDaoImpl _tagsDao; - // make it public for JUnit test public IPAddressDaoImpl() { + } + + @PostConstruct + public void init() { AllFieldsSearch = createSearchBuilder(); AllFieldsSearch.and("id", AllFieldsSearch.entity().getId(), Op.EQ); AllFieldsSearch.and("dataCenterId", AllFieldsSearch.entity().getDataCenterId(), Op.EQ); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e2078ec6/server/src/com/cloud/network/dao/NetworkDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/dao/NetworkDaoImpl.java b/server/src/com/cloud/network/dao/NetworkDaoImpl.java index bb48e45..9a21346 100644 --- a/server/src/com/cloud/network/dao/NetworkDaoImpl.java +++ b/server/src/com/cloud/network/dao/NetworkDaoImpl.java @@ -20,6 +20,7 @@ import java.util.List; import java.util.Map; import java.util.Random; +import javax.annotation.PostConstruct; import javax.ejb.Local; import javax.inject.Inject; import javax.persistence.TableGenerator; @@ -62,20 +63,20 @@ import com.cloud.utils.net.NetUtils; @Local(value = NetworkDao.class) @DB(txn = false) public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements NetworkDao { - final SearchBuilder<NetworkVO> AllFieldsSearch; - final SearchBuilder<NetworkVO> AccountSearch; - final SearchBuilder<NetworkVO> RelatedConfigSearch; - final SearchBuilder<NetworkVO> AccountNetworkSearch; - final SearchBuilder<NetworkVO> ZoneBroadcastUriSearch; - final SearchBuilder<NetworkVO> ZoneSecurityGroupSearch; - final GenericSearchBuilder<NetworkVO, Integer> CountBy; - final SearchBuilder<NetworkVO> PhysicalNetworkSearch; - final SearchBuilder<NetworkVO> SecurityGroupSearch; - final GenericSearchBuilder<NetworkVO, Long> NetworksRegularUserCanCreateSearch; - private final GenericSearchBuilder<NetworkVO, Integer> NetworksCount; - final SearchBuilder<NetworkVO> SourceNATSearch; - final GenericSearchBuilder<NetworkVO, Long> CountByZoneAndURI; - final GenericSearchBuilder<NetworkVO, Long> VpcNetworksCount; + SearchBuilder<NetworkVO> AllFieldsSearch; + SearchBuilder<NetworkVO> AccountSearch; + SearchBuilder<NetworkVO> RelatedConfigSearch; + SearchBuilder<NetworkVO> AccountNetworkSearch; + SearchBuilder<NetworkVO> ZoneBroadcastUriSearch; + SearchBuilder<NetworkVO> ZoneSecurityGroupSearch; + GenericSearchBuilder<NetworkVO, Integer> CountBy; + SearchBuilder<NetworkVO> PhysicalNetworkSearch; + SearchBuilder<NetworkVO> SecurityGroupSearch; + GenericSearchBuilder<NetworkVO, Long> NetworksRegularUserCanCreateSearch; + GenericSearchBuilder<NetworkVO, Integer> NetworksCount; + SearchBuilder<NetworkVO> SourceNATSearch; + GenericSearchBuilder<NetworkVO, Long> CountByZoneAndURI; + GenericSearchBuilder<NetworkVO, Long> VpcNetworksCount; @Inject ResourceTagsDaoImpl _tagsDao; @@ -86,13 +87,15 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N @Inject NetworkOfferingDaoImpl _ntwkOffDao; - final TableGenerator _tgMacAddress; + TableGenerator _tgMacAddress; Random _rand = new Random(System.currentTimeMillis()); long _prefix = 0x2; - protected NetworkDaoImpl() { - super(); - + public NetworkDaoImpl() { + } + + @PostConstruct + protected void init() { AllFieldsSearch = createSearchBuilder(); AllFieldsSearch.and("trafficType", AllFieldsSearch.entity().getTrafficType(), Op.EQ); AllFieldsSearch.and("cidr", AllFieldsSearch.entity().getCidr(), Op.EQ); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e2078ec6/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDaoImpl.java b/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDaoImpl.java index fbed906..2dbae75 100644 --- a/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDaoImpl.java +++ b/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDaoImpl.java @@ -18,6 +18,7 @@ package com.cloud.network.dao; import java.util.List; +import javax.annotation.PostConstruct; import javax.ejb.Local; import javax.inject.Inject; @@ -41,11 +42,15 @@ public class Site2SiteVpnConnectionDaoImpl extends GenericDaoBase<Site2SiteVpnCo @Inject protected IPAddressDaoImpl _addrDao; @Inject protected Site2SiteVpnGatewayDaoImpl _vpnGatewayDao; - private final SearchBuilder<Site2SiteVpnConnectionVO> AllFieldsSearch; - private final SearchBuilder<Site2SiteVpnConnectionVO> VpcSearch; - private final SearchBuilder<Site2SiteVpnGatewayVO> VpnGatewaySearch; + private SearchBuilder<Site2SiteVpnConnectionVO> AllFieldsSearch; + private SearchBuilder<Site2SiteVpnConnectionVO> VpcSearch; + private SearchBuilder<Site2SiteVpnGatewayVO> VpnGatewaySearch; - protected Site2SiteVpnConnectionDaoImpl() { + public Site2SiteVpnConnectionDaoImpl() { + } + + @PostConstruct + protected void init() { AllFieldsSearch = createSearchBuilder(); AllFieldsSearch.and("customerGatewayId", AllFieldsSearch.entity().getCustomerGatewayId(), SearchCriteria.Op.EQ); AllFieldsSearch.and("vpnGatewayId", AllFieldsSearch.entity().getVpnGatewayId(), SearchCriteria.Op.EQ); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e2078ec6/server/src/com/cloud/storage/dao/SnapshotDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/storage/dao/SnapshotDaoImpl.java b/server/src/com/cloud/storage/dao/SnapshotDaoImpl.java index 9a52d4c..7868b36 100644 --- a/server/src/com/cloud/storage/dao/SnapshotDaoImpl.java +++ b/server/src/com/cloud/storage/dao/SnapshotDaoImpl.java @@ -20,6 +20,7 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.List; +import javax.annotation.PostConstruct; import javax.ejb.Local; import javax.inject.Inject; @@ -55,16 +56,16 @@ public class SnapshotDaoImpl extends GenericDaoBase<SnapshotVO, Long> implements private static final String GET_SECHOST_ID = "SELECT sechost_id FROM snapshots where volume_id = ? AND backup_snap_id IS NOT NULL AND sechost_id IS NOT NULL LIMIT 1"; private static final String UPDATE_SECHOST_ID = "UPDATE snapshots SET sechost_id = ? WHERE data_center_id = ?"; - private final SearchBuilder<SnapshotVO> VolumeIdSearch; - private final SearchBuilder<SnapshotVO> VolumeIdTypeSearch; - private final SearchBuilder<SnapshotVO> ParentIdSearch; - private final SearchBuilder<SnapshotVO> backupUuidSearch; - private final SearchBuilder<SnapshotVO> VolumeIdVersionSearch; - private final SearchBuilder<SnapshotVO> HostIdSearch; - private final SearchBuilder<SnapshotVO> AccountIdSearch; - private final SearchBuilder<SnapshotVO> InstanceIdSearch; - private final SearchBuilder<SnapshotVO> StatusSearch; - private final GenericSearchBuilder<SnapshotVO, Long> CountSnapshotsByAccount; + private SearchBuilder<SnapshotVO> VolumeIdSearch; + private SearchBuilder<SnapshotVO> VolumeIdTypeSearch; + private SearchBuilder<SnapshotVO> ParentIdSearch; + private SearchBuilder<SnapshotVO> backupUuidSearch; + private SearchBuilder<SnapshotVO> VolumeIdVersionSearch; + private SearchBuilder<SnapshotVO> HostIdSearch; + private SearchBuilder<SnapshotVO> AccountIdSearch; + private SearchBuilder<SnapshotVO> InstanceIdSearch; + private SearchBuilder<SnapshotVO> StatusSearch; + private GenericSearchBuilder<SnapshotVO, Long> CountSnapshotsByAccount; @Inject ResourceTagsDaoImpl _tagsDao; @Inject protected VMInstanceDaoImpl _instanceDao; @@ -141,7 +142,11 @@ public class SnapshotDaoImpl extends GenericDaoBase<SnapshotVO, Long> implements return listBy(sc, filter); } - protected SnapshotDaoImpl() { + public SnapshotDaoImpl() { + } + + @PostConstruct + protected void init() { VolumeIdSearch = createSearchBuilder(); VolumeIdSearch.and("volumeId", VolumeIdSearch.entity().getVolumeId(), SearchCriteria.Op.EQ); VolumeIdSearch.done(); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e2078ec6/server/src/com/cloud/vm/ClusteredVirtualMachineManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/vm/ClusteredVirtualMachineManagerImpl.java b/server/src/com/cloud/vm/ClusteredVirtualMachineManagerImpl.java index 20deaf1..96c7446 100644 --- a/server/src/com/cloud/vm/ClusteredVirtualMachineManagerImpl.java +++ b/server/src/com/cloud/vm/ClusteredVirtualMachineManagerImpl.java @@ -22,12 +22,14 @@ import java.util.Map; import javax.ejb.Local; import javax.naming.ConfigurationException; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import com.cloud.cluster.ClusterManagerListener; import com.cloud.cluster.ManagementServerHostVO; @Component +@Primary @Local(value=VirtualMachineManager.class) public class ClusteredVirtualMachineManagerImpl extends VirtualMachineManagerImpl implements ClusterManagerListener { http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e2078ec6/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java b/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java index e1e748e..028c472 100755 --- a/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java +++ b/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java @@ -18,6 +18,7 @@ package com.cloud.vm.dao; import java.util.List; +import javax.annotation.PostConstruct; import javax.ejb.Local; import javax.inject.Inject; @@ -34,7 +35,6 @@ import com.cloud.offering.NetworkOffering; import com.cloud.offerings.dao.NetworkOfferingDaoImpl; import com.cloud.user.UserStatisticsVO; import com.cloud.user.dao.UserStatisticsDaoImpl; -import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.db.DB; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.JoinBuilder.JoinType; @@ -50,18 +50,22 @@ import com.cloud.vm.VirtualMachine.State; @Local(value = { DomainRouterDao.class }) public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO, Long> implements DomainRouterDao { - protected final SearchBuilder<DomainRouterVO> AllFieldsSearch; - protected final SearchBuilder<DomainRouterVO> IdNetworkIdStatesSearch; - protected final SearchBuilder<DomainRouterVO> HostUpSearch; - protected final SearchBuilder<DomainRouterVO> StateNetworkTypeSearch; - protected final SearchBuilder<DomainRouterVO> OutsidePodSearch; + protected SearchBuilder<DomainRouterVO> AllFieldsSearch; + protected SearchBuilder<DomainRouterVO> IdNetworkIdStatesSearch; + protected SearchBuilder<DomainRouterVO> HostUpSearch; + protected SearchBuilder<DomainRouterVO> StateNetworkTypeSearch; + protected SearchBuilder<DomainRouterVO> OutsidePodSearch; @Inject HostDaoImpl _hostsDao; @Inject RouterNetworkDaoImpl _routerNetworkDao; @Inject UserStatisticsDaoImpl _userStatsDao; @Inject NetworkOfferingDaoImpl _offDao; - protected final SearchBuilder<DomainRouterVO> VpcSearch; + protected SearchBuilder<DomainRouterVO> VpcSearch; - protected DomainRouterDaoImpl() { + public DomainRouterDaoImpl() { + } + + @PostConstruct + protected void init() { AllFieldsSearch = createSearchBuilder(); AllFieldsSearch.and("dc", AllFieldsSearch.entity().getDataCenterIdToDeployIn(), Op.EQ); AllFieldsSearch.and("account", AllFieldsSearch.entity().getAccountId(), Op.EQ); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e2078ec6/server/src/com/cloud/vm/dao/VMInstanceDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/vm/dao/VMInstanceDaoImpl.java b/server/src/com/cloud/vm/dao/VMInstanceDaoImpl.java index 8484004..d97f4d7 100644 --- a/server/src/com/cloud/vm/dao/VMInstanceDaoImpl.java +++ b/server/src/com/cloud/vm/dao/VMInstanceDaoImpl.java @@ -26,6 +26,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.annotation.PostConstruct; import javax.ejb.Local; import javax.inject.Inject; @@ -65,20 +66,20 @@ public class VMInstanceDaoImpl extends GenericDaoBase<VMInstanceVO, Long> implem public static final Logger s_logger = Logger.getLogger(VMInstanceDaoImpl.class); - protected final SearchBuilder<VMInstanceVO> VMClusterSearch; - protected final SearchBuilder<VMInstanceVO> LHVMClusterSearch; - protected final SearchBuilder<VMInstanceVO> IdStatesSearch; - protected final SearchBuilder<VMInstanceVO> AllFieldsSearch; - protected final SearchBuilder<VMInstanceVO> ZoneTemplateNonExpungedSearch; - protected final SearchBuilder<VMInstanceVO> NameLikeSearch; - protected final SearchBuilder<VMInstanceVO> StateChangeSearch; - protected final SearchBuilder<VMInstanceVO> TransitionSearch; - protected final SearchBuilder<VMInstanceVO> TypesSearch; - protected final SearchBuilder<VMInstanceVO> IdTypesSearch; - protected final SearchBuilder<VMInstanceVO> HostIdTypesSearch; - protected final SearchBuilder<VMInstanceVO> HostIdUpTypesSearch; - protected final SearchBuilder<VMInstanceVO> HostUpSearch; - protected final GenericSearchBuilder<VMInstanceVO, Long> CountVirtualRoutersByAccount; + protected SearchBuilder<VMInstanceVO> VMClusterSearch; + protected SearchBuilder<VMInstanceVO> LHVMClusterSearch; + protected SearchBuilder<VMInstanceVO> IdStatesSearch; + protected SearchBuilder<VMInstanceVO> AllFieldsSearch; + protected SearchBuilder<VMInstanceVO> ZoneTemplateNonExpungedSearch; + protected SearchBuilder<VMInstanceVO> NameLikeSearch; + protected SearchBuilder<VMInstanceVO> StateChangeSearch; + protected SearchBuilder<VMInstanceVO> TransitionSearch; + protected SearchBuilder<VMInstanceVO> TypesSearch; + protected SearchBuilder<VMInstanceVO> IdTypesSearch; + protected SearchBuilder<VMInstanceVO> HostIdTypesSearch; + protected SearchBuilder<VMInstanceVO> HostIdUpTypesSearch; + protected SearchBuilder<VMInstanceVO> HostUpSearch; + protected GenericSearchBuilder<VMInstanceVO, Long> CountVirtualRoutersByAccount; protected GenericSearchBuilder<VMInstanceVO, Long> CountRunningByHost; protected GenericSearchBuilder<VMInstanceVO, Long> CountRunningByAccount; protected SearchBuilder<VMInstanceVO> NetworkTypeSearch; @@ -87,7 +88,7 @@ public class VMInstanceDaoImpl extends GenericDaoBase<VMInstanceVO, Long> implem @Inject ResourceTagsDaoImpl _tagsDao; @Inject NicDao _nicDao; - protected final Attribute _updateTimeAttr; + protected Attribute _updateTimeAttr; private static final String ORDER_CLUSTERS_NUMBER_OF_VMS_FOR_ACCOUNT_PART1 = "SELECT host.cluster_id, SUM(IF(vm.state='Running' AND vm.account_id = ?, 1, 0)) FROM `cloud`.`host` host LEFT JOIN `cloud`.`vm_instance` vm ON host.id = vm.host_id WHERE "; @@ -102,9 +103,13 @@ public class VMInstanceDaoImpl extends GenericDaoBase<VMInstanceVO, Long> implem " AND host.pod_id = ? AND host.cluster_id = ? AND host.type = 'Routing' " + " GROUP BY host.id ORDER BY 2 ASC "; - protected final HostDaoImpl _hostDao = ComponentLocator.inject(HostDaoImpl.class); + @Inject protected HostDaoImpl _hostDao; - protected VMInstanceDaoImpl() { + public VMInstanceDaoImpl() { + } + + @PostConstruct + protected void init() { IdStatesSearch = createSearchBuilder(); IdStatesSearch.and("id", IdStatesSearch.entity().getId(), Op.EQ);
