Listening for Settings Changes#
You can listen for changes to the global settings object.
This is most useful when combined with other extension points, allowing extensions to define and make use of extended settings values rather than rolling their own configuration strategy.
A common pattern is to listen for changes and capture the value locally, using this to affect the main extension's behaviour e.g.:
public class MyConfigurableServeEventListener
implements ServeEventListener, GlobalSettingsListener {
private volatile String mySetting = "";
@Override
public void afterGlobalSettingsUpdated(
GlobalSettings oldSettings,
GlobalSettings newSettings) {
mySetting = newSettings.getExtended().getString("my-setting");
}
@Override
public void onEvent(
RequestPhase requestPhase,
ServeEvent serveEvent,
Parameters parameters) {
log.debug("My setting is " + mySetting);
}
@Override
public String getName() {
return "my-listener";
}
}