*/
private boolean processLevelChangeEvent(ConfigChange change,
LevelChangeProcessor processor) {
// Only updates for level change can be handled dynamically, all
// other changes will require restart.
ConfigUpdate update = convertToConfigUpdate(change);
if (update == null) {
return false;
}
String xpath = cleanXPath(update.getXPath());
if (!processor.isRelevant(xpath)) {
return false;
}
Set attrs = update.getAttributeSet();
if (attrs == null) {
logger.log(Level.FINEST, "admin.event.null_updated_attrs",
update.getXPath());
return false;
}
Iterator iter = attrs.iterator();
while (iter.hasNext()) {
String compName = (String)iter.next();
String oldValue = update.getOldValue(compName);
String newValue = update.getNewValue(compName);
AdminEvent event = processor.createEvent(compName, oldValue,
newValue);
cache.add(event);
ConfigUpdate upd = new ConfigUpdateImpl(xpath, compName, oldValue,
newValue);
event.addConfigChange(upd);
}
return true;
}