Class SynchronizationServiceImpl
- java.lang.Object
-
- com.evolveum.midpoint.model.impl.sync.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, ...)- Author:
- lazyman, Radovan Semancik Note: don't autowire this bean by implementing class, as it is proxied by Spring AOP. Use the interface instead.
-
-
Constructor Summary
Constructors Constructor Description SynchronizationServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getName()
Returns a short name of the listener for debugging purposes.<F extends FocusType>
SynchronizationContext<F>loadSynchronizationContext(PrismObject<ShadowType> applicableShadow, PrismObject<ShadowType> currentShadow, PrismObject<ResourceType> resource, String sourceChanel, PrismObject<SystemConfigurationType> configuration, Task task, OperationResult result)
<F extends FocusType>
booleanmatchUserCorrelationRule(PrismObject<ShadowType> shadow, PrismObject<F> focus, ResourceType resourceType, PrismObject<SystemConfigurationType> configuration, Task task, OperationResult result)
Tries to match specified focus and shadow.<F extends FocusType>
voidnotifyChange(ResourceObjectShadowChangeDescription change, Task task, OperationResult parentResult)
Submits notification about a specific change that happened on the resource.
-
-
-
Method Detail
-
notifyChange
public <F extends FocusType> void notifyChange(ResourceObjectShadowChangeDescription change, Task task, OperationResult parentResult)
Description copied from interface:ResourceObjectChangeListener
Submits notification about a specific change that happened on the resource. This describes the change that has already happened on the resource. The upper layers are notified to take that change into an account (synchronize it). The call should return without a major delay. It means that the implementation can do calls to repository, but it should not (synchronously) initiate a long-running process or provisioning request. 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 interfaceResourceObjectChangeListener
- Parameters:
change
- change description
-
loadSynchronizationContext
public <F extends FocusType> SynchronizationContext<F> loadSynchronizationContext(PrismObject<ShadowType> applicableShadow, PrismObject<ShadowType> currentShadow, PrismObject<ResourceType> resource, String sourceChanel, PrismObject<SystemConfigurationType> configuration, Task task, OperationResult result) throws SchemaException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException, SecurityViolationException
-
matchUserCorrelationRule
public <F extends FocusType> boolean matchUserCorrelationRule(PrismObject<ShadowType> shadow, PrismObject<F> focus, ResourceType resourceType, PrismObject<SystemConfigurationType> configuration, Task task, OperationResult result) throws ConfigurationException, SchemaException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, SecurityViolationException
Tries to match specified focus and shadow. Return true if it matches, false otherwise.
-
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 interfaceProvisioningListener
-
-