Class ProvisionerCoordinator

java.lang.Object
edu.internet2.middleware.grouper.pspng.ProvisionerCoordinator

public class ProvisionerCoordinator extends Object
This class coordinates the efforts of a provsioner's full-sync and incremental-sync processes. One of these classes is created by the ProvisionerFactory for each named provisioner and then shared among the incremental and full-sync provisioners. The goal of this class is to prevent the full- and incremental-provisioners of a target from processing the same group at the same time. It will also eventually serve as the way to skip incremental events that were created before the last full-sync occurred.
  • Field Details

    • provisionerConfig

      protected final ProvisionerConfiguration provisionerConfig
    • coordinationTimeout_secs

      protected final int coordinationTimeout_secs
    • coordinationUpdateInterval_secs

      protected final int coordinationUpdateInterval_secs
  • Constructor Details

    • ProvisionerCoordinator

      public ProvisionerCoordinator(Provisioner<?,?,?> provisioner)
      Create a ProvisionerCoordinator
      Parameters:
      provisioner -
  • Method Details

    • lockForFullSyncIfNoIncrementalIsUnderway

      public void lockForFullSyncIfNoIncrementalIsUnderway(GrouperGroupInfo group)
      Used by the Full-Sync provisioners to wait and then lock the group from being incrementally provisioned.
      Parameters:
      group -
    • unlockAfterFullSync

      public void unlockAfterFullSync(GrouperGroupInfo group, boolean fullSyncWasSuccessful)
    • unlockAfterFullSync

      public void unlockAfterFullSync(GrouperGroupInfo group)
    • getLastSuccessfulFullSyncTime

      public Date getLastSuccessfulFullSyncTime(GrouperGroupInfo group)
    • lockForIncrementalProvisioningIfNoFullSyncIsUnderway

      public void lockForIncrementalProvisioningIfNoFullSyncIsUnderway(GrouperGroupInfo group)
      Used by the incremental provisioners to wait and then lock the group from full-sync operations
      Parameters:
      group -
    • unlockAfterIncrementalProvisioning

      public void unlockAfterIncrementalProvisioning(GrouperGroupInfo group)