public CombinedLocksCondition(LockService lockService, Iterable<HeldLocksToken> externalLockTokens, HeldLocksToken transactionLockToken) { this.externalLocksCondition = new ExternalLocksCondition(lockService, ImmutableSet.copyOf(externalLockTokens)); this.transactionLocksCondition = new TransactionLocksCondition(lockService, transactionLockToken); }
public static Supplier<AdvisoryLocksCondition> get(LockService lockService, Iterable<HeldLocksToken> lockTokens, Supplier<LockRequest> lockSupplier) { return () -> { Set<HeldLocksToken> externalLocks = ImmutableSet.copyOf(lockTokens); ExternalLocksCondition externalCondition = externalLocks.isEmpty() ? null : new ExternalLocksCondition(lockService, externalLocks); LockRequest lockRequest = lockSupplier.get(); if (lockRequest != null) { Validate.isTrue(lockRequest.getVersionId() == null, "Using a version id is not allowed"); HeldLocksToken newToken = acquireLock(lockService, lockRequest); TransactionLocksCondition transactionCondition = new TransactionLocksCondition(lockService, newToken); return externalCondition == null ? transactionCondition : new CombinedLocksCondition(externalCondition, transactionCondition); } return externalCondition == null ? NO_LOCKS_CONDITION : externalCondition; }; }
@Before public void before() { lockService = mock(LockService.class); transactionLocksCondition = new TransactionLocksCondition(lockService, TRANSACTION_LOCK_TOKEN); externalLocksCondition = new ExternalLocksCondition(lockService, ImmutableSet.of(EXTERNAL_LOCK_TOKEN)); combinedLocksCondition = new CombinedLocksCondition(lockService, ImmutableSet.of(EXTERNAL_LOCK_TOKEN), TRANSACTION_LOCK_TOKEN); }
public CombinedLocksCondition(LockService lockService, Iterable<HeldLocksToken> externalLockTokens, HeldLocksToken transactionLockToken) { this.externalLocksCondition = new ExternalLocksCondition(lockService, ImmutableSet.copyOf(externalLockTokens)); this.transactionLocksCondition = new TransactionLocksCondition(lockService, transactionLockToken); }
public static Supplier<AdvisoryLocksCondition> get(LockService lockService, Iterable<HeldLocksToken> lockTokens, Supplier<LockRequest> lockSupplier) { return () -> { Set<HeldLocksToken> externalLocks = ImmutableSet.copyOf(lockTokens); ExternalLocksCondition externalCondition = externalLocks.isEmpty() ? null : new ExternalLocksCondition(lockService, externalLocks); LockRequest lockRequest = lockSupplier.get(); if (lockRequest != null) { Validate.isTrue(lockRequest.getVersionId() == null, "Using a version id is not allowed"); HeldLocksToken newToken = acquireLock(lockService, lockRequest); TransactionLocksCondition transactionCondition = new TransactionLocksCondition(lockService, newToken); return externalCondition == null ? transactionCondition : new CombinedLocksCondition(externalCondition, transactionCondition); } return externalCondition == null ? NO_LOCKS_CONDITION : externalCondition; }; }