The configuration change listener is an extension point of the configuration persister, which is the interface that stores the data. With the configuration change listener, other components can subscribe to configuration events, such as update or delete a ConnectionInfo object.

Normally, the plug-ins store all live connections and sessions in the memory, as a self-managed cache. In this way, you can make sure that only a single instance of a connection or session exists. If another user updates or deletes this connection instance, by using the ConnectionPersister interface, the cache that stores the live connections or sessions, enters in an inconsistent state.

You can implement the observer pattern to prevent such a situation:

public interface ConfigurationChangeListener {
 /*
 * Invoked when the ConnectionInfo input is updated
 */
 void connectionUpdated(ConnectionInfo info);
 /*
 * Invoked when the ConnectionInfo input is deleted
 */
 void connectionRemoved(ConnectionInfo info);
}