We have the need to be able to easily configure Openfire from the commandline and/or configuration files, rather then the database. Looking through the Openfire codebase it seems a large amount of the properties fround at http://www.igniterealtime.org/community/docs/DOC-1061 marked “Openfire System Properties” are not in fact “System Properties”, but rather Openfire Internal Properties accessed only via the database. The code for these seems to use JiveGlobals, which then delegates to JiveProperties for all non getXML* methods such as getIntProperty(). The codebase seems to know specificly where each property it needs should be, either calling System.getProperty() for some values, JiveGlobals.getXMLProperty() for others, and JiveGlobals.getProperty() for yet other properties. Would it not be reasonable to consolidate the lookup resolution of properties to the internals of some generic method like JiveGlobals.getProperty() and have that check both the Java System Properties (for commandline overrides for example), XML (openfire.xml) config file, and then the configuration database?
Is this something people have talked about before? I could not find any previous dicussions on this topic. I would be interesting in hearing peoples opinion and what they have done (if anything) to work around the fact that you can only configure Openfire via a database (to my knowledge, if there are other ways please let me know).