I don't think its a good idea to define modules and property names statically. The idea I had was to call moduleConfigurationParser.findAllProperties() for every existing module definition at runtime.  New properties may be added or the names can change frequently (see https://jira.springsource.org/browse/XD-635) and users can add new custom modules or the module names could change.  So need to check properties at run time. I don't think caching is an option either, since one can change module definitions on the fly.