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