public static synchronized void printPS(Origin o, String printerAlias, int copyCount) throws Exception { String command = Properties.get(Names.PS_PRINT_APP); Printer printer = find(printerAlias); File printTemp = new File( Properties.get(Names.TEMP_DIR) + Names.PATH_SEPARATOR + "print-queue", "print-" + getNextCount()); if (printTemp.exists()) FileUtil.delete(printTemp); printTemp.mkdirs(); InputStream in = Downloader.download(o); File print = new File(printTemp, o.getName()); if (print.exists()) print.delete(); FileUtil.save(in, print, true); File work = new File( Properties.get(Names.WORKING_DIR) + Names.PATH_SEPARATOR + "print", "work-" + getNextCount()); if (!work.exists()) work.mkdirs(); int i; for (i = 0; i < copyCount; i++) { ExecShell shell = new ExecShell(); shell.setExecutable(command); shell.setWorkingDirectory(work); shell.addCommandLineArgument("/D:" + printer.getPath(), false); shell.addCommandLineArgument(print.getAbsolutePath(), true); { } // Logwriter.printOnConsole("sleeping for 2.."); Thread.sleep(2000); { } // Logwriter.printOnConsole("waking up"); shell.execute(); } }
public void execute() throws Exception { getNewCount(); File executable = new File(getEXEPath()); if (!executable.exists()) throw new FileNotFoundException("executable file does not exist! " + executable); workingDir = getWorkingDirectory(executable); initExecution(); instruction = getInstructionFileName(workingDir); output = getOutputFileName(workingDir); createInstructionFile(instruction); // Profiler pofiler = new Profiler(); // profiler.start("exec-ilink-search " + xmlFileName, "exec-ilink-search " + xmlFileName); ExecShell shell = new ExecShell(); shell.setExecutable(executable.getAbsolutePath()); shell.setWorkingDirectory(workingDir); setArguments(shell); shell.addCommandLineArgument(executable.getParent()); shell.execute(); // profiler.start("exec-ilink-search " + xmlFileName, "shell-wait-for"); exitCode = shell.timeout(timeout); // profiler.stop("exec-ilink-search " + xmlFileName, "shell-wait-for"); // instructionFile.delete(); handleResponse(output); finishExecution(); if (zws.Server.debugMode()) return; // cleanup File[] contents = workingDir.listFiles(); for (int idx = 0; idx < contents.length; contents[idx++].delete()) ; workingDir.delete(); }