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);

Reply via email to