I'm using Archaius to keep system properties aligned between all the servers hosting my app. I can see all the property getters can take a callback to be called whenever that property changes (for instance see the third argument in getStringProperty()
) but I want to listen for any property change. Is there some interface I can implement and register as a listener somewhere?
I did not find an answer in any of the Archaius How-to documentation, but Apache Commons Configuration does provide a solution in their Configuration Events documentation (which Archaius is fully compatible with).
I created a listener by implementing org.apache.commons.configuration.event.ConfigurationListener
, which defines a single method called configurationChanged()
and takes a single ConfigurationEvent
parameter. This method is called once before and once after the property actually changes, with a beforeUpdate
boolean on the event
parameter indicating the timing for each call.
Once I created the listener, I registered it with my Archaius configuration manager:
ConfigurationManager.getConfigInstance().addConfigurationListener(new MyCustomConfigurationListener());
Now I can see MyCustomConfigurationListener.configurationChanged()
is called twice (once before and once after) on every property change.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With