Java 类ch.qos.logback.core.joran.util.ConfigurationWatchListUtil 实例源码
项目:bartleby
文件:GenericConfigurator.java
public final void doConfigure(final InputSource inputSource)
throws JoranException {
long threshold = System.currentTimeMillis();
if (!ConfigurationWatchListUtil.wasConfigurationWatchListReset(context)) {
informContextOfURLUsedForConfiguration(getContext(), null);
}
SaxEventRecorder recorder = new SaxEventRecorder(context);
recorder.recordEvents(inputSource);
doConfigure(recorder.saxEventList);
// no exceptions a this level
StatusUtil statusUtil = new StatusUtil(context);
if (statusUtil.noXMLParsingErrorsOccurred(threshold)) {
addInfo("Registering current configuration as safe fallback point");
registerSafeConfiguration();
}
}
项目:bartleby
文件:ReconfigureOnChangeFilter.java
@Override
public void start() {
configurationWatchList = ConfigurationWatchListUtil.getConfigurationWatchList(context);
if (configurationWatchList != null) {
mainConfigurationURL = configurationWatchList.getMainURL();
if(mainConfigurationURL == null) {
addWarn("Due to missing top level configuration file, automatic reconfiguration is impossible.");
return;
}
List<File> watchList = configurationWatchList.getCopyOfFileWatchList();
long inSeconds = refreshPeriod / 1000;
addInfo("Will scan for changes in [" + watchList + "] every "
+ inSeconds + " seconds. ");
synchronized (configurationWatchList) {
updateNextCheck(System.currentTimeMillis());
}
super.start();
} else {
addWarn("Empty ConfigurationWatchList in context");
}
}
项目:bartleby
文件:ReconfigureOnChangeFilter.java
private void performXMLConfiguration(LoggerContext lc) {
JoranConfigurator jc = new JoranConfigurator();
jc.setContext(context);
StatusUtil statusUtil = new StatusUtil(context);
List<SaxEvent> eventList = jc.recallSafeConfiguration();
URL mainURL = ConfigurationWatchListUtil.getMainWatchURL(context);
lc.reset();
long threshold = System.currentTimeMillis();
try {
jc.doConfigure(mainConfigurationURL);
if (statusUtil.hasXMLParsingErrors(threshold)) {
fallbackConfiguration(lc, eventList, mainURL);
}
} catch (JoranException e) {
fallbackConfiguration(lc, eventList, mainURL);
}
}
项目:bartleby
文件:IncludeAction.java
InputStream getInputStream(InterpretationContext ec, Attributes attributes) {
URL inputURL = getInputURL(ec, attributes);
if (inputURL == null)
return null;
ConfigurationWatchListUtil.addToWatchList(context, inputURL);
return openURL(inputURL);
}
项目:bartleby
文件:ReconfigureOnChangeTest.java
@Test
public void includeScanViaInputStreamSuppliedConfigFile() throws IOException, JoranException, InterruptedException {
String configurationStr = "<configuration scan=\"true\" scanPeriod=\"50 millisecond\"><include resource=\"asResource/inner1.xml\"/></configuration>";
configure(new ByteArrayInputStream(configurationStr.getBytes("UTF-8")));
ConfigurationWatchList configurationWatchList = ConfigurationWatchListUtil.getConfigurationWatchList(loggerContext);
assertNull(configurationWatchList.getMainURL());
ReconfigureOnChangeFilter reconfigureOnChangeFilter = (ReconfigureOnChangeFilter) getFirstTurboFilter();
// without a top level file, reconfigureOnChangeFilter should not start
assertFalse(reconfigureOnChangeFilter.isStarted());
}
项目:bartleby
文件:ReconfigureOnChangeTest.java
ReconfigureOnChangeFilter initROCF() throws MalformedURLException {
ReconfigureOnChangeFilter rocf = new ReconfigureOnChangeFilter();
rocf.setContext(loggerContext);
File file = new File(SCAN1_FILE_AS_STR);
ConfigurationWatchListUtil.setMainWatchURL(loggerContext, file.toURI().toURL());
rocf.start();
return rocf;
}
项目:bartleby
文件:GenericConfigurator.java
public static void informContextOfURLUsedForConfiguration(Context context, URL url) {
ConfigurationWatchListUtil.setMainWatchURL(context, url);
}
项目:bartleby
文件:ReconfigureOnChangeTest.java
List<File> getConfigurationFileList(LoggerContext context) {
ConfigurationWatchList configurationWatchList = ConfigurationWatchListUtil.getConfigurationWatchList(loggerContext);
return configurationWatchList.getCopyOfFileWatchList();
}