Class DefaultZooKeeperDistributedLockService

  • All Implemented Interfaces:
    com.broadleafcommerce.search.index.core.Distributable, com.broadleafcommerce.search.index.core.LockService

    public class DefaultZooKeeperDistributedLockService
    extends Object
    implements com.broadleafcommerce.search.index.core.LockService
    Service to provide access to a Lock backed by Apache ZooKeeper.
    Author:
    Kelly Tisdell (ktisdell)
    • Field Detail

      • LOCAL_LOCK_REGISTRY

        protected static final Map<String,​com.broadleafcommerce.search.provider.solr.util.zk.ReentrantDistributedZookeeperLock> LOCAL_LOCK_REGISTRY
      • LOCAL_KEY_REGISTRY

        protected static final Map<String,​String> LOCAL_KEY_REGISTRY
    • Constructor Detail

      • DefaultZooKeeperDistributedLockService

        public DefaultZooKeeperDistributedLockService​(org.apache.zookeeper.ZooKeeper zooKeeper)
      • DefaultZooKeeperDistributedLockService

        public DefaultZooKeeperDistributedLockService​(org.apache.zookeeper.ZooKeeper zooKeeper,
                                                      org.springframework.core.env.Environment environment)
      • DefaultZooKeeperDistributedLockService

        public DefaultZooKeeperDistributedLockService​(org.apache.zookeeper.ZooKeeper zooKeeper,
                                                      List<org.apache.zookeeper.data.ACL> acls)
      • DefaultZooKeeperDistributedLockService

        public DefaultZooKeeperDistributedLockService​(org.apache.zookeeper.ZooKeeper zooKeeper,
                                                      org.springframework.core.env.Environment environment,
                                                      List<org.apache.zookeeper.data.ACL> acls)
    • Method Detail

      • isLocked

        public boolean isLocked​(String lockName)
        Specified by:
        isLocked in interface com.broadleafcommerce.search.index.core.LockService
      • lock

        public String lock​(String lockName)
                    throws com.broadleafcommerce.search.index.core.LockException
        Specified by:
        lock in interface com.broadleafcommerce.search.index.core.LockService
        Throws:
        com.broadleafcommerce.search.index.core.LockException
      • unlock

        public void unlock​(String lockName,
                           String lockKey)
                    throws com.broadleafcommerce.search.index.core.LockException
        Specified by:
        unlock in interface com.broadleafcommerce.search.index.core.LockService
        Throws:
        com.broadleafcommerce.search.index.core.LockException
      • isDistributed

        public final boolean isDistributed()
        Specified by:
        isDistributed in interface com.broadleafcommerce.search.index.core.Distributable
      • getZookeeperClient

        protected org.apache.zookeeper.ZooKeeper getZookeeperClient()
      • getLocksFolder

        protected String getLocksFolder()
      • getEnvironment

        protected org.springframework.core.env.Environment getEnvironment()
      • getAcls

        protected List<org.apache.zookeeper.data.ACL> getAcls()