A specialized {@code ConfigurationBuilder} implementation which can handleconfigurations read from a {@link FileHandler} and supports reloading.
This builder class exposes a {@link ReloadingController} object controllingreload operations on the file-based configuration produced as result object. For the {@code FileHandler} defining the location of the configuration a{@link FileHandlerReloadingDetector} is created and associated with thecontroller. So changes on the source file can be detected. When ever such a change occurs, the result object of this builder is reset. This means that the next time {@code getConfiguration()} is called a new{@code Configuration} object is created which is loaded from the modifiedfile.
Client code interested in notifications can register a listener at this builder to receive reset events. When such an event is received the new result object can be requested. This way client applications can be sure to work with an up-to-date configuration. It is also possible to register a listener directly at the {@code ReloadingController}.
This builder does not actively trigger the {@code ReloadingController} toperform a reload check. This has to be done by an external component, e.g. a timer.
@version $Id: ReloadingFileBasedConfigurationBuilder.java 1624601 2014-09-12 18:04:36Z oheger $
@since 2.0
@param < T> the concrete type of {@code Configuration} objects created by thisbuilder