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();
}