Use local copy of latest bndlib code for pre-release testing purposes
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1347815 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/bundleplugin/src/main/java/aQute/libg/filelock/DirectoryLock.java b/bundleplugin/src/main/java/aQute/libg/filelock/DirectoryLock.java
new file mode 100644
index 0000000..6e6b11e
--- /dev/null
+++ b/bundleplugin/src/main/java/aQute/libg/filelock/DirectoryLock.java
@@ -0,0 +1,32 @@
+package aQute.libg.filelock;
+
+import java.io.*;
+
+public class DirectoryLock {
+ final File lock;
+ final long timeout;
+ final public static String LOCKNAME = ".lock";
+
+ public DirectoryLock(File directory, long timeout) {
+ this.lock = new File(directory, LOCKNAME);
+ this.lock.deleteOnExit();
+ this.timeout = timeout;
+ }
+
+
+ public void release() {
+ lock.delete();
+ }
+
+ public void lock() throws InterruptedException {
+ if (lock.mkdir())
+ return;
+
+ long deadline = System.currentTimeMillis()+ timeout;
+ while ( System.currentTimeMillis() < deadline) {
+ if (lock.mkdir())
+ return;
+ Thread.sleep(50);
+ }
+ }
+}
diff --git a/bundleplugin/src/main/java/aQute/libg/filelock/packageinfo b/bundleplugin/src/main/java/aQute/libg/filelock/packageinfo
new file mode 100644
index 0000000..9ad81f6
--- /dev/null
+++ b/bundleplugin/src/main/java/aQute/libg/filelock/packageinfo
@@ -0,0 +1 @@
+version 1.0.0