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, ...)Note: don't autowire this bean by implementing class, as it is proxied by Spring AOP. Use the interface instead.
- Author:
- lazyman, Radovan Semancik
-
-
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(@NotNull PrismObject<ShadowType> shadowedResourceObject, ObjectDelta<ShadowType> resourceObjectDelta, PrismObject<ResourceType> resource, String sourceChanel, String itemProcessingIdentifier, PrismObject<SystemConfigurationType> explicitSystemConfiguration, Task task, OperationResult result)
<F extends FocusType>
booleanmatchUserCorrelationRule(PrismObject<ShadowType> shadowedResourceObject, PrismObject<F> focus, ResourceType resourceType, PrismObject<SystemConfigurationType> configuration, Task task, OperationResult result)
Tries to match specified focus and shadow.void
notifyChange(@NotNull ResourceObjectShadowChangeDescription change, Task task, OperationResult parentResult)
Submits notification about a specific change that happened on the resource.
-
-
-
Method Detail
-
notifyChange
public void notifyChange(@NotNull @NotNull 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(@NotNull @NotNull PrismObject<ShadowType> shadowedResourceObject, ObjectDelta<ShadowType> resourceObjectDelta, PrismObject<ResourceType> resource, String sourceChanel, String itemProcessingIdentifier, PrismObject<SystemConfigurationType> explicitSystemConfiguration, Task task, OperationResult result) throws SchemaException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException, SecurityViolationException
-
matchUserCorrelationRule
public <F extends FocusType> boolean matchUserCorrelationRule(PrismObject<ShadowType> shadowedResourceObject, 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
-
-