You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ke...@apache.org on 2013/01/19 04:15:47 UTC

[1/2] git commit: Bring javelin back to the status of being able to start System VMs after another round of master branch merge

Bring javelin back to the status of being able to start System VMs after another round of master branch merge


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/2c5859db
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/2c5859db
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/2c5859db

Branch: refs/heads/javelin
Commit: 2c5859dbd4cec202ea0dbd248e95834eadd83ecf
Parents: d056cd5
Author: Kelven Yang <ke...@gmail.com>
Authored: Fri Jan 18 19:15:09 2013 -0800
Committer: Kelven Yang <ke...@gmail.com>
Committed: Fri Jan 18 19:15:32 2013 -0800

----------------------------------------------------------------------
 client/tomcatconf/componentContext.xml.in          |   15 +-
 .../provider/DataStoreProviderManagerImpl.java     |    7 +-
 .../com/cloud/agent/manager/AgentManagerImpl.java  |    1 -
 .../agent/manager/ClusteredAgentManagerImpl.java   |    4 -
 .../cloud/baremetal/BareMetalVmManagerImpl.java    |    2 -
 .../src/com/cloud/cluster/ClusterManagerImpl.java  |    2 -
 .../com/cloud/cluster/DummyClusterManagerImpl.java |    1 -
 .../AgentBasedConsoleProxyManager.java             |    1 -
 .../AgentBasedStandaloneConsoleProxyManager.java   |    1 -
 .../consoleproxy/ConsoleProxyManagerImpl.java      |    2 -
 .../consoleproxy/StaticConsoleProxyManager.java    |    1 -
 .../cloud/ha/HighAvailabilityManagerExtImpl.java   |    2 -
 .../com/cloud/ha/HighAvailabilityManagerImpl.java  |    1 -
 server/src/com/cloud/network/NetworkModelImpl.java |    3 +-
 .../network/security/SecurityGroupManagerImpl.java |    1 -
 .../security/SecurityGroupManagerImpl2.java        |    2 -
 .../com/cloud/resource/ResourceManagerImpl.java    |    2 +-
 .../PremiumSecondaryStorageManagerImpl.java        |    2 -
 .../cloud/server/CloudStackComponentComposer.java  |  184 ---------------
 .../src/com/cloud/server/ManagementServerImpl.java |   46 +++-
 .../secondary/SecondaryStorageManagerImpl.java     |    1 -
 .../upgrade/PremiumDatabaseUpgradeChecker.java     |    2 -
 .../vm/ClusteredVirtualMachineManagerImpl.java     |    2 -
 server/src/com/cloud/vm/UserVmManagerImpl.java     |    2 -
 .../com/cloud/vm/VirtualMachineManagerImpl.java    |    1 -
 .../dao/RandomlyIncreasingVMInstanceDaoImpl.java   |    2 -
 server/src/com/cloud/vm/dao/UserVmDaoImpl.java     |    1 -
 setup/db/4.1-new-db-schema.sql                     |    2 +-
 utils/test/com/cloud/utils/DummyPremiumImpl.java   |    5 -
 29 files changed, 59 insertions(+), 239 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/client/tomcatconf/componentContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/componentContext.xml.in b/client/tomcatconf/componentContext.xml.in
index d6ed25a..782dfe0 100644
--- a/client/tomcatconf/componentContext.xml.in
+++ b/client/tomcatconf/componentContext.xml.in
@@ -32,11 +32,24 @@
 
 
   <!--
-      Configurable components
+      Compose a CloudStack deployment with selected components here
   -->
+  <bean id="databaseUpgradeChecker" class="com.cloud.upgrade.DatabaseUpgradeChecker" />
+  
   <bean id="management-server" class ="com.cloud.server.ManagementServerExtImpl" />
   <bean id="configuration-server" class="com.cloud.server.ConfigurationServerImpl" />
    
+  <bean id="clusterManagerImpl" class="com.cloud.cluster.ClusterManagerImpl" />
+  <bean id="clusteredAgentManagerImpl" class="com.cloud.agent.manager.ClusteredAgentManagerImpl" />
+  <bean id="clusteredVirtualMachineManagerImpl" class="com.cloud.vm.ClusteredVirtualMachineManagerImpl" />
+  <bean id="highAvailabilityManagerExtImpl" class="com.cloud.ha.HighAvailabilityManagerExtImpl" />
+  <bean id="bareMetalVmManagerImpl" class="com.cloud.baremetal.BareMetalVmManagerImpl" />
+  <bean id="consoleProxyManagerImpl" class="com.cloud.consoleproxy.ConsoleProxyManagerImpl" />
+  <bean id="securityGroupManagerImpl2" class="com.cloud.network.security.SecurityGroupManagerImpl2" />
+  <bean id="premiumSecondaryStorageManagerImpl" class="com.cloud.secstorage.PremiumSecondaryStorageManagerImpl" />
+  <bean id="randomlyIncreasingVMInstanceDaoImpl" class="com.cloud.vm.dao.RandomlyIncreasingVMInstanceDaoImpl" />
+    
+   
   <!--
       Network Elements
   -->

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java
index 1276825..2f6bd6c 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java
@@ -56,8 +56,10 @@ public class DataStoreProviderManagerImpl implements DataStoreProviderManager {
 
     @Override
     public boolean configure(String name, Map<String, Object> params)
-            throws ConfigurationException {
-        //TODO: hold global lock
+    		throws ConfigurationException {
+    	
+/*
+    	//TODO: hold global lock
         List<DataStoreProviderVO> providerVos = providerDao.listAll();
         for (DataStoreProvider provider : providers) {
             boolean existingProvider = false;
@@ -82,6 +84,7 @@ public class DataStoreProviderManagerImpl implements DataStoreProviderManager {
             provider.configure(params);
             providerMap.put(uuid, provider);
         }
+*/       
         return true;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/agent/manager/AgentManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/agent/manager/AgentManagerImpl.java b/server/src/com/cloud/agent/manager/AgentManagerImpl.java
index 26370d7..364f8fb 100755
--- a/server/src/com/cloud/agent/manager/AgentManagerImpl.java
+++ b/server/src/com/cloud/agent/manager/AgentManagerImpl.java
@@ -140,7 +140,6 @@ import edu.emory.mathcs.backport.java.util.Collections;
  *         ping.interval before announcing an agent has timed out | float | 2.0x || || router.stats.interval | interval to
  *         report router statistics | seconds | 300s || * }
  **/
-@Component
 @Local(value = { AgentManager.class })
 public class AgentManagerImpl implements AgentManager, HandlerFactory, Manager {
     private static final Logger s_logger = Logger.getLogger(AgentManagerImpl.class);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/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 25c7168..c33e0e1 100755
--- a/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java
+++ b/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java
@@ -88,8 +88,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
 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);
@@ -117,8 +115,6 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust
     // @com.cloud.utils.component.Inject(adapter = AgentLoadBalancerPlanner.class)
     @Inject protected List<AgentLoadBalancerPlanner> _lbPlanners;
 
-    @Inject
-    protected AgentManager _agentMgr;
     @Inject ConfigurationDao _configDao;
 
     protected ClusteredAgentManagerImpl() {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java b/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java
index 7ddfe06..19f8418 100755
--- a/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java
+++ b/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java
@@ -105,8 +105,6 @@ import com.cloud.vm.VirtualMachineName;
 import com.cloud.vm.VirtualMachineProfile;
 import com.cloud.vm.VirtualMachineProfile.Param;
 
-@Component
-@Primary
 @Local(value={BareMetalVmManager.class, BareMetalVmService.class})
 public class BareMetalVmManagerImpl extends UserVmManagerImpl implements BareMetalVmManager, BareMetalVmService, Manager,
 		StateListener<State, VirtualMachine.Event, VirtualMachine> {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/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 f71a866..1ad98e8 100755
--- a/server/src/com/cloud/cluster/ClusterManagerImpl.java
+++ b/server/src/com/cloud/cluster/ClusterManagerImpl.java
@@ -88,8 +88,6 @@ import com.cloud.utils.mgmt.JmxUtil;
 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/2c5859db/server/src/com/cloud/cluster/DummyClusterManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/cluster/DummyClusterManagerImpl.java b/server/src/com/cloud/cluster/DummyClusterManagerImpl.java
index 9c8aef4..ea4d951 100755
--- a/server/src/com/cloud/cluster/DummyClusterManagerImpl.java
+++ b/server/src/com/cloud/cluster/DummyClusterManagerImpl.java
@@ -32,7 +32,6 @@ import com.cloud.host.Status.Event;
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.utils.net.MacAddress;
 
-@Component
 @Local(value={ClusterManager.class})
 public class DummyClusterManagerImpl implements ClusterManager {
     private static final Logger s_logger = Logger.getLogger(DummyClusterManagerImpl.class);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/consoleproxy/AgentBasedConsoleProxyManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/consoleproxy/AgentBasedConsoleProxyManager.java b/server/src/com/cloud/consoleproxy/AgentBasedConsoleProxyManager.java
index a239997..15aa9f1 100755
--- a/server/src/com/cloud/consoleproxy/AgentBasedConsoleProxyManager.java
+++ b/server/src/com/cloud/consoleproxy/AgentBasedConsoleProxyManager.java
@@ -62,7 +62,6 @@ import com.cloud.vm.dao.ConsoleProxyDao;
 import com.cloud.vm.dao.UserVmDao;
 import com.cloud.vm.dao.VMInstanceDao;
 
-@Component
 @Local(value = { ConsoleProxyManager.class })
 public class AgentBasedConsoleProxyManager implements ConsoleProxyManager, VirtualMachineGuru<ConsoleProxyVO>, AgentHook {
     private static final Logger s_logger = Logger.getLogger(AgentBasedConsoleProxyManager.class);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/consoleproxy/AgentBasedStandaloneConsoleProxyManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/consoleproxy/AgentBasedStandaloneConsoleProxyManager.java b/server/src/com/cloud/consoleproxy/AgentBasedStandaloneConsoleProxyManager.java
index 13aa3e6..3cfdf22 100644
--- a/server/src/com/cloud/consoleproxy/AgentBasedStandaloneConsoleProxyManager.java
+++ b/server/src/com/cloud/consoleproxy/AgentBasedStandaloneConsoleProxyManager.java
@@ -28,7 +28,6 @@ import com.cloud.host.HostVO;
 import com.cloud.info.ConsoleProxyInfo;
 import com.cloud.vm.UserVmVO;
 
-@Component
 @Local(value={ConsoleProxyManager.class})
 public class AgentBasedStandaloneConsoleProxyManager extends
 AgentBasedConsoleProxyManager {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/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 9e63d69..52c90af 100755
--- a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
+++ b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
@@ -170,8 +170,6 @@ import com.google.gson.GsonBuilder;
 // Starting, HA, Migrating, Running state are all counted as "Open" for available capacity calculation
 // 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/2c5859db/server/src/com/cloud/consoleproxy/StaticConsoleProxyManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/consoleproxy/StaticConsoleProxyManager.java b/server/src/com/cloud/consoleproxy/StaticConsoleProxyManager.java
index 13d3112..3a4386f 100755
--- a/server/src/com/cloud/consoleproxy/StaticConsoleProxyManager.java
+++ b/server/src/com/cloud/consoleproxy/StaticConsoleProxyManager.java
@@ -33,7 +33,6 @@ import com.cloud.resource.ResourceManager;
 import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.dao.ConsoleProxyDao;
 
-@Component
 @Local(value={ConsoleProxyManager.class})
 public class StaticConsoleProxyManager extends AgentBasedConsoleProxyManager implements ConsoleProxyManager {
     String _ip = null;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/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 09e65a0..ae6fe4e 100644
--- a/server/src/com/cloud/ha/HighAvailabilityManagerExtImpl.java
+++ b/server/src/com/cloud/ha/HighAvailabilityManagerExtImpl.java
@@ -32,8 +32,6 @@ import com.cloud.configuration.dao.ConfigurationDao;
 import com.cloud.usage.dao.UsageJobDao;
 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/2c5859db/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java b/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
index 813728f..7671f2d 100755
--- a/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
+++ b/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
@@ -95,7 +95,6 @@ import com.cloud.vm.dao.VMInstanceDao;
  *         ha.retry.wait | time to wait before retrying the work item | seconds | 120 || || stop.retry.wait | time to wait
  *         before retrying the stop | seconds | 120 || * }
  **/
-@Component
 @Local(value = { HighAvailabilityManager.class })
 public class HighAvailabilityManagerImpl implements HighAvailabilityManager, ClusterManagerListener {
     protected static final Logger s_logger = Logger.getLogger(HighAvailabilityManagerImpl.class);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/network/NetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java
index 09378b4..307294c 100644
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@ -1778,8 +1778,9 @@ public class NetworkModelImpl  implements NetworkModel, Manager{
                 if (s_providerToNetworkElementMap.containsKey(implementedProvider.getName())) {
                     s_logger.error("Cannot start NetworkModel: Provider <-> NetworkElement must be a one-to-one map, " +
                             "multiple NetworkElements found for Provider: " + implementedProvider.getName());
-                    return false;
+                   continue;
                 }
+                s_logger.info("Add provider <-> element map entry. " + implementedProvider.getName() + "-" + element.getName() + "-" + element.getClass().getSimpleName());
                 s_providerToNetworkElementMap.put(implementedProvider.getName(), element.getName());
             }
             if (capabilities != null && implementedProvider != null) {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java b/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java
index 361deda..58505ee 100755
--- a/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java
+++ b/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java
@@ -115,7 +115,6 @@ import com.cloud.vm.dao.VMInstanceDao;
 
 import edu.emory.mathcs.backport.java.util.Collections;
 
-@Component
 @Local(value = { SecurityGroupManager.class, SecurityGroupService.class })
 public class SecurityGroupManagerImpl implements SecurityGroupManager, SecurityGroupService, Manager, StateListener<State, VirtualMachine.Event, VirtualMachine> {
     public static final Logger s_logger = Logger.getLogger(SecurityGroupManagerImpl.class);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java b/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java
index 0ea4394..a3a0fc3 100644
--- a/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java
+++ b/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java
@@ -47,8 +47,6 @@ import com.cloud.network.security.SecurityRule.SecurityRuleType;
  * Same as the base class -- except it uses the abstracted security group work queue
  *
  */
-@Component
-@Primary
 @Local(value={ SecurityGroupManager.class, SecurityGroupService.class })
 public class SecurityGroupManagerImpl2 extends SecurityGroupManagerImpl{
     SecurityGroupWorkQueue _workQueue = new LocalSecurityGroupWorkQueue();

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/resource/ResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java
index 0cc00aa..2934da3 100755
--- a/server/src/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/com/cloud/resource/ResourceManagerImpl.java
@@ -235,7 +235,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService,
 
 	protected HashMap<Integer, List<ResourceListener>> _lifeCycleListeners = new HashMap<Integer, List<ResourceListener>>();
 	private HypervisorType _defaultSystemVMHypervisor;
-
+	
 	@PostConstruct
 	public void init() {
 		// TODO initialize pod allocators here instead

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/secstorage/PremiumSecondaryStorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/secstorage/PremiumSecondaryStorageManagerImpl.java b/server/src/com/cloud/secstorage/PremiumSecondaryStorageManagerImpl.java
index d4f4454..73015c1 100755
--- a/server/src/com/cloud/secstorage/PremiumSecondaryStorageManagerImpl.java
+++ b/server/src/com/cloud/secstorage/PremiumSecondaryStorageManagerImpl.java
@@ -49,8 +49,6 @@ import com.cloud.vm.SystemVmLoadScanner.AfterScanAction;
 import com.cloud.vm.VirtualMachine.State;
 import com.cloud.vm.dao.SecondaryStorageVmDao;
 
-@Component
-@Primary
 @Local(value = { SecondaryStorageVmManager.class })
 public class PremiumSecondaryStorageManagerImpl extends SecondaryStorageManagerImpl {
     private static final Logger s_logger = Logger.getLogger(PremiumSecondaryStorageManagerImpl.class);

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

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java
index 342a230..ede0ce8 100755
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@ -107,6 +107,7 @@ import com.cloud.capacity.Capacity;
 import com.cloud.capacity.CapacityVO;
 import com.cloud.capacity.dao.CapacityDao;
 import com.cloud.capacity.dao.CapacityDaoImpl.SummedCapacity;
+import com.cloud.cluster.ClusterManager;
 import com.cloud.configuration.Config;
 import com.cloud.configuration.Configuration;
 import com.cloud.configuration.ConfigurationManager;
@@ -396,6 +397,7 @@ public class ManagementServerImpl implements ManagementServer {
 
     @Inject List<UserAuthenticator> _userAuthenticators;
 
+    @Inject ClusterManager _clusterMgr;
     private String _hashKey = null;
 
     public ManagementServerImpl() {
@@ -429,8 +431,10 @@ public class ManagementServerImpl implements ManagementServer {
     private void initCloudStackComponents() {
         runCheckers();
         startDaos(); // daos should not be using managers and adapters.
-        startManagers();
-        startAdapters();
+        
+        Map<String, Object> avoidMap = new HashMap<String, Object>();
+        startManagers(avoidMap);
+        startAdapters(avoidMap);
     }
 
     private void runCheckers() {
@@ -464,12 +468,28 @@ public class ManagementServerImpl implements ManagementServer {
         }
     }
 
-    private void startManagers() {
+    private void startManagers(Map<String, Object> avoidMap) {
         Map<String, Object> params = new HashMap<String, Object>();
 
-        for(Manager manager : _componentRegistry.getManagers()) {
+        // make sure startup sequence is maintained
+        try {
+        	_clusterMgr.configure("ClusterMgr", params);
+        	_clusterMgr.start();
+        	
+        	avoidMap.put(ComponentContext.getTargetClass(_clusterMgr).getName(), _clusterMgr);
+        } catch(Exception e) {
+            s_logger.error("Problems to start manager:" + ComponentContext.getTargetClass(_clusterMgr).getName(), e);
+            System.exit(1);
+        }
+        
+        for(Manager manager : ComponentContext.getComponentsOfType(Manager.class).values()) {
             s_logger.info("Start manager: " + ComponentContext.getTargetClass(manager).getName() + "...");
             try {
+            	if(avoidMap.get(ComponentContext.getTargetClass(manager).getName()) != null) {
+                    s_logger.info("Skip manager: " + ComponentContext.getTargetClass(manager).getName() + " as it is already started");
+            		continue;
+            	}
+            	
                 if(!manager.configure(manager.getClass().getSimpleName(), params)) {
                     throw new CloudRuntimeException("Failed to start manager: " + ComponentContext.getTargetClass(manager).getName());
                 }
@@ -477,6 +497,7 @@ public class ManagementServerImpl implements ManagementServer {
                 if (!manager.start()) {
                     throw new CloudRuntimeException("Failed to start manager: " + ComponentContext.getTargetClass(manager).getName());
                 }
+                avoidMap.put(ComponentContext.getTargetClass(manager).getName(), manager);
 
                 if (manager instanceof ManagementBean) {
                     registerMBean((ManagementBean) manager);
@@ -488,7 +509,7 @@ public class ManagementServerImpl implements ManagementServer {
         }
     }
 
-    private void startAdapters() {
+    private void startAdapters(Map<String, Object> avoidMap) {
         @SuppressWarnings("rawtypes")
         Map<String, Adapter> adapters = ComponentContext.getApplicationContext().getBeansOfType(
                 Adapter.class);
@@ -497,22 +518,27 @@ public class ManagementServerImpl implements ManagementServer {
 
         for(Adapter adapter : adapters.values()) {
             try {
-                // we also skip Adapter class that is both a manager class and a adapter class
-                if(Manager.class.isAssignableFrom(ComponentContext.getTargetClass(adapter)))
-                    continue;
+                s_logger.info("Start adapter: " + ComponentContext.getTargetClass(adapter).getName() + "...");
+                
+            	if(avoidMap.get(ComponentContext.getTargetClass(adapter).getName()) != null) {
+                    s_logger.info("Skip adapter: " + ComponentContext.getTargetClass(adapter).getName() + " as it is already started");
+            		continue;
+            	}
 
                 if(!adapter.configure(adapter.getName(), params)) {
-                    throw new CloudRuntimeException("Failed to start adapter: " + ComponentContext.getTargetClass(adapter).getName());
+                    throw new CloudRuntimeException("Failed to configure adapter: " + ComponentContext.getTargetClass(adapter).getName());
                 }
                 if (!adapter.start()) {
                     throw new CloudRuntimeException("Failed to start adapter: " + ComponentContext.getTargetClass(adapter).getName());
                 }
+                
+                avoidMap.put(ComponentContext.getTargetClass(adapter).getName(), adapter);
 
                 if (adapter instanceof ManagementBean) {
                     registerMBean((ManagementBean) adapter);
                 }
             } catch (Exception e) {
-                s_logger.error("Problems to start manager:" + ComponentContext.getTargetClass(adapter).getName(), e);
+                s_logger.error("Problems to start adapter:" + ComponentContext.getTargetClass(adapter).getName(), e);
                 System.exit(1);
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
index 90777d6..aed514b 100755
--- a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
+++ b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
@@ -157,7 +157,6 @@ import com.cloud.vm.dao.VMInstanceDao;
 // Starting, HA, Migrating, Creating and Running state are all counted as "Open" for available capacity calculation
 // because sooner or later, it will be driven into Running state
 //
-@Component
 @Local(value = { SecondaryStorageVmManager.class })
 public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, VirtualMachineGuru<SecondaryStorageVmVO>, SystemVmLoadScanHandler<Long>, ResourceStateAdapter {
     private static final Logger s_logger = Logger.getLogger(SecondaryStorageManagerImpl.class);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/upgrade/PremiumDatabaseUpgradeChecker.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/upgrade/PremiumDatabaseUpgradeChecker.java b/server/src/com/cloud/upgrade/PremiumDatabaseUpgradeChecker.java
index 896cb56..14a8143 100755
--- a/server/src/com/cloud/upgrade/PremiumDatabaseUpgradeChecker.java
+++ b/server/src/com/cloud/upgrade/PremiumDatabaseUpgradeChecker.java
@@ -46,8 +46,6 @@ import com.cloud.upgrade.dao.VersionDaoImpl;
 
 import com.cloud.utils.component.SystemIntegrityChecker;
 
-@Component
-@Primary
 @Local(value = { SystemIntegrityChecker.class })
 public class PremiumDatabaseUpgradeChecker extends DatabaseUpgradeChecker {
     public PremiumDatabaseUpgradeChecker() {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/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 96c7446..42ff5d4 100644
--- a/server/src/com/cloud/vm/ClusteredVirtualMachineManagerImpl.java
+++ b/server/src/com/cloud/vm/ClusteredVirtualMachineManagerImpl.java
@@ -28,8 +28,6 @@ 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/2c5859db/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java
index 4139013..0464420 100644
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -54,7 +54,6 @@ import org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntity;
 import org.apache.cloudstack.engine.service.api.OrchestrationService;
 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.Answer;
@@ -237,7 +236,6 @@ import com.cloud.vm.dao.UserVmDao;
 import com.cloud.vm.dao.UserVmDetailsDao;
 import com.cloud.vm.dao.VMInstanceDao;
 
-@Component
 @Local(value = { UserVmManager.class, UserVmService.class })
 public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager {
     private static final Logger s_logger = Logger

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
index 45495ad..64c55ca 100755
--- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -158,7 +158,6 @@ import com.cloud.vm.dao.SecondaryStorageVmDao;
 import com.cloud.vm.dao.UserVmDao;
 import com.cloud.vm.dao.VMInstanceDao;
 
-@Component
 @Local(value = VirtualMachineManager.class)
 public class VirtualMachineManagerImpl implements VirtualMachineManager, Listener {
     private static final Logger s_logger = Logger.getLogger(VirtualMachineManagerImpl.class);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/vm/dao/RandomlyIncreasingVMInstanceDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/dao/RandomlyIncreasingVMInstanceDaoImpl.java b/server/src/com/cloud/vm/dao/RandomlyIncreasingVMInstanceDaoImpl.java
index 1e31667..cc5c536 100644
--- a/server/src/com/cloud/vm/dao/RandomlyIncreasingVMInstanceDaoImpl.java
+++ b/server/src/com/cloud/vm/dao/RandomlyIncreasingVMInstanceDaoImpl.java
@@ -23,8 +23,6 @@ import org.apache.log4j.Logger;
 import org.springframework.context.annotation.Primary;
 import org.springframework.stereotype.Component;
 
-@Component
-@Primary
 @Local(value = { UserVmDao.class })
 public class RandomlyIncreasingVMInstanceDaoImpl extends UserVmDaoImpl {
 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/server/src/com/cloud/vm/dao/UserVmDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/dao/UserVmDaoImpl.java b/server/src/com/cloud/vm/dao/UserVmDaoImpl.java
index e2cf02e..f72f03e 100755
--- a/server/src/com/cloud/vm/dao/UserVmDaoImpl.java
+++ b/server/src/com/cloud/vm/dao/UserVmDaoImpl.java
@@ -55,7 +55,6 @@ import com.cloud.vm.dao.UserVmData.NicData;
 import com.cloud.vm.dao.UserVmData.SecurityGroupData;
 
 
-@Component
 @Local(value={UserVmDao.class})
 public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements UserVmDao {
     public static final Logger s_logger = Logger.getLogger(UserVmDaoImpl.class);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/setup/db/4.1-new-db-schema.sql
----------------------------------------------------------------------
diff --git a/setup/db/4.1-new-db-schema.sql b/setup/db/4.1-new-db-schema.sql
index 6770214..07564b6 100644
--- a/setup/db/4.1-new-db-schema.sql
+++ b/setup/db/4.1-new-db-schema.sql
@@ -23,7 +23,7 @@ alter table template_spool_ref add state varchar(255);
 alter table template_spool_ref add update_count bigint unsigned;
 alter table volumes add disk_type varchar(255);
 alter table volumes drop foreign key `fk_volumes__account_id`;
-CREATE TABLE `cloud`.`primary_data_store_provider` (
+CREATE TABLE `cloud`.`data_store_provider` (
   `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
   `name` varchar(255) NOT NULL COMMENT 'name of primary data store provider',
   PRIMARY KEY(`id`)

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2c5859db/utils/test/com/cloud/utils/DummyPremiumImpl.java
----------------------------------------------------------------------
diff --git a/utils/test/com/cloud/utils/DummyPremiumImpl.java b/utils/test/com/cloud/utils/DummyPremiumImpl.java
index 111f087..bf8bfea 100644
--- a/utils/test/com/cloud/utils/DummyPremiumImpl.java
+++ b/utils/test/com/cloud/utils/DummyPremiumImpl.java
@@ -16,11 +16,6 @@
 // under the License.
 package com.cloud.utils;
 
-import org.springframework.context.annotation.Primary;
-import org.springframework.stereotype.Component;
-
-@Component
-@Primary
 public class DummyPremiumImpl implements DummyInterface {
 
 	@Override