| <!DOCTYPE html> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| https://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <html lang="en"> |
| |
| <head> |
| <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> |
| <title>Available Task</title> |
| </head> |
| |
| <body> |
| |
| <h2 id="available">Available</h2> |
| <h3>Description</h3> |
| <p>Sets a property if a resource is available at run time. This resource can be a file, a directory, |
| a class in the classpath, or a JVM system resource.</p> |
| <p><strong>Note</strong>: a class is available in the classpath when it can be loaded; i.e., all |
| classes it depends on must be in the classpath, too.</p> |
| <p>If the resource is present, the property value is set to <q>true</q> by default; otherwise, the |
| property is not set. You can set the value to something other than the default by specifying |
| the <var>value</var> attribute.</p> |
| <p>Normally, this task is used to set properties that are useful to avoid target execution depending |
| on system parameters.</p> |
| <h3>Parameters</h3> |
| <table class="attr"> |
| <tr> |
| <th scope="col">Attribute</th> |
| <th scope="col">Description</th> |
| <th scope="col">Required</th> |
| </tr> |
| <tr> |
| <td>property</td> |
| <td>The name of the property to set.</td> |
| <td>Yes</td> |
| </tr> |
| <tr> |
| <td>value</td> |
| <td>The value to set the property to.</td> |
| <td>No; defaults to <q>true</q></td> |
| </tr> |
| <tr> |
| <td>classname</td> |
| <td>The class to look for in the classpath.</td> |
| <td rowspan="3">Exactly one of the three</td> |
| </tr> |
| <tr> |
| <td>file</td> |
| <td class="left">The file to look for.</td> |
| </tr> |
| <tr> |
| <td>resource</td> |
| <td class="left">The resource to look for in the JVM.</td> |
| </tr> |
| <tr> |
| <td>classpath</td> |
| <td>The classpath to use when looking up <var>classname</var> or <var>resource</var>.</td> |
| <td>No</td> |
| </tr> |
| <tr> |
| <td>filepath</td> |
| <td>The path to use when looking up <var>file</var>.</td> |
| <td>No</td> |
| </tr> |
| <tr> |
| <td>classpathref</td> |
| <td>The classpath to use, given as a <a href="../using.html#references">reference</a> to a path |
| defined elsewhere.</td> |
| <td>No</td> |
| </tr> |
| <tr> |
| <td>type</td> |
| <td>The type of <var>file</var> to look for, either a directory (<var>type</var>=<q>dir</q>) or |
| a file (<var>type</var>=<q>file</q>). If not set, the property will be set if the name specified |
| in the <var>file</var> attribute exists as either a file or a directory.</td> |
| <td>No</td> |
| </tr> |
| <tr> |
| <td>ignoresystemclasses</td> |
| <td>Ignore Ant's runtime classes, using only the specified classpath. Only affects |
| the <var>classname</var> attribute.</td> |
| <td>No; defaults to <q>false</q></td> |
| </tr> |
| <tr> |
| <td>searchparents</td> |
| <td>This contains the behaviour of the <q>file</q> <var>type</var>. If <q>true</q>, the task |
| will, when searching for a file, search not only the directories specified but will also search |
| the parent directories of those specified. If <q>false</q>, only the directories specified will |
| be searched. <em>Since Ant 1.7</em></td> |
| <td>No; defaults to <q>false</q></td> |
| </tr> |
| </table> |
| <h3>Parameters specified as nested elements</h3> |
| <h4>classpath</h4> |
| <p><code>Available</code>'s <var>classpath</var> attribute is |
| a <a href="../using.html#path">path-like structure</a> and can also be set via a nested |
| <code><classpath></code> element.</p> |
| <h4>filepath</h4> |
| <p><code>Available</code>'s <var>filepath</var> attribute is |
| a <a href="../using.html#path">path-like structure</a> and can also be set via a |
| nested <code><filepath></code> element.</p> |
| |
| <h3>Examples</h3> |
| <p>Set the <code>Myclass.present</code> property to the value <q>true</q> if the |
| class <code>org.whatever.Myclass</code> is found in Ant's classpath.</p> |
| <pre><available classname="org.whatever.Myclass" property="Myclass.present"/></pre> |
| |
| <p>Set the <code>jaxp.jar.present</code> property to the value <q>true</q> if the |
| file <samp>./lib/jaxp11/jaxp.jar</samp> is found.</p> |
| <pre> |
| <property name="jaxp.jar" value="./lib/jaxp11/jaxp.jar"/> |
| <available file="${jaxp.jar}" property="jaxp.jar.present"/></pre> |
| |
| <p>Set the <code>local.lib.present</code> property to the value <q>true</q> if the |
| directory <samp>/usr/local/lib</samp> is found.</p> |
| <pre> |
| <available file="/usr/local/lib" type="dir" |
| property="local.lib.present"/></pre> |
| |
| <p>Set the <code>jaxp11.present</code> property to the value <q>true</q> if the |
| class <code>javax.xml.transform.Transformer</code> is found in the classpath referenced |
| by <samp>jaxp</samp> (in this case, <samp>./lib/jaxp11/jaxp.jar</samp>).</p> |
| <pre> |
| ...in project ... |
| <property name="jaxp.jar" value="./lib/jaxp11/jaxp.jar"/> |
| <path id="jaxp" location="${jaxp.jar}"/> |
| ...in target ... |
| <available classname="javax.xml.transform.Transformer" |
| classpathref="jaxp" property="jaxp11.present"/></pre> |
| |
| <p>Set the <code>have.extras</code> property to the value <q>true</q> if the resource |
| file <samp>extratasks.properties</samp> is found.</p> |
| <pre> |
| <available property="have.extras" resource="extratasks.properties"> |
| <classpath> |
| <pathelement location="/usr/local/ant/extra.jar"/> |
| </classpath> |
| </available></pre> |
| |
| </body> |
| </html> |