Sorry, committing forgotten changes...
authorgumartinm <gu.martinm@gmail.com>
Thu, 26 Jan 2012 23:54:04 +0000 (00:54 +0100)
committergumartinm <gu.martinm@gmail.com>
Thu, 26 Jan 2012 23:54:04 +0000 (00:54 +0100)
Just deleting files, there is nothing important about this commit.

JavaFork/Daemon/javafork [deleted file]
JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/ForkDaemon.java [deleted file]
JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/ForkParser.java [deleted file]
JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/LauncherProcesses.java [deleted file]
JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/MainJavaFork.java [deleted file]

diff --git a/JavaFork/Daemon/javafork b/JavaFork/Daemon/javafork
deleted file mode 100755 (executable)
index 7277198..0000000
Binary files a/JavaFork/Daemon/javafork and /dev/null differ
diff --git a/JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/ForkDaemon.java b/JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/ForkDaemon.java
deleted file mode 100644 (file)
index 074318f..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-package de.fork.java;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.net.InetAddress;
-import java.net.Socket;
-import java.net.UnknownHostException;
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import org.xml.sax.SAXException;
-
-/**
- * <p>
- * With this class we can run processes using the intended daemon which is 
- * waiting for TCP connections in a specified port.
- * </p>
- * <p>
- * Receiving the results in a XML format from the daemon where we can find three
- * kinds of different fields: error, out and ret. Every field is related to the
- * stderr, stdout and return code respectively. <br>
- * </p>
- * <p>
- * <pre>
- * <b>Example, stream received from daemon:</b>
- * {@code
- * <?xml version="1.0"?><salida><error><![CDATA[ls: no se puede acceder a bbb: No existe el fichero o el directorio
- * ls: no se puede acceder a aaa: No existe el fichero o el directorio
- * ls: no se puede acceder a dddd: No existe el fichero o el directorio
- * ]]></error><ret><![CDATA[2]]></ret></salida>
- * }
- * </pre>
- * </p>
- * <p>
- * This class has to process the above stream and it offers two methods wich can be used
- * to retrieve the stderr and stdout in a right way without having to know about the XML stream
- * received from the daemon. The user does not have to know about how the daemon sends the data,
- * he or she will work directly with the strings related to each stream. Those methods 
- * are {@link ForkDaemon#getStdout()} and {@link ForkDaemon#getStderr()} The return code from the command 
- * executed by the daemon can be retrieved as a return parameter from the method 
- * {@link ForkDaemon#exec(String, String, int)}
- * </p>
- * <p>
- * Instances of this class are mutable. To use them concurrently, clients must surround each
- * method invocation (or invocation sequence) with external synchronization of the clients choosing.
- * </p>
- */
-public class ForkDaemon {
-       private final ForkParser handler;
-       
-       
-       /**
-        * Simple constructor.
-        * Nothing special here.
-        * 
-        */
-       public ForkDaemon () {
-               handler = new ForkParser();
-       }
-       
-       
-       /**
-        * This method sends commands to the daemon.
-        * <br>
-        * It uses a TCP connection in order to send commands to the daemon and receive
-        * the results related to that command. 
-        * <br>
-        * The mehtod retrieves the stdout, stderr and the return code of that command. 
-        * 
-     * <p> The host name can either be a machine name, such as
-     * "<code>java.sun.com</code>", or a textual representation of its
-     * IP address. If a literal IP address is supplied, only the
-     * validity of the address format is checked.
-     * </p>
-     * <p> For <code>host</code> 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 <a href="Inet6Address.html#scoped">here</a> for a description of IPv6
-     * scoped addresses.
-        * </p>
-        * @param  command the command to be executed by the daemon.
-        * @param  host the specified host.
-        * @param  port the TCP port where the daemon accepts connections.
-        * 
-        * @return the executed command's return code.
-        * 
-     * @throws UnknownHostException  if no IP address for the
-     * <code>host</code> could be found, or if a scope_id was specified
-     * @throws SecurityException if a security manager exists
-     * and its checkConnect method doesn't allow the operation
-     * @throws IOException  if an I/O error occurs when creating the socket.
-        * @throws SAXException 
-        * @throws FactoryConfigurationError if the implementation is not available or cannot be instantiated.
-     * @throws SAXException If any SAX errors occur during processing.
-        * @throws ParserConfigurationException 
-        */
-       public int exec(final String command, String host, int port) 
-                       throws UnknownHostException, IOException, SAXException, ParserConfigurationException  {
-               final SAXParserFactory spf = SAXParserFactory.newInstance();
-               final SAXParser saxParser = spf.newSAXParser(); 
-               PrintWriter out = null;
-               
-               final Socket socket = new Socket(InetAddress.getByName(host), port);
-               try {
-                       out = new PrintWriter(socket.getOutputStream(), true);
-                       out.println(command);
-                       saxParser.parse(socket.getInputStream(), handler);
-               } 
-               finally {
-                       if (out != null) {
-                               out.close();
-                       }
-                       socket.close();
-               }
-               
-               //Just for testing the parser by using a file instead of a TCP connection.
-               //InputSource input = new InputSource(new FileReader("/tmp/xmlfromdaemon.xml"));
-               //saxParser.parse(input, handler);
-               
-               return new Integer(handler.getReturnValue()).intValue();
-       }
-
-       
-       /**
-        * Retrieve the standard output.
-        * 
-        * @see {@link ForkDaemon#getStderr()}
-        * @return stdout
-        */
-       public String getStdout() {
-               return handler.getStdout();
-       }
-       
-       
-       /**
-        * <p>
-        * Retrieve the standard error.
-        * </p>
-        * <p>
-        * <pre>
-        * <b>Example, stream received from daemon:</b>
-        * {@code
-        * <?xml version="1.0"?><salida><error><![CDATA[ls: no se puede acceder a bbb: No existe el fichero o el directorio
-        * ls: no se puede acceder a aaa: No existe el fichero o el directorio
-        * ls: no se puede acceder a dddd: No existe el fichero o el directorio
-        * ]]></error><ret><![CDATA[2]]></ret></salida>
-        * }
-        * </pre>
-        * </p>
-        * <p>
-        * <pre>
-        * <b>From that example with this method we are going to obtain this return parameter:</b>
-        * {@code
-        * ls: no se puede acceder a bbb: No existe el fichero o el directorio
-        * ls: no se puede acceder a aaa: No existe el fichero o el directorio
-        * ls: no se puede acceder a dddd: No existe el fichero o el directorio
-        * }
-        * </pre>
-        * </p>
-        * @return stderr
-        */
-       public String getStderr() {
-               return handler.getStderr();
-       }
-}
\ No newline at end of file
diff --git a/JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/ForkParser.java b/JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/ForkParser.java
deleted file mode 100644 (file)
index c20ba15..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-package de.fork.java;
-
-import org.apache.log4j.Logger;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.ext.DefaultHandler2;
-
-/**
- * <p>
- * Class intended to parse the XML stream received from the daemon which is
- * waiting to run commands. These commands are sent by the method 
- * {@link es.dia.pos.n2a.util.os.unix.ForkDaemon#exec(String, String, int)} 
- * </p>
- * <p>
- * After processing one command the daemon sends a XML stream with the stderr,
- * stdout and return status of that command. With this class we extract those values
- * and we can retrieve them using the methods {@link #getStderr() }, {@link #getStdout()}
- * and {@link #getReturnValue()}
- * </p>
- * <p>
- * <pre>
- * <b>Example, stream received from daemon:</b>
- * {@code
- * <?xml version="1.0"?><salida><error><![CDATA[ls: no se puede acceder a bbb: No existe el fichero o el directorio
- * ls: no se puede acceder a aaa: No existe el fichero o el directorio
- * ls: no se puede acceder a dddd: No existe el fichero o el directorio
- * ]]></error><ret><![CDATA[2]]></ret></salida>
- * }
- * </pre>
- * </p>
- */
-public class ForkParser extends DefaultHandler2{
-       private static final Logger logger = Logger.getLogger(ForkParser.class);
-    private StringBuffer accumulator = new StringBuffer();
-       private String stderr = new String();
-       private String stdout = new String();
-       private String returnCode = new String();
-
-       
-       @Override
-       public void endElement (String uri, String localName, String qName) {
-               if (qName.equals("error")) {
-                       // After </error>, we've got the stderror
-                       stderr = stderr + accumulator.toString();
-               } else if (qName.equals("out")) {
-                       // After </out>, we've got the stdout
-                       stdout = stdout + accumulator.toString();
-               } else if (qName.equals("ret")) {
-                       returnCode = returnCode + accumulator.toString();
-               }
-       }
-
-       
-       @Override
-       public void endDocument () throws SAXException
-       {
-               if (stderr.length() != 0) {
-                       String lastStderr = stderr.replaceFirst("\\\n$", "");
-                       stderr = lastStderr;
-               }
-               else {
-                       stderr = null;
-               }
-               if (stdout.length() != 0) {
-                       String lastStdout = stdout.replaceFirst("\\\n$", "");
-                       stdout = lastStdout;
-               }
-               else {
-                       stdout = null;
-               }
-       }
-       
-       /**
-        * Retrieve the standard error.
-        * 
-        * <pre>
-        * <b>From the above example with this method we are going to obtain this return parameter:</b>
-        * {@code
-        * ls: no se puede acceder a bbb: No existe el fichero o el directorio
-        * ls: no se puede acceder a aaa: No existe el fichero o el directorio
-        * ls: no se puede acceder a dddd: No existe el fichero o el directorio
-        * }
-        * </pre>
-        * 
-        * @return stderr
-        */
-       public String getStderr() {
-               return stderr;
-               
-       }
-       
-       
-       /**
-        * Retrieve the standard output.
-        * 
-        * @see {@link ForkParser#getStderr()}
-        * @return stdout
-        */
-       public String getStdout() {
-               return stdout;
-       }
-       
-       
-       /**
-        * Retrieve the return code from the executed command.
-        * 
-        * @return return status, usually <code>0<code> means the command went OK.
-        */
-       public String getReturnValue() {
-               return returnCode;
-       }
-       
-       
-       @Override
-       public void startElement (String uri, String localName, String qName, Attributes attributes) {
-               accumulator.setLength(0);
-       }
-       
-       
-       @Override
-       public void characters(char[] buffer, int start, int length) {
-           accumulator.append(buffer, start, length);
-       }
-       
-       @Override
-       public void warning(SAXParseException exception) {
-               logger.error("WARNING line:" + exception.getLineNumber(), exception);
-       }
-       
-       @Override
-       public void error(SAXParseException exception) {
-               logger.error("ERROR line:" + exception.getLineNumber(), exception);
-       }
-       
-       @Override
-       public void fatalError(SAXParseException exception) throws SAXException {
-               logger.error("FATAL ERROR line:" + exception.getLineNumber(), exception);
-               throw (exception);
-       }
-}
\ No newline at end of file
diff --git a/JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/LauncherProcesses.java b/JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/LauncherProcesses.java
deleted file mode 100644 (file)
index 0f93fe2..0000000
+++ /dev/null
@@ -1,275 +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 LauncherProcesses {
-
-       private static final Logger logger = Logger.getLogger(LauncherProcesses.class);
-
-       // 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);
-       }
-       
-       
-       /**
-        * @param commandAndArguments String array containing system command and its 
-        * arguments to be executed.<br>
-        * <b>For example:</b> 
-        * <pre>
-        * commandAndArguments[0]="ls";
-        * commandAndArguments[1]="-lr";
-        * </pre>
-        * @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);
-       }
-       
-       
-       /**
-        * 
-        * @param command system command to be executed.
-        * @param standarOutPut the stdout stream from that command as a <code>PrintStream</code>
-        * @param errorOutPut the stderr stream from that command as a <code>PrintStream</code>
-        * @param host the specified host.
-        * @param port the TCP port where the daemon accepts connections.
-        * 
-        * <p> The host name can either be a machine name, such as
-     * "<code>java.sun.com</code>", or a textual representation of its
-     * IP address. If a literal IP address is supplied, only the
-     * validity of the address format is checked.
-     * </p>
-     * <p> For <code>host</code> 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 <a href="Inet6Address.html#scoped">here</a> for a description of IPv6
-     * scoped addresses.
-        * </p>
-        * 
-        * @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, int port) throws IOException {
-               int exitStatus = LauncherProcesses.STATUS_ERR;
-
-               ForkDaemon process = new ForkDaemon();
-               try {
-                       exitStatus = process.exec(command, host, port);
-               } 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
-                       //[§EJ Item 61] Do not blame me.
-                       throw new IOException(e);
-               } 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
-                       //[§EJ Item 61] Do not blame me.
-                       throw new IOException(e);
-               }
-               
-               if (standarOutPut != null) {
-                       if (process.getStdout() != null) {
-                               standarOutPut.println(process.getStdout());
-                       }
-               }
-
-               if (errorOutPut != null) {
-                       if (process.getStderr() != null) {
-                               errorOutPut.println(process.getStderr());
-                       }
-               }
-
-               return exitStatus;
-       }
-       
-       
-       /**
-        * 
-        * @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 = LauncherProcesses.STATUS_ERR;
-
-               ForkDaemon process = new ForkDaemon();
-               try {
-                       exitStatus = process.exec(command, host, port);
-               } 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);
-               } 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);
-               }
-               
-               if (process.getStdout() != null) {
-                       aLogger.info(process.getStdout());
-               }
-               if (process.getStderr() != null) {
-                       aLogger.error(process.getStderr());
-               }
-
-               return exitStatus;
-       }
-       
-       
-       /**
-        * @param command command and its arguments to be executed.<br>
-        * <b>For example:</b> 
-        * <pre>
-        * commandAndArguments[0]="ls";
-        * commandAndArguments[1]="-lr";
-        * </pre>
-        * @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 = LauncherProcesses.STATUS_ERR;
-               
-               InputStream stdInput = null;
-       
-               String wholeCommand="";
-               for(String argument : command) {
-                       wholeCommand = wholeCommand + " " + argument;
-               }
-               
-               ForkDaemon process = new ForkDaemon();
-               try {
-                       exitStatus = process.exec(wholeCommand, DEFAULT_HOST, DEFAULT_PORT);
-               } 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
-                       throw new IOException(e);
-               } 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
-                       throw new IOException(e);
-               }
-               
-               if(exitStatus == 0) {
-                       stdInput = new ByteArrayInputStream(process.getStdout().getBytes("UTF-8"));
-               }
-               else {
-                       aLogger.error(process.getStderr());
-               }
-               
-
-               return stdInput;
-       }
-       
-       /**
-        * <p>The <em>command</em> is lunched from <em>location</em>
-        * <li>#>cd <em>location</em></li>
-        * <li>#location> <em>command</em></li></p>
-        * 
-        * @param command the command to be executed by the daemon.
-        * @param location
-        * 
-        * @return the executed command's return code. <br>
-        * Usually <code>0</code> if execution is OK, otherwise <code>!=0</code> 
-        * 
-        * @throws IOException
-        * @throws InterruptedException
-        */
-       public static int execInLocation (final String command, final String location) throws IOException, InterruptedException {
-               int exitStatus = LauncherProcesses.STATUS_ERR;
-               final String wholeCommand = "cd " + location + " && " + command;
-               
-               exitStatus =  exec(wholeCommand, null, null, DEFAULT_HOST, DEFAULT_PORT);
-               return exitStatus;
-       }
-}
\ No newline at end of file
diff --git a/JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/MainJavaFork.java b/JavaFork/JavaExample/javafork-example/src/main/java/de/fork/java/MainJavaFork.java
deleted file mode 100644 (file)
index a422cdd..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-package de.fork.java;
-
-import java.io.ByteArrayOutputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.PrintStream;
-import javax.xml.parsers.ParserConfigurationException;
-import org.xml.sax.SAXException;
-
-
-public class MainJavaFork  {
-
-       /**
-        * @param args
-        * @throws SAXException 
-        * @throws ParserConfigurationException 
-        * @throws FileNotFoundException 
-        */
-       public static void main(String[] args) 
-                       throws ParserConfigurationException, SAXException, FileNotFoundException, IOException {
-               
-               final ByteArrayOutputStream stdoutByteOut = new ByteArrayOutputStream();
-               final PrintStream stdout = new PrintStream(stdoutByteOut);
-               final String command = "/home/gustavo/github/JavaForFun/JavaFork/Daemon/script.sh";
-               final ByteArrayOutputStream stderrByteOut = new ByteArrayOutputStream();
-               final PrintStream stderr = new PrintStream(stderrByteOut);
-               int result;
-               
-               result = LauncherProcesses.exec(command,stdout, stderr, "127.0.0.1", 5193);
-               System.out.println(result);
-               System.out.println("Stdout: " +  stdoutByteOut.toString());
-               System.out.println("Stderr: " +  stderrByteOut.toString());
-       }
-
-}
\ No newline at end of file