String descriptor,
ComponentManager manager,
boolean reloadable,
Logger logger
) throws ConfigurationException {
ConfigurationHelper conf = null;
if (descriptor == null) {
throw new ConfigurationException("The form descriptor is not set!");
}
synchronized (XSPFormValidatorHelper.configurations) {
conf = (ConfigurationHelper) XSPFormValidatorHelper.configurations.get(descriptor);
Source source = null;
SourceHandler sourceHandler = null;
try {
sourceHandler = (SourceHandler) manager.lookup(SourceHandler.ROLE);
source = sourceHandler.getSource(null, descriptor);
if (conf == null || ( reloadable && conf.lastModified < source.getLastModified())) {
logger.debug("XSPFormValidatorHelper.getConfiguration: (Re)Loading " + descriptor);
if (conf == null)
conf = new ConfigurationHelper();
SAXConfigurationHandler builder = new SAXConfigurationHandler();
source.toSAX(builder);
conf.lastModified = source.getLastModified();