Example #1
0
 protected Runnable copyIncludesToTemporaryDirectory() throws IOException {
   Map<String, URL> inclusions = resolveInclusions();
   File includesDir = JavaCL.createTempDirectory("includes", "", "includes");
   final List<File> filesToDelete = new ArrayList<File>();
   for (Map.Entry<String, URL> e : inclusions.entrySet()) {
     assert log(
         Level.INFO,
         "Copying include '"
             + e.getKey()
             + "' from '"
             + e.getValue()
             + "' to '"
             + includesDir
             + "'");
     File f = new File(includesDir, e.getKey().replace('/', File.separatorChar));
     File p = f.getParentFile();
     filesToDelete.add(f);
     if (p != null) {
       p.mkdirs();
       filesToDelete.add(p);
     }
     InputStream in = e.getValue().openStream();
     OutputStream out = new FileOutputStream(f);
     IOUtils.readWrite(in, out);
     in.close();
     out.close();
     f.deleteOnExit();
   }
   filesToDelete.add(includesDir);
   addInclude(includesDir.toString());
   return new Runnable() {
     public void run() {
       for (File f : filesToDelete) f.delete();
     }
   };
 }