Revision: 13667
          http://gate.svn.sourceforge.net/gate/?rev=13667&view=rev
Author:   ian_roberts
Date:     2011-04-13 15:41:13 +0000 (Wed, 13 Apr 2011)

Log Message:
-----------
Fixed a bug with config loading that meant that the default config was winning
over the app's MimirConfig rather than the other way around.

Modified Paths:
--------------
    
mimir/trunk/grails-plugin-mimir/src/groovy/gate/mimir/web/MimirConfigLoader.groovy

Modified: 
mimir/trunk/grails-plugin-mimir/src/groovy/gate/mimir/web/MimirConfigLoader.groovy
===================================================================
--- 
mimir/trunk/grails-plugin-mimir/src/groovy/gate/mimir/web/MimirConfigLoader.groovy
  2011-04-13 15:37:46 UTC (rev 13666)
+++ 
mimir/trunk/grails-plugin-mimir/src/groovy/gate/mimir/web/MimirConfigLoader.groovy
  2011-04-13 15:41:13 UTC (rev 13667)
@@ -11,24 +11,30 @@
   
   public static synchronized void loadMimirConfig() {
     if(mimirConfigLoaded) return
+    ConfigObject fullMimirConfig = new ConfigObject()
     ConfigSlurper slurper = new ConfigSlurper(Environment.current.name)
     try {
-      // load the default mimir configuration and merge it into the config
-      // loaded from Config.groovy, with values from Config.groovy winning
-      ConfigObject defaultMimirConf = slurper.parse(DefaultMimirConfig)
-      CH.config.gate.mimir = defaultMimirConf.merge(CH.config.gate.mimir)
+      // parse the default config
+      fullMimirConfig = slurper.parse(DefaultMimirConfig)
     } catch(Exception e) {
       println "Could not load DefaultMimirConfig"
     }
     try {
-      // do the same with the app-provided MimirConfig.groovy (don't worry
-      // if this fails).
+      // parse the app-provided MimirConfig (if it exists) and merge this into
+      // the default config (app-provided settings win over defaults)
       GroovyClassLoader classLoader = new 
GroovyClassLoader(MimirConfigLoader.class.getClassLoader())
       ConfigObject mimirConf = 
slurper.parse(classLoader.loadClass("MimirConfig"))
-      CH.config.gate.mimir = mimirConf.merge(CH.config.gate.mimir)
+      fullMimirConfig = fullMimirConfig.merge(mimirConf)
     } catch(Exception e) {
       // ignore, MimirConfig may legitimately be missing.
     }
+
+    // finally merge in any settings coming from the existing app config
+    fullMimirConfig = fullMimirConfig.merge(CH.config.gate.mimir)
+
+    // and store the result back in the main config
+    CH.config.gate.mimir = fullMimirConfig
+
     mimirConfigLoaded = true
   }
 }


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Forrester Wave Report - Recovery time is now measured in hours and minutes
not days. Key insights are discussed in the 2010 Forrester Wave Report as
part of an in-depth evaluation of disaster recovery service providers.
Forrester found the best-in-class provider in terms of services and vision.
Read this report now!  http://p.sf.net/sfu/ibm-webcastpromo
_______________________________________________
GATE-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gate-cvs

Reply via email to