Thread: [Japi-cvs] SF.net SVN: japi: [410] libs/argparser/trunk/src/doc
Status: Beta
Brought to you by:
christianhujer
From: <chr...@us...> - 2007-06-14 20:36:34
|
Revision: 410 http://svn.sourceforge.net/japi/?rev=410&view=rev Author: christianhujer Date: 2007-06-14 13:36:33 -0700 (Thu, 14 Jun 2007) Log Message: ----------- Improved documentation.Improved and unified examples. Modified Paths: -------------- libs/argparser/trunk/src/doc/examples/Cat.java libs/argparser/trunk/src/doc/examples/Head.java libs/argparser/trunk/src/doc/examples/Tail.java libs/argparser/trunk/src/doc/examples/Uniq.java libs/argparser/trunk/src/doc/start.xhtml Modified: libs/argparser/trunk/src/doc/examples/Cat.java =================================================================== --- libs/argparser/trunk/src/doc/examples/Cat.java 2007-06-14 20:05:36 UTC (rev 409) +++ libs/argparser/trunk/src/doc/examples/Cat.java 2007-06-14 20:36:33 UTC (rev 410) @@ -28,8 +28,7 @@ import net.sf.japi.io.args.BasicCommand; import org.jetbrains.annotations.NotNull; -/** - * Java implementation of the UNIX command <q>cat</q> to demonstrate how to use the argparser library. +/** Java implementation of the UNIX command <q>cat</q> to demonstrate how to use the argparser library. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ public class Cat extends BasicCommand { @@ -58,25 +57,23 @@ return returnCode; } - /** - * Copies data from one input stream to another. + /** Copies data from one input stream to another. * @param in InputStream to read from. * @param out InputStream to write to. * @throws IOException in case of I/O problems. */ - private void copy(final InputStream in, final OutputStream out) throws IOException { + private void copy(@NotNull final InputStream in, @NotNull final OutputStream out) throws IOException { final byte[] buf = new byte[4096]; for (int bytesRead; (bytesRead = in.read(buf)) != -1;) { out.write(buf, 0, bytesRead); } } - /** - * Main method. + /** Main method. * @param args Command line arguments */ public static void main(final String... args) { - ArgParser.simpleParseAndRun(new Head(), args); + ArgParser.simpleParseAndRun(new Cat(), args); } } // class Cat Modified: libs/argparser/trunk/src/doc/examples/Head.java =================================================================== --- libs/argparser/trunk/src/doc/examples/Head.java 2007-06-14 20:05:36 UTC (rev 409) +++ libs/argparser/trunk/src/doc/examples/Head.java 2007-06-14 20:36:33 UTC (rev 410) @@ -19,6 +19,7 @@ package examples; +import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; @@ -30,8 +31,7 @@ import net.sf.japi.io.args.Option; import org.jetbrains.annotations.NotNull; -/** - * Java implementation of the UNIX command <q>head</q> to demonstrate how to use the argparser library. +/** Java implementation of the UNIX command <q>head</q> to demonstrate how to use the argparser library. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ public class Head extends BasicCommand { @@ -39,23 +39,20 @@ /** The number of items to print. */ private int numItems = 10; - /** - * The kind of items to print. + /** The kind of items to print. * <code>false</code>: print lines. * <code>true</code>: print bytes. */ private boolean printBytes; - /** - * Quiety / Verbosity. + /** Quiety / Verbosity. * 0 = never print filenames. * 1 = print filenames if more than one file. * 2 = always print filenames. */ private int verbose = 1; - /** - * Sets the number of lines to print. + /** Sets the number of lines to print. * @param lines number of lines to print */ @Option({"n", "lines"}) @@ -64,8 +61,7 @@ printBytes = false; } - /** - * Sets the number of bytes to print. + /** Sets the number of bytes to print. * @param bytes number of bytes to print. */ @Option({"c", "bytes"}) @@ -74,25 +70,19 @@ printBytes = true; } - /** - * Sets the command to be quiet. - */ + /** Sets the command to be quiet. */ @Option({"q", "quiet", "silent"}) public void setQuiet() { verbose = 0; } - /** - * Sets the command to be verbose. - */ + /** Sets the command to be verbose. */ @Option({"v", "verbose"}) public void setVerbose() { verbose = 2; } - /** - * {@inheritDoc} - */ + /** {@inheritDoc} */ public int run(@NotNull final List<String> args) throws IOException { int returnCode = 0; if (args.size() == 0) { @@ -106,42 +96,49 @@ System.out.println("==> " + arg + " <=="); } try { - final InputStream in = new FileInputStream(arg); + final InputStream in = new BufferedInputStream(new FileInputStream(arg)); try { copyItems(in); } finally { in.close(); } } catch (final IOException e) { - System.err.println(e); returnCode = 1; + System.err.println(e); } } } return returnCode; } - /** - * Copies the configured number of items from the specified InputStream to System.out. + /** Copies the configured number of items from the specified InputStream to System.out. * @param in InputStream to run on * @throws IOException In case of I/O problems. */ - private void copyItems(final InputStream in) throws IOException { + private void copyItems(@NotNull final InputStream in) throws IOException { if (printBytes) { - for (int i = 0, b; i < numItems && (b = in.read()) != -1; i++) { - System.out.write(b); - } + copyBytes(in); } else { - BufferedReader lin = new BufferedReader(new InputStreamReader(in)); - String line; - for (int i = 0; i < numItems && (line = lin.readLine()) != null; i++) { - System.out.println(line); - } + copyLines(in); } } - /** - * Main method. + private void copyBytes(@NotNull final InputStream in) throws IOException { + final InputStream lin = in instanceof BufferedInputStream ? in : new BufferedInputStream(in); + final byte[] buf = new byte[numItems]; + final int bytesRead = lin.read(buf, 0, numItems); + System.out.write(buf, 0, bytesRead); + } + + private void copyLines(@NotNull final InputStream in) throws IOException { + BufferedReader lin = new BufferedReader(new InputStreamReader(in)); + String line; + for (int i = 0; i < numItems && (line = lin.readLine()) != null; i++) { + System.out.println(line); + } + } + + /** Main method. * @param args Command line arguments */ public static void main(final String... args) { Modified: libs/argparser/trunk/src/doc/examples/Tail.java =================================================================== --- libs/argparser/trunk/src/doc/examples/Tail.java 2007-06-14 20:05:36 UTC (rev 409) +++ libs/argparser/trunk/src/doc/examples/Tail.java 2007-06-14 20:36:33 UTC (rev 410) @@ -31,8 +31,7 @@ import net.sf.japi.io.args.Option; import org.jetbrains.annotations.NotNull; -/** - * Java implementation of the UNIX command <q>tail</q> to demonstrate how to use the argparser library. +/** Java implementation of the UNIX command <q>tail</q> to demonstrate how to use the argparser library. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ public class Tail extends BasicCommand { @@ -40,23 +39,20 @@ /** The number of items to print. */ private int numItems = 10; - /** - * The kind of items to print. + /** The kind of items to print. * <code>false</code>: print lines. * <code>true</code>: print bytes. */ private boolean printBytes; - /** - * Quiety / Verbosity. + /** Quiety / Verbosity. * 0 = never print filenames. * 1 = print filenames if more than one file. * 2 = always print filenames. */ private int verbose = 1; - /** - * Sets the number of lines to print. + /** Sets the number of lines to print. * @param lines number of lines to print */ @Option({"n", "lines"}) @@ -65,8 +61,7 @@ printBytes = false; } - /** - * Sets the number of bytes to print. + /** Sets the number of bytes to print. * @param bytes number of bytes to print. */ @Option({"c", "bytes"}) @@ -75,50 +70,60 @@ printBytes = true; } - /** - * Sets the command to be quiet. - */ + /** Sets the command to be quiet. */ @Option({"q", "quiet", "silent"}) public void setQuiet() { verbose = 0; } - /** - * Sets the command to be verbose. - */ + /** Sets the command to be verbose. */ @Option({"v", "verbose"}) public void setVerbose() { verbose = 2; } /** {@inheritDoc} */ - @SuppressWarnings({"InstanceMethodNamingConvention"}) - public int run(@NotNull List<String> args) throws Exception { + public int run(@NotNull final List<String> args) throws IOException { int returnCode = 0; - for (final String arg : args) { - try { - final InputStream in = new BufferedInputStream(new FileInputStream(arg)); + if (args.size() == 0) { + if (verbose == 2) { + System.out.println("==> STDIN <=="); + } + copyItems(System.in); + } else { + for (final String arg : args) { + if (verbose == 2 || verbose == 1 && args.size() > 1) { + System.out.println("==> " + arg + " <=="); + } try { - copy(in); - } finally { - in.close(); + final InputStream in = new BufferedInputStream(new FileInputStream(arg)); + try { + copyItems(in); + } finally { + in.close(); + } + } catch (final IOException e) { + returnCode = 1; + System.err.println(e); } - } catch (final IOException e) { - returnCode = 1; - System.err.println(e); } } return returnCode; } - private void copy(final InputStream in) throws IOException { + /** Copies the configured number of items from the specified InputStream to System.out. + * @param in InputStream to run on + * @throws IOException In case of I/O problems. + */ + private void copyItems(@NotNull final InputStream in) throws IOException { if (printBytes) { copyBytes(in); } else { copyLines(in); } } - private void copyBytes(final InputStream in) throws IOException { + + private void copyBytes(@NotNull final InputStream in) throws IOException { final InputStream lin = in instanceof BufferedInputStream ? in : new BufferedInputStream(in); final byte[] buf = new byte[numItems]; int bytesRead; @@ -132,7 +137,7 @@ System.out.write(buf, 0, bytesRead); } - private void copyLines(final InputStream in) throws IOException { + private void copyLines(@NotNull final InputStream in) throws IOException { final String[] buf = new String[numItems]; final BufferedReader lin = new BufferedReader(new InputStreamReader(in)); int num = 0; @@ -147,12 +152,11 @@ } } - /** - * Main method. + /** Main method. * @param args Command line arguments */ public static void main(final String... args) { - ArgParser.simpleParseAndRun(new Head(), args); + ArgParser.simpleParseAndRun(new Tail(), args); } } // class Tail Modified: libs/argparser/trunk/src/doc/examples/Uniq.java =================================================================== --- libs/argparser/trunk/src/doc/examples/Uniq.java 2007-06-14 20:05:36 UTC (rev 409) +++ libs/argparser/trunk/src/doc/examples/Uniq.java 2007-06-14 20:36:33 UTC (rev 410) @@ -21,6 +21,7 @@ import net.sf.japi.io.args.BasicCommand; import net.sf.japi.io.args.Option; +import net.sf.japi.io.args.ArgParser; import org.jetbrains.annotations.NotNull; import java.util.List; import java.io.InputStream; @@ -31,8 +32,7 @@ import java.io.Reader; import java.io.BufferedReader; -/** - * Java implementation of the UNIX command <q>uniq</q> to demonstrate how to use the argparser library. +/** Java implementation of the UNIX command <q>uniq</q> to demonstrate how to use the argparser library. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ public class Uniq extends BasicCommand { @@ -46,25 +46,19 @@ /** Whether to ignore case. */ private boolean ignoreCase; - /** - * Sets that lines should prefixed with the count of their occurrence. - */ + /** Sets that lines should prefixed with the count of their occurrence. */ @Option({"c", "count"}) public void setCount() { count = true; } - /** - * Sets that only lines that occurred more than once will be printed. - */ + /** Sets that only lines that occurred more than once will be printed. */ @Option({"d", "repeated"}) public void setRepeated() { repeated = true; } - /** - * Sets that the case should be ignored. - */ + /** Sets that the case should be ignored. */ @Option({"i", "ignore-case"}) public void setIgnoreCase() { ignoreCase = true; @@ -90,8 +84,7 @@ return returnCode; } - /** - * Prints unique lines from the specified InputStream. + /** Prints unique lines from the specified InputStream. * @param in InputStream to print unique lines from. * @throws IOException In case of I/O problems. */ @@ -99,8 +92,7 @@ uniq(new InputStreamReader(in)); } - /** - * Prints unique lines from the specified Reader. + /** Prints unique lines from the specified Reader. * @param in Reader to print unique lines from. * @throws IOException In case of I/O problems. */ @@ -126,4 +118,11 @@ } } + /** Main method. + * @param args Command line arguments + */ + public static void main(final String... args) { + ArgParser.simpleParseAndRun(new Uniq(), args); + } + } // class Uniq Modified: libs/argparser/trunk/src/doc/start.xhtml =================================================================== --- libs/argparser/trunk/src/doc/start.xhtml 2007-06-14 20:05:36 UTC (rev 409) +++ libs/argparser/trunk/src/doc/start.xhtml 2007-06-14 20:36:33 UTC (rev 410) @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> -<html> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> <meta name="Date" content="$Date: 2006-11-26 16:38:11 +0100 (So, 26 Nov 2006) $" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2007-07-14 10:36:47
|
Revision: 536 http://svn.sourceforge.net/japi/?rev=536&view=rev Author: christianhujer Date: 2007-07-14 03:36:45 -0700 (Sat, 14 Jul 2007) Log Message: ----------- Minor documentation improvements. Modified Paths: -------------- libs/argparser/trunk/src/doc/start.xhtml Added Paths: ----------- libs/argparser/trunk/src/doc/guide/ libs/argparser/trunk/src/doc/guide/start.xhtml Added: libs/argparser/trunk/src/doc/guide/start.xhtml =================================================================== --- libs/argparser/trunk/src/doc/guide/start.xhtml (rev 0) +++ libs/argparser/trunk/src/doc/guide/start.xhtml 2007-07-14 10:36:45 UTC (rev 536) @@ -0,0 +1,42 @@ + +<!-- + ~ JAPI libs-argparser is a library for parsing command line arguments. + ~ Copyright (C) 2007 Christian Hujer. + ~ + ~ This library is free software; you can redistribute it and/or + ~ modify it under the terms of the GNU Lesser General Public + ~ License as published by the Free Software Foundation; either + ~ version 2.1 of the License, or (at your option) any later version. + ~ + ~ This library is distributed in the hope that it will be useful, + ~ but WITHOUT ANY WARRANTY; without even the implied warranty of + ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + ~ Lesser General Public License for more details. + ~ + ~ You should have received a copy of the GNU Lesser General Public + ~ License along with this library; if not, write to the Free Software + ~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + --> + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> + <head> + <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> + <meta name="Date" content="$Date: 2006-11-26 16:38:11 +0100 (So, 26 Nov 2006) $" /> + <title>JAPI Lib ArgParser: Guide</title> + </head> + <body> + <h1>JAPI Lib ArgParser: Guide</h1> + <p> + This guide shows you how to write Java programs that use JAPI Lib ArgParser. + </p> + <h2>Introduction</h2> + <p> + JAPI Lib ArgParser is a library that helps developers with command line parsing. + The primary target audience are Java developers that write Java programs that have a command line interface. + </p> + <p> + When writing a program that understands command line + </p> + </body> +</html> Property changes on: libs/argparser/trunk/src/doc/guide/start.xhtml ___________________________________________________________________ Name: svn:mime-type + text/html Name: svn:eol-style + LF Modified: libs/argparser/trunk/src/doc/start.xhtml =================================================================== --- libs/argparser/trunk/src/doc/start.xhtml 2007-07-14 10:34:54 UTC (rev 535) +++ libs/argparser/trunk/src/doc/start.xhtml 2007-07-14 10:36:45 UTC (rev 536) @@ -1,4 +1,23 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + ~ JAPI libs-argparser is a library for parsing command line arguments. + ~ Copyright (C) 2007 Christian Hujer. + ~ + ~ This library is free software; you can redistribute it and/or + ~ modify it under the terms of the GNU Lesser General Public + ~ License as published by the Free Software Foundation; either + ~ version 2.1 of the License, or (at your option) any later version. + ~ + ~ This library is distributed in the hope that it will be useful, + ~ but WITHOUT ANY WARRANTY; without even the implied warranty of + ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + ~ Lesser General Public License for more details. + ~ + ~ You should have received a copy of the GNU Lesser General Public + ~ License along with this library; if not, write to the Free Software + ~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + --> + <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> @@ -10,6 +29,8 @@ <h1>JAPI Lib Argparser</h1> <p> <em>JAPI Lib Argparser</em> is a library for parsing command line arguments. + </p> + <p> It supports the following features: </p> <ul> @@ -17,6 +38,7 @@ <li>Bean-like reflective / introspective usage</li> <li>Java standard <abbr>i18n</abbr> / <abbr>l10n</abbr> support using properties files</li> <li>Short (e.g. <code>-f</code>) and long (e.g. <code>--filename</code>) options</li> + <li>Allow long options to be written as <code>--option value</code> as well as <code>--option=value</code></li> <li>Concatenation of short options (e.g. <code>-fiz</code> for <code>-f -i -z</code>)</li> <li>Automatic built-in help (<code>-h</code> and <code>--help</code>)</li> <li>Mandatory and optional options / switches</li> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2007-09-09 17:21:30
|
Revision: 608 http://japi.svn.sourceforge.net/japi/?rev=608&view=rev Author: christianhujer Date: 2007-09-09 10:21:28 -0700 (Sun, 09 Sep 2007) Log Message: ----------- Updating argparser documentation. Now includes requirements. Modified Paths: -------------- libs/argparser/trunk/src/doc/guide/start.xhtml libs/argparser/trunk/src/doc/start.xhtml Added Paths: ----------- libs/argparser/trunk/src/doc/requirements.xhtml Modified: libs/argparser/trunk/src/doc/guide/start.xhtml =================================================================== --- libs/argparser/trunk/src/doc/guide/start.xhtml 2007-09-09 16:32:16 UTC (rev 607) +++ libs/argparser/trunk/src/doc/guide/start.xhtml 2007-09-09 17:21:28 UTC (rev 608) @@ -1,4 +1,4 @@ - +<?xml version="1.0" encoding="utf-8"?> <!-- ~ JAPI libs-argparser is a library for parsing command line arguments. ~ Copyright (C) 2007 Christian Hujer. @@ -36,7 +36,11 @@ The primary target audience are Java developers that write Java programs that have a command line interface. </p> <p> - When writing a program that understands command line + When writing a program that understands command line the basic question is how to pass options and arguments. + There are several requirements that most command line programs should meet: </p> + <ul> + <li>The order of options should not matter.</li> + </ul> </body> </html> Added: libs/argparser/trunk/src/doc/requirements.xhtml =================================================================== --- libs/argparser/trunk/src/doc/requirements.xhtml (rev 0) +++ libs/argparser/trunk/src/doc/requirements.xhtml 2007-09-09 17:21:28 UTC (rev 608) @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ JAPI libs-argparser is a library for parsing command line arguments. + ~ Copyright (C) 2007 Christian Hujer. + ~ + ~ This library is free software; you can redistribute it and/or + ~ modify it under the terms of the GNU Lesser General Public + ~ License as published by the Free Software Foundation; either + ~ version 2.1 of the License, or (at your option) any later version. + ~ + ~ This library is distributed in the hope that it will be useful, + ~ but WITHOUT ANY WARRANTY; without even the implied warranty of + ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + ~ Lesser General Public License for more details. + ~ + ~ You should have received a copy of the GNU Lesser General Public + ~ License along with this library; if not, write to the Free Software + ~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> + <head> + <title>JAPI Lib ArgParser - Requirements</title> + </head> + <body> + <h1>JAPI Lib ArgParser - Requirements</h1> + <ul> + <li> + REQ001: + The library MUST provide option parsing. + Options start with a "-"-character. + Every option has a unique name. + A name that consists of a single letter is called short option. + A name that consists of more than one letter is called long option. + </li> + <li> + REQ002: + Optional options MUST be possible. + It MUST be possible to declare an option as optional. + An optional option may be omitted. + If an optional option is omitted, the library MUST simply ignore that option. + If an optional option is specified, the library MUST handle the option properly. + </li> + <li> + REQ003: + Mandatory options MUST be possible. + It MUST be possible to declare an option as mandatory. + A mandatory options must not be omitted. + If a mandatory option is omitted, the library MUST NOT process the command. + If a mandatory option is specified, the library MUST handle the option properly. + </li> + <li> + REQ004: + Terminating options MUST be possible. + It MUST be possible to declare an option as terminating. + A terminating option may be omitted. + </li> + <li> + REQ005: + The library MUST support i18n/l10n. + </li> + <li> + REQ006: + Options with names which consist of non-ASCII characters MUST be rejected. + </li> + <li> + REQ007: + It SHOULD be possible to concatenate multiple short options in a single option that looks like a long option starting with one dash. + </li> + <li> + REQ008: + Options that start with two dashs MUST always be treated as long options. + </li> + <li> + REQ009: + If an option that starts with a single dash is not recognized as a long option it SHOULD be treated as concatenated short options. + If treating it as concatenated short options fails, the option SHOULD be reported as unrecognized long option. + </li> + </ul> + </body> +</html> Property changes on: libs/argparser/trunk/src/doc/requirements.xhtml ___________________________________________________________________ Name: svn:mime-type + text/html Name: svn:eol-style + LF Modified: libs/argparser/trunk/src/doc/start.xhtml =================================================================== --- libs/argparser/trunk/src/doc/start.xhtml 2007-09-09 16:32:16 UTC (rev 607) +++ libs/argparser/trunk/src/doc/start.xhtml 2007-09-09 17:21:28 UTC (rev 608) @@ -38,11 +38,13 @@ <li>Bean-like reflective / introspective usage</li> <li>Java standard <abbr>i18n</abbr> / <abbr>l10n</abbr> support using properties files</li> <li>Short (e.g. <code>-f</code>) and long (e.g. <code>--filename</code>) options</li> - <li>Allow long options to be written as <code>--option value</code> as well as <code>--option=value</code></li> + <li>Allow long options to be written with one or two dashes, with or without equals sign: <code>-option value</code>, <code>--option value</code>, <code>-option=value</code> and <code>--option=value</code> are all valid.</li> <li>Concatenation of short options (e.g. <code>-fiz</code> for <code>-f -i -z</code>)</li> - <li>Automatic built-in help (<code>-h</code> and <code>--help</code>)</li> + <li>Automatic built-in help (<code>-h</code>, <code>-help</code> and <code>--help</code>)</li> <li>Mandatory and optional options / switches</li> <li>Automatic conversion of command line arguments to relevant Java types</li> + <li>The order of options does not matter.</li> + <li>Optional logging and log level setting (<code>-l level</code>)</li> </ul> <h2>Target Audience</h2> <ul> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |