CLOUDSTACK-1818: make DababaseCreator ready to invoke DatabaseUpgradeChecker, 
adjust Component startup sequence for integrity checkers
Signed-off-by: Chip Childers <[email protected]>


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

Branch: refs/heads/marvin-refactor
Commit: b3eec582238144748c4430f19a948c5b0d5b6afb
Parents: b51c733
Author: Kelven Yang <[email protected]>
Authored: Wed Mar 27 13:08:03 2013 +0000
Committer: Prasanna Santhanam <[email protected]>
Committed: Sat Mar 30 22:21:54 2013 +0530

----------------------------------------------------------------------
 client/tomcatconf/applicationContext.xml.in        |    2 +-
 server/pom.xml                                     |    8 ++++
 server/src/com/cloud/upgrade/DatabaseCreator.java  |    7 +++
 .../cloud/utils/component/ComponentContext.java    |   32 +++++++-------
 4 files changed, 32 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b3eec582/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/applicationContext.xml.in 
b/client/tomcatconf/applicationContext.xml.in
index 4baa756..441477c 100644
--- a/client/tomcatconf/applicationContext.xml.in
+++ b/client/tomcatconf/applicationContext.xml.in
@@ -35,6 +35,7 @@
   <!--
     @DB support
   -->
+  <bean id="componentContext" 
class="com.cloud.utils.component.ComponentContext" />
   <bean id="transactionContextBuilder" 
class="com.cloud.utils.db.TransactionContextBuilder" />
   <bean id="actionEventInterceptor" 
class="com.cloud.event.ActionEventInterceptor" />
 
@@ -688,7 +689,6 @@
   <bean id="apiServlet" class="com.cloud.api.ApiServlet" />
   <bean id="cloudOrchestrator" 
class="org.apache.cloudstack.platform.orchestration.CloudOrchestrator" />
   <bean id="clusterRestService" 
class="org.apache.cloudstack.engine.rest.service.api.ClusterRestService" />
-  <bean id="componentContext" 
class="com.cloud.utils.component.ComponentContext" />
   <bean id="consoleProxyServlet" class="com.cloud.servlet.ConsoleProxyServlet" 
/>
   <bean id="dataCenterResourceManagerImpl" 
class="org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceManagerImpl"
 />
   <bean id="dataDisk" 
class="org.apache.cloudstack.engine.subsystem.api.storage.type.DataDisk" />

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b3eec582/server/pom.xml
----------------------------------------------------------------------
diff --git a/server/pom.xml b/server/pom.xml
index b39f731..e38cfea 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -103,6 +103,14 @@
     <defaultGoal>install</defaultGoal>
     <sourceDirectory>src</sourceDirectory>
     <testSourceDirectory>test</testSourceDirectory>
+    <resources>
+      <resource>
+        <directory>resources</directory>
+        <includes>
+          <include>**/*.xml</include>
+        </includes>
+      </resource>
+    </resources>
     <testResources>
       <testResource>
         <directory>test/resources</directory>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b3eec582/server/src/com/cloud/upgrade/DatabaseCreator.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/upgrade/DatabaseCreator.java 
b/server/src/com/cloud/upgrade/DatabaseCreator.java
index 9841fae..d9f9e7b 100755
--- a/server/src/com/cloud/upgrade/DatabaseCreator.java
+++ b/server/src/com/cloud/upgrade/DatabaseCreator.java
@@ -27,6 +27,8 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
 import com.cloud.utils.PropertiesUtil;
 
 import com.cloud.utils.component.ComponentContext;
@@ -117,6 +119,11 @@ public class DatabaseCreator {
     }
 
     public static void main(String[] args) {
+
+       ClassPathXmlApplicationContext appContext = new 
ClassPathXmlApplicationContext(
+               new String[] {"/com/cloud/upgrade/databaseCreatorContext.xml"});
+       appContext.getBean(ComponentContext.class);
+
         String dbPropsFile = "";
         List<String> sqlFiles = new ArrayList<String>();
         List<String> upgradeClasses = new ArrayList<String>();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b3eec582/utils/src/com/cloud/utils/component/ComponentContext.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/component/ComponentContext.java 
b/utils/src/com/cloud/utils/component/ComponentContext.java
index 32e4464..122eec3 100644
--- a/utils/src/com/cloud/utils/component/ComponentContext.java
+++ b/utils/src/com/cloud/utils/component/ComponentContext.java
@@ -81,6 +81,18 @@ public class ComponentContext implements 
ApplicationContextAware {
        for(Map.Entry<String, ComponentLifecycle> entry : 
lifecyleComponents.entrySet()) {
                
classifiedComponents[entry.getValue().getRunLevel()].put(entry.getKey(), 
entry.getValue());
        }
+
+        // Run the SystemIntegrityCheckers first
+        Map<String, SystemIntegrityChecker> integrityCheckers = 
getApplicationContext().getBeansOfType(SystemIntegrityChecker.class);
+        for (Entry<String,SystemIntegrityChecker> entry : 
integrityCheckers.entrySet() ){
+            s_logger.info ("Running SystemIntegrityChecker " + entry.getKey());
+            try {
+               entry.getValue().check();
+            } catch(Throwable e) {
+               s_logger.error("System integrity check failed. Refuse to 
startup");
+               System.exit(1);
+            }
+        }
        
        // configuration phase
         Map<String, String> avoidMap = new HashMap<String, String>();
@@ -103,23 +115,11 @@ public class ComponentContext implements 
ApplicationContextAware {
                                }
                 
                 avoidMap.put(implClassName, implClassName);
-               }
-       }
+               }
+       }
 
-        // Run the SystemIntegrityCheckers first
-        Map<String, SystemIntegrityChecker> integrityCheckers = 
getApplicationContext().getBeansOfType(SystemIntegrityChecker.class);
-        for (Entry<String,SystemIntegrityChecker> entry : 
integrityCheckers.entrySet() ){
-            s_logger.info ("Running SystemIntegrityChecker " + entry.getKey());
-            try {
-               entry.getValue().check();
-            } catch(Throwable e) {
-               s_logger.error("System integrity check failed. Refuse to 
startup");
-               System.exit(1);
-            }
-        }
- 
-       // starting phase
-       avoidMap.clear();
+       // starting phase
+       avoidMap.clear();
        for(int i = 0; i < ComponentLifecycle.MAX_RUN_LEVELS; i++) {
                for(Map.Entry<String, ComponentLifecycle> entry : ((Map<String, 
ComponentLifecycle>)classifiedComponents[i]).entrySet()) {
                        ComponentLifecycle component = entry.getValue();

Reply via email to