stevel 2005/03/10 15:20:04 Modified: . build.xml docs/manual/CoreTasks conditions.html src/main/org/apache/tools/ant/types defaults.properties Added: src/main/org/apache/tools/ant/taskdefs/condition IsReachable.java src/etc/testcases/taskdefs/conditions isreachable.xml src/testcases/org/apache/tools/ant/taskdefs/condition IsReachableTest.java Removed: src/main/org/apache/tools/ant/taskdefs/optional/condition IsPingable.java Log: Moving isreachable to reflect on the new method. On java <=1.4; if the hostname can be resolved then we are reachable. All tests run against localhost. This *should* work everywhere, but no doubt someone with a confused /etc/hosts or no IPv4 stack will have different opinions. Revision Changes Path 1.463 +281 -281 ant/build.xml Index: build.xml =================================================================== RCS file: /home/cvs/ant/build.xml,v retrieving revision 1.462 retrieving revision 1.463 diff -u -r1.462 -r1.463 --- build.xml 9 Mar 2005 22:56:38 -0000 1.462 +++ build.xml 10 Mar 2005 23:20:02 -0000 1.463 @@ -31,6 +31,7 @@ <property name="ant.package" value="org/apache/tools/ant"/> <property name="taskdefs.package" value="${ant.package}/taskdefs"/> + <property name="condition.package" value="${taskdefs.package}/condition"/> <property name="optional.package" value="${taskdefs.package}/optional"/> <property name="optional.condition.package" value="${optional.package}/condition"/> <property name="type.package" value="${ant.package}/types"/> @@ -56,7 +57,7 @@ <property name="junit.fork" value="false"/> <property name="junit.filtertrace" value="off"/> <property name="junit.summary" value="no"/> - <property name="test.haltonfailure" value="yes" /> + <property name="test.haltonfailure" value="yes"/> <property name="junit.forkmode" value="once"/> <property name="unfiltered.files" value="**/*.gif,**/*.jpg,**/*.ico,**/*.pdf,**/*.zip"/> @@ -113,13 +114,13 @@ <!-- turn this path into a string which is passed to the tests --> <property name="tests-classpath.value" - refid="tests-classpath"/> + refid="tests-classpath"/> - <!-- - =================================================================== - Set up properties for the distribution area - =================================================================== - --> + <!-- + =================================================================== + Set up properties for the distribution area + =================================================================== + --> <property name="dist.name" value="apache-${name}-${version}"/> <property name="dist.base" value="distribution"/> <property name="dist.dir" value="dist"/> @@ -157,7 +158,6 @@ <selector id="needs.jdk1.5+"> <or> - <filename name="${optional.condition.package}/IsPingable*"/> <filename name="${taskdefs.package}/AptTest*"/> </or> </selector> @@ -166,10 +166,10 @@ but not all of them --> <selector id="not.in.kaffe"> <or> - <filename name="${optional.condition.package}/IsPingable*"/> + <filename name="${condition.package}/IsReachable*"/> </or> </selector> - + <selector id="needs.sun.uue"> <filename name="${ant.package}/taskdefs/email/UUMailer*"/> </selector> @@ -312,7 +312,7 @@ <selector id="needs.jai"> <or> <filename name="${optional.package}/image/*"/> - <filename name="${ant.package}/types/optional/image/*"/> + <filename name="${optional.type.package}/image/*"/> </or> </selector> @@ -392,110 +392,110 @@ <available property="jdk1.5+" classname="java.lang.Readable"/> <available property="kaffe" classname="kaffe.util.NotImplemented"/> <available property="bsf.present" - classname="org.apache.bsf.BSFManager" - classpathref="classpath"/> + classname="org.apache.bsf.BSFManager" + classpathref="classpath"/> <available property="netrexx.present" - classname="netrexx.lang.Rexx" - classpathref="classpath"/> + classname="netrexx.lang.Rexx" + classpathref="classpath"/> <available property="trax.present" - classname="javax.xml.transform.Transformer" - classpathref="classpath"/> + classname="javax.xml.transform.Transformer" + classpathref="classpath"/> <condition property="trax.impl.present"> <or> <and> <isset property="javax.xml.transform.TransformerFactory"/> <available classname="${javax.xml.transform.TransformerFactory}" - classpathref="classpath"/> + classpathref="classpath"/> </and> <available resource="META-INF/services/javax.xml.transform.TransformerFactory"/> </or> </condition> <available property="xslp.present" - classname="com.kvisco.xsl.XSLProcessor" - classpathref="classpath"/> + classname="com.kvisco.xsl.XSLProcessor" + classpathref="classpath"/> <available property="apache.resolver.present" - classname="org.apache.xml.resolver.tools.CatalogResolver" - classpathref="classpath" /> + classname="org.apache.xml.resolver.tools.CatalogResolver" + classpathref="classpath"/> <available property="xalan.present" - classname="org.apache.xalan.xslt.XSLTProcessorFactory" - classpathref="classpath"/> + classname="org.apache.xalan.xslt.XSLTProcessorFactory" + classpathref="classpath"/> <available property="xalan2.present" - classname="org.apache.xalan.transformer.TransformerImpl" - classpathref="classpath"/> + classname="org.apache.xalan.transformer.TransformerImpl" + classpathref="classpath"/> <available property="ejb.ejbc.present" - classname="weblogic.ejbc" - classpathref="classpath"/> + classname="weblogic.ejbc" + classpathref="classpath"/> <available property="ejb.DDCreator.present" - classname="weblogic.ejb.utils.DDCreator" - classpathref="classpath"/> + classname="weblogic.ejb.utils.DDCreator" + classpathref="classpath"/> <available property="ejb.wls.present" - classname="weblogic.Server" - classpathref="classpath"/> + classname="weblogic.Server" + classpathref="classpath"/> <available property="junit.present" - classname="junit.framework.TestCase" - classpathref="classpath"/> + classname="junit.framework.TestCase" + classpathref="classpath"/> <available property="commons.net.present" - classname="org.apache.commons.net.ftp.FTPClient" - classpathref="classpath"/> + classname="org.apache.commons.net.ftp.FTPClient" + classpathref="classpath"/> <available property="starteam.present" - classname="com.starbase.util.Platform" - classpathref="classpath"/> + classname="com.starbase.util.Platform" + classpathref="classpath"/> <available property="antlr.present" - classname="antlr.Tool" - classpathref="classpath"/> + classname="antlr.Tool" + classpathref="classpath"/> <available property="vaj.present" - classname="com.ibm.ivj.util.base.Workspace" - classpathref="classpath"/> + classname="com.ibm.ivj.util.base.Workspace" + classpathref="classpath"/> <available property="stylebook.present" - classname="org.apache.stylebook.Engine" - classpathref="classpath"/> + classname="org.apache.stylebook.Engine" + classpathref="classpath"/> <available property="apache.regexp.present" - classname="org.apache.regexp.RE" - classpathref="classpath"/> + classname="org.apache.regexp.RE" + classpathref="classpath"/> <available property="apache.oro.present" - classname="org.apache.oro.text.regex.Perl5Matcher" - classpathref="classpath"/> + classname="org.apache.oro.text.regex.Perl5Matcher" + classpathref="classpath"/> <available property="jmf.present" - classname="javax.sound.sampled.Clip" - classpathref="classpath"/> + classname="javax.sound.sampled.Clip" + classpathref="classpath"/> <available property="jai.present" - classname="javax.media.jai.JAI" - classpathref="classpath"/> + classname="javax.media.jai.JAI" + classpathref="classpath"/> <available property="icontract.present" - classname="com.reliablesystems.iContract.IContracted" - classpathref="classpath"/> + classname="com.reliablesystems.iContract.IContracted" + classpathref="classpath"/> <available property="jdepend.present" - classname="jdepend.framework.JDepend" - classpathref="classpath"/> + classname="jdepend.framework.JDepend" + classpathref="classpath"/> <available property="log4j.present" - classname="org.apache.log4j.Logger" - classpathref="classpath"/> + classname="org.apache.log4j.Logger" + classpathref="classpath"/> <available property="commons.logging.present" - classname="org.apache.commons.logging.LogFactory" - classpathref="classpath"/> + classname="org.apache.commons.logging.LogFactory" + classpathref="classpath"/> <available property="xalan.envcheck" - classname="org.apache.xalan.xslt.EnvironmentCheck" - classpathref="classpath"/> + classname="org.apache.xalan.xslt.EnvironmentCheck" + classpathref="classpath"/> <available property="which.present" - classname="org.apache.env.Which" - classpathref="classpath"/> + classname="org.apache.env.Which" + classpathref="classpath"/> <available property="xerces.present" - classname="org.apache.xerces.parsers.SAXParser" - classpathref="classpath"/> + classname="org.apache.xerces.parsers.SAXParser" + classpathref="classpath"/> <available property="bcel.present" - classname="org.apache.bcel.Constants" - classpathref="classpath"/> + classname="org.apache.bcel.Constants" + classpathref="classpath"/> <available property="sunuue.present" - classname="sun.misc.UUEncoder" - classpathref="classpath"/> + classname="sun.misc.UUEncoder" + classpathref="classpath"/> <condition property="javamail.complete"> <and> <available classname="javax.activation.DataHandler" - classpathref="classpath"/> + classpathref="classpath"/> <available classname="javax.mail.Transport" - classpathref="classpath"/> + classpathref="classpath"/> </and> </condition> @@ -528,10 +528,10 @@ <or> <!-- relative paths in CLASSPATH --> <contains string="${java.class.path}" - substring="${build.tests}"/> + substring="${build.tests}"/> <!-- absolute paths in CLASSPATH --> <contains string="${java.class.path}" - substring="${build.tests.resolved}"/> + substring="${build.tests.resolved}"/> <istrue value="${junit.fork}"/> </or> </condition> @@ -549,7 +549,7 @@ <isset property="kaffe"/> </not> <available classname="javax.swing.ImageIcon" - classpathref="classpath"/> + classpathref="classpath"/> </or> </condition> @@ -565,7 +565,7 @@ <condition property="wsdl.found"> <or> - <available file="wsdl" filepath="${env.PATH}"/> + <available file="wsdl" filepath="${env.PATH}"/> <available file="wsdl.exe" filepath="${env.PATH}"/> <available file="wsdl.exe" filepath="${env.Path}"/> </or> @@ -573,8 +573,8 @@ <echo level="verbose"> wsdl.found=${wsdl.found}</echo> <condition property="csc.found"> <or> - <available file="mcs" filepath="${env.PATH}"/> - <available file="csc" filepath="${env.PATH}"/> + <available file="mcs" filepath="${env.PATH}"/> + <available file="csc" filepath="${env.PATH}"/> <available file="csc.exe" filepath="${env.PATH}"/> <available file="csc.exe" filepath="${env.Path}"/> </or> @@ -589,17 +589,17 @@ <echo level="verbose"> dotnetapps.found=${dotnetapps.found}</echo> <available property="rhino.present" - classname="org.mozilla.javascript.Scriptable" - classpathref="classpath"/> + classname="org.mozilla.javascript.Scriptable" + classpathref="classpath"/> <available property="beanshell.present" - classname="bsh.StringUtil" - classpathref="classpath"/> + classname="bsh.StringUtil" + classpathref="classpath"/> <available property="xerces1.present" - classname="org.apache.xerces.framework.XMLParser" - classpathref="classpath"/> + classname="org.apache.xerces.framework.XMLParser" + classpathref="classpath"/> <available property="jsch.present" - classname="com.jcraft.jsch.Session" - classpathref="classpath"/> + classname="com.jcraft.jsch.Session" + classpathref="classpath"/> <condition property="build.compiler" value="classic"> <not> @@ -646,19 +646,19 @@ =================================================================== --> <target name="build" - depends="prepare, check_for_optional_packages" - description="--> compiles the source code"> + depends="prepare, check_for_optional_packages" + description="--> compiles the source code"> <mkdir dir="${build.dir}"/> <mkdir dir="${build.classes}"/> <mkdir dir="${build.lib}"/> <javac srcdir="${java.dir}" - destdir="${build.classes}" - debug="${debug}" - deprecation="${deprecation}" - target="${javac.target}" - source="${javac.source}" - optimize="${optimize}" > + destdir="${build.classes}" + debug="${debug}" + deprecation="${deprecation}" + target="${javac.target}" + source="${javac.source}" + optimize="${optimize}"> <classpath refid="classpath"/> <selector id="conditional-patterns"> @@ -677,12 +677,12 @@ <selector refid="needs.apache-resolver" unless="apache.resolver.present"/> <selector refid="needs.junit" unless="junit.present"/> <selector refid="needs.apache-regexp" - unless="apache.regexp.present"/> + unless="apache.regexp.present"/> <selector refid="needs.apache-oro" unless="apache.oro.present"/> <selector refid="needs.apache-bcel" unless="bcel.present"/> <selector refid="needs.apache-log4j" unless="log4j.present"/> <selector refid="needs.commons-logging" - unless="commons.logging.present"/> + unless="commons.logging.present"/> <selector refid="needs.apache-bsf" unless="bsf.present"/> <selector refid="needs.stylebook" unless="stylebook.present"/> <selector refid="needs.javamail" unless="javamail.complete"/> @@ -690,7 +690,7 @@ <selector refid="needs.netrexx" unless="netrexx.present"/> <selector refid="needs.weblogic.ejbc" unless="ejb.ejbc.present"/> <selector refid="needs.weblogic.ddcreator" - unless="ejb.DDCreator.present"/> + unless="ejb.DDCreator.present"/> <selector refid="needs.weblogic.server" unless="ejb.wls.present"/> <selector refid="needs.commons-net" unless="commons.net.present"/> <selector refid="needs.starteam" unless="starteam.present"/> @@ -699,7 +699,7 @@ <selector refid="needs.jmf" unless="jmf.present"/> <selector refid="needs.jai" unless="jai.present"/> <selector refid="needs.jdepend" unless="jdepend.present"/> - <selector refid="needs.swing" unless="swing.present"/> + <selector refid="needs.swing" unless="swing.present"/> <selector refid="needs.jsch" unless="jsch.present"/> <selector refid="needs.xmlschema" unless="xmlschema.present"/> </or> @@ -715,7 +715,7 @@ </copy> <copy todir="${build.classes}" - overwrite="true" encoding="UTF-8"> + overwrite="true" encoding="UTF-8"> <fileset dir="${java.dir}"> <include name="**/version.txt"/> <include name="**/defaultManifest.mf"/> @@ -724,10 +724,10 @@ </copy> <copy todir="${build.classes}/${optional.package}/junit/xsl"> - <fileset dir="${etc.dir}"> - <include name="junit-frames.xsl"/> - <include name="junit-noframes.xsl"/> - </fileset> + <fileset dir="${etc.dir}"> + <include name="junit-frames.xsl"/> + <include name="junit-noframes.xsl"/> + </fileset> </copy> </target> @@ -737,8 +737,8 @@ =================================================================== --> <target name="jars" - depends="build" - description="--> creates the Apache Ant jars"> + depends="build" + description="--> creates the Apache Ant jars"> <copy todir="${build.dir}"> <fileset dir="."> @@ -755,24 +755,24 @@ <manifest file="${manifest.tmp}"> <section name="${optional.package}/"> <attribute name="Extension-name" - value="org.apache.tools.ant"/> + value="org.apache.tools.ant"/> <attribute name="Specification-Title" - value="Apache Ant"/> + value="Apache Ant"/> <attribute name="Specification-Version" - value="${manifest-version}"/> + value="${manifest-version}"/> <attribute name="Specification-Vendor" - value="Apache Software Foundation"/> + value="Apache Software Foundation"/> <attribute name="Implementation-Title" - value="org.apache.tools.ant"/> + value="org.apache.tools.ant"/> <attribute name="Implementation-Version" - value="${manifest-version}"/> + value="${manifest-version}"/> <attribute name="Implementation-Vendor" - value="Apache Software Foundation"/> + value="Apache Software Foundation"/> </section> </manifest> <jar destfile="${build.lib}/${name}-launcher.jar" - basedir="${build.classes}"> + basedir="${build.classes}"> <selector refid="ant.launcher"/> <manifest> <attribute name="Main-Class" value="org.apache.tools.ant.launch.Launcher"/> @@ -780,8 +780,8 @@ </jar> <jar destfile="${build.lib}/${name}.jar" - basedir="${build.classes}" - manifest="${manifest}"> + basedir="${build.classes}" + manifest="${manifest}"> <not> <selector id="non-core"> <or> @@ -807,19 +807,19 @@ <manifest> <section name="${ant.package}/"> <attribute name="Extension-name" - value="org.apache.tools.ant"/> + value="org.apache.tools.ant"/> <attribute name="Specification-Title" - value="Apache Ant"/> + value="Apache Ant"/> <attribute name="Specification-Version" - value="${manifest-version}"/> + value="${manifest-version}"/> <attribute name="Specification-Vendor" - value="Apache Software Foundation"/> + value="Apache Software Foundation"/> <attribute name="Implementation-Title" - value="org.apache.tools.ant"/> + value="org.apache.tools.ant"/> <attribute name="Implementation-Version" - value="${manifest-version}"/> + value="${manifest-version}"/> <attribute name="Implementation-Vendor" - value="Apache Software Foundation"/> + value="Apache Software Foundation"/> </section> </manifest> @@ -829,8 +829,8 @@ </jar> <jar destfile="${build.lib}/${bootstrap.jar}" - basedir="${build.classes}" - manifest="${manifest}"> + basedir="${build.classes}" + manifest="${manifest}"> <include name="${ant.package}/Main.class"/> <metainf dir="${build.dir}"> <include name="LICENSE.txt"/> @@ -838,13 +838,13 @@ </metainf> <manifest> <attribute name="Class-Path" - value="ant.jar xml-apis.jar xercesImpl.jar xalan.jar"/> + value="ant.jar xml-apis.jar xercesImpl.jar xalan.jar"/> </manifest> </jar> <jar destfile="${build.lib}/ant-nodeps.jar" - basedir="${build.classes}" - manifest="${manifest.tmp}"> + basedir="${build.classes}" + manifest="${manifest.tmp}"> <and> <selector refid="non-core"/> <not> @@ -922,11 +922,11 @@ <optional-jar dep="jdepend"/> <jar destfile="${build.lib}/${optional.jars.prefix}-weblogic.jar" - basedir="${build.classes}" - manifest="${manifest.tmp}"> + basedir="${build.classes}" + manifest="${manifest.tmp}"> <or> <selector refid="needs.weblogic.ejbc"/> - <selector refid="needs.weblogic.ddcreator" /> + <selector refid="needs.weblogic.ddcreator"/> <selector refid="needs.weblogic.server"/> </or> </jar> @@ -935,15 +935,15 @@ <!-- Creates jar of test utility classes --> <target name="test-jar" - depends="compile-tests" - description="--> creates the Apache Ant Test Utilties jar"> + depends="compile-tests" + description="--> creates the Apache Ant Test Utilties jar"> <fail unless="junit.present"> We cannot build the test jar unless JUnit is present, as JUnit is needed to compile the test classes. </fail> <jar destfile="${build.lib}/${name}-testutil.jar" - basedir="${build.tests}"> + basedir="${build.tests}"> <patternset refid="useful.tests"/> </jar> </target> @@ -954,8 +954,8 @@ =================================================================== --> <target name="dist-lite" - depends="jars" - description="--> creates a minimum distribution to run Apache Ant"> + depends="jars" + description="--> creates a minimum distribution to run Apache Ant"> <mkdir dir="${dist.dir}"/> <mkdir dir="${dist.bin}"/> @@ -986,25 +986,25 @@ </fixcrlf> <chmod perm="ugo+rx" dir="${dist.dir}" type="dir" includes="**" - failonerror="${chmod.fail}"/> + failonerror="${chmod.fail}"/> <chmod perm="ugo+r" dir="${dist.dir}" type="file" includes="**" - failonerror="${chmod.fail}" maxparallel="${chmod.maxparallel}"/> + failonerror="${chmod.fail}" maxparallel="${chmod.maxparallel}"/> <chmod perm="ugo+x" type="file" failonerror="${chmod.fail}"> - <fileset dir="${dist.bin}"> - <include name="**/ant"/> - <include name="**/antRun"/> - <include name="**/*.pl"/> - <include name="**/*.py"/> - </fileset> + <fileset dir="${dist.bin}"> + <include name="**/ant"/> + <include name="**/antRun"/> + <include name="**/*.pl"/> + <include name="**/*.py"/> + </fileset> </chmod> </target> - <!-- - =================================================================== - Create the complete distribution - =================================================================== - --> + <!-- + =================================================================== + Create the complete distribution + =================================================================== + --> <target name="dist" description="--> creates a complete distribution"> <antcall inheritAll="false" target="internal_dist"> <param name="dist.dir" value="${dist.name}"/> @@ -1055,34 +1055,34 @@ </copy> <chmod perm="ugo+rx" dir="${dist.dir}" type="dir" includes="**" - failonerror="${chmod.fail}"/> + failonerror="${chmod.fail}"/> <chmod perm="ugo+r" dir="${dist.dir}" type="file" includes="**" - failonerror="${chmod.fail}" maxparallel="${chmod.maxparallel}"/> + failonerror="${chmod.fail}" maxparallel="${chmod.maxparallel}"/> <chmod perm="ugo+x" type="file" failonerror="${chmod.fail}"> - <fileset dir="${dist.bin}"> - <include name="**/ant"/> - <include name="**/antRun"/> - <include name="**/*.pl"/> - <include name="**/*.py"/> - </fileset> + <fileset dir="${dist.bin}"> + <include name="**/ant"/> + <include name="**/antRun"/> + <include name="**/*.pl"/> + <include name="**/*.py"/> + </fileset> </chmod> <!-- publish some useful stylesheets --> <copy todir="${dist.etc}"> - <fileset dir="${etc.dir}"> - <include name="junit-frames.xsl"/> - <include name="junit-noframes.xsl"/> - <include name="junit-frames-xalan1.xsl"/> - <include name="coverage-frames.xsl"/> - <include name="maudit-frames.xsl"/> - <include name="mmetrics-frames.xsl"/> - <include name="changelog.xsl"/> - <include name="jdepend.xsl"/> - <include name="jdepend-frames.xsl"/> - <include name="checkstyle/*.xsl"/> - <include name="log.xsl"/> - <include name="tagdiff.xsl"/> - </fileset> + <fileset dir="${etc.dir}"> + <include name="junit-frames.xsl"/> + <include name="junit-noframes.xsl"/> + <include name="junit-frames-xalan1.xsl"/> + <include name="coverage-frames.xsl"/> + <include name="maudit-frames.xsl"/> + <include name="mmetrics-frames.xsl"/> + <include name="changelog.xsl"/> + <include name="jdepend.xsl"/> + <include name="jdepend-frames.xsl"/> + <include name="checkstyle/*.xsl"/> + <include name="log.xsl"/> + <include name="tagdiff.xsl"/> + </fileset> <fileset dir="${build.lib}"> <include name="${bootstrap.jar}"/> </fileset> @@ -1109,7 +1109,7 @@ =================================================================== --> <target name="src-dist" - description="--> creates a source distribution"> + description="--> creates a source distribution"> <mkdir dir="${src.dist.dir}"/> @@ -1167,16 +1167,16 @@ </fixcrlf> <chmod perm="ugo+x" dir="${src.dist.dir}" type="dir" - failonerror="${chmod.fail}"/> + failonerror="${chmod.fail}"/> <chmod perm="ugo+r" dir="${src.dist.dir}" failonerror="${chmod.fail}"/> <chmod perm="ugo+x" failonerror="${chmod.fail}"> - <fileset dir="${src.dist.dir}"> - <include name="**/.sh"/> - <include name="**/.pl"/> - <include name="**/.py"/> - <include name="**/ant"/> - <include name="**/antRun"/> - </fileset> + <fileset dir="${src.dist.dir}"> + <include name="**/.sh"/> + <include name="**/.pl"/> + <include name="**/.py"/> + <include name="**/ant"/> + <include name="**/antRun"/> + </fileset> </chmod> </target> @@ -1187,7 +1187,7 @@ =================================================================== --> <target name="main_distribution" - description="--> creates the zip and tar distributions"> + description="--> creates the zip and tar distributions"> <delete dir="${dist.name}"/> <mkdir dir="${dist.base}"/> <mkdir dir="${dist.base}/src"/> @@ -1212,7 +1212,7 @@ </fileset> </zip> <tar longfile="gnu" - destfile="${dist.base}/bin/${dist.name}-bin.tar"> + destfile="${dist.base}/bin/${dist.name}-bin.tar"> <tarfileset dir="${dist.name}/.." mode="755" username="ant" group="ant"> <include name="${dist.name}/bin/ant"/> <include name="${dist.name}/bin/antRun"/> @@ -1228,9 +1228,9 @@ </tarfileset> </tar> <gzip destfile="${dist.base}/bin/${dist.name}-bin.tar.gz" - src="${dist.base}/bin/${dist.name}-bin.tar"/> + src="${dist.base}/bin/${dist.name}-bin.tar"/> <bzip2 destfile="${dist.base}/bin/${dist.name}-bin.tar.bz2" - src="${dist.base}/bin/${dist.name}-bin.tar"/> + src="${dist.base}/bin/${dist.name}-bin.tar"/> <delete file="${dist.base}/bin/${dist.name}-bin.tar"/> <delete dir="${dist.name}"/> <checksum fileext=".md5"> @@ -1256,7 +1256,7 @@ </fileset> </zip> <tar longfile="gnu" - destfile="${dist.base}/src/${dist.name}-src.tar" > + destfile="${dist.base}/src/${dist.name}-src.tar"> <tarfileset dir="${dist.name}/.." mode="755" username="ant" group="ant"> <include name="${dist.name}/bootstrap.sh"/> <include name="${dist.name}/build.sh"/> @@ -1268,9 +1268,9 @@ </tarfileset> </tar> <gzip destfile="${dist.base}/src/${dist.name}-src.tar.gz" - src="${dist.base}/src/${dist.name}-src.tar"/> + src="${dist.base}/src/${dist.name}-src.tar"/> <bzip2 destfile="${dist.base}/src/${dist.name}-src.tar.bz2" - src="${dist.base}/src/${dist.name}-src.tar"/> + src="${dist.base}/src/${dist.name}-src.tar"/> <delete file="${dist.base}/src/${dist.name}-src.tar"/> <delete dir="${dist.name}"/> <checksum fileext=".md5"> @@ -1283,7 +1283,7 @@ </target> <target name="distribution" depends="main_distribution" - description="--> creates the full Apache Ant distribution"> + description="--> creates the full Apache Ant distribution"> </target> @@ -1293,7 +1293,7 @@ =================================================================== --> <target name="clean" - description="--> cleans up build and dist directories"> + description="--> cleans up build and dist directories"> <delete dir="${build.dir}"/> <delete dir="${dist.base}"/> <delete dir="${dist.dir}"/> @@ -1308,8 +1308,8 @@ =================================================================== --> <target name="allclean" - depends="clean" - description="--> cleans up everything"> + depends="clean" + description="--> cleans up everything"> <delete file="${bootstrap.dir}/bin/antRun"/> <delete file="${bootstrap.dir}/bin/antRun.bat"/> <delete file="${bootstrap.dir}/bin/*.pl"/> @@ -1340,28 +1340,28 @@ --> <target name="javadoc_check"> <uptodate property="javadoc.notrequired" - targetfile="${build.javadocs}/packages.html" > - <srcfiles dir= "${java.dir}" includes="**/*.java"/> + targetfile="${build.javadocs}/packages.html"> + <srcfiles dir="${java.dir}" includes="**/*.java"/> </uptodate> <uptodate property="tests.javadoc.notrequired" - targetfile="${build.tests.javadocs}/packages.html" > - <srcfiles dir= "${tests.dir}"> + targetfile="${build.tests.javadocs}/packages.html"> + <srcfiles dir="${tests.dir}"> <patternset refid="useful.tests"/> </srcfiles> </uptodate> </target> <target name="javadocs" depends="prepare, javadoc_check" - unless="javadoc.notrequired" - description="--> creates the API documentation"> + unless="javadoc.notrequired" + description="--> creates the API documentation"> <mkdir dir="${build.javadocs}"/> <javadoc useexternalfile="yes" - destdir="${build.javadocs}" - author="true" - version="true" - locale="en" - windowtitle="${Name} API" - doctitle="${Name}"> + destdir="${build.javadocs}" + author="true" + version="true" + locale="en" + windowtitle="${Name} API" + doctitle="${Name}"> <packageset dir="${java.dir}"/> @@ -1383,16 +1383,16 @@ </target> <target name="test-javadocs" depends="prepare, javadoc_check" - unless="tests.javadoc.notrequired" - description="--> creates the API documentation for test utilities"> + unless="tests.javadoc.notrequired" + description="--> creates the API documentation for test utilities"> <mkdir dir="${build.tests.javadocs}"/> <javadoc useexternalfile="yes" - destdir="${build.tests.javadocs}" - author="true" - version="true" - locale="en" - windowtitle="${Name} Test Utilities" - doctitle="${Name}"> + destdir="${build.tests.javadocs}" + author="true" + version="true" + locale="en" + windowtitle="${Name} Test Utilities" + doctitle="${Name}"> <fileset dir="${tests.dir}"> <patternset refid="useful.tests"/> @@ -1411,11 +1411,11 @@ <mkdir dir="${build.tests}"/> <javac srcdir="${tests.dir}" - destdir="${build.tests}" - debug="${debug}" - target="${javac.target}" - source="${javac.source}" - deprecation="${deprecation}" > + destdir="${build.tests}" + debug="${debug}" + target="${javac.target}" + source="${javac.source}" + deprecation="${deprecation}"> <classpath refid="tests-classpath"/> <selector refid="conditional-patterns"/> @@ -1423,16 +1423,16 @@ <!-- Used by AntlibTest.testAntlibResource: --> <jar jarfile="${build.tests}/org/apache/tools/ant/taskdefs/test2-antlib.jar"> - <zipfileset dir="${tests.etc.dir}" fullpath="taskdefs/test.antlib.xml"> - <include name="taskdefs/test2.antlib.xml"/> - </zipfileset> + <zipfileset dir="${tests.etc.dir}" fullpath="taskdefs/test.antlib.xml"> + <include name="taskdefs/test2.antlib.xml"/> + </zipfileset> </jar> </target> <target name="dump-info" depends="dump-sys-properties,run-which"/> <target name="dump-sys-properties" unless="which.present" - depends="xml-check"> + depends="xml-check"> <echo message="java.vm.info=${java.vm.info}"/> <echo message="java.vm.name=${java.vm.name}"/> <echo message="java.vm.vendor=${java.vm.vendor}"/> @@ -1446,27 +1446,27 @@ <!-- helper class from Xalan2 to check for jar versioning of xml/xsl processors --> <target name="xml-check" depends="check_for_optional_packages" - if="xalan.envcheck" unless="which.present"> - <java classname="org.apache.xalan.xslt.EnvironmentCheck"/> + if="xalan.envcheck" unless="which.present"> + <java classname="org.apache.xalan.xslt.EnvironmentCheck"/> </target> <target name="run-which" depends="check_for_optional_packages" - if="which.present"> - <java classname="org.apache.env.Which" taskname="which"/> + if="which.present"> + <java classname="org.apache.env.Which" taskname="which"/> </target> <!-- test to see if we are online or not. can take a while when we are off line, so setting the property is a good shortcut--> <target name="probe-offline"> - <condition property="offline"> + <condition property="offline"> <or> <isset property="offline"/> <not> - <http url="http://www.apache.org/"/> + <http url="http://www.apache.org/"/> </not> </or> </condition> - <echo level="verbose" > offline=${offline}</echo> + <echo level="verbose"> offline=${offline}</echo> </target> <!-- @@ -1489,10 +1489,10 @@ </condition> <junit printsummary="${junit.summary}" haltonfailure="${test.haltonfailure}" - filtertrace="${junit.filtertrace}" - fork="${junit.fork}" forkmode="${junit.forkmode}" - failureproperty="tests.failed"> -<!-- <jvmarg value="-classic"/> --> + filtertrace="${junit.filtertrace}" + fork="${junit.fork}" forkmode="${junit.forkmode}" + failureproperty="tests.failed"> + <!-- <jvmarg value="-classic"/> --> <classpath refid="tests-classpath"/> <sysproperty key="ant.home" value="${ant.home}"/> @@ -1500,7 +1500,7 @@ <sysproperty key="offline" value="${offline}"/> <sysproperty key="build.tests.value" value="${build.tests.value}"/> <sysproperty key="tests-classpath.value" - value="${tests-classpath.value}"/> + value="${tests-classpath.value}"/> <sysproperty key="root" file="${basedir}"/> <sysproperty key="build.compiler" value="${build.compiler}"/> @@ -1540,102 +1540,102 @@ <!-- runtime dependencies that are different from compile time dependencies --> <exclude name="${optional.package}/ReplaceRegExpTest.java" - unless="some.regexp.support"/> + unless="some.regexp.support"/> <exclude name="${optional.package}/sitraka/*.java" - unless="some.regexp.support"/> + unless="some.regexp.support"/> <exclude name="${ant.package}/types/selectors/ContainsRegexpTest.java" - unless="some.regexp.support"/> + unless="some.regexp.support"/> <exclude name="${ant.package}/types/mappers/RegexpPatternMapperTest.java" - unless="some.regexp.support"/> + unless="some.regexp.support"/> <exclude name="${optional.package}/Rhino*.java" - unless="bsf.present"/> + unless="bsf.present"/> <exclude name="${optional.package}/Rhino*.java" - unless="rhino.present"/> + unless="rhino.present"/> <exclude name="${optional.package}/script/*.java" - unless="bsf.present"/> + unless="bsf.present"/> <exclude name="${optional.package}/script/*.java" - unless="rhino.present"/> + unless="rhino.present"/> <exclude name="${optional.package}/BeanShellScriptTest.java" - unless="bsf.present"/> + unless="bsf.present"/> <exclude name="${optional.package}/BeanShellScriptTest.java" - unless="beanshell.present"/> + unless="beanshell.present"/> <exclude name="${optional.type.package}/Script*.java" - unless="bsf.present"/> + unless="bsf.present"/> <exclude name="${optional.type.package}/Script*.java" - unless="rhino.present"/> + unless="rhino.present"/> <!-- fail if testcases can be loaded from the system classloader --> <exclude name="${ant.package}/AntClassLoaderDelegationTest.java" - if="tests.are.on.system.classpath"/> + if="tests.are.on.system.classpath"/> <exclude name="${optional.package}/junit/JUnitClassLoaderTest.java" - if="tests.are.on.system.classpath"/> + if="tests.are.on.system.classpath"/> <exclude name="${optional.package}/sitraka/XMLReportTest.java" - if="tests.are.on.system.classpath"/> + if="tests.are.on.system.classpath"/> <!-- these tests need to be localised before being ran???? --> <exclude name="${optional.package}/PvcsTest.java"/> <!-- These tests need a TraX implementation like xalan2 or saxon --> <exclude name="${optional.package}/TraXLiaisonTest.java" - unless="trax.impl.present"/> + unless="trax.impl.present"/> <exclude name="${optional.package}/XsltTest.java" - unless="trax.impl.present"/> + unless="trax.impl.present"/> <exclude name="${ant.package}/types/XMLCatalogBuildFileTest.java" - unless="trax.impl.present"/> + unless="trax.impl.present"/> <exclude name="${optional.package}/junit/JUnitReportTest.java" - unless="run.junitreport"/> + unless="run.junitreport"/> <exclude name="${taskdefs.package}/StyleTest.java" - unless="trax.impl.present"/> + unless="trax.impl.present"/> <!-- needs BSF to work --> <exclude name="${optional.package}/XalanLiaisonTest.java" - unless="bsf.present"/> + unless="bsf.present"/> <exclude name="${optional.package}/XalanLiaisonTest.java" - unless="xerces1.present"/> + unless="xerces1.present"/> <exclude name="${optional.package}/XslpLiaisonTest.java" - unless="xerces1.present"/> + unless="xerces1.present"/> <!-- needs resolver.jar to work --> <exclude name="${optional.package}/XmlValidateCatalogTest.java" - unless="apache.resolver.present"/> + unless="apache.resolver.present"/> <!-- needs jasperc --> <exclude name="${optional.package}/JspcTest.java" - unless="jasper.present"/> + unless="jasper.present"/> <!-- misc oneoff tests --> <exclude name="${optional.package}/WsdlToDotnetTest.java" - unless="dotnetapps.found"/> + unless="dotnetapps.found"/> <exclude name="${optional.package}/DotnetTest.java" - unless="dotnetapps.found"/> + unless="dotnetapps.found"/> <!-- These tests only passes if testcases and Ant classes have been loaded by the same classloader - will throw IllegalAccessExceptions otherwise. --> <exclude name="${ant.package}/DirectoryScannerTest.java" - unless="tests.and.ant.share.classloader"/> + unless="tests.and.ant.share.classloader"/> <exclude name="${taskdefs.package}/SQLExecTest.java" - unless="tests.and.ant.share.classloader"/> + unless="tests.and.ant.share.classloader"/> <exclude name="${taskdefs.package}/cvslib/ChangeLogWriterTest.java" - unless="tests.and.ant.share.classloader"/> + unless="tests.and.ant.share.classloader"/> <exclude name="${optional.package}/sos/SOSTest.java" - unless="tests.and.ant.share.classloader"/> + unless="tests.and.ant.share.classloader"/> <exclude name="${optional.package}/vss/MSVSSTest.java" - unless="tests.and.ant.share.classloader"/> + unless="tests.and.ant.share.classloader"/> <exclude name="${optional.package}/TraXLiaisonTest.java" - unless="tests.and.ant.share.classloader"/> + unless="tests.and.ant.share.classloader"/> <exclude name="${optional.package}/metamata/MAuditParserTest.java" - unless="tests.and.ant.share.classloader"/> + unless="tests.and.ant.share.classloader"/> <exclude name="${taskdefs.package}/ProcessDestroyerTest.java" - unless="tests.and.ant.share.classloader"/> + unless="tests.and.ant.share.classloader"/> <exclude name="${taskdefs.package}/ProtectedJarMethodsTest.java" - unless="tests.and.ant.share.classloader"/> + unless="tests.and.ant.share.classloader"/> <!-- can only run if cvs is installed on your machine enable by setting the property have.cvs --> <exclude name="${taskdefs.package}/AbstractCvsTaskTest.java" - unless="have.cvs"/> + unless="have.cvs"/> <!-- needs a local ftp server and the entry of a user/password combination --> <exclude name="${optional.package}/net/FTPTest.java"/> @@ -1646,7 +1646,7 @@ <!-- test fails if build/classes and ant.jar are using the same classloader --> <exclude name="${ant.package}/util/ClasspathUtilsTest.java" - if="tests.and.ant.share.classloader"/> + if="tests.and.ant.share.classloader"/> </fileset> </batchtest> </junit> @@ -1661,16 +1661,16 @@ <junit printsummary="${junit.summary}" - haltonfailure="${test.haltonfailure}" - fork="${junit.fork}" - filtertrace="${junit.filtertrace}"> -<!-- <jvmarg value="-classic"/> --> + haltonfailure="${test.haltonfailure}" + fork="${junit.fork}" + filtertrace="${junit.filtertrace}"> + <!-- <jvmarg value="-classic"/> --> <sysproperty key="ant.home" value="${ant.home}"/> <sysproperty key="build.tests" file="${build.tests}"/> <sysproperty key="build.tests.value" value="${build.tests.value}"/> - <sysproperty key="offline" value="${offline}"/> + <sysproperty key="offline" value="${offline}"/> <sysproperty key="tests-classpath.value" - value="${tests-classpath.value}"/> + value="${tests-classpath.value}"/> <sysproperty key="root" file="${basedir}"/> <sysproperty key="build.compiler" value="${build.compiler}"/> <classpath refid="tests-classpath"/> @@ -1680,11 +1680,11 @@ </target> <target name="interactive-tests" description="--> runs interactive tests" - depends="compile-tests" - if="jdk1.3+"> + depends="compile-tests" + if="jdk1.3+"> <java classpathref="tests-classpath" - classname="org.apache.tools.ant.taskdefs.TestProcess" - fork="true"/> + classname="org.apache.tools.ant.taskdefs.TestProcess" + fork="true"/> </target> <!-- @@ -1693,7 +1693,7 @@ =================================================================== --> <target name="main" - description="--> creates a minimum distribution in ./dist" - depends="dist-lite"/> + description="--> creates a minimum distribution in ./dist" + depends="dist-lite"/> </project> 1.33 +5 -1 ant/docs/manual/CoreTasks/conditions.html Index: conditions.html =================================================================== RCS file: /home/cvs/ant/docs/manual/CoreTasks/conditions.html,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- conditions.html 10 Mar 2005 14:09:39 -0000 1.32 +++ conditions.html 10 Mar 2005 23:20:02 -0000 1.33 @@ -537,7 +537,11 @@ <p>Uses Java1.5+ networking APIs to probe for a (remote) system being reachable. Exactly what probe mechanisms are used is an implementation -feature of the JVM. They may include ICMP "ping" packets +feature of the JVM. They may include ICMP "ping" packets, UDP or TCP connections +to port 7 "echo service" or other means. On Java1.4 and earlier, being able +to resolve the hostname is considered success. This means that if DNS is not +working or a URL/hostname is bad, the test will fail, but otherwise succeed +even if the remote host is actually absent. </p> <p> 1.39 +1 -1 ant/src/main/org/apache/tools/ant/types/defaults.properties Index: defaults.properties =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/types/defaults.properties,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- defaults.properties 10 Mar 2005 14:09:39 -0000 1.38 +++ defaults.properties 10 Mar 2005 23:20:03 -0000 1.39 @@ -37,7 +37,7 @@ concatfilter=org.apache.tools.ant.filters.ConcatFilter issigned=org.apache.tools.ant.taskdefs.condition.IsSigned isfileselected=org.apache.tools.ant.taskdefs.condition.IsFileSelected -isreachable=org.apache.tools.ant.taskdefs.optional.condition.IsPingable +isreachable=org.apache.tools.ant.taskdefs.condition.IsReachable mavenrepository=org.apache.tools.ant.taskdefs.repository.MavenRepository scriptselector=org.apache.tools.ant.types.optional.ScriptSelector scriptcondition=org.apache.tools.ant.types.optional.ScriptCondition 1.1 ant/src/main/org/apache/tools/ant/taskdefs/condition/IsReachable.java Index: IsReachable.java =================================================================== /* * Copyright 2004-2005 The Apache Software Foundation * * Licensed 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 * * http://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. * */ package org.apache.tools.ant.taskdefs.condition; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.ProjectComponent; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.InetAddress; import java.net.MalformedURLException; import java.net.URL; import java.net.UnknownHostException; /** * Test for a host being reachable using ICMP "ping" packets & echo operations. * Ping packets are very reliable for assessing reachability in a LAN or WAN, * but they do not get through any well-configured firewall. Echo (port 7) may. * <p/> * This condition turns unknown host exceptions into false conditions. This is * because on a laptop, DNS is one of the first services when the network goes; * you are implicitly offline. * <p/> * If a URL is supplied instead of a host, the hostname is extracted and used in * the test - all other parts of the URL are discarded. * <p/> * The test may not work through firewalls, that is, something may be reachable * using a protocol such as HTTP, while the lower level ICMP packets get dropped * on the floor. Similarly, a host may detected as reachable with ICMP, but not * reachable on other ports (i.e. port 80), because of firewalls. * <p/> * Requires Java1.5+ to work properly. On Java1.4 and earlier, if a hostname is * resolveable, the destination is assumed to be reachable. * * @ant.condition name="isreachable" * @since Ant1.7 */ public class IsReachable extends ProjectComponent implements Condition { private String host; private String url; /** * The default timeout. */ public static final int DEFAULT_TIMEOUT = 30; private int timeout = DEFAULT_TIMEOUT; /** * Error when no hostname is defined */ public static final String ERROR_NO_HOSTNAME = "No hostname defined"; /** * Error when invalid timeout value is defined */ public static final String ERROR_BAD_TIMEOUT = "Invalid timeout value"; /** * Unknown host message is seen. */ public static final String WARN_UNKNOWN_HOST = "Unknown host:"; /** * Network error message is seen. */ public static final String ERROR_ON_NETWORK = "network error to "; public static final String ERROR_BOTH_TARGETS = "Both url and host have been specified"; public static final String MSG_NO_REACHABLE_TEST = "cannot do a proper reachability test on this Java version"; public static final String ERROR_BAD_URL = "Bad URL "; public static final String ERROR_NO_HOST_IN_URL = "No hostname in URL "; /** * The host to ping. * * @param host the host to ping. */ public void setHost(String host) { this.host = host; } /** * A URL to extract the hostname from * * @param url */ public void setUrl(String url) { this.url = url; } /** * Timeout for the reachability test -in seconds. * * @param timeout the timeout in seconds. */ public void setTimeout(int timeout) { this.timeout = timeout; } /** * emptyness test * * @param string param to check * * @return true if it is empty */ private boolean empty(String string) { return string == null || string.length() == 0; } private static Class[] parameterTypes = {Integer.class}; /** * Is this condition true? * * @return true if the condition is true. * * @throws org.apache.tools.ant.BuildException * if an error occurs */ public boolean eval() throws BuildException { if (empty(host) && empty(url)) { throw new BuildException(ERROR_NO_HOSTNAME); } if (timeout < 0) { throw new BuildException(ERROR_BAD_TIMEOUT); } String target = host; if (!empty(url)) { if (!empty(host)) { throw new BuildException(ERROR_BOTH_TARGETS); } try { //get the host of a url URL realURL = new URL(url); target = realURL.getHost(); if (empty(target)) { throw new BuildException(ERROR_NO_HOST_IN_URL + url); } } catch (MalformedURLException e) { throw new BuildException(ERROR_BAD_URL + url, e); } } log("Probing host " + target, Project.MSG_VERBOSE); InetAddress address; try { log(WARN_UNKNOWN_HOST + target); address = InetAddress.getByName(target); } catch (UnknownHostException e1) { return false; } log("Host address =" + address.getHostAddress(), Project.MSG_VERBOSE); boolean reachable; //Java1.5: reachable = address.isReachable(timeout * 1000); Method reachableMethod = null; try { reachableMethod = InetAddress.class.getMethod("reachable", parameterTypes); Object[] params = new Object[1]; params[0] = new Integer(timeout * 1000); try { reachable = ((Boolean) reachableMethod.invoke(address, params)) .booleanValue(); } catch (IllegalAccessException e) { //utterly implausible, but catered for anyway throw new BuildException("When calling " + reachableMethod); } catch (InvocationTargetException e) { //assume this is an IOexception about un readability Throwable nested = e.getTargetException(); log(ERROR_ON_NETWORK + target + ": " + nested.toString()); //any kind of fault: not reachable. reachable = false; } } catch (NoSuchMethodException e) { //java1.4 or earlier log(MSG_NO_REACHABLE_TEST); reachable = true; } log("host is " + (reachable ? "" : "not") + " reachable", Project.MSG_VERBOSE); return reachable; } } 1.1 ant/src/etc/testcases/taskdefs/conditions/isreachable.xml Index: isreachable.xml =================================================================== <project name="isreachable"> <!-- * Copyright 2005 The Apache Software Foundation * * Licensed 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 * * http://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. * --> <macrodef name="assertHostReachable"> <attribute name="host"/> <sequential> <fail message="not reachable: @{host}"> <condition> <not> <isreachable host="@{host}"/> </not> </condition> </fail> </sequential> </macrodef> <macrodef name="assertHostNotReachable"> <attribute name="host"/> <sequential> <fail message="unexpectedly reachable: @{host}"> <condition> <isreachable host="@{host}"/> </condition> </fail> </sequential> </macrodef> <macrodef name="assertUrlReachable"> <attribute name="url"/> <sequential> <fail message="not reachable: @{url}"> <condition> <not> <isreachable url="@{url}"/> </not> </condition> </fail> </sequential> </macrodef> <target name="testLocalhost"> <assertHostReachable host="localhost"/> </target> <!-- bugs in XPSP2 mean this is the only IPv4 loopback addr allowed --> <target name="testIpv4localhost"> <assertHostReachable host="127.0.0.1"/> </target> <target name="testBoth"> <condition property="both"> <isreachable host="localhost" url="http://localhost"/> </condition> <fail>Expected failure before here</fail> </target> <target name="testLocalhostURL"> <assertUrlReachable url="http://localhost"/> </target> <target name="testIpv4localhostURL"> <assertUrlReachable url="http://127.0.0.1/"/> </target> <target name="testFTPURL"> <assertUrlReachable url="ftp://localhost"/> </target> <target name="testFile"> <assertUrlReachable url="file://build.xml"/> </target> <target name="testBadURL"> <assertUrlReachable url="uuid:3349-4404-0ac0ddee"/> </target> <target name="testBadTimeout"> <condition property="testBadTimeout"> <isreachable host="localhost" timeout="-1"/> </condition> </target> <target name="testNoTargets"> <condition property="none"> <isreachable/> </condition> </target> </project> 1.1 ant/src/testcases/org/apache/tools/ant/taskdefs/condition/IsReachableTest.java Index: IsReachableTest.java =================================================================== /* * Copyright 2005 The Apache Software Foundation * * Licensed 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 * * http://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. * */ package org.apache.tools.ant.taskdefs.condition; import org.apache.tools.ant.BuildFileTest; /** * test for reachable things */ public class IsReachableTest extends BuildFileTest { public IsReachableTest(String name) { super(name); } public void setUp() { configureProject( "src/etc/testcases/taskdefs/conditions/isreachable.xml"); } public void testLocalhost() throws Exception { executeTarget("testLocalhost"); } public void testLocalhostURL() throws Exception { executeTarget("testLocalhostURL"); } public void testIpv4localhost() throws Exception { executeTarget("testIpv4localhost"); } public void testFTPURL() throws Exception { executeTarget("testFTPURL"); } public void testBoth() throws Exception { expectBuildExceptionContaining("testBoth", "error on two targets", IsReachable.ERROR_BOTH_TARGETS); } public void testNoTargets() throws Exception { expectBuildExceptionContaining("testNoTargets", "no params", IsReachable.ERROR_NO_HOSTNAME); } public void testBadTimeout() throws Exception { expectBuildExceptionContaining("testBadTimeout", "error on -ve timeout", IsReachable.ERROR_BAD_TIMEOUT); } public void NotestFile() throws Exception { expectBuildExceptionContaining("testFile", "error on file URL", IsReachable.ERROR_NO_HOST_IN_URL); } public void testBadURL() throws Exception { expectBuildExceptionContaining("testBadURL", "error in URL", IsReachable.ERROR_BAD_URL); } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]