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