X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Forg%2Fvamsas%2Fclient%2Fsimpleclient%2FLockFactory.java;h=5fdde6c611936c601f69ade37a4a971877dac1c6;hb=30801ef84cde704404d052f00c70ae129820bb0b;hp=72cbe66eed754504aaabcf3efd145da1332862dd;hpb=4f11373ddecd53546b3b22e0358f3df01b24a6e6;p=vamsas.git diff --git a/src/org/vamsas/client/simpleclient/LockFactory.java b/src/org/vamsas/client/simpleclient/LockFactory.java index 72cbe66..5fdde6c 100644 --- a/src/org/vamsas/client/simpleclient/LockFactory.java +++ b/src/org/vamsas/client/simpleclient/LockFactory.java @@ -1,5 +1,7 @@ package org.vamsas.client.simpleclient; +import java.io.File; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -20,15 +22,31 @@ public class LockFactory { log.warn("System property vamsas.locktype takes one of "+lt); log.warn("Defaulting to Locktype of "+locktypes[locktype]); } - } + } else + log.debug("Defaulting to Locktype of "+locktypes[locktype]); } - + /** + * lock target (blocks until lock is obtained) + * @param target + * @return lock + */ public static Lock getLock(java.io.File target) { + return getLock(target, true); + } + public static Lock getLock(java.io.File target, boolean block) { if (locktype==0) - return new FileLock(target); + return new FileLock(target, block); if (locktype==1) - return new NativeLock(target); + return new NativeLock(target, block); log.fatal("Implementation Error! No valid Locktype value"); return null; } + /** + * try to lock target + * @param target + * @return null if lock was not possible + */ + public static Lock tryLock(File target) { + return getLock(target, false); + } }