I have 3 different environments - development, test and production. For each of the environment I have a different queue, like this: queue/devQueue, queue/testQueue and queue/prodQueue.
Now I would like the name of the queue being configured outside of the application so I dont have to change anything to deploy it to any of the environments. Right now I have 2 more or less feasible options:
1. Create bridge between 2 queues (I use Tibco as external JMS provider and it offers this feature), so that I only configure one queue (for example queue/VirtualQueue) in the application and let the JMS server to re-route it.
2. Use resource filtering (what ant or maven can do) during the build and deployment so that the real queue name will be placed in the application instead of a placeholder.
Option 1 seems to be more attractive because the dev. environment would be totally independent on the destination. However I don't want to be dependent on vendor enhancements (or is this functionality offered by pretty much every JMS vendor). Option 2 seems messy at all as I would need a switch to use if I want to change the destination.
Are there better alternatives and what are the best practices?
Thanks in advance.