class ConfigurationChangeDetector {

	private static final LogAccessor LOG = new LogAccessor(LogFactory.getLog(ConfigurationChangeDetector.class));

	protected ConfigurableEnvironment environment;

	protected ConfigReloadProperties properties;

	protected ConfigurationUpdateStrategy strategy;

	public ConfigurationChangeDetector(ConfigurableEnvironment environment, ConfigReloadProperties properties,
			ConfigurationUpdateStrategy strategy) {
		this.environment = Objects.requireNonNull(environment);
		this.properties = Objects.requireNonNull(properties);
		this.strategy = Objects.requireNonNull(strategy);
	}

	public void reloadProperties() {<FILL_FUNCTION_BODY>}

}

		LOG.info(() -> "Reloading using strategy: " + this.strategy.name());
		strategy.reloadProcedure().run();
	
<no_super_class>