When I wrote Java EE apps, I used JBoss Datasources to control which databases the deployment used. E.g. the dev versions would use a throwaway hibernate db, the ref and ops would use stable MySQL deployments. I also used MBeans to configure various other services and rules.
Now that I’m using Spring, I’d like the same functionality – deploy the same code, but with different configuration. Crucially, I’d also like Unit Tests to still run with stub services. My question is this – is there a way, in JBoss, to inject configuration with files which live outside of the WAR/EAR, and also include these files in test resources.
It is possible to add objects into the JNDI context by placing a file named xxx-service.xml into jboss’s deploy directory. The app could then lookup the values via JNDI. In the example below the string “development” is added at java:/modes/deployment. To use JNDI in your unit tests use the org.springframework.mock.jndi package.