001package io.avaje.config; 002 003/** 004 * Additional source to load and update configuration. 005 */ 006public interface ConfigurationSource { 007 008 /** 009 * Load additional configuration. 010 * <p> 011 * At this load time the configuration has already loaded properties 012 * from files and resources and configuration can be read provide 013 * configuration to the source like URL's to load more configuration 014 * from etc. 015 * <p> 016 * The {@link Configuration#setProperty(String, String)} method is 017 * used when loading the additional properties from the source. 018 * <p> 019 * Also note that the source can additionally use 020 * {@link Configuration#schedule(long, long, Runnable)} to schedule 021 * a period task to for example refresh data etc. 022 * 023 * @param configuration The configuration with initially properties. 024 */ 025 void load(Configuration configuration); 026}