@@ -0,0 +1,1574 @@
+package boa.datagen.util;%0D%0A%0D%0Aimport java.io.File;%0D%0Aimport java.util.Arrays;%0D%0Aimport java.util.Comparator;%0D%0Aimport java.util.Date;%0D%0Aimport java.util.HashMap;%0D%0Aimport java.util.Map;%0D%0A%0D%0Apublic class OutputStatusChecker %7B%0D%0A%0D%0A%09public static void main(String%5B%5D args) throws InterruptedException %7B%0D%0A%09%09String path = args%5B0%5D;%0D%0A%09%09int interval = 10;%0D%0A%09%09if (args.length %3E 1)%0D%0A%09%09%09interval = Integer.parseInt(args%5B1%5D);%0D%0A%09%09File dir = new File(path);%0D%0A%09%09Map%3CString, Long%3E fileTimes = new HashMap%3CString, Long%3E();%0D%0A%09%09File%5B%5D files = dir.listFiles();%0D%0A%09%09Arrays.sort(files, new Comparator%3CFile%3E() %7B%0D%0A%09%09%09@Override%0D%0A%09%09%09public int compare(File f1, File f2) %7B%0D%0A%09%09%09%09return f1.compareTo(f2);%0D%0A%09%09%09%7D%0D%0A%09%09%7D);%0D%0A%09%09while (true) %7B%0D%0A%09%09%09System.out.println(new Date());%0D%0A%09%09%09for (File sub : files) %7B%0D%0A%09%09%09%09if (!isUpdated(new File(sub, %22ast%22), fileTimes) && !isUpdated(new File(sub, %22project%22), fileTimes))%0D%0A%09%09%09%09%09System.err.println(sub.getAbsolutePath() + %22 was not updated in the last %22 + interval + %22 seconds!!!%22);%0D%0A%09%09%09%09else%0D%0A%09%09%09%09%09System.out.println(sub.getAbsolutePath() + %22 was updated in the last %22 + interval + %22 seconds.%22);%0D%0A%09%09%09%7D%0D%0A%09%09%09System.out.println();%0D%0A%09%09%09Thread.sleep(interval * 1000);%0D%0A%09%09%7D%0D%0A%09%7D%0D%0A%0D%0A%09private static boolean isUpdated(File dir, Map%3CString, Long%3E fileTimes) %7B%0D%0A%09%09for (File file : dir.listFiles()) %7B%0D%0A%09%09%09long time = file.lastModified();%0D%0A%09%09%09Long t = fileTimes.get(file.getAbsolutePath());%0D%0A%09%09%09if (t == null)%0D%0A%09%09%09%09fileTimes.put(file.getAbsolutePath(), time);%0D%0A%09%09%09else if (t != time) %7B%0D%0A%09%09%09%09fileTimes.put(file.getAbsolutePath(), time);%0D%0A%09%09%09%09return true;%0D%0A%09%09%09%7D%0D%0A%09%09%7D%0D%0A%09%09return false;%0D%0A%09%7D%0D%0A%0D%0A%7D%0D%0A

add code for checking status of running data generation