We have basically two codelines, Active Development Line (ACT) and Release Line (REL).
The ACT codeline corresponds to the next version to be released, containing new features. The REL codeline corresponds to the version which is in production and needs to be maintained (no new features, just bugfixing) until the next major version is rolled out.
We use Weblogic and Eclipse. Different versions of them might be needed for the ACT and REL codeline, same with the JDK version. And of course the libraries and classfiles differ.
When we started to write the application, we basically just had one codeline. So our file pathes were pointing for example to "c:/bea", "c:/eclipse" and "c:/jdk" and "c:/workspace". When we needed two codelines, the question was how to change from one to another when developing the application. A solution would be to modify our scripts and change the pathes to to things like "c:/ACT/bea" and "c:/REL/bea". Or we might just replace everything each time we want to switch to another codeline. Renaming folders would be another way. Yet another early solution of us was to use VMWare.
We chose symbolic links as the solution. We didn't change the file pathes. But we moved bea, eclipse, jdk and the workspace inside a kind of meta folder so that it contains copies for both codelines. It looks like this:
workspaceThen for example we link "c:/bea" either to "c:/meta/ACT/bea" or to "c:/meta/REL/bea", depending on the codeline we want to work on. With Microsoft Windows this can be done by a little command line program called "junction" by Mark Russinovich.
We also use separate database schemes, depending on ACT or REL, to avoid replacing one scheme with another when switching.
This is the basic concept. By this we can use the same file pathes and switch the codelines quickly. The solution works. But it seems to be a little bit tricky.
Did you have the same problem and how did you solve it? What were the reasons why you chose your solution?