Class SynchronizationServiceImpl

  • All Implemented Interfaces:
    SynchronizationService, ProvisioningListener, ResourceObjectChangeListener

    @Service("synchronizationService")
    public class SynchronizationServiceImpl
    extends Object
    implements SynchronizationService
    Synchronization service receives change notifications from provisioning. It decides which synchronization policy to use and evaluates it (correlation, confirmation, situations, reaction, ...)

    Note: don't autowire this bean by implementing class, as it is proxied by Spring AOP. Use the interface instead. TODO improve the error handling for the whole class

    Author:
    lazyman, Radovan Semancik
    • Constructor Detail

      • SynchronizationServiceImpl

        public SynchronizationServiceImpl()
    • Method Detail

      • notifyChange

        public void notifyChange​(@NotNull
                                 @NotNull ResourceObjectShadowChangeDescription change,
                                 @NotNull
                                 @NotNull Task task,
                                 @NotNull
                                 @NotNull OperationResult parentResult)
        Description copied from interface: ResourceObjectChangeListener
        Processes a notification about a specific change that happened on the resource. The change has already happened on the resource. The upper layers (implementing this interface) are notified to take that change into an account i.e. synchronize it. This operation may be called multiple times with the same change, e.g. in case of failures in IDM or on the resource. The implementation must be able to handle such duplicates.
        Specified by:
        notifyChange in interface ResourceObjectChangeListener
        Parameters:
        change - change description
      • getName

        public String getName()
        Description copied from interface: ProvisioningListener
        Returns a short name of the listener for debugging purposes. E.g. "model synchronization service". This name is used in log and error messages.
        Specified by:
        getName in interface ProvisioningListener