use of ch.qos.logback.core.joran.event.SaxEventRecorder in project sling by apache.
the class OsgiInternalAction method begin.
@SuppressWarnings("unchecked")
@Override
public void begin(InterpretationContext ec, String name, Attributes attributes) throws ActionException {
ec.addInPlayListener(new ConfigCompleteListener(ec));
populateSubstitutionProperties(ec);
// TO CHECK Should we add the config fragment at end
final Collection<ConfigSourceInfo> providers = getFragmentProviders();
List<SaxEvent> consolidatedEventList = new ArrayList<SaxEvent>();
for (ConfigSourceInfo cp : providers) {
InputSource is = cp.getConfigProvider().getConfigSource();
try {
SaxEventRecorder recorder = new SaxEventRecorder(context);
recorder.recordEvents(is);
// remove the <included> tag from the beginning and </included>
// from the end
trimHeadAndTail(recorder);
consolidatedEventList.addAll(recorder.getSaxEventList());
} catch (JoranException e) {
addError("Error while parsing xml obtained from [" + cp + "]", e);
} finally {
Util.close(is);
}
}
// offset = 2, because we need to get past this element as well as the
// end element
ec.getJoranInterpreter().getEventPlayer().addEventsDynamically(consolidatedEventList, 2);
}
Aggregations