1 <?xml version="1.0" encoding="UTF-8"?>
   2 <!--
   3 *** GENERATED FROM project.xml - DO NOT EDIT  ***
   4 ***         EDIT ../build.xml INSTEAD         ***
   5 
   6 For the purpose of easier reading the script
   7 is divided into following sections:
   8 
   9   - initialization
  10   - compilation
  11   - jar
  12   - execution
  13   - debugging
  14   - javadoc
  15   - test compilation
  16   - test execution
  17   - test debugging
  18   - applet
  19   - cleanup
  20 
  21         -->
  22 <project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="HelloTest-impl">
  23     <fail message="Please build using Ant 1.8.0 or higher.">
  24         <condition>
  25             <not>
  26                 <antversion atleast="1.8.0"/>
  27             </not>
  28         </condition>
  29     </fail>
  30     <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
  31     <!-- 
  32                 ======================
  33                 INITIALIZATION SECTION 
  34                 ======================
  35             -->
  36     <target name="-pre-init">
  37         <!-- Empty placeholder for easier customization. -->
  38         <!-- You can override this target in the ../build.xml file. -->
  39     </target>
  40     <target depends="-pre-init" name="-init-private">
  41         <property file="nbproject/private/config.properties"/>
  42         <property file="nbproject/private/configs/${config}.properties"/>
  43         <property file="nbproject/private/private.properties"/>
  44     </target>
  45     <target depends="-pre-init,-init-private" name="-init-user">
  46         <property file="${user.properties.file}"/>
  47         <!-- The two properties below are usually overridden -->
  48         <!-- by the active platform. Just a fallback. -->
  49         <property name="default.javac.source" value="1.4"/>
  50         <property name="default.javac.target" value="1.4"/>
  51     </target>
  52     <target depends="-pre-init,-init-private,-init-user" name="-init-project">
  53         <property file="nbproject/configs/${config}.properties"/>
  54         <property file="nbproject/project.properties"/>
  55     </target>
  56     <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
  57         <property name="platform.java" value="${java.home}/bin/java"/>
  58         <available file="${manifest.file}" property="manifest.available"/>
  59         <condition property="splashscreen.available">
  60             <and>
  61                 <not>
  62                     <equals arg1="${application.splash}" arg2="" trim="true"/>
  63                 </not>
  64                 <available file="${application.splash}"/>
  65             </and>
  66         </condition>
  67         <condition property="main.class.available">
  68             <and>
  69                 <isset property="main.class"/>
  70                 <not>
  71                     <equals arg1="${main.class}" arg2="" trim="true"/>
  72                 </not>
  73             </and>
  74         </condition>
  75         <condition property="profile.available">
  76             <and>
  77                 <isset property="javac.profile"/>
  78                 <length length="0" string="${javac.profile}" when="greater"/>
  79                 <matches pattern="1\.[89](\..*)?" string="${javac.source}"/>
  80             </and>
  81         </condition>
  82         <condition property="do.archive">
  83             <or>
  84                 <not>
  85                     <istrue value="${jar.archive.disabled}"/>
  86                 </not>
  87                 <istrue value="${not.archive.disabled}"/>
  88             </or>
  89         </condition>
  90         <condition property="do.mkdist">
  91             <and>
  92                 <isset property="do.archive"/>
  93                 <isset property="libs.CopyLibs.classpath"/>
  94                 <not>
  95                     <istrue value="${mkdist.disabled}"/>
  96                 </not>
  97             </and>
  98         </condition>
  99         <condition property="do.archive+manifest.available">
 100             <and>
 101                 <isset property="manifest.available"/>
 102                 <istrue value="${do.archive}"/>
 103             </and>
 104         </condition>
 105         <condition property="do.archive+main.class.available">
 106             <and>
 107                 <isset property="main.class.available"/>
 108                 <istrue value="${do.archive}"/>
 109             </and>
 110         </condition>
 111         <condition property="do.archive+splashscreen.available">
 112             <and>
 113                 <isset property="splashscreen.available"/>
 114                 <istrue value="${do.archive}"/>
 115             </and>
 116         </condition>
 117         <condition property="do.archive+profile.available">
 118             <and>
 119                 <isset property="profile.available"/>
 120                 <istrue value="${do.archive}"/>
 121             </and>
 122         </condition>
 123         <condition property="have.tests">
 124             <or/>
 125         </condition>
 126         <condition property="have.sources">
 127             <or>
 128                 <available file="${src.dir}"/>
 129             </or>
 130         </condition>
 131         <condition property="netbeans.home+have.tests">
 132             <and>
 133                 <isset property="netbeans.home"/>
 134                 <isset property="have.tests"/>
 135             </and>
 136         </condition>
 137         <condition property="no.javadoc.preview">
 138             <and>
 139                 <isset property="javadoc.preview"/>
 140                 <isfalse value="${javadoc.preview}"/>
 141             </and>
 142         </condition>
 143         <property name="run.jvmargs" value=""/>
 144         <property name="run.jvmargs.ide" value=""/>
 145         <property name="javac.compilerargs" value=""/>
 146         <property name="work.dir" value="${basedir}"/>
 147         <condition property="no.deps">
 148             <and>
 149                 <istrue value="${no.dependencies}"/>
 150             </and>
 151         </condition>
 152         <property name="javac.debug" value="true"/>
 153         <property name="javadoc.preview" value="true"/>
 154         <property name="application.args" value=""/>
 155         <property name="source.encoding" value="${file.encoding}"/>
 156         <property name="runtime.encoding" value="${source.encoding}"/>
 157         <condition property="javadoc.encoding.used" value="${javadoc.encoding}">
 158             <and>
 159                 <isset property="javadoc.encoding"/>
 160                 <not>
 161                     <equals arg1="${javadoc.encoding}" arg2=""/>
 162                 </not>
 163             </and>
 164         </condition>
 165         <property name="javadoc.encoding.used" value="${source.encoding}"/>
 166         <property name="includes" value="**"/>
 167         <property name="excludes" value=""/>
 168         <property name="do.depend" value="false"/>
 169         <condition property="do.depend.true">
 170             <istrue value="${do.depend}"/>
 171         </condition>
 172         <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
 173         <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
 174             <and>
 175                 <isset property="endorsed.classpath"/>
 176                 <not>
 177                     <equals arg1="${endorsed.classpath}" arg2="" trim="true"/>
 178                 </not>
 179             </and>
 180         </condition>
 181         <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}">
 182             <isset property="profile.available"/>
 183         </condition>
 184         <condition else="false" property="jdkBug6558476">
 185             <and>
 186                 <matches pattern="1\.[56]" string="${java.specification.version}"/>
 187                 <not>
 188                     <os family="unix"/>
 189                 </not>
 190             </and>
 191         </condition>
 192         <property name="javac.fork" value="${jdkBug6558476}"/>
 193         <property name="jar.index" value="false"/>
 194         <property name="jar.index.metainf" value="${jar.index}"/>
 195         <property name="copylibs.rebase" value="true"/>
 196         <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
 197         <condition property="junit.available">
 198             <or>
 199                 <available classname="org.junit.Test" classpath="${run.test.classpath}"/>
 200                 <available classname="junit.framework.Test" classpath="${run.test.classpath}"/>
 201             </or>
 202         </condition>
 203         <condition property="testng.available">
 204             <available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/>
 205         </condition>
 206         <condition property="junit+testng.available">
 207             <and>
 208                 <istrue value="${junit.available}"/>
 209                 <istrue value="${testng.available}"/>
 210             </and>
 211         </condition>
 212         <condition else="testng" property="testng.mode" value="mixed">
 213             <istrue value="${junit+testng.available}"/>
 214         </condition>
 215         <condition else="" property="testng.debug.mode" value="-mixed">
 216             <istrue value="${junit+testng.available}"/>
 217         </condition>
 218     </target>
 219     <target name="-post-init">
 220         <!-- Empty placeholder for easier customization. -->
 221         <!-- You can override this target in the ../build.xml file. -->
 222     </target>
 223     <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
 224         <fail unless="src.dir">Must set src.dir</fail>
 225         <fail unless="build.dir">Must set build.dir</fail>
 226         <fail unless="dist.dir">Must set dist.dir</fail>
 227         <fail unless="build.classes.dir">Must set build.classes.dir</fail>
 228         <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
 229         <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
 230         <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
 231         <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
 232         <fail unless="dist.jar">Must set dist.jar</fail>
 233     </target>
 234     <target name="-init-macrodef-property">
 235         <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
 236             <attribute name="name"/>
 237             <attribute name="value"/>
 238             <sequential>
 239                 <property name="@{name}" value="${@{value}}"/>
 240             </sequential>
 241         </macrodef>
 242     </target>
 243     <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
 244         <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
 245             <attribute default="${src.dir}" name="srcdir"/>
 246             <attribute default="${build.classes.dir}" name="destdir"/>
 247             <attribute default="${javac.classpath}" name="classpath"/>
 248             <attribute default="${javac.processorpath}" name="processorpath"/>
 249             <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
 250             <attribute default="${includes}" name="includes"/>
 251             <attribute default="${excludes}" name="excludes"/>
 252             <attribute default="${javac.debug}" name="debug"/>
 253             <attribute default="${empty.dir}" name="sourcepath"/>
 254             <attribute default="${empty.dir}" name="gensrcdir"/>
 255             <element name="customize" optional="true"/>
 256             <sequential>
 257                 <property location="${build.dir}/empty" name="empty.dir"/>
 258                 <mkdir dir="${empty.dir}"/>
 259                 <mkdir dir="@{apgeneratedsrcdir}"/>
 260                 <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
 261                     <src>
 262                         <dirset dir="@{gensrcdir}" erroronmissingdir="false">
 263                             <include name="*"/>
 264                         </dirset>
 265                     </src>
 266                     <classpath>
 267                         <path path="@{classpath}"/>
 268                     </classpath>
 269                     <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
 270                     <compilerarg line="${javac.profile.cmd.line.arg}"/>
 271                     <compilerarg line="${javac.compilerargs}"/>
 272                     <compilerarg value="-processorpath"/>
 273                     <compilerarg path="@{processorpath}:${empty.dir}"/>
 274                     <compilerarg line="${ap.processors.internal}"/>
 275                     <compilerarg line="${annotation.processing.processor.options}"/>
 276                     <compilerarg value="-s"/>
 277                     <compilerarg path="@{apgeneratedsrcdir}"/>
 278                     <compilerarg line="${ap.proc.none.internal}"/>
 279                     <customize/>
 280                 </javac>
 281             </sequential>
 282         </macrodef>
 283     </target>
 284     <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
 285         <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
 286             <attribute default="${src.dir}" name="srcdir"/>
 287             <attribute default="${build.classes.dir}" name="destdir"/>
 288             <attribute default="${javac.classpath}" name="classpath"/>
 289             <attribute default="${javac.processorpath}" name="processorpath"/>
 290             <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
 291             <attribute default="${includes}" name="includes"/>
 292             <attribute default="${excludes}" name="excludes"/>
 293             <attribute default="${javac.debug}" name="debug"/>
 294             <attribute default="${empty.dir}" name="sourcepath"/>
 295             <attribute default="${empty.dir}" name="gensrcdir"/>
 296             <element name="customize" optional="true"/>
 297             <sequential>
 298                 <property location="${build.dir}/empty" name="empty.dir"/>
 299                 <mkdir dir="${empty.dir}"/>
 300                 <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
 301                     <src>
 302                         <dirset dir="@{gensrcdir}" erroronmissingdir="false">
 303                             <include name="*"/>
 304                         </dirset>
 305                     </src>
 306                     <classpath>
 307                         <path path="@{classpath}"/>
 308                     </classpath>
 309                     <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
 310                     <compilerarg line="${javac.profile.cmd.line.arg}"/>
 311                     <compilerarg line="${javac.compilerargs}"/>
 312                     <customize/>
 313                 </javac>
 314             </sequential>
 315         </macrodef>
 316     </target>
 317     <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
 318         <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
 319             <attribute default="${src.dir}" name="srcdir"/>
 320             <attribute default="${build.classes.dir}" name="destdir"/>
 321             <attribute default="${javac.classpath}" name="classpath"/>
 322             <sequential>
 323                 <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
 324                     <classpath>
 325                         <path path="@{classpath}"/>
 326                     </classpath>
 327                 </depend>
 328             </sequential>
 329         </macrodef>
 330         <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
 331             <attribute default="${build.classes.dir}" name="destdir"/>
 332             <sequential>
 333                 <fail unless="javac.includes">Must set javac.includes</fail>
 334                 <pathconvert pathsep="${line.separator}" property="javac.includes.binary">
 335                     <path>
 336                         <filelist dir="@{destdir}" files="${javac.includes}"/>
 337                     </path>
 338                     <globmapper from="*.java" to="*.class"/>
 339                 </pathconvert>
 340                 <tempfile deleteonexit="true" property="javac.includesfile.binary"/>
 341                 <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/>
 342                 <delete>
 343                     <files includesfile="${javac.includesfile.binary}"/>
 344                 </delete>
 345                 <delete>
 346                     <fileset file="${javac.includesfile.binary}"/>
 347                 </delete>
 348             </sequential>
 349         </macrodef>
 350     </target>
 351     <target if="${junit.available}" name="-init-macrodef-junit-init">
 352         <condition else="false" property="nb.junit.batch" value="true">
 353             <and>
 354                 <istrue value="${junit.available}"/>
 355                 <not>
 356                     <isset property="test.method"/>
 357                 </not>
 358             </and>
 359         </condition>
 360         <condition else="false" property="nb.junit.single" value="true">
 361             <and>
 362                 <istrue value="${junit.available}"/>
 363                 <isset property="test.method"/>
 364             </and>
 365         </condition>
 366     </target>
 367     <target name="-init-test-properties">
 368         <property name="test.binaryincludes" value="&lt;nothing&gt;"/>
 369         <property name="test.binarytestincludes" value=""/>
 370         <property name="test.binaryexcludes" value=""/>
 371     </target>
 372     <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
 373         <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
 374             <attribute default="${includes}" name="includes"/>
 375             <attribute default="${excludes}" name="excludes"/>
 376             <attribute default="**" name="testincludes"/>
 377             <attribute default="" name="testmethods"/>
 378             <element name="customize" optional="true"/>
 379             <sequential>
 380                 <property name="junit.forkmode" value="perTest"/>
 381                 <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
 382                     <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
 383                     <syspropertyset>
 384                         <propertyref prefix="test-sys-prop."/>
 385                         <mapper from="test-sys-prop.*" to="*" type="glob"/>
 386                     </syspropertyset>
 387                     <formatter type="brief" usefile="false"/>
 388                     <formatter type="xml"/>
 389                     <jvmarg value="-ea"/>
 390                     <customize/>
 391                 </junit>
 392             </sequential>
 393         </macrodef>
 394     </target>
 395     <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
 396         <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
 397             <attribute default="${includes}" name="includes"/>
 398             <attribute default="${excludes}" name="excludes"/>
 399             <attribute default="**" name="testincludes"/>
 400             <attribute default="" name="testmethods"/>
 401             <element name="customize" optional="true"/>
 402             <sequential>
 403                 <property name="junit.forkmode" value="perTest"/>
 404                 <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
 405                     <batchtest todir="${build.test.results.dir}">
 406                         <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
 407                             <filename name="${test.binarytestincludes}"/>
 408                         </fileset>
 409                     </batchtest>
 410                     <syspropertyset>
 411                         <propertyref prefix="test-sys-prop."/>
 412                         <mapper from="test-sys-prop.*" to="*" type="glob"/>
 413                     </syspropertyset>
 414                     <formatter type="brief" usefile="false"/>
 415                     <formatter type="xml"/>
 416                     <jvmarg value="-ea"/>
 417                     <customize/>
 418                 </junit>
 419             </sequential>
 420         </macrodef>
 421     </target>
 422     <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/>
 423     <target if="${testng.available}" name="-init-macrodef-testng">
 424         <macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3">
 425             <attribute default="${includes}" name="includes"/>
 426             <attribute default="${excludes}" name="excludes"/>
 427             <attribute default="**" name="testincludes"/>
 428             <attribute default="" name="testmethods"/>
 429             <element name="customize" optional="true"/>
 430             <sequential>
 431                 <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}">
 432                     <isset property="test.method"/>
 433                 </condition>
 434                 <union id="test.set"/>
 435                 <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
 436                 <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="HelloTest" testname="TestNG tests" workingDir="${work.dir}">
 437                     <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
 438                     <propertyset>
 439                         <propertyref prefix="test-sys-prop."/>
 440                         <mapper from="test-sys-prop.*" to="*" type="glob"/>
 441                     </propertyset>
 442                     <customize/>
 443                 </testng>
 444             </sequential>
 445         </macrodef>
 446     </target>
 447     <target name="-init-macrodef-test-impl">
 448         <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
 449             <attribute default="${includes}" name="includes"/>
 450             <attribute default="${excludes}" name="excludes"/>
 451             <attribute default="**" name="testincludes"/>
 452             <attribute default="" name="testmethods"/>
 453             <element implicit="true" name="customize" optional="true"/>
 454             <sequential>
 455                 <echo>No tests executed.</echo>
 456             </sequential>
 457         </macrodef>
 458     </target>
 459     <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl">
 460         <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
 461             <attribute default="${includes}" name="includes"/>
 462             <attribute default="${excludes}" name="excludes"/>
 463             <attribute default="**" name="testincludes"/>
 464             <attribute default="" name="testmethods"/>
 465             <element implicit="true" name="customize" optional="true"/>
 466             <sequential>
 467                 <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
 468                     <customize/>
 469                 </j2seproject3:junit>
 470             </sequential>
 471         </macrodef>
 472     </target>
 473     <target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl">
 474         <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
 475             <attribute default="${includes}" name="includes"/>
 476             <attribute default="${excludes}" name="excludes"/>
 477             <attribute default="**" name="testincludes"/>
 478             <attribute default="" name="testmethods"/>
 479             <element implicit="true" name="customize" optional="true"/>
 480             <sequential>
 481                 <j2seproject3:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
 482                     <customize/>
 483                 </j2seproject3:testng>
 484             </sequential>
 485         </macrodef>
 486     </target>
 487     <target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test">
 488         <macrodef name="test" uri="http://www.netbeans.org/ns/j2se-project/3">
 489             <attribute default="${includes}" name="includes"/>
 490             <attribute default="${excludes}" name="excludes"/>
 491             <attribute default="**" name="testincludes"/>
 492             <attribute default="" name="testmethods"/>
 493             <sequential>
 494                 <j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
 495                     <customize>
 496                         <classpath>
 497                             <path path="${run.test.classpath}"/>
 498                         </classpath>
 499                         <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
 500                         <jvmarg line="${run.jvmargs}"/>
 501                         <jvmarg line="${run.jvmargs.ide}"/>
 502                     </customize>
 503                 </j2seproject3:test-impl>
 504             </sequential>
 505         </macrodef>
 506     </target>
 507     <target if="${junit.available}" name="-init-macrodef-junit-debug" unless="${nb.junit.batch}">
 508         <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
 509             <attribute default="${includes}" name="includes"/>
 510             <attribute default="${excludes}" name="excludes"/>
 511             <attribute default="**" name="testincludes"/>
 512             <attribute default="" name="testmethods"/>
 513             <element name="customize" optional="true"/>
 514             <sequential>
 515                 <property name="junit.forkmode" value="perTest"/>
 516                 <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
 517                     <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
 518                     <syspropertyset>
 519                         <propertyref prefix="test-sys-prop."/>
 520                         <mapper from="test-sys-prop.*" to="*" type="glob"/>
 521                     </syspropertyset>
 522                     <formatter type="brief" usefile="false"/>
 523                     <formatter type="xml"/>
 524                     <jvmarg value="-ea"/>
 525                     <jvmarg line="${debug-args-line}"/>
 526                     <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
 527                     <customize/>
 528                 </junit>
 529             </sequential>
 530         </macrodef>
 531     </target>
 532     <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
 533         <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
 534             <attribute default="${includes}" name="includes"/>
 535             <attribute default="${excludes}" name="excludes"/>
 536             <attribute default="**" name="testincludes"/>
 537             <attribute default="" name="testmethods"/>
 538             <element name="customize" optional="true"/>
 539             <sequential>
 540                 <property name="junit.forkmode" value="perTest"/>
 541                 <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
 542                     <batchtest todir="${build.test.results.dir}">
 543                         <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
 544                             <filename name="${test.binarytestincludes}"/>
 545                         </fileset>
 546                     </batchtest>
 547                     <syspropertyset>
 548                         <propertyref prefix="test-sys-prop."/>
 549                         <mapper from="test-sys-prop.*" to="*" type="glob"/>
 550                     </syspropertyset>
 551                     <formatter type="brief" usefile="false"/>
 552                     <formatter type="xml"/>
 553                     <jvmarg value="-ea"/>
 554                     <jvmarg line="${debug-args-line}"/>
 555                     <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
 556                     <customize/>
 557                 </junit>
 558             </sequential>
 559         </macrodef>
 560     </target>
 561     <target depends="-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch" if="${junit.available}" name="-init-macrodef-junit-debug-impl">
 562         <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
 563             <attribute default="${includes}" name="includes"/>
 564             <attribute default="${excludes}" name="excludes"/>
 565             <attribute default="**" name="testincludes"/>
 566             <attribute default="" name="testmethods"/>
 567             <element implicit="true" name="customize" optional="true"/>
 568             <sequential>
 569                 <j2seproject3:junit-debug excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
 570                     <customize/>
 571                 </j2seproject3:junit-debug>
 572             </sequential>
 573         </macrodef>
 574     </target>
 575     <target if="${testng.available}" name="-init-macrodef-testng-debug">
 576         <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
 577             <attribute default="${main.class}" name="testClass"/>
 578             <attribute default="" name="testMethod"/>
 579             <element name="customize2" optional="true"/>
 580             <sequential>
 581                 <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}">
 582                     <isset property="test.method"/>
 583                 </condition>
 584                 <condition else="-suitename HelloTest -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}">
 585                     <matches pattern=".*\.xml" string="@{testClass}"/>
 586                 </condition>
 587                 <delete dir="${build.test.results.dir}" quiet="true"/>
 588                 <mkdir dir="${build.test.results.dir}"/>
 589                 <j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}">
 590                     <customize>
 591                         <customize2/>
 592                         <jvmarg value="-ea"/>
 593                         <arg line="${testng.debug.mode}"/>
 594                         <arg line="-d ${build.test.results.dir}"/>
 595                         <arg line="-listener org.testng.reporters.VerboseReporter"/>
 596                         <arg line="${testng.cmd.args}"/>
 597                     </customize>
 598                 </j2seproject3:debug>
 599             </sequential>
 600         </macrodef>
 601     </target>
 602     <target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl">
 603         <macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
 604             <attribute default="${main.class}" name="testClass"/>
 605             <attribute default="" name="testMethod"/>
 606             <element implicit="true" name="customize2" optional="true"/>
 607             <sequential>
 608                 <j2seproject3:testng-debug testClass="@{testClass}" testMethod="@{testMethod}">
 609                     <customize2/>
 610                 </j2seproject3:testng-debug>
 611             </sequential>
 612         </macrodef>
 613     </target>
 614     <target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit">
 615         <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
 616             <attribute default="${includes}" name="includes"/>
 617             <attribute default="${excludes}" name="excludes"/>
 618             <attribute default="**" name="testincludes"/>
 619             <attribute default="" name="testmethods"/>
 620             <attribute default="${main.class}" name="testClass"/>
 621             <attribute default="" name="testMethod"/>
 622             <sequential>
 623                 <j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
 624                     <customize>
 625                         <classpath>
 626                             <path path="${run.test.classpath}"/>
 627                         </classpath>
 628                         <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
 629                         <jvmarg line="${run.jvmargs}"/>
 630                         <jvmarg line="${run.jvmargs.ide}"/>
 631                     </customize>
 632                 </j2seproject3:test-debug-impl>
 633             </sequential>
 634         </macrodef>
 635     </target>
 636     <target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng">
 637         <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
 638             <attribute default="${includes}" name="includes"/>
 639             <attribute default="${excludes}" name="excludes"/>
 640             <attribute default="**" name="testincludes"/>
 641             <attribute default="" name="testmethods"/>
 642             <attribute default="${main.class}" name="testClass"/>
 643             <attribute default="" name="testMethod"/>
 644             <sequential>
 645                 <j2seproject3:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}">
 646                     <customize2>
 647                         <syspropertyset>
 648                             <propertyref prefix="test-sys-prop."/>
 649                             <mapper from="test-sys-prop.*" to="*" type="glob"/>
 650                         </syspropertyset>
 651                     </customize2>
 652                 </j2seproject3:testng-debug-impl>
 653             </sequential>
 654         </macrodef>
 655     </target>
 656     <target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/>
 657     <!--
 658                 pre NB7.2 profiling section; consider it deprecated
 659             -->
 660     <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/>
 661     <target if="profiler.info.jvmargs.agent" name="-profile-pre-init">
 662         <!-- Empty placeholder for easier customization. -->
 663         <!-- You can override this target in the ../build.xml file. -->
 664     </target>
 665     <target if="profiler.info.jvmargs.agent" name="-profile-post-init">
 666         <!-- Empty placeholder for easier customization. -->
 667         <!-- You can override this target in the ../build.xml file. -->
 668     </target>
 669     <target if="profiler.info.jvmargs.agent" name="-profile-init-macrodef-profile">
 670         <macrodef name="resolve">
 671             <attribute name="name"/>
 672             <attribute name="value"/>
 673             <sequential>
 674                 <property name="@{name}" value="${env.@{value}}"/>
 675             </sequential>
 676         </macrodef>
 677         <macrodef name="profile">
 678             <attribute default="${main.class}" name="classname"/>
 679             <element name="customize" optional="true"/>
 680             <sequential>
 681                 <property environment="env"/>
 682                 <resolve name="profiler.current.path" value="${profiler.info.pathvar}"/>
 683                 <java classname="@{classname}" dir="${profiler.info.dir}" fork="true" jvm="${profiler.info.jvm}">
 684                     <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
 685                     <jvmarg value="${profiler.info.jvmargs.agent}"/>
 686                     <jvmarg line="${profiler.info.jvmargs}"/>
 687                     <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
 688                     <arg line="${application.args}"/>
 689                     <classpath>
 690                         <path path="${run.classpath}"/>
 691                     </classpath>
 692                     <syspropertyset>
 693                         <propertyref prefix="run-sys-prop."/>
 694                         <mapper from="run-sys-prop.*" to="*" type="glob"/>
 695                     </syspropertyset>
 696                     <customize/>
 697                 </java>
 698             </sequential>
 699         </macrodef>
 700     </target>
 701     <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" if="profiler.info.jvmargs.agent" name="-profile-init-check">
 702         <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail>
 703         <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>
 704     </target>
 705     <!--
 706                 end of pre NB7.2 profiling section
 707             -->
 708     <target depends="-init-debug-args" name="-init-macrodef-nbjpda">
 709         <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
 710             <attribute default="${main.class}" name="name"/>
 711             <attribute default="${debug.classpath}" name="classpath"/>
 712             <attribute default="" name="stopclassname"/>
 713             <sequential>
 714                 <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
 715                     <classpath>
 716                         <path path="@{classpath}"/>
 717                     </classpath>
 718                 </nbjpdastart>
 719             </sequential>
 720         </macrodef>
 721         <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
 722             <attribute default="${build.classes.dir}" name="dir"/>
 723             <sequential>
 724                 <nbjpdareload>
 725                     <fileset dir="@{dir}" includes="${fix.classes}">
 726                         <include name="${fix.includes}*.class"/>
 727                     </fileset>
 728                 </nbjpdareload>
 729             </sequential>
 730         </macrodef>
 731     </target>
 732     <target name="-init-debug-args">
 733         <property name="version-output" value="java version &quot;${ant.java.version}"/>
 734         <condition property="have-jdk-older-than-1.4">
 735             <or>
 736                 <contains string="${version-output}" substring="java version &quot;1.0"/>
 737                 <contains string="${version-output}" substring="java version &quot;1.1"/>
 738                 <contains string="${version-output}" substring="java version &quot;1.2"/>
 739                 <contains string="${version-output}" substring="java version &quot;1.3"/>
 740             </or>
 741         </condition>
 742         <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
 743             <istrue value="${have-jdk-older-than-1.4}"/>
 744         </condition>
 745         <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
 746             <os family="windows"/>
 747         </condition>
 748         <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
 749             <isset property="debug.transport"/>
 750         </condition>
 751     </target>
 752     <target depends="-init-debug-args" name="-init-macrodef-debug">
 753         <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
 754             <attribute default="${main.class}" name="classname"/>
 755             <attribute default="${debug.classpath}" name="classpath"/>
 756             <element name="customize" optional="true"/>
 757             <sequential>
 758                 <java classname="@{classname}" dir="${work.dir}" fork="true">
 759                     <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
 760                     <jvmarg line="${debug-args-line}"/>
 761                     <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
 762                     <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
 763                     <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
 764                     <jvmarg line="${run.jvmargs}"/>
 765                     <jvmarg line="${run.jvmargs.ide}"/>
 766                     <classpath>
 767                         <path path="@{classpath}"/>
 768                     </classpath>
 769                     <syspropertyset>
 770                         <propertyref prefix="run-sys-prop."/>
 771                         <mapper from="run-sys-prop.*" to="*" type="glob"/>
 772                     </syspropertyset>
 773                     <customize/>
 774                 </java>
 775             </sequential>
 776         </macrodef>
 777     </target>
 778     <target name="-init-macrodef-java">
 779         <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
 780             <attribute default="${main.class}" name="classname"/>
 781             <attribute default="${run.classpath}" name="classpath"/>
 782             <attribute default="jvm" name="jvm"/>
 783             <element name="customize" optional="true"/>
 784             <sequential>
 785                 <java classname="@{classname}" dir="${work.dir}" fork="true">
 786                     <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
 787                     <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
 788                     <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
 789                     <jvmarg line="${run.jvmargs}"/>
 790                     <jvmarg line="${run.jvmargs.ide}"/>
 791                     <classpath>
 792                         <path path="@{classpath}"/>
 793                     </classpath>
 794                     <syspropertyset>
 795                         <propertyref prefix="run-sys-prop."/>
 796                         <mapper from="run-sys-prop.*" to="*" type="glob"/>
 797                     </syspropertyset>
 798                     <customize/>
 799                 </java>
 800             </sequential>
 801         </macrodef>
 802     </target>
 803     <target name="-init-macrodef-copylibs">
 804         <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3">
 805             <attribute default="${manifest.file}" name="manifest"/>
 806             <element name="customize" optional="true"/>
 807             <sequential>
 808                 <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
 809                 <pathconvert property="run.classpath.without.build.classes.dir">
 810                     <path path="${run.classpath}"/>
 811                     <map from="${build.classes.dir.resolved}" to=""/>
 812                 </pathconvert>
 813                 <pathconvert pathsep=" " property="jar.classpath">
 814                     <path path="${run.classpath.without.build.classes.dir}"/>
 815                     <chainedmapper>
 816                         <flattenmapper/>
 817                         <filtermapper>
 818                             <replacestring from=" " to="%20"/>
 819                         </filtermapper>
 820                         <globmapper from="*" to="lib/*"/>
 821                     </chainedmapper>
 822                 </pathconvert>
 823                 <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
 824                 <copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
 825                     <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
 826                     <manifest>
 827                         <attribute name="Class-Path" value="${jar.classpath}"/>
 828                         <customize/>
 829                     </manifest>
 830                 </copylibs>
 831             </sequential>
 832         </macrodef>
 833     </target>
 834     <target name="-init-presetdef-jar">
 835         <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
 836             <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
 837                 <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
 838             </jar>
 839         </presetdef>
 840     </target>
 841     <target name="-init-ap-cmdline-properties">
 842         <property name="annotation.processing.enabled" value="true"/>
 843         <property name="annotation.processing.processors.list" value=""/>
 844         <property name="annotation.processing.processor.options" value=""/>
 845         <property name="annotation.processing.run.all.processors" value="true"/>
 846         <property name="javac.processorpath" value="${javac.classpath}"/>
 847         <property name="javac.test.processorpath" value="${javac.test.classpath}"/>
 848         <condition property="ap.supported.internal" value="true">
 849             <not>
 850                 <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
 851             </not>
 852         </condition>
 853     </target>
 854     <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
 855         <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
 856             <isfalse value="${annotation.processing.run.all.processors}"/>
 857         </condition>
 858         <condition else="" property="ap.proc.none.internal" value="-proc:none">
 859             <isfalse value="${annotation.processing.enabled}"/>
 860         </condition>
 861     </target>
 862     <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
 863         <property name="ap.cmd.line.internal" value=""/>
 864     </target>
 865     <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
 866     <!--
 867                 ===================
 868                 COMPILATION SECTION
 869                 ===================
 870             -->
 871     <target name="-deps-jar-init" unless="built-jar.properties">
 872         <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/>
 873         <delete file="${built-jar.properties}" quiet="true"/>
 874     </target>
 875     <target if="already.built.jar.${basedir}" name="-warn-already-built-jar">
 876         <echo level="warn" message="Cycle detected: HelloTest was already built"/>
 877     </target>
 878     <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps">
 879         <mkdir dir="${build.dir}"/>
 880         <touch file="${built-jar.properties}" verbose="false"/>
 881         <property file="${built-jar.properties}" prefix="already.built.jar."/>
 882         <antcall target="-warn-already-built-jar"/>
 883         <propertyfile file="${built-jar.properties}">
 884             <entry key="${basedir}" value=""/>
 885         </propertyfile>
 886     </target>
 887     <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
 888     <target depends="init" name="-check-automatic-build">
 889         <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
 890     </target>
 891     <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
 892         <antcall target="clean"/>
 893     </target>
 894     <target depends="init,deps-jar" name="-pre-pre-compile">
 895         <mkdir dir="${build.classes.dir}"/>
 896     </target>
 897     <target name="-pre-compile">
 898         <!-- Empty placeholder for easier customization. -->
 899         <!-- You can override this target in the ../build.xml file. -->
 900     </target>
 901     <target if="do.depend.true" name="-compile-depend">
 902         <pathconvert property="build.generated.subdirs">
 903             <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
 904                 <include name="*"/>
 905             </dirset>
 906         </pathconvert>
 907         <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
 908     </target>
 909     <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile">
 910         <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
 911         <copy todir="${build.classes.dir}">
 912             <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
 913         </copy>
 914     </target>
 915     <target if="has.persistence.xml" name="-copy-persistence-xml">
 916         <mkdir dir="${build.classes.dir}/META-INF"/>
 917         <copy todir="${build.classes.dir}/META-INF">
 918             <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/>
 919         </copy>
 920     </target>
 921     <target name="-post-compile">
 922         <!-- Empty placeholder for easier customization. -->
 923         <!-- You can override this target in the ../build.xml file. -->
 924     </target>
 925     <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
 926     <target name="-pre-compile-single">
 927         <!-- Empty placeholder for easier customization. -->
 928         <!-- You can override this target in the ../build.xml file. -->
 929     </target>
 930     <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
 931         <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
 932         <j2seproject3:force-recompile/>
 933         <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/>
 934     </target>
 935     <target name="-post-compile-single">
 936         <!-- Empty placeholder for easier customization. -->
 937         <!-- You can override this target in the ../build.xml file. -->
 938     </target>
 939     <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
 940     <!--
 941                 ====================
 942                 JAR BUILDING SECTION
 943                 ====================
 944             -->
 945     <target depends="init" name="-pre-pre-jar">
 946         <dirname file="${dist.jar}" property="dist.jar.dir"/>
 947         <mkdir dir="${dist.jar.dir}"/>
 948     </target>
 949     <target name="-pre-jar">
 950         <!-- Empty placeholder for easier customization. -->
 951         <!-- You can override this target in the ../build.xml file. -->
 952     </target>
 953     <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available">
 954         <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
 955         <touch file="${tmp.manifest.file}" verbose="false"/>
 956     </target>
 957     <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest">
 958         <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
 959         <copy file="${manifest.file}" tofile="${tmp.manifest.file}"/>
 960     </target>
 961     <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass">
 962         <manifest file="${tmp.manifest.file}" mode="update">
 963             <attribute name="Main-Class" value="${main.class}"/>
 964         </manifest>
 965     </target>
 966     <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile">
 967         <manifest file="${tmp.manifest.file}" mode="update">
 968             <attribute name="Profile" value="${javac.profile}"/>
 969         </manifest>
 970     </target>
 971     <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen">
 972         <basename file="${application.splash}" property="splashscreen.basename"/>
 973         <mkdir dir="${build.classes.dir}/META-INF"/>
 974         <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
 975         <manifest file="${tmp.manifest.file}" mode="update">
 976             <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
 977         </manifest>
 978     </target>
 979     <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.mkdist" name="-do-jar-copylibs">
 980         <j2seproject3:copylibs manifest="${tmp.manifest.file}"/>
 981         <echo level="info">To run this application from the command line without Ant, try:</echo>
 982         <property location="${dist.jar}" name="dist.jar.resolved"/>
 983         <echo level="info">java -jar "${dist.jar.resolved}"</echo>
 984     </target>
 985     <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.archive" name="-do-jar-jar" unless="do.mkdist">
 986         <j2seproject1:jar manifest="${tmp.manifest.file}"/>
 987         <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
 988         <property location="${dist.jar}" name="dist.jar.resolved"/>
 989         <pathconvert property="run.classpath.with.dist.jar">
 990             <path path="${run.classpath}"/>
 991             <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
 992         </pathconvert>
 993         <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java} -cp ${run.classpath.with.dist.jar} ${main.class}">
 994             <isset property="main.class.available"/>
 995         </condition>
 996         <condition else="debug" property="jar.usage.level" value="info">
 997             <isset property="main.class.available"/>
 998         </condition>
 999         <echo level="${jar.usage.level}" message="${jar.usage.message}"/>
1000     </target>
1001     <target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest">
1002         <delete>
1003             <fileset file="${tmp.manifest.file}"/>
1004         </delete>
1005     </target>
1006     <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest" name="-do-jar-without-libraries"/>
1007     <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest" name="-do-jar-with-libraries"/>
1008     <target name="-post-jar">
1009         <!-- Empty placeholder for easier customization. -->
1010         <!-- You can override this target in the ../build.xml file. -->
1011     </target>
1012     <target depends="init,compile,-pre-jar,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/>
1013     <target depends="init,compile,-pre-jar,-do-jar,-post-jar" description="Build JAR." name="jar"/>
1014     <!--
1015                 =================
1016                 EXECUTION SECTION
1017                 =================
1018             -->
1019     <target depends="init,compile" description="Run a main class." name="run">
1020         <j2seproject1:java>
1021             <customize>
1022                 <arg line="${application.args}"/>
1023             </customize>
1024         </j2seproject1:java>
1025     </target>
1026     <target name="-do-not-recompile">
1027         <property name="javac.includes.binary" value=""/>
1028     </target>
1029     <target depends="init,compile-single" name="run-single">
1030         <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
1031         <j2seproject1:java classname="${run.class}"/>
1032     </target>
1033     <target depends="init,compile-test-single" name="run-test-with-main">
1034         <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
1035         <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
1036     </target>
1037     <!--
1038                 =================
1039                 DEBUGGING SECTION
1040                 =================
1041             -->
1042     <target depends="init" if="netbeans.home" name="-debug-start-debugger">
1043         <j2seproject1:nbjpdastart name="${debug.class}"/>
1044     </target>
1045     <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
1046         <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
1047     </target>
1048     <target depends="init,compile" name="-debug-start-debuggee">
1049         <j2seproject3:debug>
1050             <customize>
1051                 <arg line="${application.args}"/>
1052             </customize>
1053         </j2seproject3:debug>
1054     </target>
1055     <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
1056     <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
1057         <j2seproject1:nbjpdastart stopclassname="${main.class}"/>
1058     </target>
1059     <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
1060     <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
1061         <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
1062         <j2seproject3:debug classname="${debug.class}"/>
1063     </target>
1064     <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
1065     <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
1066         <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
1067         <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
1068     </target>
1069     <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
1070     <target depends="init" name="-pre-debug-fix">
1071         <fail unless="fix.includes">Must set fix.includes</fail>
1072         <property name="javac.includes" value="${fix.includes}.java"/>
1073     </target>
1074     <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
1075         <j2seproject1:nbjpdareload/>
1076     </target>
1077     <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
1078     <!--
1079                 =================
1080                 PROFILING SECTION
1081                 =================
1082             -->
1083     <!--
1084                 pre NB7.2 profiler integration
1085             -->
1086     <target depends="profile-init,compile" description="Profile a project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72">
1087         <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
1088         <nbprofiledirect>
1089             <classpath>
1090                 <path path="${run.classpath}"/>
1091             </classpath>
1092         </nbprofiledirect>
1093         <profile/>
1094     </target>
1095     <target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="profiler.info.jvmargs.agent" name="-profile-single-pre72">
1096         <fail unless="profile.class">Must select one file in the IDE or set profile.class</fail>
1097         <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
1098         <nbprofiledirect>
1099             <classpath>
1100                 <path path="${run.classpath}"/>
1101             </classpath>
1102         </nbprofiledirect>
1103         <profile classname="${profile.class}"/>
1104     </target>
1105     <target depends="profile-init,compile-single" if="profiler.info.jvmargs.agent" name="-profile-applet-pre72">
1106         <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
1107         <nbprofiledirect>
1108             <classpath>
1109                 <path path="${run.classpath}"/>
1110             </classpath>
1111         </nbprofiledirect>
1112         <profile classname="sun.applet.AppletViewer">
1113             <customize>
1114                 <arg value="${applet.url}"/>
1115             </customize>
1116         </profile>
1117     </target>
1118     <target depends="profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72">
1119         <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
1120         <nbprofiledirect>
1121             <classpath>
1122                 <path path="${run.test.classpath}"/>
1123             </classpath>
1124         </nbprofiledirect>
1125         <junit dir="${profiler.info.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${profiler.info.jvm}" showoutput="true">
1126             <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
1127             <jvmarg value="${profiler.info.jvmargs.agent}"/>
1128             <jvmarg line="${profiler.info.jvmargs}"/>
1129             <test name="${profile.class}"/>
1130             <classpath>
1131                 <path path="${run.test.classpath}"/>
1132             </classpath>
1133             <syspropertyset>
1134                 <propertyref prefix="test-sys-prop."/>
1135                 <mapper from="test-sys-prop.*" to="*" type="glob"/>
1136             </syspropertyset>
1137             <formatter type="brief" usefile="false"/>
1138             <formatter type="xml"/>
1139         </junit>
1140     </target>
1141     <!--
1142                 end of pre NB72 profiling section
1143             -->
1144     <target if="netbeans.home" name="-profile-check">
1145         <condition property="profiler.configured">
1146             <or>
1147                 <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/>
1148                 <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/>
1149             </or>
1150         </condition>
1151     </target>
1152     <target depends="-profile-check,-profile-pre72" description="Profile a project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent">
1153         <startprofiler/>
1154         <antcall target="run"/>
1155     </target>
1156     <target depends="-profile-check,-profile-single-pre72" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-single" unless="profiler.info.jvmargs.agent">
1157         <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
1158         <startprofiler/>
1159         <antcall target="run-single"/>
1160     </target>
1161     <target depends="-profile-test-single-pre72" description="Profile a selected test in the IDE." name="profile-test-single"/>
1162     <target depends="-profile-check" description="Profile a selected test in the IDE." if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs">
1163         <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
1164         <startprofiler/>
1165         <antcall target="test-single"/>
1166     </target>
1167     <target depends="-profile-check" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-test-with-main">
1168         <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
1169         <startprofiler/>
1170         <antcal target="run-test-with-main"/>
1171     </target>
1172     <target depends="-profile-check,-profile-applet-pre72" if="profiler.configured" name="profile-applet" unless="profiler.info.jvmargs.agent">
1173         <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
1174         <startprofiler/>
1175         <antcall target="run-applet"/>
1176     </target>
1177     <!--
1178                 ===============
1179                 JAVADOC SECTION
1180                 ===============
1181             -->
1182     <target depends="init" if="have.sources" name="-javadoc-build">
1183         <mkdir dir="${dist.javadoc.dir}"/>
1184         <condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}">
1185             <and>
1186                 <isset property="endorsed.classpath.cmd.line.arg"/>
1187                 <not>
1188                     <equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/>
1189                 </not>
1190             </and>
1191         </condition>
1192         <condition else="" property="bug5101868workaround" value="*.java">
1193             <matches pattern="1\.[56](\..*)?" string="${java.version}"/>
1194         </condition>
1195         <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
1196             <classpath>
1197                 <path path="${javac.classpath}"/>
1198             </classpath>
1199             <fileset dir="${src.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
1200                 <filename name="**/*.java"/>
1201             </fileset>
1202             <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
1203                 <include name="**/*.java"/>
1204                 <exclude name="*.java"/>
1205             </fileset>
1206             <arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/>
1207         </javadoc>
1208         <copy todir="${dist.javadoc.dir}">
1209             <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
1210                 <filename name="**/doc-files/**"/>
1211             </fileset>
1212             <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
1213                 <include name="**/doc-files/**"/>
1214             </fileset>
1215         </copy>
1216     </target>
1217     <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
1218         <nbbrowse file="${dist.javadoc.dir}/index.html"/>
1219     </target>
1220     <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
1221     <!--
1222                 =========================
1223                 TEST COMPILATION SECTION
1224                 =========================
1225             -->
1226     <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
1227         <mkdir dir="${build.test.classes.dir}"/>
1228     </target>
1229     <target name="-pre-compile-test">
1230         <!-- Empty placeholder for easier customization. -->
1231         <!-- You can override this target in the ../build.xml file. -->
1232     </target>
1233     <target if="do.depend.true" name="-compile-test-depend">
1234         <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir=""/>
1235     </target>
1236     <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
1237         <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir=""/>
1238         <copy todir="${build.test.classes.dir}"/>
1239     </target>
1240     <target name="-post-compile-test">
1241         <!-- Empty placeholder for easier customization. -->
1242         <!-- You can override this target in the ../build.xml file. -->
1243     </target>
1244     <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
1245     <target name="-pre-compile-test-single">
1246         <!-- Empty placeholder for easier customization. -->
1247         <!-- You can override this target in the ../build.xml file. -->
1248     </target>
1249     <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
1250         <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
1251         <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
1252         <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="" srcdir=""/>
1253         <copy todir="${build.test.classes.dir}"/>
1254     </target>
1255     <target name="-post-compile-test-single">
1256         <!-- Empty placeholder for easier customization. -->
1257         <!-- You can override this target in the ../build.xml file. -->
1258     </target>
1259     <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
1260     <!--
1261                 =======================
1262                 TEST EXECUTION SECTION
1263                 =======================
1264             -->
1265     <target depends="init" if="have.tests" name="-pre-test-run">
1266         <mkdir dir="${build.test.results.dir}"/>
1267     </target>
1268     <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
1269         <j2seproject3:test includes="${includes}" testincludes="**/*Test.java"/>
1270     </target>
1271     <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
1272         <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
1273     </target>
1274     <target depends="init" if="have.tests" name="test-report"/>
1275     <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
1276     <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
1277     <target depends="init" if="have.tests" name="-pre-test-run-single">
1278         <mkdir dir="${build.test.results.dir}"/>
1279     </target>
1280     <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
1281         <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
1282         <j2seproject3:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/>
1283     </target>
1284     <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
1285         <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
1286     </target>
1287     <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
1288     <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method">
1289         <fail unless="test.class">Must select some files in the IDE or set test.class</fail>
1290         <fail unless="test.method">Must select some method in the IDE or set test.method</fail>
1291         <j2seproject3:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/>
1292     </target>
1293     <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method">
1294         <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
1295     </target>
1296     <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/>
1297     <!--
1298                 =======================
1299                 TEST DEBUGGING SECTION
1300                 =======================
1301             -->
1302     <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test">
1303         <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
1304         <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/>
1305     </target>
1306     <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method">
1307         <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
1308         <fail unless="test.method">Must select some method in the IDE or set test.method</fail>
1309         <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/>
1310     </target>
1311     <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
1312         <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
1313     </target>
1314     <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
1315     <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/>
1316     <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
1317         <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
1318     </target>
1319     <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
1320     <!--
1321                 =========================
1322                 APPLET EXECUTION SECTION
1323                 =========================
1324             -->
1325     <target depends="init,compile-single" name="run-applet">
1326         <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
1327         <j2seproject1:java classname="sun.applet.AppletViewer">
1328             <customize>
1329                 <arg value="${applet.url}"/>
1330             </customize>
1331         </j2seproject1:java>
1332     </target>
1333     <!--
1334                 =========================
1335                 APPLET DEBUGGING  SECTION
1336                 =========================
1337             -->
1338     <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
1339         <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
1340         <j2seproject3:debug classname="sun.applet.AppletViewer">
1341             <customize>
1342                 <arg value="${applet.url}"/>
1343             </customize>
1344         </j2seproject3:debug>
1345     </target>
1346     <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
1347     <!--
1348                 ===============
1349                 CLEANUP SECTION
1350                 ===============
1351             -->
1352     <target name="-deps-clean-init" unless="built-clean.properties">
1353         <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/>
1354         <delete file="${built-clean.properties}" quiet="true"/>
1355     </target>
1356     <target if="already.built.clean.${basedir}" name="-warn-already-built-clean">
1357         <echo level="warn" message="Cycle detected: HelloTest was already built"/>
1358     </target>
1359     <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps">
1360         <mkdir dir="${build.dir}"/>
1361         <touch file="${built-clean.properties}" verbose="false"/>
1362         <property file="${built-clean.properties}" prefix="already.built.clean."/>
1363         <antcall target="-warn-already-built-clean"/>
1364         <propertyfile file="${built-clean.properties}">
1365             <entry key="${basedir}" value=""/>
1366         </propertyfile>
1367     </target>
1368     <target depends="init" name="-do-clean">
1369         <delete dir="${build.dir}"/>
1370         <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/>
1371     </target>
1372     <target name="-post-clean">
1373         <!-- Empty placeholder for easier customization. -->
1374         <!-- You can override this target in the ../build.xml file. -->
1375     </target>
1376     <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
1377     <target name="-check-call-dep">
1378         <property file="${call.built.properties}" prefix="already.built."/>
1379         <condition property="should.call.dep">
1380             <and>
1381                 <not>
1382                     <isset property="already.built.${call.subproject}"/>
1383                 </not>
1384                 <available file="${call.script}"/>
1385             </and>
1386         </condition>
1387     </target>
1388     <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
1389         <ant antfile="${call.script}" inheritall="false" target="${call.target}">
1390             <propertyset>
1391                 <propertyref prefix="transfer."/>
1392                 <mapper from="transfer.*" to="*" type="glob"/>
1393             </propertyset>
1394         </ant>
1395     </target>
1396 </project>