Class AbstractPropagationTaskExecutor

  • All Implemented Interfaces:
    org.apache.syncope.core.provisioning.api.propagation.PropagationTaskExecutor
    Direct Known Subclasses:
    PriorityPropagationTaskExecutor

    @Transactional(rollbackFor=java.lang.Throwable.class)
    public abstract class AbstractPropagationTaskExecutor
    extends Object
    implements org.apache.syncope.core.provisioning.api.propagation.PropagationTaskExecutor
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.apache.syncope.core.persistence.api.dao.AnyObjectDAO anyObjectDAO  
      protected org.apache.syncope.core.persistence.api.entity.AnyUtilsFactory anyUtilsFactory  
      protected org.apache.syncope.core.provisioning.api.AuditManager auditManager  
      protected org.apache.syncope.core.provisioning.api.ConnectorManager connectorManager  
      protected ConnObjectUtils connObjectUtils  
      protected org.apache.syncope.core.persistence.api.dao.GroupDAO groupDAO  
      protected static org.slf4j.Logger LOG  
      protected org.apache.syncope.core.provisioning.api.notification.NotificationManager notificationManager  
      protected OutboundMatcher outboundMatcher  
      protected Map<String,​org.apache.syncope.core.provisioning.api.propagation.PropagationActions> perContextActions  
      protected org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO plainSchemaDAO  
      protected org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO resourceDAO  
      protected Map<String,​org.springframework.retry.support.RetryTemplate> retryTemplates  
      protected org.apache.syncope.core.persistence.api.dao.TaskDAO taskDAO  
      protected org.apache.syncope.core.provisioning.api.data.TaskDataBinder taskDataBinder  
      protected org.apache.syncope.core.persistence.api.entity.task.TaskUtilsFactory taskUtilsFactory  
      protected org.apache.syncope.core.persistence.api.dao.UserDAO userDAO  
      protected org.apache.syncope.core.persistence.api.attrvalue.validation.PlainAttrValidationManager validator  
    • Constructor Summary

      Constructors 
      Constructor Description
      AbstractPropagationTaskExecutor​(org.apache.syncope.core.provisioning.api.ConnectorManager connectorManager, ConnObjectUtils connObjectUtils, org.apache.syncope.core.persistence.api.dao.UserDAO userDAO, org.apache.syncope.core.persistence.api.dao.GroupDAO groupDAO, org.apache.syncope.core.persistence.api.dao.AnyObjectDAO anyObjectDAO, org.apache.syncope.core.persistence.api.dao.TaskDAO taskDAO, org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO resourceDAO, org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO plainSchemaDAO, org.apache.syncope.core.provisioning.api.notification.NotificationManager notificationManager, org.apache.syncope.core.provisioning.api.AuditManager auditManager, org.apache.syncope.core.provisioning.api.data.TaskDataBinder taskDataBinder, org.apache.syncope.core.persistence.api.entity.AnyUtilsFactory anyUtilsFactory, org.apache.syncope.core.persistence.api.entity.task.TaskUtilsFactory taskUtilsFactory, OutboundMatcher outboundMatcher, org.apache.syncope.core.persistence.api.attrvalue.validation.PlainAttrValidationManager validator)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected org.identityconnectors.framework.common.objects.Uid createOrUpdate​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo, boolean fetchRemoteObj, org.identityconnectors.framework.common.objects.ConnectorObject beforeObj, org.apache.syncope.core.provisioning.api.Connector connector, AtomicReference<Boolean> propagationAttempted)  
      protected org.identityconnectors.framework.common.objects.Uid delete​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo, boolean fetchRemoteObj, org.identityconnectors.framework.common.objects.ConnectorObject beforeObj, org.apache.syncope.core.provisioning.api.Connector connector, AtomicReference<Boolean> propagationAttempted)  
      protected org.identityconnectors.framework.common.objects.Uid doCreate​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo, Set<org.identityconnectors.framework.common.objects.Attribute> attributes, org.apache.syncope.core.provisioning.api.Connector connector, AtomicReference<Boolean> propagationAttempted)  
      protected org.apache.syncope.core.persistence.api.entity.task.TaskExec<org.apache.syncope.core.persistence.api.entity.task.PropagationTask> doExecute​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo, org.apache.syncope.core.provisioning.api.propagation.PropagationReporter reporter, String executor)  
      protected org.identityconnectors.framework.common.objects.Uid doUpdate​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo, Set<org.identityconnectors.framework.common.objects.Attribute> attributes, org.apache.syncope.core.provisioning.api.Connector connector, org.identityconnectors.framework.common.objects.ConnectorObject beforeObj, AtomicReference<Boolean> propagationAttempted)  
      protected org.identityconnectors.framework.common.objects.Uid doUpdateDelta​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo, Set<org.identityconnectors.framework.common.objects.AttributeDelta> modifications, org.apache.syncope.core.provisioning.api.Connector connector, AtomicReference<Boolean> propagationAttempted)  
      org.apache.syncope.core.persistence.api.entity.task.TaskExec<org.apache.syncope.core.persistence.api.entity.task.PropagationTask> execute​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo, org.apache.syncope.core.provisioning.api.propagation.PropagationReporter reporter, String executor)  
      void expireRetryTemplate​(String resource)  
      protected List<org.apache.syncope.core.provisioning.api.propagation.PropagationActions> getPropagationActions​(org.apache.syncope.core.persistence.api.entity.ExternalResource resource)  
      protected org.identityconnectors.framework.common.objects.ConnectorObject getRemoteObject​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo, org.apache.syncope.core.provisioning.api.Connector connector, org.apache.syncope.common.lib.to.OrgUnit orgUnit, List<org.apache.syncope.core.provisioning.api.propagation.PropagationActions> actions, boolean latest)
      Get remote object for given task.
      protected org.identityconnectors.framework.common.objects.ConnectorObject getRemoteObject​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo, org.apache.syncope.core.provisioning.api.Connector connector, org.apache.syncope.common.lib.to.Provision provision, List<org.apache.syncope.core.provisioning.api.propagation.PropagationActions> actions, boolean latest)
      Get remote object for given task.
      protected Optional<org.apache.syncope.core.persistence.api.entity.task.PropagationTask> hasToBeregistered​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo, org.apache.syncope.core.persistence.api.entity.task.TaskExec<org.apache.syncope.core.persistence.api.entity.task.PropagationTask> execution)
      Check whether an execution has to be stored, for a given task.
      protected boolean isFetchRemoteObj​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo)  
      protected org.apache.syncope.core.persistence.api.entity.task.TaskExec<org.apache.syncope.core.persistence.api.entity.task.PropagationTask> rejected​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo, String rejectReason, org.apache.syncope.core.provisioning.api.propagation.PropagationReporter reporter, String executor)  
      protected Optional<org.springframework.retry.support.RetryTemplate> retryTemplate​(org.apache.syncope.core.persistence.api.entity.ExternalResource resource)  
      • Methods inherited from interface org.apache.syncope.core.provisioning.api.propagation.PropagationTaskExecutor

        execute
    • Field Detail

      • LOG

        protected static final org.slf4j.Logger LOG
      • retryTemplates

        protected final Map<String,​org.springframework.retry.support.RetryTemplate> retryTemplates
      • connectorManager

        protected final org.apache.syncope.core.provisioning.api.ConnectorManager connectorManager
      • userDAO

        protected final org.apache.syncope.core.persistence.api.dao.UserDAO userDAO
      • groupDAO

        protected final org.apache.syncope.core.persistence.api.dao.GroupDAO groupDAO
      • anyObjectDAO

        protected final org.apache.syncope.core.persistence.api.dao.AnyObjectDAO anyObjectDAO
      • taskDAO

        protected final org.apache.syncope.core.persistence.api.dao.TaskDAO taskDAO
      • resourceDAO

        protected final org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO resourceDAO
      • plainSchemaDAO

        protected final org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO plainSchemaDAO
      • notificationManager

        protected final org.apache.syncope.core.provisioning.api.notification.NotificationManager notificationManager
      • auditManager

        protected final org.apache.syncope.core.provisioning.api.AuditManager auditManager
      • taskDataBinder

        protected final org.apache.syncope.core.provisioning.api.data.TaskDataBinder taskDataBinder
      • anyUtilsFactory

        protected final org.apache.syncope.core.persistence.api.entity.AnyUtilsFactory anyUtilsFactory
      • taskUtilsFactory

        protected final org.apache.syncope.core.persistence.api.entity.task.TaskUtilsFactory taskUtilsFactory
      • validator

        protected final org.apache.syncope.core.persistence.api.attrvalue.validation.PlainAttrValidationManager validator
      • perContextActions

        protected final Map<String,​org.apache.syncope.core.provisioning.api.propagation.PropagationActions> perContextActions
    • Constructor Detail

      • AbstractPropagationTaskExecutor

        public AbstractPropagationTaskExecutor​(org.apache.syncope.core.provisioning.api.ConnectorManager connectorManager,
                                               ConnObjectUtils connObjectUtils,
                                               org.apache.syncope.core.persistence.api.dao.UserDAO userDAO,
                                               org.apache.syncope.core.persistence.api.dao.GroupDAO groupDAO,
                                               org.apache.syncope.core.persistence.api.dao.AnyObjectDAO anyObjectDAO,
                                               org.apache.syncope.core.persistence.api.dao.TaskDAO taskDAO,
                                               org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO resourceDAO,
                                               org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO plainSchemaDAO,
                                               org.apache.syncope.core.provisioning.api.notification.NotificationManager notificationManager,
                                               org.apache.syncope.core.provisioning.api.AuditManager auditManager,
                                               org.apache.syncope.core.provisioning.api.data.TaskDataBinder taskDataBinder,
                                               org.apache.syncope.core.persistence.api.entity.AnyUtilsFactory anyUtilsFactory,
                                               org.apache.syncope.core.persistence.api.entity.task.TaskUtilsFactory taskUtilsFactory,
                                               OutboundMatcher outboundMatcher,
                                               org.apache.syncope.core.persistence.api.attrvalue.validation.PlainAttrValidationManager validator)
    • Method Detail

      • expireRetryTemplate

        public void expireRetryTemplate​(String resource)
        Specified by:
        expireRetryTemplate in interface org.apache.syncope.core.provisioning.api.propagation.PropagationTaskExecutor
      • getPropagationActions

        protected List<org.apache.syncope.core.provisioning.api.propagation.PropagationActions> getPropagationActions​(org.apache.syncope.core.persistence.api.entity.ExternalResource resource)
      • doCreate

        protected org.identityconnectors.framework.common.objects.Uid doCreate​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo,
                                                                               Set<org.identityconnectors.framework.common.objects.Attribute> attributes,
                                                                               org.apache.syncope.core.provisioning.api.Connector connector,
                                                                               AtomicReference<Boolean> propagationAttempted)
      • doUpdate

        protected org.identityconnectors.framework.common.objects.Uid doUpdate​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo,
                                                                               Set<org.identityconnectors.framework.common.objects.Attribute> attributes,
                                                                               org.apache.syncope.core.provisioning.api.Connector connector,
                                                                               org.identityconnectors.framework.common.objects.ConnectorObject beforeObj,
                                                                               AtomicReference<Boolean> propagationAttempted)
      • doUpdateDelta

        protected org.identityconnectors.framework.common.objects.Uid doUpdateDelta​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo,
                                                                                    Set<org.identityconnectors.framework.common.objects.AttributeDelta> modifications,
                                                                                    org.apache.syncope.core.provisioning.api.Connector connector,
                                                                                    AtomicReference<Boolean> propagationAttempted)
      • createOrUpdate

        protected org.identityconnectors.framework.common.objects.Uid createOrUpdate​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo,
                                                                                     boolean fetchRemoteObj,
                                                                                     org.identityconnectors.framework.common.objects.ConnectorObject beforeObj,
                                                                                     org.apache.syncope.core.provisioning.api.Connector connector,
                                                                                     AtomicReference<Boolean> propagationAttempted)
      • delete

        protected org.identityconnectors.framework.common.objects.Uid delete​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo,
                                                                             boolean fetchRemoteObj,
                                                                             org.identityconnectors.framework.common.objects.ConnectorObject beforeObj,
                                                                             org.apache.syncope.core.provisioning.api.Connector connector,
                                                                             AtomicReference<Boolean> propagationAttempted)
      • retryTemplate

        protected Optional<org.springframework.retry.support.RetryTemplate> retryTemplate​(org.apache.syncope.core.persistence.api.entity.ExternalResource resource)
      • execute

        public org.apache.syncope.core.persistence.api.entity.task.TaskExec<org.apache.syncope.core.persistence.api.entity.task.PropagationTask> execute​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo,
                                                                                                                                                         org.apache.syncope.core.provisioning.api.propagation.PropagationReporter reporter,
                                                                                                                                                         String executor)
        Specified by:
        execute in interface org.apache.syncope.core.provisioning.api.propagation.PropagationTaskExecutor
      • isFetchRemoteObj

        protected boolean isFetchRemoteObj​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo)
      • doExecute

        protected org.apache.syncope.core.persistence.api.entity.task.TaskExec<org.apache.syncope.core.persistence.api.entity.task.PropagationTask> doExecute​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo,
                                                                                                                                                              org.apache.syncope.core.provisioning.api.propagation.PropagationReporter reporter,
                                                                                                                                                              String executor)
      • rejected

        protected org.apache.syncope.core.persistence.api.entity.task.TaskExec<org.apache.syncope.core.persistence.api.entity.task.PropagationTask> rejected​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo,
                                                                                                                                                             String rejectReason,
                                                                                                                                                             org.apache.syncope.core.provisioning.api.propagation.PropagationReporter reporter,
                                                                                                                                                             String executor)
      • hasToBeregistered

        protected Optional<org.apache.syncope.core.persistence.api.entity.task.PropagationTask> hasToBeregistered​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo,
                                                                                                                  org.apache.syncope.core.persistence.api.entity.task.TaskExec<org.apache.syncope.core.persistence.api.entity.task.PropagationTask> execution)
        Check whether an execution has to be stored, for a given task.
        Parameters:
        taskInfo - propagation task
        execution - to be decide whether to store or not
        Returns:
        true if execution has to be store, false otherwise
      • getRemoteObject

        protected org.identityconnectors.framework.common.objects.ConnectorObject getRemoteObject​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo,
                                                                                                  org.apache.syncope.core.provisioning.api.Connector connector,
                                                                                                  org.apache.syncope.common.lib.to.Provision provision,
                                                                                                  List<org.apache.syncope.core.provisioning.api.propagation.PropagationActions> actions,
                                                                                                  boolean latest)
        Get remote object for given task.
        Parameters:
        connector - connector facade proxy
        taskInfo - current propagation task
        provision - provision
        actions - propagation actions
        latest - 'FALSE' to retrieve object using old connObjectKey if not null.
        Returns:
        remote connector object.
      • getRemoteObject

        protected org.identityconnectors.framework.common.objects.ConnectorObject getRemoteObject​(org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo taskInfo,
                                                                                                  org.apache.syncope.core.provisioning.api.Connector connector,
                                                                                                  org.apache.syncope.common.lib.to.OrgUnit orgUnit,
                                                                                                  List<org.apache.syncope.core.provisioning.api.propagation.PropagationActions> actions,
                                                                                                  boolean latest)
        Get remote object for given task.
        Parameters:
        connector - connector facade proxy
        taskInfo - current propagation task
        orgUnit - orgUnit
        actions - propagation actions
        latest - 'FALSE' to retrieve object using old connObjectKey if not null.
        Returns:
        remote connector object.