Reputation: 32086
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
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