in src/java/org/apache/fulcrum/yaafi/framework/container/ServiceContainerImpl.java [478:524]
public synchronized void reconfigure(Configuration configuration) throws ConfigurationException {
Validate.notNull(configuration, "configuration");
int exceptionCounter = 0;
ServiceComponent serviceComponent;
this.getLogger().warn("Reconfiguring all services ...");
// 1) wait for some time
this.waitForReconfiguration();
// 2) store the new configuration
this.serviceConfiguration = configuration;
Properties componentConfigurationProperties = this.loadComponentConfigurationProperties();
ConfigurationUtil.expand(this.getLogger(), (DefaultConfiguration) this.serviceConfiguration,
componentConfigurationProperties);
// 3) reconfigure the services
for (int i = 0; i < this.getServiceList().size(); i++) {
serviceComponent = (ServiceComponent) this.getServiceList().get(i);
Configuration serviceComponentConfiguration = this.serviceConfiguration
.getChild(serviceComponent.getShorthand());
try {
serviceComponent.setConfiguration(serviceComponentConfiguration);
serviceComponent.reconfigure();
} catch (Throwable t) {
String msg = "Reconfiguring of " + serviceComponent.getShorthand() + " failed";
this.getLogger().error(msg);
exceptionCounter++;
}
}
// 4) check the result
if (exceptionCounter > 0) {
String msg = "The reconfiguration failed with " + exceptionCounter + " exception(s)";
this.getLogger().error(msg);
throw new ConfigurationException(msg);
}
}