Class LiquibaseDBLockProvider

java.lang.Object
org.keycloak.connections.jpa.updater.liquibase.lock.LiquibaseDBLockProvider
All Implemented Interfaces:
DBLockProvider, Provider

public class LiquibaseDBLockProvider extends Object implements DBLockProvider
Author:
Marek Posolda
  • Constructor Details

  • Method Details

    • waitForLock

      public void waitForLock(DBLockProvider.Namespace lock)
      Description copied from interface: DBLockProvider
      Try to retrieve DB lock or wait if retrieve was unsuccessful. Throw exception if lock can't be retrieved within specified timeout (900 seconds by default) Throw exception if a different namespace has already been locked by this provider.
      Specified by:
      waitForLock in interface DBLockProvider
      Parameters:
      lock - The namespace to lock
    • releaseLock

      public void releaseLock()
      Description copied from interface: DBLockProvider
      Release previously acquired lock by this provider.
      Specified by:
      releaseLock in interface DBLockProvider
    • getCurrentLock

      public DBLockProvider.Namespace getCurrentLock()
      Description copied from interface: DBLockProvider
      Returns the current provider namespace locked or null
      Specified by:
      getCurrentLock in interface DBLockProvider
      Returns:
      The namespace locked or null if there is no lock
    • supportsForcedUnlock

      public boolean supportsForcedUnlock()
      Specified by:
      supportsForcedUnlock in interface DBLockProvider
      Returns:
      true if provider supports forced unlock at startup
    • destroyLockInfo

      public void destroyLockInfo()
      Description copied from interface: DBLockProvider
      Will destroy whole state of DB lock (drop table/collection to track locking).
      Specified by:
      destroyLockInfo in interface DBLockProvider
    • close

      public void close()
      Specified by:
      close in interface Provider