<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Distribution License v. 1.0, which is available at
    http://www.eclipse.org/org/documents/edl-v10.php.

    SPDX-License-Identifier: BSD-3-Clause

-->

<!--
        *** GENERATED FROM project.xml - DO NOT EDIT  ***
        ***         EDIT ../build.xml INSTEAD         ***

        For the purpose of easier reading the script
        is divided into following sections:
        - initialization
        - compilation
        - dist
        - execution
        - debugging
        - javadoc
        - junit compilation
        - junit execution
        - junit debugging
        - cleanup

        -->
<project name="sts-impl" default="build" basedir=".." xmlns:webproject3="http://www.netbeans.org/ns/web-project/3" xmlns:webproject2="http://www.netbeans.org/ns/web-project/2" xmlns:jaxws="http://www.netbeans.org/ns/jax-ws/1" xmlns:webproject1="http://www.netbeans.org/ns/web-project/1">
    <import file="ant-deploy.xml"/>
    <target name="default" depends="dist,javadoc" description="Build whole project."/>
    <!--
                INITIALIZATION SECTION
            -->
    <target name="-pre-init">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-init-private" depends="-pre-init">
        <property file="nbproject/private/private.properties"/>
    </target>
    <target name="-init-user" depends="-pre-init,-init-private">
        <property file="${user.properties.file}"/>
        <!-- The two properties below are usually overridden -->
        <!-- by the active platform. Just a fallback. -->
        <property name="default.javac.source" value="1.4"/>
        <property name="default.javac.target" value="1.4"/>
    </target>
    <target name="-init-project" depends="-pre-init,-init-private,-init-user">
        <property file="nbproject/project.properties"/>
    </target>
    <target name="-do-ear-init" depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" if="dist.ear.dir">
        <property value="${build.ear.web.dir}/META-INF" name="build.meta.inf.dir"/>
        <property name="build.classes.dir.real" value="${build.ear.classes.dir}"/>
        <property name="build.web.dir.real" value="${build.ear.web.dir}"/>
    </target>
    <target name="-do-init" depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property, -do-ear-init">
        <condition property="have.tests">
            <or>
                <available file="${test.src.dir}"/>
            </or>
        </condition>
        <condition property="have.sources">
            <or>
                <available file="${src.dir}"/>
            </or>
        </condition>
        <condition property="netbeans.home+have.tests">
            <and>
                <isset property="netbeans.home"/>
                <isset property="have.tests"/>
            </and>
        </condition>
        <condition property="no.javadoc.preview">
            <isfalse value="${javadoc.preview}"/>
        </condition>
        <property name="javac.compilerargs" value=""/>
        <condition property="no.deps">
            <and>
                <istrue value="${no.dependencies}"/>
            </and>
        </condition>
        <condition property="no.dist.ear.dir">
            <not>
                <isset property="dist.ear.dir"/>
            </not>
        </condition>
        <property name="build.web.excludes" value="${build.classes.excludes}"/>
        <condition property="do.compile.jsps">
            <istrue value="${compile.jsps}"/>
        </condition>
        <condition property="do.display.browser">
            <istrue value="${display.browser}"/>
        </condition>
        <available file="${conf.dir}/MANIFEST.MF" property="has.custom.manifest"/>
        <available file="${conf.dir}/persistence.xml" property="has.persistence.xml"/>
        <condition property="do.war.package.with.custom.manifest">
            <and>
                <istrue value="${war.package}"/>
                <isset property="has.custom.manifest"/>
            </and>
        </condition>
        <condition property="do.war.package.without.custom.manifest">
            <and>
                <istrue value="${war.package}"/>
                <not>
                    <isset property="has.custom.manifest"/>
                </not>
            </and>
        </condition>
        <property value="${build.web.dir}/META-INF" name="build.meta.inf.dir"/>
        <property name="build.classes.dir.real" value="${build.classes.dir}"/>
        <property name="build.web.dir.real" value="${build.web.dir}"/>
        <condition property="application.args.param" value="${application.args}" else="">
            <and>
                <isset property="application.args"/>
                <not>
                    <equals arg1="${application.args}" arg2="" trim="true"/>
                </not>
            </and>
        </condition>
    </target>
    <target name="-post-init">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-init-check" depends="-pre-init,-init-private,-init-user,-init-project,-do-init">
        <fail unless="src.dir">Must set src.dir</fail>
        <fail unless="test.src.dir">Must set test.src.dir</fail>
        <fail unless="build.dir">Must set build.dir</fail>
        <fail unless="build.web.dir">Must set build.web.dir</fail>
        <fail unless="build.generated.dir">Must set build.generated.dir</fail>
        <fail unless="dist.dir">Must set dist.dir</fail>
        <fail unless="build.classes.dir">Must set build.classes.dir</fail>
        <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
        <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
        <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
        <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
        <fail unless="dist.war">Must set dist.war</fail>
    </target>
    <target name="-init-macrodef-property">
        <macrodef name="property" uri="http://www.netbeans.org/ns/web-project/1">
            <attribute name="name"/>
            <attribute name="value"/>
            <sequential>
                <property name="@{name}" value="${@{value}}"/>
            </sequential>
        </macrodef>
    </target>
    <target name="-init-macrodef-javac">
        <macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2">
            <attribute name="srcdir" default="${src.dir}"/>
            <attribute name="destdir" default="${build.classes.dir.real}"/>
            <attribute name="classpath" default="${javac.classpath}:${j2ee.platform.classpath}"/>
            <attribute name="debug" default="${javac.debug}"/>
            <element name="customize" optional="true"/>
            <sequential>
                <javac srcdir="@{srcdir}" destdir="@{destdir}" debug="@{debug}" deprecation="${javac.deprecation}" source="${javac.source}" target="${javac.target}" includeantruntime="false">
                    <classpath>
                        <path path="@{classpath}"/>
                    </classpath>
                    <compilerarg line="${javac.compilerargs}"/>
                    <customize/>
                </javac>
            </sequential>
        </macrodef>
    </target>
    <target name="-init-macrodef-junit">
        <macrodef name="junit" uri="http://www.netbeans.org/ns/web-project/2">
            <attribute name="includes" default="**/*Test.java"/>
            <sequential>
                <junit showoutput="true" fork="true" dir="${basedir}" failureproperty="tests.failed" errorproperty="tests.failed">
                    <batchtest todir="${build.test.results.dir}">
                        <fileset dir="${test.src.dir}" includes="@{includes}"/>
                    </batchtest>
                    <classpath>
                        <path path="${run.test.classpath}"/>
                    </classpath>
                    <syspropertyset>
                        <propertyref prefix="test-sys-prop."/>
                        <mapper type="glob" from="test-sys-prop.*" to="*"/>
                    </syspropertyset>
                    <formatter type="brief" usefile="false"/>
                    <formatter type="xml"/>
                </junit>
            </sequential>
        </macrodef>
    </target>
    <target name="-init-macrodef-java">
        <macrodef name="java" uri="http://www.netbeans.org/ns/web-project/1">
            <attribute name="classname" default="${main.class}"/>
            <element name="customize" optional="true"/>
            <sequential>
                <java fork="true" classname="@{classname}">
                    <jvmarg line="${runmain.jvmargs}"/>
                    <classpath>
                        <path path="${build.classes.dir.real}:${javac.classpath}:${j2ee.platform.classpath}"/>
                    </classpath>
                    <syspropertyset>
                        <propertyref prefix="run-sys-prop."/>
                        <mapper type="glob" from="run-sys-prop.*" to="*"/>
                    </syspropertyset>
                    <customize/>
                </java>
            </sequential>
        </macrodef>
    </target>
    <target name="-init-macrodef-nbjpda">
        <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/web-project/1">
            <attribute name="name" default="${main.class}"/>
            <attribute name="classpath" default="${debug.classpath}"/>
            <sequential>
                <nbjpdastart transport="dt_socket" addressproperty="jpda.address" name="@{name}">
                    <classpath>
                        <path path="@{classpath}"/>
                    </classpath>
                </nbjpdastart>
            </sequential>
        </macrodef>
        <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/web-project/1">
            <attribute name="dir" default="${build.classes.dir.real}"/>
            <sequential>
                <nbjpdareload>
                    <fileset includes="${fix.includes}*.class" dir="@{dir}"/>
                </nbjpdareload>
            </sequential>
        </macrodef>
    </target>
    <target name="-init-macrodef-debug">
        <macrodef name="debug" uri="http://www.netbeans.org/ns/web-project/1">
            <attribute name="classname" default="${main.class}"/>
            <attribute name="classpath" default="${debug.classpath}"/>
            <attribute name="args" default="${application.args.param}"/>
            <sequential>
                <java fork="true" classname="@{classname}">
                    <jvmarg value="-Xdebug"/>
                    <jvmarg value="-Xnoagent"/>
                    <jvmarg value="-Djava.compiler=none"/>
                    <jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
                    <jvmarg line="${runmain.jvmargs}"/>
                    <classpath>
                        <path path="@{classpath}"/>
                    </classpath>
                    <syspropertyset>
                        <propertyref prefix="run-sys-prop."/>
                        <mapper type="glob" from="run-sys-prop.*" to="*"/>
                    </syspropertyset>
                    <arg line="@{args}"/>
                </java>
            </sequential>
        </macrodef>
    </target>
    <target name="-init-macrodef-copy-ear-war">
        <macrodef name="copy-ear-war">
            <attribute name="file"/>
            <attribute name="propname"/>
            <sequential>
                <basename property="base_@{propname}" file="@{file}"/>
                <zipfileset id="tld.files_@{propname}" src="@{file}" includes="META-INF/*.tld META-INF/tlds/*.tld"/>
                <pathconvert property="tld.files.path_@{propname}" refid="tld.files_@{propname}"/>
                <condition value="yes" property="hastlds_@{propname}">
                    <contains string="${tld.files.path_@{propname}}" substring=".tld" casesensitive="false"/>
                </condition>
                <condition value="${build.web.dir.real}/WEB-INF/lib" property="copy.to.dir_@{propname}">
                    <isset property="hastlds_@{propname}"/>
                </condition>
                <condition value="${dist.ear.dir}" property="copy.to.dir_@{propname}">
                    <not>
                        <isset property="hastlds_@{propname}"/>
                    </not>
                </condition>
                <copy file="@{file}" todir="${copy.to.dir_@{propname}}"/>
                <condition value="${base_@{propname}}" property="@{propname}">
                    <not>
                        <isset property="hastlds_@{propname}"/>
                    </not>
                </condition>
                <condition value="" property="@{propname}">
                    <isset property="hastlds_@{propname}"/>
                </condition>
            </sequential>
        </macrodef>
    </target>
    <target name="init" depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-java,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-copy-ear-war"/>
    <!--
                COMPILATION SECTION
            -->
    <target name="deps-module-jar" depends="init" if="no.dist.ear.dir" unless="no.deps"/>
    <target name="deps-ear-jar" depends="init" if="dist.ear.dir" unless="no.deps"/>
    <target name="deps-jar" depends="init, deps-module-jar, deps-ear-jar" unless="no.deps"/>
    <target name="-pre-pre-compile" depends="init,deps-jar">
        <mkdir dir="${build.classes.dir.real}"/>
    </target>
    <target name="-pre-compile">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-copy-webdir">
        <copy todir="${build.web.dir.real}">
            <fileset excludes="${build.web.excludes}" dir="${web.docbase.dir}"/>
        </copy>
    </target>
    <target name="-do-compile" depends="init, deps-jar, -pre-pre-compile, -pre-compile, -copy-manifest, -copy-persistence-xml, -copy-webdir, library-inclusion-in-archive,library-inclusion-in-manifest" if="have.sources">
        <webproject2:javac destdir="${build.classes.dir.real}"/>
        <copy todir="${build.classes.dir.real}">
            <fileset dir="${src.dir}" excludes="${build.classes.excludes}"/>
        </copy>
    </target>
    <target name="-copy-manifest" if="has.custom.manifest">
        <mkdir dir="${build.meta.inf.dir}"/>
        <copy todir="${build.meta.inf.dir}">
            <fileset dir="${conf.dir}" includes="MANIFEST.MF"/>
        </copy>
    </target>
    <target name="-copy-persistence-xml" if="has.persistence.xml">
        <mkdir dir="${build.web.dir.real}/WEB-INF/classes/META-INF"/>
        <copy todir="${build.web.dir.real}/WEB-INF/classes/META-INF">
            <fileset dir="${conf.dir}" includes="persistence.xml"/>
        </copy>
    </target>
    <target name="-post-compile">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="compile" depends="init,deps-jar,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project."/>
    <target name="-pre-compile-single">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-do-compile-single" depends="init,deps-jar,-pre-pre-compile">
        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
        <webproject2:javac>
            <customize>
                <patternset includes="${javac.includes}"/>
            </customize>
        </webproject2:javac>
        <copy todir="${build.classes.dir.real}">
            <fileset dir="${src.dir}" excludes="${build.classes.excludes}"/>
        </copy>
    </target>
    <target name="-post-compile-single">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="compile-single" depends="init,deps-jar,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single"/>
    <target name="compile-jsps" depends="compile" if="do.compile.jsps" description="Test compile JSP pages to expose compilation errors.">
        <mkdir dir="${build.generated.dir}/src"/>
        <java classname="org.netbeans.modules.web.project.ant.JspC" fork="true" failonerror="true">
            <arg value="-uriroot"/>
            <arg file="${basedir}/${build.web.dir.real}"/>
            <arg value="-d"/>
            <arg file="${basedir}/${build.generated.dir}/src"/>
            <arg value="-die1"/>
            <classpath path="${java.home}/../lib/tools.jar:${copyfiles.classpath}:${jspcompilation.classpath}"/>
        </java>
        <mkdir dir="${build.generated.dir}/classes"/>
        <webproject2:javac srcdir="${build.generated.dir}/src" destdir="${build.generated.dir}/classes" classpath="${j2ee.platform.classpath}:${build.classes.dir.real}:${jspcompilation.classpath}"/>
    </target>
    <target name="-do-compile-single-jsp" depends="compile" if="jsp.includes">
        <fail unless="javac.jsp.includes">Must select some files in the IDE or set javac.jsp.includes</fail>
        <mkdir dir="${build.generated.dir}/src"/>
        <java classname="org.netbeans.modules.web.project.ant.JspCSingle" fork="true" failonerror="true">
            <arg value="-uriroot"/>
            <arg file="${basedir}/${build.web.dir.real}"/>
            <arg value="-d"/>
            <arg file="${basedir}/${build.generated.dir}/src"/>
            <arg value="-die1"/>
            <arg value="-jspc.files"/>
            <arg path="${jsp.includes}"/>
            <classpath path="${java.home}/../lib/tools.jar:${copyfiles.classpath}:${jspcompilation.classpath}"/>
        </java>
        <mkdir dir="${build.generated.dir}/classes"/>
        <webproject2:javac srcdir="${build.generated.dir}/src" destdir="${build.generated.dir}/classes" classpath="${j2ee.platform.classpath}:${build.classes.dir.real}:${jspcompilation.classpath}">
            <customize>
                <patternset includes="${javac.jsp.includes}"/>
            </customize>
        </webproject2:javac>
    </target>
    <target name="compile-single-jsp">
        <fail unless="jsp.includes">Must select a file in the IDE or set jsp.includes</fail>
        <antcall target="-do-compile-single-jsp"/>
    </target>
    <!--
                DIST BUILDING SECTION
            -->
    <target name="-pre-dist">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-do-dist-without-manifest" if="do.war.package.without.custom.manifest" depends="init,compile,compile-jsps,-pre-dist">
        <dirname property="dist.jar.dir" file="${dist.war}"/>
        <mkdir dir="${dist.jar.dir}"/>
        <jar jarfile="${dist.war}" compress="${jar.compress}">
            <fileset dir="${build.web.dir.real}"/>
        </jar>
    </target>
    <target name="-do-dist-with-manifest" if="do.war.package.with.custom.manifest" depends="init,compile,compile-jsps,-pre-dist">
        <dirname property="dist.jar.dir" file="${dist.war}"/>
        <mkdir dir="${dist.jar.dir}"/>
        <jar manifest="${build.meta.inf.dir}/MANIFEST.MF" jarfile="${dist.war}" compress="${jar.compress}">
            <fileset dir="${build.web.dir.real}"/>
        </jar>
    </target>
    <target name="do-dist" depends="init,compile,compile-jsps,-pre-dist,-do-dist-with-manifest,-do-dist-without-manifest"/>
    <target name="library-inclusion-in-manifest" depends="init" if="dist.ear.dir">
        <mkdir dir="${build.web.dir.real}/META-INF"/>
        <manifest file="${build.web.dir.real}/META-INF/MANIFEST.MF" mode="update"/>
        <delete dir="${dist.ear.dir}/temp"/>
    </target>
    <target name="library-inclusion-in-archive" depends="init" unless="dist.ear.dir"/>
    <target name="do-ear-dist" depends="init,compile,compile-jsps,-pre-dist,library-inclusion-in-manifest">
        <dirname property="dist.jar.dir" file="${dist.ear.war}"/>
        <mkdir dir="${dist.jar.dir}"/>
        <jar jarfile="${dist.ear.war}" compress="${jar.compress}" manifest="${build.web.dir.real}/META-INF/MANIFEST.MF">
            <fileset dir="${build.web.dir.real}"/>
        </jar>
    </target>
    <target name="-post-dist">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="dist" depends="init,compile,-pre-dist,do-dist,-post-dist" description="Build distribution (WAR)."/>
    <target name="dist-ear" depends="init,compile,-pre-dist,do-ear-dist,-post-dist" description="Build distribution (WAR) to be packaged into an EAR."/>
    <!--
                EXECUTION SECTION
            -->
    <target name="run" depends="run-deploy,run-display-browser" description="Deploy to server and show in browser."/>
    <target name="-pre-run-deploy">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-post-run-deploy">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-pre-nbmodule-run-deploy">
        <!-- Empty placeholder for easier customization. -->
        <!-- This target can be overriden by NetBeans modules. Don't override it directly, use -pre-run-deploy task instead. -->
    </target>
    <target name="-post-nbmodule-run-deploy">
        <!-- Empty placeholder for easier customization. -->
        <!-- This target can be overriden by NetBeans modules. Don't override it directly, use -post-run-deploy task instead. -->
    </target>
    <target name="-run-deploy-am">
        <!-- Task to deploy to the Access Manager runtime. -->
    </target>
    <target name="run-deploy" depends="init,compile,compile-jsps,-do-compile-single-jsp,dist,-pre-run-deploy,-pre-nbmodule-run-deploy,-run-deploy-nb,-init-deploy-ant,-deploy-ant,-run-deploy-am,-post-nbmodule-run-deploy,-post-run-deploy"/>
    <target name="-run-deploy-nb" if="netbeans.home">
        <nbdeploy debugmode="false" clientUrlPart="${client.urlPart}" forceRedeploy="${forceRedeploy}"/>
    </target>
    <target name="-init-deploy-ant" unless="netbeans.home">
        <property name="deploy.ant.archive" value="${dist.war}"/>
        <property name="deploy.ant.docbase.dir" value="${web.docbase.dir}"/>
        <property name="deploy.ant.resource.dir" value="${resource.dir}"/>
        <property name="deploy.ant.enabled" value="true"/>
    </target>
    <target name="run-undeploy" depends="dist,-run-undeploy-nb,-init-deploy-ant,-undeploy-ant"/>
    <target name="-run-undeploy-nb" if="netbeans.home">
        <fail message="Undeploy is not supported from within the IDE"/>
    </target>
    <target name="verify" depends="init,dist">
        <nbverify file="${dist.war}"/>
    </target>
    <target name="run-display-browser" depends="run-deploy,-init-display-browser,-display-browser-nb,-display-browser-cl"/>
    <target name="-init-display-browser" if="do.display.browser">
        <condition property="do.display.browser.nb">
            <isset property="netbeans.home"/>
        </condition>
        <condition property="do.display.browser.cl">
            <isset property="deploy.ant.enabled"/>
        </condition>
    </target>
    <target name="-display-browser-nb" if="do.display.browser.nb">
        <nbbrowse url="${client.url}"/>
    </target>
    <target name="-get-browser" if="do.display.browser.cl" unless="browser">
        <condition property="browser" value="rundll32">
            <os family="windows"/>
        </condition>
        <condition property="browser.args" value="url.dll,FileProtocolHandler" else="">
            <os family="windows"/>
        </condition>
        <condition property="browser" value="/usr/bin/open">
            <os family="mac"/>
        </condition>
        <property environment="env"/>
        <condition property="browser" value="${env.BROWSER}">
            <isset property="env.BROWSER"/>
        </condition>
        <condition property="browser" value="/usr/bin/firefox">
            <available file="/usr/bin/firefox"/>
        </condition>
        <condition property="browser" value="/usr/local/firefox/firefox">
            <available file="/usr/local/firefox/firefox"/>
        </condition>
        <condition property="browser" value="/usr/bin/mozilla">
            <available file="/usr/bin/mozilla"/>
        </condition>
        <condition property="browser" value="/usr/local/mozilla/mozilla">
            <available file="/usr/local/mozilla/mozilla"/>
        </condition>
        <condition property="browser" value="/usr/sfw/lib/firefox/firefox">
            <available file="/usr/sfw/lib/firefox/firefox"/>
        </condition>
        <condition property="browser" value="/opt/csw/bin/firefox">
            <available file="/opt/csw/bin/firefox"/>
        </condition>
        <condition property="browser" value="/usr/sfw/lib/mozilla/mozilla">
            <available file="/usr/sfw/lib/mozilla/mozilla"/>
        </condition>
        <condition property="browser" value="/opt/csw/bin/mozilla">
            <available file="/opt/csw/bin/mozilla"/>
        </condition>
    </target>
    <target name="-display-browser-cl" depends="-get-browser" if="do.display.browser.cl">
        <fail unless="browser">
                    Browser not found, cannot launch the deployed application. Try to set the BROWSER environment variable.
                </fail>
        <property name="browse.url" value="${deploy.ant.client.url}${client.urlPart}"/>
        <echo>Launching ${browse.url}</echo>
        <exec executable="${browser}" spawn="true">
            <arg line="${browser.args} ${browse.url}"/>
        </exec>
    </target>
    <target name="run-main" depends="init,compile-single">
        <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
        <webproject1:java classname="${run.class}"/>
    </target>
    <!--
                DEBUGGING SECTION
            -->
    <target name="debug" description="Debug project in IDE." depends="init,compile,compile-jsps,-do-compile-single-jsp,dist" if="netbeans.home">
        <nbdeploy debugmode="true" clientUrlPart="${client.urlPart}"/>
        <antcall target="connect-debugger"/>
        <antcall target="debug-display-browser"/>
    </target>
    <target name="connect-debugger" unless="is.debugged">
        <nbjpdaconnect name="${name}" host="${jpda.host}" address="${jpda.address}" transport="${jpda.transport}">
            <classpath>
                <path path="${debug.classpath}:${ws.debug.classpaths}"/>
            </classpath>
            <sourcepath>
                <path path="${web.docbase.dir}:${ws.web.docbase.dirs}"/>
            </sourcepath>
        </nbjpdaconnect>
    </target>
    <target name="debug-display-browser" if="do.display.browser">
        <nbbrowse url="${client.url}"/>
    </target>
    <target name="debug-single" if="netbeans.home" depends="init,compile,compile-jsps,-do-compile-single-jsp,debug"/>
    <target name="-debug-start-debugger" if="netbeans.home" depends="init">
        <webproject1:nbjpdastart name="${debug.class}"/>
    </target>
    <target name="-debug-start-debuggee-single" if="netbeans.home" depends="init,compile-single">
        <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
        <webproject1:debug classname="${debug.class}"/>
    </target>
    <target name="debug-single-main" if="netbeans.home" depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single"/>
    <target name="-pre-debug-fix" depends="init">
        <fail unless="fix.includes">Must set fix.includes</fail>
        <property name="javac.includes" value="${fix.includes}.java"/>
    </target>
    <target name="-do-debug-fix" if="netbeans.home" depends="init,-pre-debug-fix,compile-single">
        <webproject1:nbjpdareload/>
    </target>
    <target name="debug-fix" if="netbeans.home" depends="init,-pre-debug-fix,-do-debug-fix"/>
    <!--
                JAVADOC SECTION
            -->
    <target name="javadoc-build" depends="init">
        <mkdir dir="${dist.javadoc.dir}"/>
        <javadoc destdir="${dist.javadoc.dir}" source="${javac.source}" notree="${javadoc.notree}" use="${javadoc.use}" nonavbar="${javadoc.nonavbar}" noindex="${javadoc.noindex}" splitindex="${javadoc.splitindex}" author="${javadoc.author}" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}" private="${javadoc.private}" additionalparam="${javadoc.additionalparam}" failonerror="true" useexternalfile="true">
            <classpath>
                <path path="${javac.classpath}:${j2ee.platform.classpath}"/>
            </classpath>
            <sourcepath>
                <pathelement location="${src.dir}"/>
            </sourcepath>
            <packageset dir="${src.dir}" includes="*/**"/>
            <fileset dir="${src.dir}" includes="*.java"/>
        </javadoc>
    </target>
    <target name="javadoc-browse" if="netbeans.home" unless="no.javadoc.preview" depends="init,javadoc-build">
        <nbbrowse file="${dist.javadoc.dir}/index.html"/>
    </target>
    <target name="javadoc" depends="init,javadoc-build,javadoc-browse" description="Build Javadoc."/>
    <!--
                
                JUNIT COMPILATION SECTION
            -->
    <target name="-pre-pre-compile-test" if="have.tests" depends="init,compile">
        <mkdir dir="${build.test.classes.dir}"/>
    </target>
    <target name="-pre-compile-test">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-do-compile-test" if="have.tests" depends="init,compile,-pre-pre-compile-test,-pre-compile-test">
        <webproject2:javac srcdir="${test.src.dir}" destdir="${build.test.classes.dir}" debug="true" classpath="${javac.test.classpath}:${j2ee.platform.classpath}"/>
        <copy todir="${build.test.classes.dir}">
            <fileset dir="${test.src.dir}" excludes="**/*.java"/>
        </copy>
    </target>
    <target name="-post-compile-test">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="compile-test" depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test"/>
    <target name="-pre-compile-test-single">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-do-compile-test-single" if="have.tests" depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single">
        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
        <webproject2:javac srcdir="${test.src.dir}" destdir="${build.test.classes.dir}" debug="true" classpath="${javac.test.classpath}:${j2ee.platform.classpath}">
            <customize>
                <patternset includes="${javac.includes}"/>
            </customize>
        </webproject2:javac>
        <copy todir="${build.test.classes.dir}">
            <fileset dir="${test.src.dir}" excludes="**/*.java"/>
        </copy>
    </target>
    <target name="-post-compile-test-single">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="compile-test-single" depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single"/>
    <!--
                
                JUNIT EXECUTION SECTION
            -->
    <target name="-pre-test-run" if="have.tests" depends="init">
        <mkdir dir="${build.test.results.dir}"/>
    </target>
    <target name="-do-test-run" if="have.tests" depends="init,compile-test,-pre-test-run">
        <webproject2:junit/>
    </target>
    <target name="-post-test-run" if="have.tests" depends="init,compile-test,-pre-test-run,-do-test-run">
        <fail if="tests.failed">Some tests failed; see details above.</fail>
    </target>
    <target name="test-report" if="have.tests" depends="init"/>
    <target name="-test-browse" if="netbeans.home+have.tests" depends="init"/>
    <target name="test" depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests."/>
    <target name="-pre-test-run-single" if="have.tests" depends="init">
        <mkdir dir="${build.test.results.dir}"/>
    </target>
    <target name="-do-test-run-single" if="have.tests" depends="init,compile-test-single,-pre-test-run-single">
        <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
        <webproject2:junit includes="${test.includes}"/>
    </target>
    <target name="-post-test-run-single" if="have.tests" depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single">
        <fail if="tests.failed">Some tests failed; see details above.</fail>
    </target>
    <target name="test-single" depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test."/>
    <!--
                
                JUNIT DEBUGGING SECTION
            -->
    <target name="-debug-start-debuggee-test" if="have.tests" depends="init,compile-test">
        <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
        <webproject1:debug classname="junit.textui.TestRunner" classpath="${debug.test.classpath}" args="${test.class}"/>
    </target>
    <target name="-debug-start-debugger-test" if="netbeans.home+have.tests" depends="init,compile-test">
        <webproject1:nbjpdastart name="${test.class}" classpath="${debug.test.classpath}"/>
    </target>
    <target name="debug-test" depends="init,compile-test,-debug-start-debugger-test,-debug-start-debuggee-test"/>
    <target name="-do-debug-fix-test" if="netbeans.home" depends="init,-pre-debug-fix,compile-test-single">
        <webproject1:nbjpdareload dir="${build.test.classes.dir}"/>
    </target>
    <target name="debug-fix-test" if="netbeans.home" depends="init,-pre-debug-fix,-do-debug-fix-test"/>
    <!--
                
                CLEANUP SECTION
            -->
    <target name="deps-clean" depends="init" if="no.dist.ear.dir" unless="no.deps"/>
    <target name="do-clean" depends="init">
        <condition value="${build.web.dir.real}" property="build.dir.to.clean">
            <isset property="dist.ear.dir"/>
        </condition>
        <property value="${build.web.dir.real}" name="build.dir.to.clean"/>
        <delete includeEmptyDirs="true" quiet="true">
            <fileset dir="${build.dir.to.clean}/WEB-INF/lib"/>
        </delete>
        <delete dir="${build.dir}"/>
        <available file="${build.dir.to.clean}/WEB-INF/lib" type="dir" property="status.clean-failed"/>
        <delete dir="${dist.dir}"/>
    </target>
    <target name="check-clean" depends="do-clean" if="status.clean-failed">
        <echo message="Warning: unable to delete some files in ${build.web.dir.real}/WEB-INF/lib - they are probably locked by the J2EE server. "/>
        <echo level="info" message="To delete all files undeploy the module from Server Registry in Runtime tab and then use Clean again."/>
    </target>
    <target name="-post-clean">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="clean" depends="init,deps-clean,do-clean,check-clean,-post-clean" description="Clean build products."/>
    <target name="clean-ear" depends="clean" description="Clean build products."/>
</project>
