in src/main/java/org/apache/sling/discovery/oak/Config.java [467:489]
private boolean applyJoinerDelayOverwrite(final boolean configValue) {
final long now = System.currentTimeMillis();
if (joinerDelayOverwriteNextCheck != 0 && now < joinerDelayOverwriteNextCheck) {
// avoid reading system property too often, only do every 5 minutes.
return joinerDelayOverwrite;
}
final String systemPropertyValue = System.getProperty(JOINER_DELAY_ENABLED_SYSTEM_PROPERTY_NAME);
final boolean newJoinerDelayOverwrite = standardConverter().convert(systemPropertyValue).defaultValue(configValue).to(Boolean.class);
if (joinerDelayOverwriteNextCheck == 0) {
logger.info("applyJoinerDelayOverwrite : initialization."
+ " system property '" + JOINER_DELAY_ENABLED_SYSTEM_PROPERTY_NAME + "' = " + systemPropertyValue
+ ", config value = " + configValue
+ ", resulting value = " + newJoinerDelayOverwrite);
} else if (newJoinerDelayOverwrite != joinerDelayOverwrite) {
logger.info("applyJoinerDelayOverwrite : value change."
+ " system property '" + JOINER_DELAY_ENABLED_SYSTEM_PROPERTY_NAME + "' = " + systemPropertyValue
+ ", config value = " + configValue
+ ", resulting value = " + newJoinerDelayOverwrite);
}
joinerDelayOverwrite = newJoinerDelayOverwrite;
joinerDelayOverwriteNextCheck = now + 300000; //re-check every 300sec, should be fast and slow enough
return joinerDelayOverwrite;
}