com.evolveum.midpoint.provisioning.impl
Class ChangeNotificationDispatcherImpl

java.lang.Object
  extended by com.evolveum.midpoint.provisioning.impl.ChangeNotificationDispatcherImpl
All Implemented Interfaces:
ChangeNotificationDispatcher, ResourceObjectChangeListener

@Component
public class ChangeNotificationDispatcherImpl
extends java.lang.Object
implements ChangeNotificationDispatcher

Author:
Radovan Semancik

Field Summary
 
Fields inherited from interface com.evolveum.midpoint.provisioning.api.ResourceObjectChangeListener
CHECK_SITUATION, CLASS_NAME_WITH_DOT, NOTIFY_CHANGE
 
Constructor Summary
ChangeNotificationDispatcherImpl()
           
 
Method Summary
 java.lang.String getName()
          Returns a short name of the listener for debugging purposes.
 void notifyChange(ResourceObjectShadowChangeDescription change, Task task, OperationResult parentResult)
          Submits notification about a specific change that happened on the resource.
 void notifyFailure(ResourceObjectShadowFailureDescription failureDescription, Task task, OperationResult parentResult)
          Submits notification about a failure to apply a change on resource.
 void registerNotificationListener(ResourceObjectChangeListener listener)
           
 void unregisterNotificationListener(ResourceObjectChangeListener listener)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ChangeNotificationDispatcherImpl

public ChangeNotificationDispatcherImpl()
Method Detail

registerNotificationListener

public void registerNotificationListener(ResourceObjectChangeListener listener)
Specified by:
registerNotificationListener in interface ChangeNotificationDispatcher

unregisterNotificationListener

public void unregisterNotificationListener(ResourceObjectChangeListener listener)
Specified by:
unregisterNotificationListener in interface ChangeNotificationDispatcher

notifyChange

public 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 interface ResourceObjectChangeListener
Parameters:
change - change description

notifyFailure

public void notifyFailure(ResourceObjectShadowFailureDescription failureDescription,
                          Task task,
                          OperationResult parentResult)
Description copied from interface: ResourceObjectChangeListener
Submits notification about a failure to apply a change on resource. This describes the change that should have been executed on the resource but that never happened because a failure was detected. The upper layers are notified to take handle that failure (e.g. notify the administrator). This should be called for operations that were done asynchronously and failed to execute. It should NOT be called for synchronous operations. Direct return value should be used instead. 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.

Specified by:
notifyFailure in interface ResourceObjectChangeListener

getName

public java.lang.String getName()
Description copied from interface: ResourceObjectChangeListener
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 ResourceObjectChangeListener


Copyright © 2012 evolveum. All Rights Reserved.