From: gumartinm Date: Sun, 29 Jan 2012 01:29:01 +0000 (+0100) Subject: Working on Java TCP fork. X-Git-Url: https://git.gumartinm.name/?a=commitdiff_plain;h=fb5b11272ffb7cf69af962c2d846aaba99ae3bb4;p=JavaForFun Working on Java TCP fork. --- diff --git a/JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/LauncherProcessesDiaFork.java b/JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/LauncherProcessesDiaFork.java deleted file mode 100644 index 2b32c3e..0000000 --- a/JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/LauncherProcessesDiaFork.java +++ /dev/null @@ -1,283 +0,0 @@ -package de.fork.java; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.PrintStream; -import java.net.UnknownHostException; -import javax.xml.parsers.ParserConfigurationException; -import org.apache.log4j.Logger; -import org.xml.sax.SAXException; - - -public class LauncherProcessesDiaFork { - // Exit process status - private static final int STATUS_ERR = -1; - private static final int DEFAULT_PORT = 5193; - private static final String DEFAULT_HOST = "127.0.0.1"; - - /** - * Run a process. - * - * @param command system command to be executed. - * - * @return return code. - */ - public static int exec(final String command) throws IOException, InterruptedException { - - return exec(command, null, null); - } - - /** - * Run a process. - * - * @param command system command to execute. - * @param standarOutPut if not null, the standard output is redirected to this parameter. - * - * @return return code. - */ - public static int exec(final String command, final PrintStream standarOutPut) throws IOException, InterruptedException { - - return exec(command, standarOutPut, null); - } - - - /** - * Run a process. - * - * @param command system command to be executed. - * @param standarOutPut if not null, the standard output is redirected to this parameter. - * @param errorOutPut if not null, the error output is redirected to this parameter. - * - * @return return code from the executed system command. - */ - public static int exec(final String command, final PrintStream standarOutPut, final PrintStream errorOutPut) throws IOException, InterruptedException { - - return exec(command, standarOutPut, errorOutPut, DEFAULT_HOST, DEFAULT_PORT); - } - - /** - * Run a process. - * - * @param command system command to be executed. - * @param aLogger send the information to log. - */ - public static int exec(final String command, final Logger aLogger) throws IOException, InterruptedException { - - //calling private method to handle logger input/ouput in a common method - return execHandlingLogger(command, aLogger, DEFAULT_HOST, DEFAULT_PORT); - } - - - /** - * Run process. - * - * @param commandAndArguments String array containing system command and its - * arguments to be executed.
- * For example: - *
-	 * commandAndArguments[0]="ls";
-	 * commandAndArguments[1]="-lr";
-	 * 
- * @param aLogger - * - * @return return code from the executed system command. - * - * @throws IOException - * @throws InterruptedException - */ - public static int exec(final String[] commandAndArguments, final Logger aLogger) throws IOException, InterruptedException { - String wholeCommand=""; - - for(String argument : commandAndArguments) { - wholeCommand = wholeCommand + " " + argument; - } - - //calling private method to handle logger input/ouput in a common method - return execHandlingLogger(wholeCommand, aLogger, DEFAULT_HOST, DEFAULT_PORT); - } - - - /** - * Run process using a remote process runner. - * - * @param command system command to be executed. - * @param standarOutPut the stdout stream from that command as a PrintStream - * @param errorOutPut the stderr stream from that command as a PrintStream - * @param host the specified host. - * @param port the where the remote process runner accepts connections. - * - *

The host name can either be a machine name, such as - * "java.sun.com", or a textual representation of its - * IP address. If a literal IP address is supplied, only the - * validity of the address format is checked. - *

- *

For host specified in literal IPv6 address, - * either the form defined in RFC 2732 or the literal IPv6 address - * format defined in RFC 2373 is accepted. IPv6 scoped addresses are also - * supported. See here for a description of IPv6 - * scoped addresses. - *

- * - * @return the executed command's return code. - * - * @throws UnknownHostException - * @throws IOException - */ - public static int exec(final String command, final PrintStream standarOutPut, - final PrintStream errorOutPut, final String host, final int port) - throws IOException, InterruptedException { - int exitStatus = LauncherProcessesDiaFork.STATUS_ERR; - XmlForkParser forkParser = null; - TCPForkDaemon process = null; - - try { - forkParser = new XmlForkParser(); - process = new TCPForkDaemon(forkParser, host, port); - exitStatus = process.exec(command); - } catch (ParserConfigurationException e) { - // This is not a crazy thing, we are trying to insert this new method without - // breaking the old methods which did not throw SAXException or ParserConfigurationException - // Do not blame me. - throw new IOException(e); - } catch (SAXException e) { - // This is not a crazy thing, we are trying to insert this new method without - // breaking the old methods which did not throw SAXException or ParserConfigurationException - // Do not blame me. - throw new IOException(e); - } - - - - if ((standarOutPut != null) && (process.getStdout() != null)){ - standarOutPut.println(process.getStdout()); - } - - if ((errorOutPut != null) && (process.getStderr() != null)){ - errorOutPut.println(process.getStderr()); - } - - return exitStatus; - } - - - /** - * Run process. - * - * @param command system command to be executed. - * @param aLogger - * @param host the specified host. - * @param port the TCP port where the daemon accepts connections. - * - * @return the executed command's return code. - * - * @throws IOException - * @throws InterruptedException - */ - private static int execHandlingLogger(final String command, final Logger aLogger, - final String host, int port) throws IOException, InterruptedException { - int exitStatus = LauncherProcessesDiaFork.STATUS_ERR; - XmlForkParser forkParser = null; - TCPForkDaemon process = null; - - try { - forkParser = new XmlForkParser(); - process = new TCPForkDaemon(forkParser, host, port); - exitStatus = process.exec(command); - } catch (ParserConfigurationException e) { - throw new IOException(e); - } catch (SAXException e) { - throw new IOException(e); - } - - - - if (process.getStdout() != null) { - aLogger.info(process.getStdout()); - } - if (process.getStderr() != null) { - aLogger.error(process.getStderr()); - } - - return exitStatus; - } - - - /** - * Run process - * - * @param command command and its arguments to be executed.
- * For example: - *
-	 * commandAndArguments[0]="ls";
-	 * commandAndArguments[1]="-lr";
-	 * 
- * @param aLogger send information to log - * - * @return the executed command's return code. - * - * @throws IOException - * @throws InterruptedException - */ - public static InputStream execStream (final String [] command, final Logger aLogger) - throws IOException, InterruptedException { - int exitStatus = LauncherProcessesDiaFork.STATUS_ERR; - InputStream stdInput = null; - XmlForkParser forkParser = null; - TCPForkDaemon process = null; - String wholeCommand=""; - - for(String argument : command) { - wholeCommand = wholeCommand + " " + argument; - } - - try { - forkParser = new XmlForkParser(); - process = new TCPForkDaemon(forkParser, DEFAULT_HOST, DEFAULT_PORT); - exitStatus = process.exec(wholeCommand); - } catch (ParserConfigurationException e) { - // This is not a crazy thing, we are trying to insert this new method without - // breaking the old methods which did not throw SAXException or ParserConfigurationException - // Do not blame me. - throw new IOException(e); - } catch (SAXException e) { - // This is not a crazy thing, we are trying to insert this new method without - // breaking the old methods which did not throw SAXException or ParserConfigurationException - // Do not blame me. - throw new IOException(e); - } - - - if(exitStatus == 0) { - stdInput = new ByteArrayInputStream(process.getStdout().getBytes("UTF-8")); - } - else { - aLogger.error(process.getStderr()); - } - - - return stdInput; - } - - /** - *

The command is lunched from location - *

  • #>cd location
  • - *
  • #location> command
  • - * - * @param command the command to be executed by the daemon. - * @param location - * - * @return the executed command's return code.
    - * Usually 0 if execution is OK, otherwise !=0 - * - * @throws IOException - * @throws InterruptedException - */ - public static int execInLocation (final String command, final String location) throws IOException, InterruptedException { - int exitStatus = LauncherProcessesDiaFork.STATUS_ERR; - final String wholeCommand = "cd " + location + " && " + command; - - exitStatus = exec(wholeCommand, null, null, DEFAULT_HOST, DEFAULT_PORT); - return exitStatus; - } -}