summaryrefslogtreecommitdiff
path: root/BKUWebStart/src/main/java/JettyTempCleaner.java
diff options
context:
space:
mode:
authortkellner <tkellner@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4>2012-08-21 11:55:12 +0000
committertkellner <tkellner@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4>2012-08-21 11:55:12 +0000
commite11ea79da900664bf11b56fb3110fa3f6890daaf (patch)
treedc888d2d2059628836d810d3c792a405e770b0de /BKUWebStart/src/main/java/JettyTempCleaner.java
parenta421c331e5c534f534aff1d8f6e810320f0c711f (diff)
downloadmocca-e11ea79da900664bf11b56fb3110fa3f6890daaf.tar.gz
mocca-e11ea79da900664bf11b56fb3110fa3f6890daaf.tar.bz2
mocca-e11ea79da900664bf11b56fb3110fa3f6890daaf.zip
Remove leftover JettyContext working dirs on Windows
Spawns a separate process on exit if running under Windows, since the directory can only be deleted after the main process finishes. Fixes MOCCA-780 git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@1132 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4
Diffstat (limited to 'BKUWebStart/src/main/java/JettyTempCleaner.java')
-rw-r--r--BKUWebStart/src/main/java/JettyTempCleaner.java57
1 files changed, 57 insertions, 0 deletions
diff --git a/BKUWebStart/src/main/java/JettyTempCleaner.java b/BKUWebStart/src/main/java/JettyTempCleaner.java
new file mode 100644
index 00000000..67854ecb
--- /dev/null
+++ b/BKUWebStart/src/main/java/JettyTempCleaner.java
@@ -0,0 +1,57 @@
+import java.io.File;
+import java.util.Timer;
+import java.util.TimerTask;
+
+public class JettyTempCleaner extends TimerTask {
+
+ private static final long CLEAN_INTERVAL = 60000; // 1 minute
+
+ private File tmpDir;
+
+ public JettyTempCleaner(File tmpDir) {
+ this.tmpDir = tmpDir;
+ }
+
+ private static boolean deleteRecursive(File f) {
+ if (f.isDirectory()) {
+ String[] children = f.list();
+ for (String child : children) {
+ if (!deleteRecursive(new File(f, child)))
+ return false;
+ }
+ }
+ return f.delete();
+ }
+
+ private static void clean(File tmpDir) {
+ System.out.println("Trying to remove " + tmpDir);
+ if (deleteRecursive(tmpDir)) {
+ System.out.println("Successfully removed temporary directory");
+ System.exit(0);
+ }
+ }
+
+ private void schedule() {
+ System.out.println("Scheduling cleaner for directory " + tmpDir);
+ Timer t = new Timer();
+ t.scheduleAtFixedRate(this, 1000, CLEAN_INTERVAL);
+ }
+
+ @Override
+ public void run() {
+ clean(tmpDir);
+ }
+
+ public static void main(String[] args) {
+ if (args.length != 1)
+ System.exit(1);
+ File tmpDir = new File(args[0]);
+ if (!tmpDir.exists())
+ {
+ System.err.println("Directory " + args[0] + " doesn't exist");
+ System.exit(2);
+ }
+ JettyTempCleaner cleaner = new JettyTempCleaner(tmpDir);
+ cleaner.schedule();
+ }
+}