@Override public boolean hasBeenInUse() { return lock.hasBeenInUse(); }
@Override public void lock() { lock.lock(); }
public void lock() { registerAccess(); lock.lock(); if (needToCreatePhysicalLock()) { physicalLockOnFS(); } }
public void unlock() { registerAccess(); if (lock.isLocked()) { if (releasePhysicalLock()) { physicalUnLockOnFS(); } lock.unlock(); } }
public JGitFileSystemLock(Git git, TimeUnit t, long duration) { URI repoURI = getRepoURI(git); this.lockFile = createLockInfra(repoURI); this.lastAccessThresholdMilliseconds = t.toMillis(duration); }
@Test public void lockTest() throws IOException, GitAPIException { final Git git = setupGit(); JGitFileSystemLock lock = createFSLock(git); JGitFileSystemLock lockSpy = spy(lock); lockSpy.lock(); lockSpy.lock(); lockSpy.lock(); verify(lockSpy, times(1)).physicalLockOnFS(); lockSpy.unlock(); lockSpy.unlock(); lockSpy.unlock(); verify(lockSpy, times(1)).physicalUnLockOnFS(); } }
@Test public void thresholdMinTest() { long lastAccessThreshold = Long.MIN_VALUE; JGitFileSystemLock lock = createLock(lastAccessThreshold); lock.registerAccess(); lock.lock.lock(); assertTrue(lock.hasBeenInUse()); lock.lock.unlock(); assertFalse(lock.hasBeenInUse()); }
JGitFileSystemLock createLock(Git git) { return new JGitFileSystemLock(git, config.getDefaultJgitCacheEvictThresholdTimeUnit(), config.getJgitCacheEvictThresholdDuration()); }
@Override public void unlock() { lock.unlock(); }
@Test public void lockTest() throws IOException, GitAPIException { final Git git = setupGit(); JGitFileSystemLock lock = createFSLock(git); JGitFileSystemLock lockSpy = spy(lock); lockSpy.lock(); lockSpy.lock(); lockSpy.lock(); verify(lockSpy, times(1)).physicalLockOnFS(); lockSpy.unlock(); lockSpy.unlock(); lockSpy.unlock(); verify(lockSpy, times(1)).physicalUnLockOnFS(); } }
@Test public void thresholdMinTest() { long lastAccessThreshold = Long.MIN_VALUE; JGitFileSystemLock lock = createLock(lastAccessThreshold); lock.registerAccess(); lock.lock.lock(); assertTrue(lock.hasBeenInUse()); lock.lock.unlock(); assertFalse(lock.hasBeenInUse()); }
null, git, new JGitFileSystemLock(git, TimeUnit.MILLISECONDS, config.getJgitCacheEvictThresholdDuration()),
@Test public void thresholdMaxTest() { long lastAccessThreshold = Long.MAX_VALUE; JGitFileSystemLock lock = createLock(lastAccessThreshold); lock.registerAccess(); assertTrue(lock.hasBeenInUse()); }
null, git, new JGitFileSystemLock(git, TimeUnit.MILLISECONDS, config.getJgitCacheEvictThresholdDuration()),
@Test public void thresholdMaxTest() { long lastAccessThreshold = Long.MAX_VALUE; JGitFileSystemLock lock = createLock(lastAccessThreshold); lock.registerAccess(); assertTrue(lock.hasBeenInUse()); }