package org.distributeme.core.routing;
/**
* If some object wants to react to router configuration changes, it can observe router configuration via this interface.
* Method 'routerConfigurationChange' will be called on every change, routerConfigurationInitialChange only on initial configuration and
* routerConfigurationFollowupChange only upon reconfiguration.
* Note: due to the nature of the service initialization, a service will never be able to get initial router configuration event. Instead it should only listen to followup change events.
*
* @author lrosenberg
* @since 23.09.15 22:55
* @version $Id: $Id
*/
public interface RouterConfigurationObserver {
/**
* Called upon FIRST configuration of the router.
*
* @param configuration a {@link org.distributeme.core.routing.GenericRouterConfiguration} object.
*/
void routerConfigurationInitialChange(GenericRouterConfiguration configuration);
/**
* Called upon
*
* @param configuration a {@link org.distributeme.core.routing.GenericRouterConfiguration} object.
*/
void routerConfigurationFollowupChange(GenericRouterConfiguration configuration);
/**
* Called after every router configuration change.
*
* @param configuration a {@link org.distributeme.core.routing.GenericRouterConfiguration} object.
*/
void routerConfigurationChange(GenericRouterConfiguration configuration);
}