I know JNDI lookup in grails is as simple as
datasource {
jndiName = "java:comp/env/myDataSource"
}
this works great on Tomcat.
On other containers (WebLogic, JBOSS, etc.) the jndiName for the same thing would be just myDataSource
. The question is how do I configure this to be generic and portable so that the code does not need to be changed based on the deploy target?
You might be able to key off a system property that you know will be set when running in Tomcat and not set anywhere else, e.g.
datasource {
jndiName = "${System.getProperty('catalina.home') ? 'java:comp/env/' : ''}myDataSource"
}