package io.cattle.platform.hazelcast.lock;
import io.cattle.platform.lock.definition.LockDefinition;
import io.cattle.platform.lock.provider.impl.AbstractStandardLockProvider;
import io.cattle.platform.lock.provider.impl.StandardLock;
import javax.inject.Inject;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.IMap;
public class HazelcastLockProvider extends AbstractStandardLockProvider {
private static final String LOCK_MAP = "cattle-locks";
@Inject
HazelcastInstance hazelcast;
public HazelcastLockProvider() {
}
@Override
protected StandardLock createLock(LockDefinition lockDefinition) {
IMap<String, Object> map = hazelcast.getMap(LOCK_MAP);
return new StandardLock(lockDefinition, new HazelcastMapLock(map, lockDefinition.getLockId()));
}
@Override
protected void destroyLock(final StandardLock lock) {
}
}