From d461df21260cc8d5dbc07c1015a24eb41f31fc99 Mon Sep 17 00:00:00 2001 From: Tobias Kellner Date: Thu, 31 Mar 2016 13:32:52 +0200 Subject: Get rid of JettyTempCleaner, simply delete on next start --- BKUWebStart/pom.xml | 7 +- .../java/at/gv/egiz/bku/webstart/Container.java | 107 ++++++++----- JettyTempCleaner/pom.xml | 173 --------------------- .../src/main/java/JettyTempCleaner.java | 57 ------- JettyTempCleaner/src/site/apt/index.apt | 12 -- JettyTempCleaner/src/site/site.xml | 42 ----- pom.xml | 1 - 7 files changed, 71 insertions(+), 328 deletions(-) delete mode 100644 JettyTempCleaner/pom.xml delete mode 100644 JettyTempCleaner/src/main/java/JettyTempCleaner.java delete mode 100644 JettyTempCleaner/src/site/apt/index.apt delete mode 100644 JettyTempCleaner/src/site/site.xml diff --git a/BKUWebStart/pom.xml b/BKUWebStart/pom.xml index e58e0177..313afb82 100644 --- a/BKUWebStart/pom.xml +++ b/BKUWebStart/pom.xml @@ -29,7 +29,7 @@ copy-dependencies - BKULocal,JettyTempCleaner + BKULocal at.gv.egiz ${project.build.directory}/classes true @@ -343,11 +343,6 @@ at.gv.egiz BKUCertificates - - at.gv.egiz - JettyTempCleaner - ${project.version} - iaik iaik_jce_full_signed 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 ab3d9a42..f4bd14b6 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 @@ -37,10 +37,9 @@ import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.io.PrintWriter; import java.security.KeyStore; import java.security.cert.Certificate; -import java.util.ArrayList; -import java.util.List; import java.util.Locale; import org.mortbay.jetty.Connector; @@ -57,7 +56,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_JAR = "JettyTempCleaner.jar"; + private static final String JETTY_TEMP_STORE = ".jettytemp"; private static Logger log = LoggerFactory.getLogger(Container.class); @@ -85,6 +84,7 @@ public class Container { public void init() throws IOException { // System.setProperty("DEBUG", "true"); + deleteJettyTemp(); server = new Server(); QueuedThreadPool qtp = new QueuedThreadPool(); qtp.setMaxThreads(5); @@ -175,40 +175,76 @@ public class Container { return webapp.getPath(); } - private void copyCleaner(File dir) throws IOException { - 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(cleanerJar)); - new StreamCopier(is, os).copyStream(); - os.close(); + 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) { + log.debug("Trying to remove " + tmpDir); + if (deleteRecursive(tmpDir)) { + log.debug("Successfully removed temporary directory"); + } } - private void cleanupJettyTemp() { + private void storeJettyTemp() { String os = System.getProperty("os.name"); - if (os.toLowerCase().contains("windows")) { - try { - File userDir = new File(System.getProperty("user.home") + "/" + Configurator.BKU_USER_DIR); - if (!userDir.exists()) - { - log.error("User directory " + userDir + " not found"); - return; - } - copyCleaner(userDir); - List args = new ArrayList(); - args.add("java"); - 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_JAR + " to remove " + tempDir.getAbsolutePath()); - pb.start(); - } catch (IOException e) { - log.error("Failed to copy jetty temp cleaner", e); - e.printStackTrace(); + if (!os.toLowerCase().contains("windows")) + return; + try { + File userDir = new File(System.getProperty("user.home") + "/" + Configurator.BKU_USER_DIR); + if (!userDir.exists()) + { + log.error("User directory " + userDir + " not found"); + return; } + File jettytempstore = new File(userDir, JETTY_TEMP_STORE); + PrintWriter w = new PrintWriter(jettytempstore, "UTF-8"); + w.println(tempDir.getAbsolutePath()); + w.close(); + log.debug("Stored jetty temp dir " + tempDir.getAbsolutePath() + " for removal on next start"); + } catch (IOException e) { + log.error("Failed to copy jetty temp cleaner", e); + e.printStackTrace(); + } + } + + private void deleteJettyTemp() { + String os = System.getProperty("os.name"); + if (!os.toLowerCase().contains("windows")) + return; + try { + File userDir = new File(System.getProperty("user.home") + "/" + Configurator.BKU_USER_DIR); + if (!userDir.exists()) + { + log.error("User directory " + userDir + " not found"); + return; + } + File jettytempstore = new File(userDir, JETTY_TEMP_STORE); + if (!jettytempstore.exists()) + { + log.debug("No Jetty temp store file found"); + return; + } + BufferedReader r = new BufferedReader(new FileReader(jettytempstore)); + File oldTemp = new File(r.readLine()); + if (oldTemp.exists()) { + log.info("Deleting old jetty temp dir " + oldTemp); + clean(oldTemp); + } else { + log.debug("Old jetty temp dir " + oldTemp + " doesn't exist anymore"); + } + r.close(); + jettytempstore.delete(); + } catch (IOException e) { + log.error("Failed to copy jetty temp cleaner", e); + e.printStackTrace(); } } @@ -246,14 +282,11 @@ public class Container { public void stop() throws Exception { server.stop(); - - cleanupJettyTemp(); + storeJettyTemp(); } public void destroy() { server.destroy(); - - cleanupJettyTemp(); } public void join() throws InterruptedException { diff --git a/JettyTempCleaner/pom.xml b/JettyTempCleaner/pom.xml deleted file mode 100644 index 5d23bc47..00000000 --- a/JettyTempCleaner/pom.xml +++ /dev/null @@ -1,173 +0,0 @@ - - 4.0.0 - - at.gv.egiz - mocca - 1.3.23-SNAPSHOT - - JettyTempCleaner - Jetty Temp Cleaner - http://joinup.ec.europa.eu/site/mocca/ - Clean Jetty temp dir under windows after MOCCA webstart finishes - - - - buildnumber-maven-plugin - org.codehaus.mojo - - - validate - - create - - - - - false - false - SvnRevMissing - - - - maven-jar-plugin - org.apache.maven.plugins - - - - sign - - - - - - - false - false - - false - true - JettyTempCleaner - - - JettyTempCleaner - ${project.version}-r${buildNumber} - all-permissions - * - * - true - - - test-applet signer - ../BKUApplet/keystore.ks - storepass - keypass - true - - - - - - - pkcs11-sign - - - - maven-jar-plugin - org.apache.maven.plugins - 2.2-mocca - - NONE - PKCS11 - iaik.pkcs.pkcs11.provider.IAIKPkcs11 - a-sit-2 - ${pkcs11-pass} - - - - - - - ks-sign - - - - maven-jar-plugin - org.apache.maven.plugins - 2.2-mocca - - ${ks-file} - a-sit-3 - ${ks-pass} - ${ks-pass} - - - - - - - - buildnumber-git - - - .svn - - - - - - org.codehaus.groovy.maven - gmaven-plugin - 1.0 - - - generate-resources - - execute - - - - def shell = "sh" - def param = "-c" - if (System.getProperty("os.name").toUpperCase().contains("WINDOWS")) { - shell = "cmd" - param = "/c" - } - def gitSvnProc = [shell, param, "git rev-parse --short HEAD"].execute() - gitSvnProc.waitFor() - def svnref = gitSvnProc.in.text.trim() - project.properties['gitSvnRev'] = svnref - - - - - - - org.codehaus.mojo - buildnumber-maven-plugin - - - generate-resources - - create - - - - - false - false - {0} - - ${gitSvnRev} - - - - - - - - diff --git a/JettyTempCleaner/src/main/java/JettyTempCleaner.java b/JettyTempCleaner/src/main/java/JettyTempCleaner.java deleted file mode 100644 index 67854ecb..00000000 --- a/JettyTempCleaner/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/JettyTempCleaner/src/site/apt/index.apt b/JettyTempCleaner/src/site/apt/index.apt deleted file mode 100644 index d60219dc..00000000 --- a/JettyTempCleaner/src/site/apt/index.apt +++ /dev/null @@ -1,12 +0,0 @@ - --- - About - --- - EGIZ - --- - 2015 - --- - -Jetty Temp Cleaner - - This module is used to remove temporary files used by jetty after the execution of MOCCA ended - under Microsoft Windows, as those files can't be deleted at runtime. diff --git a/JettyTempCleaner/src/site/site.xml b/JettyTempCleaner/src/site/site.xml deleted file mode 100644 index a1191b25..00000000 --- a/JettyTempCleaner/src/site/site.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - MOCCA - ../images/mocca2-t_s.png - http://joinup.ec.europa.eu/site/mocca/ - - - - - - - - - - - diff --git a/pom.xml b/pom.xml index f1eb93cb..894313a6 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,6 @@ BKUGuiExt smccSTALExt BKUFonts - JettyTempCleaner 2007 -- cgit v1.2.3