Configuration Management is a common problem. It is especially a problem for customer-facing web applications that are developed in house. Since they are customer facing, you want to limit restarts of you application server for best user experience or to fulfill any service agreement the company might have. So you want your application to run for a long time without being restarted, yet the run time system assumptions do change. The company runs a promotion, and herds of users flock to your site. Your thread pools and connection pools start running low, since they were not configured for such load. Your logging start to fill up the hard drive and you would like to start logging to a different device. The service you are using to find information up has temporarily moved to an affiliate web site. You want to run batch task a bit more often for a few days, until the operations go back to normal. In all of the cases above, you would like to change the configuration without restarting your application. What that means is that you would like to have a configuration management system that supports configuration files reloading.
By using configuration manager you can streamline the way your programs handle configurations.
The first release of configuration manager has limited, but workable set of feature. The features chosen are the once that used in most application, making configuration manager able to be adopted by most projects.
There are currently 2 sample applications that are shipped with configuration manager, located in binary distribution under
sampleapps directory. To run, please change directory to
app2.bat. These applications read the configurations
and the properties from
sampleapps/config, display the properties and reload them. App1 is
build as an interactive demonstrations, and App2 (source code
App2Properties) is most probably the way
one would be refactoring old code and adding configuration manager.
There is a sample web application that is shipped with configuration manager, located in binary distribution under
samplewebapp/strutswebapp directory. To run, please deploy
configmanagerwebapp.war in the web container. For
example in tomcat, running on the local server you will use the url http://localhost:8080/configmanagerwebapp/. You should be able
to see all the configurations loaded with configuration manager, and also check details on each of the configurations. For
configurations that use properties (or sub-class of
Map) you will also be able to overwrite values in web ui.
Thank you for visiting configuration manager page, hope this utility will make your project easier to code!