import java.io.File;
import java.util.Iterator;
import java.util.Vector;
import sos.spooler.Job_impl;
import sos.util.SOSFile;
public class JobSampleAPINotification extends Job_impl {
public boolean spooler_process() {
try {
String directories = spooler_task.changed_directories();
String[] directoryPaths = directories.split(";");
for(int i=0; i<directoryPaths.length; i++) {
if (directoryPaths[i].length() == 0) continue;
File directory = new File(directoryPaths[i]);
// fetch a list of files in the given directory that match the regular expression
Vector files = SOSFile.getFilelist(directory.getCanonicalPath(), ".*", 0);
Iterator filesIterator = files.iterator();
while (filesIterator.hasNext()) {
File inputFile = (File) filesIterator.next();
File outputFile = new File(spooler_task.params().var("output_directory") + "/" + inputFile.getName());
if (outputFile.exists()) {
if (!outputFile.delete()) {
spooler_log.warn("output file probably in use, trying later: " + outputFile.getCanonicalPath());
continue;
}
}
if (!inputFile.renameTo(outputFile)) {
spooler_log.warn("could not rename input file [" + inputFile.getCanonicalPath() + "] " +
"to output file [" + outputFile.getCanonicalPath() + "]");
} else {
spooler_log.info("input file [" + inputFile.getCanonicalPath() + "] " +
"successfully moved to output file [" + outputFile.getCanonicalPath() + "]");
}
}
}
return false;
} catch (Exception e) {
spooler_log.warn("error occurred triggering input files: " + e.getMessage());
return false;
}
}
}
|