raffian
raffian

Reputation: 32086

How to access grailsApplication config in Config.groovy

Is there a way to get properties from grailsApplication.config from inside Config.groovy? (I'm using Grails 2.0.3)

Working
Using grailsApplication, I can get config values in resources.groovy:

def cfg = grailsApplication.config
someBean(SomeClass){
  foo = cfg.smpt.host
}

Not Working
But in Config.groovy, it doesn't work; returns empty maps for host and port values:

    //Config.groovy
    def cfg = grailsApplication.config
    grails {
       mail {
         host   = cfg.smtp.host  //empty value!
         port   = cfg.smtp.port  //empty value!
       }
    }

Workaround
Moved mail config into custom config file, and referenced properties locally, without grailsApplication:

//myconfig.groovy (dev)
smtp.host
smtp.port

grails {
   mail {
      host   = smtp.host
      port   = smtp.port
   }
}

This works, but forces me to repeat mail config in each config file for dev, qa, uat, prod, creating duplicate configuration.

Why does grailsApplication.config work in resources.groovy, but doesn't in Config.groovy?

Upvotes: 2

Views: 1718

Answers (1)

Olencha
Olencha

Reputation: 418

//Config.groovy 
grails.smtp.host = HOST
grails.smtp.port = PORT
//we can use  
grails.mail.host = grails.smtp.host
grails.mail.port = grails.smtp.port

Upvotes: 1

Related Questions