summaryrefslogtreecommitdiff
path: root/BKUWebStart
diff options
context:
space:
mode:
Diffstat (limited to 'BKUWebStart')
-rw-r--r--BKUWebStart/pom.xml7
-rw-r--r--BKUWebStart/src/main/java/JettyTempCleaner.java57
-rw-r--r--BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Container.java15
3 files changed, 14 insertions, 65 deletions
diff --git a/BKUWebStart/pom.xml b/BKUWebStart/pom.xml
index d4ff8cb6..0889071b 100644
--- a/BKUWebStart/pom.xml
+++ b/BKUWebStart/pom.xml
@@ -29,7 +29,7 @@
<goal>copy-dependencies</goal>
</goals>
<configuration>
- <includeArtifactIds>BKULocal</includeArtifactIds>
+ <includeArtifactIds>BKULocal,JettyTempCleaner</includeArtifactIds>
<includeGroupIds>at.gv.egiz</includeGroupIds>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<stripVersion>true</stripVersion>
@@ -344,6 +344,11 @@
<artifactId>BKUCertificates</artifactId>
</dependency>
<dependency>
+ <groupId>at.gv.egiz</groupId>
+ <artifactId>JettyTempCleaner</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
<groupId>iaik</groupId>
<artifactId>iaik_jce_full_signed</artifactId>
<scope>compile</scope>
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);