Developing applications, I've noticed I have a config file for each application to parse to determine enviromental settings (i.e. database username/passwd, location of helper apps, etc.). Each time there's a software upgrade, database upgrade, etc., I have go into each one of these config files and change some of the parameters. I was thinking I could create a soft link that pointed to one config file that contained all possible environment type variables. Then I could have this file parsed with a Configuration class, that implemented a Singleton design pattern, which would read the variables into a hashTable. This seems like it would significantly reduce the amount of maitenance I had to do on the apps, while not unbearably wasting resources, since only one instance of the Configuration class (and thus an enormous hash) would be loaded into the JVM.
I was wondering what other people have chosen to do approaching this type of problem.
Thanks for the help. I also noticed an older posting that pointed to an article I found relevant. I'm finding out that Java has many built in features that automate and aid in maintaining the software. My dilema is two fold: develop high quality software in the future that is easier to maintain, and fix some of the maintainance issues I face with the applications already developed. Unfortunately, I have 50+ applications (not counting web tools) I'm involved with maintaining that are writting in diverse languages (C, C++, Perl, Java, Korn shell scrips, PHP, etc.) They are all small to medium sized programs, and they all have some type of environment information they need to function correctly. The majority of them source env. files and read config files to obtain the information. I've always felt each programming language and pros and cons, and you choose the best language for the particular task you faced with. One of the O'Reilly books on Perl I read, the author makes a statement that some people have a hard time ,switching back and for between languages, remember some of the differences in syntax. He recommended to stop switching, and just use Perl for everything. The more I learn about Java, the more I feel like I should stop switching between languages and just use Java for everything. I guess I don't have a lot of choice though, seeing as how much of my work is maintaining software other people wrote.
A sonic boom would certainly ruin a giant souffle. But this tiny ad would protect it: