@Override public Lock getLock(String s) { return hzInstance.getLock(s); }
@Override @SuppressWarnings("deprecation") public ILock getLock(Object key) { return delegate.getLock(key); }
@Override public ILock getLock(String key) { return delegatedInstance.getLock(key); }
@Override public Lock getLock(String name) { return clusterInstance.getLock(name); }
@Override public Lock getLock(String name) { return hazelcastInstance.getLock(name); }
@Override public Lock obtain(Object lockKey) { Assert.isInstanceOf(String.class, lockKey); return this.client.getLock((String) lockKey); }
HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance(); Lock lock = hazelcastInstance.getLock( "myLock" ); lock.lock(); try { // do something here } finally { lock.unlock(); }
/** * Start the registration of the {@link #candidate} for leader election. */ @Override public synchronized void start() { if (!this.running) { this.lock = this.client.getLock(this.candidate.getRole()); this.leaderSelector = new LeaderSelector(); this.running = true; this.future = this.executorService.submit(this.leaderSelector); } }
@Produces public ILock produceLock( final ProviderContext context ) { final String name = retrieveSourceNameFrom( context ); final ILock lock = hazelcast.getLock( name ); notifyDataWasProduced(lock, ILock.class); return lock; }
@Override protected void doUnregister(URL url) { Set<String> urls = replicatedMap.get(this.nodeId); ILock lock = hazelcastInstance.getLock(nodeId); lock.lock(); try { urls.remove(url.toFullString()); } finally { lock.unlock(); } }
private LeaderElectionThread(final HazelcastInstance hazelcast) { super("LeaderElection"); setDaemon(true); setPriority(MIN_PRIORITY + 1); this.masterLock = hazelcast.getLock("SnampMasterLock"); this.localMember = hazelcast.getCluster().getLocalMember(); }
@Prepare(global = true) public void prepare() { for (int i = 0; i < lockCount; i++) { long key = lockCounter.getAndIncrement(); targetInstance.getLock(getLockId(key)); IAtomicLong account = targetInstance.getAtomicLong(getAccountId(key)); account.set(initialAmount); } }
@Verify public void verify() { int value = 0; for (int k = 0; k < maxAccounts; k++) { ILock lock = targetInstance.getLock(basename+k); IAtomicLong account = targetInstance.getAtomicLong(basename+k); System.out.println(account+" "+account.get()); assertFalse("Lock should be unlocked", lock.isLocked()); assertTrue("Amount is < 0 ", account.get() >= 0); value += account.get(); } assertEquals(totalValue, value); }
@Warmup(global = true) public void warmup() throws Exception { for (int k = 0; k < lockCount; k++) { long key = lockCounter.getAndIncrement(); targetInstance.getLock(getLockId(key)); IAtomicLong account = targetInstance.getAtomicLong(getAccountId(key)); account.set(initialAmount); totalMoney.addAndGet(initialAmount); } }
@Verify public void verify() { int value = 0; for (int i = 0; i < maxAccounts; i++) { ILock lock = targetInstance.getLock(name + i); IAtomicLong account = targetInstance.getAtomicLong(name + i); logger.info(format("%s %d", account, account.get())); assertFalse(name + ": Lock should be unlocked", lock.isLocked()); assertTrue(name + ": Amount is < 0 ", account.get() >= 0); value += account.get(); } assertEquals(name + " totals not adding up ", totalValue, value); }
@Verify public void verify() { long actual = 0; for (long i = 0; i < lockCounter.get(); i++) { ILock lock = targetInstance.getLock(getLockId(i)); assertFalse("Lock should be unlocked", lock.isLocked()); long accountAmount = targetInstance.getAtomicLong(getAccountId(i)).get(); assertTrue("Amount on account can't be smaller than 0", accountAmount >= 0); actual += accountAmount; } long expected = initialAmount * lockCounter.get(); assertEquals(format("%s: Money was lost or created (%d)", name, expected - actual), expected, actual); }
@Teardown public void teardown() { lockCounter.destroy(); for (long i = 0; i < lockCounter.get(); i++) { targetInstance.getLock(getLockId(i)).destroy(); targetInstance.getAtomicLong(getAccountId(i)).destroy(); } } }
@Teardown public void teardown() throws Exception { lockCounter.destroy(); totalMoney.destroy(); for (long k = 0; k < lockCounter.get(); k++) { targetInstance.getLock(getLockId(k)).destroy(); targetInstance.getAtomicLong(getAccountId(k)).destroy(); } }
@Verify public void verify() { long actual = 0; for (long k = 0; k < lockCounter.get(); k++) { ILock lock = targetInstance.getLock(getLockId(k)); assertFalse("Lock should be unlocked", lock.isLocked()); IAtomicLong account = targetInstance.getAtomicLong(getAccountId(k)); assertTrue("Amount can't be smaller than zero on account", account.get() >= 0); actual += account.get(); } long expected = totalMoney.get(); assertEquals("Money was lost/created", expected, actual); }