diff options
Diffstat (limited to 'BKUWebStart/src')
-rw-r--r-- | BKUWebStart/src/main/java/JettyTempCleaner.java | 57 | ||||
-rw-r--r-- | BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Container.java | 15 |
2 files changed, 8 insertions, 64 deletions
diff --git a/BKUWebStart/src/main/java/JettyTempCleaner.java b/BKUWebStart/src/main/java/JettyTempCleaner.java deleted file mode 100644 index 67854ecb..00000000 --- a/BKUWebStart/src/main/java/JettyTempCleaner.java +++ /dev/null @@ -1,57 +0,0 @@ -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(); - } -} diff --git a/BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Container.java b/BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Container.java index 9eaa13b2..19adf571 100644 --- a/BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Container.java +++ b/BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Container.java @@ -57,7 +57,7 @@ public class Container { public static final String HTTP_PORT_PROPERTY = "mocca.http.port"; public static final String HTTPS_PORT_PROPERTY = "mocca.https.port"; - private static final String JETTY_TEMP_CLEANER_CLASSNAME = "JettyTempCleaner"; + private static final String JETTY_TEMP_CLEANER_JAR = "JettyTempCleaner.jar"; private static Logger log = LoggerFactory.getLogger(Container.class); @@ -176,11 +176,11 @@ public class Container { } private void copyCleaner(File dir) throws IOException { - File cleanerClass = new File(dir, JETTY_TEMP_CLEANER_CLASSNAME + ".class"); - log.debug("copying JettyTempCleaner to " + cleanerClass); - InputStream is = getClass().getClassLoader().getResourceAsStream(JETTY_TEMP_CLEANER_CLASSNAME + ".class"); + File cleanerJar = new File(dir, JETTY_TEMP_CLEANER_JAR); + log.debug("copying JettyTempCleaner to " + cleanerJar); + InputStream is = getClass().getClassLoader().getResourceAsStream(JETTY_TEMP_CLEANER_JAR); OutputStream os; - os = new BufferedOutputStream(new FileOutputStream(cleanerClass)); + os = new BufferedOutputStream(new FileOutputStream(cleanerJar)); new StreamCopier(is, os).copyStream(); os.close(); } @@ -198,11 +198,12 @@ public class Container { copyCleaner(userDir); List<String> args = new ArrayList<String>(); args.add("java"); - args.add(JETTY_TEMP_CLEANER_CLASSNAME); + args.add("-jar"); + args.add(JETTY_TEMP_CLEANER_JAR); args.add(tempDir.getAbsolutePath()); ProcessBuilder pb = new ProcessBuilder(args); pb.directory(userDir); - log.debug("Starting " + JETTY_TEMP_CLEANER_CLASSNAME + " to remove " + tempDir.getAbsolutePath()); + log.debug("Starting " + JETTY_TEMP_CLEANER_JAR + " to remove " + tempDir.getAbsolutePath()); pb.start(); } catch (IOException e) { log.error("Failed to copy jetty temp cleaner", e); |