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