Browse Source

Updated Java task manual.

Added since tags.
master
Tomas Zezula 9 years ago
parent
commit
aef407be4d
3 changed files with 75 additions and 19 deletions
  1. +59
    -3
      manual/Tasks/java.html
  2. +4
    -4
      src/main/org/apache/tools/ant/taskdefs/Java.java
  3. +12
    -12
      src/main/org/apache/tools/ant/types/CommandlineJava.java

+ 59
- 3
manual/Tasks/java.html View File

@@ -54,9 +54,9 @@ attributes.</p>
<td align="center" valign="top"><b>Required</b></td>
</tr>
<tr>
<td valign="top">classname</td>
<td valign="top"><a name="classname">classname</a></td>
<td valign="top">the Java class to execute.</td>
<td align="center" valign="top">Either <tt>jar</tt> or <tt>classname</tt></td>
<td align="center" valign="top">Either <tt>jar</tt>, <tt>classname</tt> or <tt>module</tt></td>
</tr>
<tr>
<td valign="top">jar</td>
@@ -64,7 +64,7 @@ attributes.</p>
Main-Class entry in the manifest). Fork must be set to true if this option is selected.
See notes below for more details.
</td>
<td align="center" valign="top">Either <tt>jar</tt> or <tt>classname</tt></td>
<td align="center" valign="top">Either <tt>jar</tt>, <tt>classname</tt> or <tt>module</tt></td>
</tr>
<tr>
<td valign="top">args</td>
@@ -119,6 +119,25 @@ attributes.</p>
(ignored if fork is disabled)</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">module</td>
<td valign="top">The initial or main module to resolve. To specify
the module main class use the <a href="#classname">classname</a> attribute.
Fork must be set to true if this option is selected.<em>since Ant 1.9.7</em></td>
<td align="center" valign="top">Either <tt>jar</tt>, <tt>classname</tt> or <tt>module</tt></td>
</tr>
<tr>
<td valign="top">modulepath</td>
<td valign="top">Specify where to find application modules. A list of directories of modules, module files or exploded modules.<em>since Ant 1.9.7</em></td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">modulepathref</td>
<td valign="top">The modulepath to use, given as <a
href="../using.html#references">reference</a> to a PATH defined elsewhere.
<em>since Ant 1.9.7</em></td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">failonerror</td>
<td valign="top">Stop the buildprocess if the command exits with a
@@ -312,6 +331,18 @@ error and would mean the build exits.
, then <code>&lt;java&gt;</code> <b>must</b> return 0 otherwise the build will
exit, as the class was run by the build JVM.</p>

<a name="modulepath"><h4>modulepath</h4>
<i><b>Since Ant 1.9.7</b></i>
<p><code>Java</code>'s <i>modulepath</i> attribute is a <a
href="../using.html#path">PATH like structure</a> and can also be set via a nested
<i>modulepath</i> element.</p>

<a name="upgrademodulepath"><h4>upgrademodulepath</h4>
<i><b>Since Ant 1.9.7</b></i>
<p>The location of modules that replace upgradeable modules in the runtime image
can be specified using this <a href="../using.html#path">PATH like structure</a>.</p>


<h3>JAR file execution</h3>

<p>The parameter of the <tt>jar</tt> attribute is of type <tt>File</tt>;
@@ -400,6 +431,31 @@ log-prefix to <code>[java1.4]</code>.
JVM, as it takes different parameters for other JVMs,
That JVM can be started from <code>&lt;exec&gt;</code> if required.</p>

<pre>
&lt;java
fork=&quot;true&quot;
failonerror=&quot;true&quot;
maxmemory=&quot;128m&quot;
module=&quot;TestModule&quot;
modulepath=&quot;lib:dist/test.jar&quot;/&gt;
</pre>
Runs the module TestModule resolved on the modulepath <tt>lib/:dist/test.jar</tt>
with a maximum memory of 128MB. Any non zero return code breaks the build.

<pre>
&lt;java
fork=&quot;true&quot;
failonerror=&quot;true&quot;
maxmemory=&quot;128m&quot;
module=&quot;TestModule&quot;
classname=&quot;Main&quot;&gt;
&lt;modulepath&gt;
&lt;pathelement location=&quot;lib&quot;/&gt;
&lt;pathelement location=&quot;dist/test.jar&quot;/&gt;
&lt;/modulepath&gt;
&lt;/java&gt;
</pre>
Runs the class Main in module TestModule resolved on the modulepath <tt>lib/:dist/test.jar</tt>
with a maximum memory of 128MB. Any non zero return code breaks the build.
</body>
</html>

+ 4
- 4
src/main/org/apache/tools/ant/taskdefs/Java.java View File

@@ -298,7 +298,7 @@ public class Java extends Task {
* Set the modulepath to be used when running the Java class.
*
* @param mp an Ant Path object containing the modulepath.
* @since ???
* @since 1.9.7
*/
public void setModulepath(Path mp) {
createModulepath().append(mp);
@@ -308,7 +308,7 @@ public class Java extends Task {
* Add a path to the modulepath.
*
* @return created modulepath.
* @since ???
* @since 1.9.7
*/
public Path createModulepath() {
return getCommandLine().createModulepath(getProject()).createPath();
@@ -318,7 +318,7 @@ public class Java extends Task {
* Add a path to the upgrademodulepath.
*
* @return created upgrademodulepath.
* @since ???
* @since 1.9.7
*/
public Path createUpgrademodulepath() {
return getCommandLine().createUpgrademodulepath(getProject()).createPath();
@@ -379,7 +379,7 @@ public class Java extends Task {
* @param module the name of the module.
*
* @throws BuildException if the jar attribute has been set.
* @since ???
* @since 1.9.7
*/
public void setModule(String module) throws BuildException {
if (getCommandLine().getJar() != null) {


+ 12
- 12
src/main/org/apache/tools/ant/types/CommandlineJava.java View File

@@ -374,7 +374,7 @@ public class CommandlineJava implements Cloneable {
/**
* Set the module to execute.
* @param module the module name.
* @since ???
* @since 1.9.7
*/
public void setModule(final String module) {
if (executableType == null) {
@@ -404,7 +404,7 @@ public class CommandlineJava implements Cloneable {
* @return the name of the module to run or <tt>null</tt> if there is no module.
* @see #getJar()
* @see #getClassname()
* @since ???
* @since 1.9.7
*/
public String getModule() {
if(executableType == ExecutableType.MODULE) {
@@ -442,7 +442,7 @@ public class CommandlineJava implements Cloneable {
* Create a modulepath.
* @param p the project to use to create the path.
* @return a path to be configured.
* @since ???
* @since 1.9.7
*/
public Path createModulepath(Project p) {
if (modulepath == null) {
@@ -455,7 +455,7 @@ public class CommandlineJava implements Cloneable {
* Create an upgrademodulepath.
* @param p the project to use to create the path.
* @return a path to be configured.
* @since ???
* @since 1.9.7
*/
public Path createUpgrademodulepath(Project p) {
if (upgrademodulepath == null) {
@@ -672,7 +672,7 @@ public class CommandlineJava implements Cloneable {
/**
* Get the modulepath.
* @return modulepath or null.
* @since ???
* @since 1.9.7
*/
public Path getModulepath() {
return modulepath;
@@ -681,7 +681,7 @@ public class CommandlineJava implements Cloneable {
/**
* Get the upgrademodulepath.
* @return upgrademodulepath or null.
* @since ???
* @since 1.9.7
*/
public Path getUpgrademodulepath() {
return upgrademodulepath;
@@ -783,7 +783,7 @@ public class CommandlineJava implements Cloneable {
/**
* Determine whether the modulepath has been specified.
* @return true if the modulepath is to be used.
* @since ???
* @since 1.9.7
*/
public boolean haveModulepath() {
Path fullClasspath = modulepath != null
@@ -795,7 +795,7 @@ public class CommandlineJava implements Cloneable {
/**
* Determine whether the upgrademodulepath has been specified.
* @return true if the upgrademodulepath is to be used.
* @since ???
* @since 1.9.7
*/
public boolean haveUpgrademodulepath() {
Path fullClasspath = upgrademodulepath != null
@@ -846,7 +846,7 @@ public class CommandlineJava implements Cloneable {
* @param module the module name.
* @param classname the classname or <code>null</code>.
* @return the main module with optional classname command line argument.
* @since ???
* @since 1.9.7
*/
private static String createModuleClassPair(final String module, final String classname) {
return classname == null ?
@@ -858,7 +858,7 @@ public class CommandlineJava implements Cloneable {
* Parses a module name from JDK 9 main module command line argument.
* @param moduleClassPair a module with optional classname or <code>null</code>.
* @return the module name or <code>null</code>.
* @since ???
* @since 1.9.7
*/
private static String parseModuleFromModuleClassPair(final String moduleClassPair) {
if (moduleClassPair == null) {
@@ -872,7 +872,7 @@ public class CommandlineJava implements Cloneable {
* Parses a classname from JDK 9 main module command line argument.
* @param moduleClassPair a module with optional classname or <code>null</code>.
* @return the classname or <code>null</code>.
* @since ???
* @since 1.9.7
*/
private static String parseClassFromModuleClassPair(final String moduleClassPair) {
if (moduleClassPair == null) {
@@ -886,7 +886,7 @@ public class CommandlineJava implements Cloneable {

/**
* Type of execution.
* @since ???
* @since 1.9.7
*/
private enum ExecutableType {
/**


Loading…
Cancel
Save