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 <[email protected]>
Authored: Fri Jan 18 19:15:09 2013 -0800
Committer: Kelven Yang <[email protected]>
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

Reply via email to