private boolean applyJoinerDelayOverwrite()

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