High-level tests for remoting
authorJan Lahoda <jlahoda@netbeans.org>
Wed, 17 Apr 2013 19:44:36 +0200
changeset 9453f6a3dfb7a2a
parent 944 dbe55905f64a
child 946 27d84606fcea
High-level tests for remoting
remoting/build.sh
remoting/post-build.sh
remoting/server/scripts/web.sh
remoting/server/tests/integration-data/example/build.xml
remoting/server/tests/integration-data/example/manifest.mf
remoting/server/tests/integration-data/example/nbproject/build-impl.xml
remoting/server/tests/integration-data/example/nbproject/genfiles.properties
remoting/server/tests/integration-data/example/nbproject/project.properties
remoting/server/tests/integration-data/example/nbproject/project.xml
remoting/server/tests/integration-data/example/src/org/netbeans/modules/jackpot30/example/ClassA.java
remoting/server/tests/integration-data/example/src/org/netbeans/modules/jackpot30/example/SubClassA.java
remoting/server/tests/integration-data/example/src/org/netbeans/modules/jackpot30/example/UseClassA.java
remoting/server/tests/integration/pom.xml
remoting/server/tests/integration/src/test/java/org/netbeans/modules/jackpot30/web/ui/test/OverallTest.java
remoting/server/tests/run-integration-tests
remoting/server/web/web.ui.frontend/public_html/index/ui/search.html
remoting/server/web/web.ui.frontend/public_html/index/ui/usages.html
     1.1 --- a/remoting/build.sh	Wed Apr 17 19:38:41 2013 +0200
     1.2 +++ b/remoting/build.sh	Wed Apr 17 19:44:36 2013 +0200
     1.3 @@ -23,3 +23,5 @@
     1.4  
     1.5  mkdir -p ide/local/release/index-server
     1.6  (cd server/web/web.main; cp -r dist/* ../../../ide/local/release/index-server) || exit 1
     1.7 +
     1.8 +(cd server/tests; ./run-integration-tests) || exit 1
     2.1 --- a/remoting/post-build.sh	Wed Apr 17 19:38:41 2013 +0200
     2.2 +++ b/remoting/post-build.sh	Wed Apr 17 19:44:36 2013 +0200
     2.3 @@ -9,3 +9,5 @@
     2.4  
     2.5  (cd build; zip -r indexing-backend-feature-packed.zip indexing-backend) || exit 1
     2.6  (cd build; zip -r indexing-backend-feature-packed-shortened.zip `find indexing-backend -type f | grep -v indexing-backend/indexer/enterprise/ | grep -v indexing-backend/indexer/apisupport/  | grep -v indexing-backend/indexer/cnd/   | grep -v indexing-backend/indexer/dlight/   | grep -v indexing-backend/indexer/harness/   | grep -v indexing-backend/indexer/ide/   | grep -v indexing-backend/indexer/java   | grep -v indexing-backend/indexer/nb/   | grep -v indexing-backend/indexer/platform/   | grep -v indexing-backend/indexer/profiler/   | grep -v indexing-backend/indexer/websvccommon/`) || exit 1
     2.7 +
     2.8 +(cd server/tests; ./run-integration-tests) || exit 1
     3.1 --- a/remoting/server/scripts/web.sh	Wed Apr 17 19:38:41 2013 +0200
     3.2 +++ b/remoting/server/scripts/web.sh	Wed Apr 17 19:44:36 2013 +0200
     3.3 @@ -1,8 +1,8 @@
     3.4  #!/bin/bash
     3.5  #XXX: unix only
     3.6 -DIR=`dirname $0`
     3.7 +DIR=$(readlink -m `dirname $0`)
     3.8  classpath="$DIR/web/web.main.jar"
     3.9  for jar in $DIR/web/lib/*.jar; do
    3.10      classpath="$classpath:$jar"
    3.11  done
    3.12 -java $JACKPOT_WEB_OPTS -Djava.index.useMemCache=false -Xbootclasspath/p:$DIR/web/lib/nb-javac-api.jar:$DIR/web/lib/nb-javac-impl.jar -classpath "$classpath" web.main.WebMain "$@" "$DIR/web/public_html"
    3.13 +exec java $JACKPOT_WEB_OPTS -Djava.index.useMemCache=false -Xbootclasspath/p:$DIR/web/lib/nb-javac-api.jar:$DIR/web/lib/nb-javac-impl.jar -classpath "$classpath" web.main.WebMain "$@" "$DIR/web/public_html"
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/remoting/server/tests/integration-data/example/build.xml	Wed Apr 17 19:44:36 2013 +0200
     4.3 @@ -0,0 +1,73 @@
     4.4 +<?xml version="1.0" encoding="UTF-8"?>
     4.5 +<!-- You may freely edit this file. See commented blocks below for -->
     4.6 +<!-- some examples of how to customize the build. -->
     4.7 +<!-- (If you delete it and reopen the project it will be recreated.) -->
     4.8 +<!-- By default, only the Clean and Build commands use this build script. -->
     4.9 +<!-- Commands such as Run, Debug, and Test only use this build script if -->
    4.10 +<!-- the Compile on Save feature is turned off for the project. -->
    4.11 +<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
    4.12 +<!-- in the project's Project Properties dialog box.-->
    4.13 +<project name="example" default="default" basedir=".">
    4.14 +    <description>Builds, tests, and runs the project example.</description>
    4.15 +    <import file="nbproject/build-impl.xml"/>
    4.16 +    <!--
    4.17 +
    4.18 +    There exist several targets which are by default empty and which can be 
    4.19 +    used for execution of your tasks. These targets are usually executed 
    4.20 +    before and after some main targets. They are: 
    4.21 +
    4.22 +      -pre-init:                 called before initialization of project properties
    4.23 +      -post-init:                called after initialization of project properties
    4.24 +      -pre-compile:              called before javac compilation
    4.25 +      -post-compile:             called after javac compilation
    4.26 +      -pre-compile-single:       called before javac compilation of single file
    4.27 +      -post-compile-single:      called after javac compilation of single file
    4.28 +      -pre-compile-test:         called before javac compilation of JUnit tests
    4.29 +      -post-compile-test:        called after javac compilation of JUnit tests
    4.30 +      -pre-compile-test-single:  called before javac compilation of single JUnit test
    4.31 +      -post-compile-test-single: called after javac compilation of single JUunit test
    4.32 +      -pre-jar:                  called before JAR building
    4.33 +      -post-jar:                 called after JAR building
    4.34 +      -post-clean:               called after cleaning build products
    4.35 +
    4.36 +    (Targets beginning with '-' are not intended to be called on their own.)
    4.37 +
    4.38 +    Example of inserting an obfuscator after compilation could look like this:
    4.39 +
    4.40 +        <target name="-post-compile">
    4.41 +            <obfuscate>
    4.42 +                <fileset dir="${build.classes.dir}"/>
    4.43 +            </obfuscate>
    4.44 +        </target>
    4.45 +
    4.46 +    For list of available properties check the imported 
    4.47 +    nbproject/build-impl.xml file. 
    4.48 +
    4.49 +
    4.50 +    Another way to customize the build is by overriding existing main targets.
    4.51 +    The targets of interest are: 
    4.52 +
    4.53 +      -init-macrodef-javac:     defines macro for javac compilation
    4.54 +      -init-macrodef-junit:     defines macro for junit execution
    4.55 +      -init-macrodef-debug:     defines macro for class debugging
    4.56 +      -init-macrodef-java:      defines macro for class execution
    4.57 +      -do-jar:                  JAR building
    4.58 +      run:                      execution of project 
    4.59 +      -javadoc-build:           Javadoc generation
    4.60 +      test-report:              JUnit report generation
    4.61 +
    4.62 +    An example of overriding the target for project execution could look like this:
    4.63 +
    4.64 +        <target name="run" depends="example-impl.jar">
    4.65 +            <exec dir="bin" executable="launcher.exe">
    4.66 +                <arg file="${dist.jar}"/>
    4.67 +            </exec>
    4.68 +        </target>
    4.69 +
    4.70 +    Notice that the overridden target depends on the jar target and not only on 
    4.71 +    the compile target as the regular run target does. Again, for a list of available 
    4.72 +    properties which you can use, check the target you are overriding in the
    4.73 +    nbproject/build-impl.xml file. 
    4.74 +
    4.75 +    -->
    4.76 +</project>
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/remoting/server/tests/integration-data/example/manifest.mf	Wed Apr 17 19:44:36 2013 +0200
     5.3 @@ -0,0 +1,3 @@
     5.4 +Manifest-Version: 1.0
     5.5 +X-COMMENT: Main-Class will be added automatically by build
     5.6 +
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/remoting/server/tests/integration-data/example/nbproject/build-impl.xml	Wed Apr 17 19:44:36 2013 +0200
     6.3 @@ -0,0 +1,1401 @@
     6.4 +<?xml version="1.0" encoding="UTF-8"?>
     6.5 +<!--
     6.6 +*** GENERATED FROM project.xml - DO NOT EDIT  ***
     6.7 +***         EDIT ../build.xml INSTEAD         ***
     6.8 +
     6.9 +For the purpose of easier reading the script
    6.10 +is divided into following sections:
    6.11 +
    6.12 +  - initialization
    6.13 +  - compilation
    6.14 +  - jar
    6.15 +  - execution
    6.16 +  - debugging
    6.17 +  - javadoc
    6.18 +  - test compilation
    6.19 +  - test execution
    6.20 +  - test debugging
    6.21 +  - applet
    6.22 +  - cleanup
    6.23 +
    6.24 +        -->
    6.25 +<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="example-impl">
    6.26 +    <fail message="Please build using Ant 1.8.0 or higher.">
    6.27 +        <condition>
    6.28 +            <not>
    6.29 +                <antversion atleast="1.8.0"/>
    6.30 +            </not>
    6.31 +        </condition>
    6.32 +    </fail>
    6.33 +    <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
    6.34 +    <!-- 
    6.35 +                ======================
    6.36 +                INITIALIZATION SECTION 
    6.37 +                ======================
    6.38 +            -->
    6.39 +    <target name="-pre-init">
    6.40 +        <!-- Empty placeholder for easier customization. -->
    6.41 +        <!-- You can override this target in the ../build.xml file. -->
    6.42 +    </target>
    6.43 +    <target depends="-pre-init" name="-init-private">
    6.44 +        <property file="nbproject/private/config.properties"/>
    6.45 +        <property file="nbproject/private/configs/${config}.properties"/>
    6.46 +        <property file="nbproject/private/private.properties"/>
    6.47 +    </target>
    6.48 +    <target depends="-pre-init,-init-private" name="-init-user">
    6.49 +        <property file="${user.properties.file}"/>
    6.50 +        <!-- The two properties below are usually overridden -->
    6.51 +        <!-- by the active platform. Just a fallback. -->
    6.52 +        <property name="default.javac.source" value="1.4"/>
    6.53 +        <property name="default.javac.target" value="1.4"/>
    6.54 +    </target>
    6.55 +    <target depends="-pre-init,-init-private,-init-user" name="-init-project">
    6.56 +        <property file="nbproject/configs/${config}.properties"/>
    6.57 +        <property file="nbproject/project.properties"/>
    6.58 +    </target>
    6.59 +    <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
    6.60 +        <available file="${manifest.file}" property="manifest.available"/>
    6.61 +        <condition property="splashscreen.available">
    6.62 +            <and>
    6.63 +                <not>
    6.64 +                    <equals arg1="${application.splash}" arg2="" trim="true"/>
    6.65 +                </not>
    6.66 +                <available file="${application.splash}"/>
    6.67 +            </and>
    6.68 +        </condition>
    6.69 +        <condition property="main.class.available">
    6.70 +            <and>
    6.71 +                <isset property="main.class"/>
    6.72 +                <not>
    6.73 +                    <equals arg1="${main.class}" arg2="" trim="true"/>
    6.74 +                </not>
    6.75 +            </and>
    6.76 +        </condition>
    6.77 +        <condition property="profile.available">
    6.78 +            <and>
    6.79 +                <isset property="javac.profile"/>
    6.80 +                <length length="0" string="${javac.profile}" when="greater"/>
    6.81 +                <matches pattern="1\.[89](\..*)?" string="${javac.source}"/>
    6.82 +            </and>
    6.83 +        </condition>
    6.84 +        <condition property="do.archive">
    6.85 +            <not>
    6.86 +                <istrue value="${jar.archive.disabled}"/>
    6.87 +            </not>
    6.88 +        </condition>
    6.89 +        <condition property="do.mkdist">
    6.90 +            <and>
    6.91 +                <isset property="do.archive"/>
    6.92 +                <isset property="libs.CopyLibs.classpath"/>
    6.93 +                <not>
    6.94 +                    <istrue value="${mkdist.disabled}"/>
    6.95 +                </not>
    6.96 +            </and>
    6.97 +        </condition>
    6.98 +        <condition property="do.archive+manifest.available">
    6.99 +            <and>
   6.100 +                <isset property="manifest.available"/>
   6.101 +                <istrue value="${do.archive}"/>
   6.102 +            </and>
   6.103 +        </condition>
   6.104 +        <condition property="do.archive+main.class.available">
   6.105 +            <and>
   6.106 +                <isset property="main.class.available"/>
   6.107 +                <istrue value="${do.archive}"/>
   6.108 +            </and>
   6.109 +        </condition>
   6.110 +        <condition property="do.archive+splashscreen.available">
   6.111 +            <and>
   6.112 +                <isset property="splashscreen.available"/>
   6.113 +                <istrue value="${do.archive}"/>
   6.114 +            </and>
   6.115 +        </condition>
   6.116 +        <condition property="do.archive+profile.available">
   6.117 +            <and>
   6.118 +                <isset property="profile.available"/>
   6.119 +                <istrue value="${do.archive}"/>
   6.120 +            </and>
   6.121 +        </condition>
   6.122 +        <condition property="have.tests">
   6.123 +            <or>
   6.124 +                <available file="${test.src.dir}"/>
   6.125 +            </or>
   6.126 +        </condition>
   6.127 +        <condition property="have.sources">
   6.128 +            <or>
   6.129 +                <available file="${src.dir}"/>
   6.130 +            </or>
   6.131 +        </condition>
   6.132 +        <condition property="netbeans.home+have.tests">
   6.133 +            <and>
   6.134 +                <isset property="netbeans.home"/>
   6.135 +                <isset property="have.tests"/>
   6.136 +            </and>
   6.137 +        </condition>
   6.138 +        <condition property="no.javadoc.preview">
   6.139 +            <and>
   6.140 +                <isset property="javadoc.preview"/>
   6.141 +                <isfalse value="${javadoc.preview}"/>
   6.142 +            </and>
   6.143 +        </condition>
   6.144 +        <property name="run.jvmargs" value=""/>
   6.145 +        <property name="run.jvmargs.ide" value=""/>
   6.146 +        <property name="javac.compilerargs" value=""/>
   6.147 +        <property name="work.dir" value="${basedir}"/>
   6.148 +        <condition property="no.deps">
   6.149 +            <and>
   6.150 +                <istrue value="${no.dependencies}"/>
   6.151 +            </and>
   6.152 +        </condition>
   6.153 +        <property name="javac.debug" value="true"/>
   6.154 +        <property name="javadoc.preview" value="true"/>
   6.155 +        <property name="application.args" value=""/>
   6.156 +        <property name="source.encoding" value="${file.encoding}"/>
   6.157 +        <property name="runtime.encoding" value="${source.encoding}"/>
   6.158 +        <condition property="javadoc.encoding.used" value="${javadoc.encoding}">
   6.159 +            <and>
   6.160 +                <isset property="javadoc.encoding"/>
   6.161 +                <not>
   6.162 +                    <equals arg1="${javadoc.encoding}" arg2=""/>
   6.163 +                </not>
   6.164 +            </and>
   6.165 +        </condition>
   6.166 +        <property name="javadoc.encoding.used" value="${source.encoding}"/>
   6.167 +        <property name="includes" value="**"/>
   6.168 +        <property name="excludes" value=""/>
   6.169 +        <property name="do.depend" value="false"/>
   6.170 +        <condition property="do.depend.true">
   6.171 +            <istrue value="${do.depend}"/>
   6.172 +        </condition>
   6.173 +        <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
   6.174 +        <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
   6.175 +            <length length="0" string="${endorsed.classpath}" when="greater"/>
   6.176 +        </condition>
   6.177 +        <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}">
   6.178 +            <isset property="profile.available"/>
   6.179 +        </condition>
   6.180 +        <condition else="false" property="jdkBug6558476">
   6.181 +            <and>
   6.182 +                <matches pattern="1\.[56]" string="${java.specification.version}"/>
   6.183 +                <not>
   6.184 +                    <os family="unix"/>
   6.185 +                </not>
   6.186 +            </and>
   6.187 +        </condition>
   6.188 +        <property name="javac.fork" value="${jdkBug6558476}"/>
   6.189 +        <property name="jar.index" value="false"/>
   6.190 +        <property name="jar.index.metainf" value="${jar.index}"/>
   6.191 +        <property name="copylibs.rebase" value="true"/>
   6.192 +        <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
   6.193 +        <condition property="junit.available">
   6.194 +            <or>
   6.195 +                <available classname="org.junit.Test" classpath="${run.test.classpath}"/>
   6.196 +                <available classname="junit.framework.Test" classpath="${run.test.classpath}"/>
   6.197 +            </or>
   6.198 +        </condition>
   6.199 +        <condition property="testng.available">
   6.200 +            <available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/>
   6.201 +        </condition>
   6.202 +        <condition property="junit+testng.available">
   6.203 +            <and>
   6.204 +                <istrue value="${junit.available}"/>
   6.205 +                <istrue value="${testng.available}"/>
   6.206 +            </and>
   6.207 +        </condition>
   6.208 +        <condition else="testng" property="testng.mode" value="mixed">
   6.209 +            <istrue value="${junit+testng.available}"/>
   6.210 +        </condition>
   6.211 +        <condition else="" property="testng.debug.mode" value="-mixed">
   6.212 +            <istrue value="${junit+testng.available}"/>
   6.213 +        </condition>
   6.214 +    </target>
   6.215 +    <target name="-post-init">
   6.216 +        <!-- Empty placeholder for easier customization. -->
   6.217 +        <!-- You can override this target in the ../build.xml file. -->
   6.218 +    </target>
   6.219 +    <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
   6.220 +        <fail unless="src.dir">Must set src.dir</fail>
   6.221 +        <fail unless="test.src.dir">Must set test.src.dir</fail>
   6.222 +        <fail unless="build.dir">Must set build.dir</fail>
   6.223 +        <fail unless="dist.dir">Must set dist.dir</fail>
   6.224 +        <fail unless="build.classes.dir">Must set build.classes.dir</fail>
   6.225 +        <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
   6.226 +        <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
   6.227 +        <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
   6.228 +        <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
   6.229 +        <fail unless="dist.jar">Must set dist.jar</fail>
   6.230 +    </target>
   6.231 +    <target name="-init-macrodef-property">
   6.232 +        <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
   6.233 +            <attribute name="name"/>
   6.234 +            <attribute name="value"/>
   6.235 +            <sequential>
   6.236 +                <property name="@{name}" value="${@{value}}"/>
   6.237 +            </sequential>
   6.238 +        </macrodef>
   6.239 +    </target>
   6.240 +    <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
   6.241 +        <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.242 +            <attribute default="${src.dir}" name="srcdir"/>
   6.243 +            <attribute default="${build.classes.dir}" name="destdir"/>
   6.244 +            <attribute default="${javac.classpath}" name="classpath"/>
   6.245 +            <attribute default="${javac.processorpath}" name="processorpath"/>
   6.246 +            <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
   6.247 +            <attribute default="${includes}" name="includes"/>
   6.248 +            <attribute default="${excludes}" name="excludes"/>
   6.249 +            <attribute default="${javac.debug}" name="debug"/>
   6.250 +            <attribute default="${empty.dir}" name="sourcepath"/>
   6.251 +            <attribute default="${empty.dir}" name="gensrcdir"/>
   6.252 +            <element name="customize" optional="true"/>
   6.253 +            <sequential>
   6.254 +                <property location="${build.dir}/empty" name="empty.dir"/>
   6.255 +                <mkdir dir="${empty.dir}"/>
   6.256 +                <mkdir dir="@{apgeneratedsrcdir}"/>
   6.257 +                <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}">
   6.258 +                    <src>
   6.259 +                        <dirset dir="@{gensrcdir}" erroronmissingdir="false">
   6.260 +                            <include name="*"/>
   6.261 +                        </dirset>
   6.262 +                    </src>
   6.263 +                    <classpath>
   6.264 +                        <path path="@{classpath}"/>
   6.265 +                    </classpath>
   6.266 +                    <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
   6.267 +                    <compilerarg line="${javac.profile.cmd.line.arg}"/>
   6.268 +                    <compilerarg line="${javac.compilerargs}"/>
   6.269 +                    <compilerarg value="-processorpath"/>
   6.270 +                    <compilerarg path="@{processorpath}:${empty.dir}"/>
   6.271 +                    <compilerarg line="${ap.processors.internal}"/>
   6.272 +                    <compilerarg line="${annotation.processing.processor.options}"/>
   6.273 +                    <compilerarg value="-s"/>
   6.274 +                    <compilerarg path="@{apgeneratedsrcdir}"/>
   6.275 +                    <compilerarg line="${ap.proc.none.internal}"/>
   6.276 +                    <customize/>
   6.277 +                </javac>
   6.278 +            </sequential>
   6.279 +        </macrodef>
   6.280 +    </target>
   6.281 +    <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
   6.282 +        <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.283 +            <attribute default="${src.dir}" name="srcdir"/>
   6.284 +            <attribute default="${build.classes.dir}" name="destdir"/>
   6.285 +            <attribute default="${javac.classpath}" name="classpath"/>
   6.286 +            <attribute default="${javac.processorpath}" name="processorpath"/>
   6.287 +            <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
   6.288 +            <attribute default="${includes}" name="includes"/>
   6.289 +            <attribute default="${excludes}" name="excludes"/>
   6.290 +            <attribute default="${javac.debug}" name="debug"/>
   6.291 +            <attribute default="${empty.dir}" name="sourcepath"/>
   6.292 +            <attribute default="${empty.dir}" name="gensrcdir"/>
   6.293 +            <element name="customize" optional="true"/>
   6.294 +            <sequential>
   6.295 +                <property location="${build.dir}/empty" name="empty.dir"/>
   6.296 +                <mkdir dir="${empty.dir}"/>
   6.297 +                <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}">
   6.298 +                    <src>
   6.299 +                        <dirset dir="@{gensrcdir}" erroronmissingdir="false">
   6.300 +                            <include name="*"/>
   6.301 +                        </dirset>
   6.302 +                    </src>
   6.303 +                    <classpath>
   6.304 +                        <path path="@{classpath}"/>
   6.305 +                    </classpath>
   6.306 +                    <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
   6.307 +                    <compilerarg line="${javac.profile.cmd.line.arg}"/>
   6.308 +                    <compilerarg line="${javac.compilerargs}"/>
   6.309 +                    <customize/>
   6.310 +                </javac>
   6.311 +            </sequential>
   6.312 +        </macrodef>
   6.313 +    </target>
   6.314 +    <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
   6.315 +        <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.316 +            <attribute default="${src.dir}" name="srcdir"/>
   6.317 +            <attribute default="${build.classes.dir}" name="destdir"/>
   6.318 +            <attribute default="${javac.classpath}" name="classpath"/>
   6.319 +            <sequential>
   6.320 +                <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
   6.321 +                    <classpath>
   6.322 +                        <path path="@{classpath}"/>
   6.323 +                    </classpath>
   6.324 +                </depend>
   6.325 +            </sequential>
   6.326 +        </macrodef>
   6.327 +        <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.328 +            <attribute default="${build.classes.dir}" name="destdir"/>
   6.329 +            <sequential>
   6.330 +                <fail unless="javac.includes">Must set javac.includes</fail>
   6.331 +                <pathconvert pathsep="${line.separator}" property="javac.includes.binary">
   6.332 +                    <path>
   6.333 +                        <filelist dir="@{destdir}" files="${javac.includes}"/>
   6.334 +                    </path>
   6.335 +                    <globmapper from="*.java" to="*.class"/>
   6.336 +                </pathconvert>
   6.337 +                <tempfile deleteonexit="true" property="javac.includesfile.binary"/>
   6.338 +                <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/>
   6.339 +                <delete>
   6.340 +                    <files includesfile="${javac.includesfile.binary}"/>
   6.341 +                </delete>
   6.342 +                <delete>
   6.343 +                    <fileset file="${javac.includesfile.binary}"/>
   6.344 +                </delete>
   6.345 +            </sequential>
   6.346 +        </macrodef>
   6.347 +    </target>
   6.348 +    <target if="${junit.available}" name="-init-macrodef-junit-init">
   6.349 +        <condition else="false" property="nb.junit.batch" value="true">
   6.350 +            <and>
   6.351 +                <istrue value="${junit.available}"/>
   6.352 +                <not>
   6.353 +                    <isset property="test.method"/>
   6.354 +                </not>
   6.355 +            </and>
   6.356 +        </condition>
   6.357 +        <condition else="false" property="nb.junit.single" value="true">
   6.358 +            <and>
   6.359 +                <istrue value="${junit.available}"/>
   6.360 +                <isset property="test.method"/>
   6.361 +            </and>
   6.362 +        </condition>
   6.363 +    </target>
   6.364 +    <target name="-init-test-properties">
   6.365 +        <property name="test.binaryincludes" value="&lt;nothing&gt;"/>
   6.366 +        <property name="test.binarytestincludes" value=""/>
   6.367 +        <property name="test.binaryexcludes" value=""/>
   6.368 +    </target>
   6.369 +    <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
   6.370 +        <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.371 +            <attribute default="${includes}" name="includes"/>
   6.372 +            <attribute default="${excludes}" name="excludes"/>
   6.373 +            <attribute default="**" name="testincludes"/>
   6.374 +            <attribute default="" name="testmethods"/>
   6.375 +            <element name="customize" optional="true"/>
   6.376 +            <sequential>
   6.377 +                <property name="junit.forkmode" value="perTest"/>
   6.378 +                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
   6.379 +                    <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
   6.380 +                    <syspropertyset>
   6.381 +                        <propertyref prefix="test-sys-prop."/>
   6.382 +                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
   6.383 +                    </syspropertyset>
   6.384 +                    <formatter type="brief" usefile="false"/>
   6.385 +                    <formatter type="xml"/>
   6.386 +                    <jvmarg value="-ea"/>
   6.387 +                    <customize/>
   6.388 +                </junit>
   6.389 +            </sequential>
   6.390 +        </macrodef>
   6.391 +    </target>
   6.392 +    <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
   6.393 +        <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.394 +            <attribute default="${includes}" name="includes"/>
   6.395 +            <attribute default="${excludes}" name="excludes"/>
   6.396 +            <attribute default="**" name="testincludes"/>
   6.397 +            <attribute default="" name="testmethods"/>
   6.398 +            <element name="customize" optional="true"/>
   6.399 +            <sequential>
   6.400 +                <property name="junit.forkmode" value="perTest"/>
   6.401 +                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
   6.402 +                    <batchtest todir="${build.test.results.dir}">
   6.403 +                        <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
   6.404 +                            <filename name="@{testincludes}"/>
   6.405 +                        </fileset>
   6.406 +                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
   6.407 +                            <filename name="${test.binarytestincludes}"/>
   6.408 +                        </fileset>
   6.409 +                    </batchtest>
   6.410 +                    <syspropertyset>
   6.411 +                        <propertyref prefix="test-sys-prop."/>
   6.412 +                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
   6.413 +                    </syspropertyset>
   6.414 +                    <formatter type="brief" usefile="false"/>
   6.415 +                    <formatter type="xml"/>
   6.416 +                    <jvmarg value="-ea"/>
   6.417 +                    <customize/>
   6.418 +                </junit>
   6.419 +            </sequential>
   6.420 +        </macrodef>
   6.421 +    </target>
   6.422 +    <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/>
   6.423 +    <target if="${testng.available}" name="-init-macrodef-testng">
   6.424 +        <macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.425 +            <attribute default="${includes}" name="includes"/>
   6.426 +            <attribute default="${excludes}" name="excludes"/>
   6.427 +            <attribute default="**" name="testincludes"/>
   6.428 +            <attribute default="" name="testmethods"/>
   6.429 +            <element name="customize" optional="true"/>
   6.430 +            <sequential>
   6.431 +                <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}">
   6.432 +                    <isset property="test.method"/>
   6.433 +                </condition>
   6.434 +                <union id="test.set">
   6.435 +                    <fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
   6.436 +                        <filename name="@{testincludes}"/>
   6.437 +                    </fileset>
   6.438 +                </union>
   6.439 +                <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
   6.440 +                <testng classfilesetref="test.set" failureProperty="tests.failed" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="example" testname="TestNG tests" workingDir="${work.dir}">
   6.441 +                    <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
   6.442 +                    <propertyset>
   6.443 +                        <propertyref prefix="test-sys-prop."/>
   6.444 +                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
   6.445 +                    </propertyset>
   6.446 +                    <customize/>
   6.447 +                </testng>
   6.448 +            </sequential>
   6.449 +        </macrodef>
   6.450 +    </target>
   6.451 +    <target name="-init-macrodef-test-impl">
   6.452 +        <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.453 +            <attribute default="${includes}" name="includes"/>
   6.454 +            <attribute default="${excludes}" name="excludes"/>
   6.455 +            <attribute default="**" name="testincludes"/>
   6.456 +            <attribute default="" name="testmethods"/>
   6.457 +            <element implicit="true" name="customize" optional="true"/>
   6.458 +            <sequential>
   6.459 +                <echo>No tests executed.</echo>
   6.460 +            </sequential>
   6.461 +        </macrodef>
   6.462 +    </target>
   6.463 +    <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl">
   6.464 +        <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.465 +            <attribute default="${includes}" name="includes"/>
   6.466 +            <attribute default="${excludes}" name="excludes"/>
   6.467 +            <attribute default="**" name="testincludes"/>
   6.468 +            <attribute default="" name="testmethods"/>
   6.469 +            <element implicit="true" name="customize" optional="true"/>
   6.470 +            <sequential>
   6.471 +                <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
   6.472 +                    <customize/>
   6.473 +                </j2seproject3:junit>
   6.474 +            </sequential>
   6.475 +        </macrodef>
   6.476 +    </target>
   6.477 +    <target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl">
   6.478 +        <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.479 +            <attribute default="${includes}" name="includes"/>
   6.480 +            <attribute default="${excludes}" name="excludes"/>
   6.481 +            <attribute default="**" name="testincludes"/>
   6.482 +            <attribute default="" name="testmethods"/>
   6.483 +            <element implicit="true" name="customize" optional="true"/>
   6.484 +            <sequential>
   6.485 +                <j2seproject3:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
   6.486 +                    <customize/>
   6.487 +                </j2seproject3:testng>
   6.488 +            </sequential>
   6.489 +        </macrodef>
   6.490 +    </target>
   6.491 +    <target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test">
   6.492 +        <macrodef name="test" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.493 +            <attribute default="${includes}" name="includes"/>
   6.494 +            <attribute default="${excludes}" name="excludes"/>
   6.495 +            <attribute default="**" name="testincludes"/>
   6.496 +            <attribute default="" name="testmethods"/>
   6.497 +            <sequential>
   6.498 +                <j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
   6.499 +                    <customize>
   6.500 +                        <classpath>
   6.501 +                            <path path="${run.test.classpath}"/>
   6.502 +                        </classpath>
   6.503 +                        <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
   6.504 +                        <jvmarg line="${run.jvmargs}"/>
   6.505 +                        <jvmarg line="${run.jvmargs.ide}"/>
   6.506 +                    </customize>
   6.507 +                </j2seproject3:test-impl>
   6.508 +            </sequential>
   6.509 +        </macrodef>
   6.510 +    </target>
   6.511 +    <target if="${junit.available}" name="-init-macrodef-junit-debug" unless="${nb.junit.batch}">
   6.512 +        <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.513 +            <attribute default="${includes}" name="includes"/>
   6.514 +            <attribute default="${excludes}" name="excludes"/>
   6.515 +            <attribute default="**" name="testincludes"/>
   6.516 +            <attribute default="" name="testmethods"/>
   6.517 +            <element name="customize" optional="true"/>
   6.518 +            <sequential>
   6.519 +                <property name="junit.forkmode" value="perTest"/>
   6.520 +                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
   6.521 +                    <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
   6.522 +                    <syspropertyset>
   6.523 +                        <propertyref prefix="test-sys-prop."/>
   6.524 +                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
   6.525 +                    </syspropertyset>
   6.526 +                    <formatter type="brief" usefile="false"/>
   6.527 +                    <formatter type="xml"/>
   6.528 +                    <jvmarg value="-ea"/>
   6.529 +                    <jvmarg line="${debug-args-line}"/>
   6.530 +                    <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
   6.531 +                    <customize/>
   6.532 +                </junit>
   6.533 +            </sequential>
   6.534 +        </macrodef>
   6.535 +    </target>
   6.536 +    <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
   6.537 +        <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.538 +            <attribute default="${includes}" name="includes"/>
   6.539 +            <attribute default="${excludes}" name="excludes"/>
   6.540 +            <attribute default="**" name="testincludes"/>
   6.541 +            <attribute default="" name="testmethods"/>
   6.542 +            <element name="customize" optional="true"/>
   6.543 +            <sequential>
   6.544 +                <property name="junit.forkmode" value="perTest"/>
   6.545 +                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
   6.546 +                    <batchtest todir="${build.test.results.dir}">
   6.547 +                        <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
   6.548 +                            <filename name="@{testincludes}"/>
   6.549 +                        </fileset>
   6.550 +                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
   6.551 +                            <filename name="${test.binarytestincludes}"/>
   6.552 +                        </fileset>
   6.553 +                    </batchtest>
   6.554 +                    <syspropertyset>
   6.555 +                        <propertyref prefix="test-sys-prop."/>
   6.556 +                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
   6.557 +                    </syspropertyset>
   6.558 +                    <formatter type="brief" usefile="false"/>
   6.559 +                    <formatter type="xml"/>
   6.560 +                    <jvmarg value="-ea"/>
   6.561 +                    <jvmarg line="${debug-args-line}"/>
   6.562 +                    <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
   6.563 +                    <customize/>
   6.564 +                </junit>
   6.565 +            </sequential>
   6.566 +        </macrodef>
   6.567 +    </target>
   6.568 +    <target depends="-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch" if="${junit.available}" name="-init-macrodef-junit-debug-impl">
   6.569 +        <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.570 +            <attribute default="${includes}" name="includes"/>
   6.571 +            <attribute default="${excludes}" name="excludes"/>
   6.572 +            <attribute default="**" name="testincludes"/>
   6.573 +            <attribute default="" name="testmethods"/>
   6.574 +            <element implicit="true" name="customize" optional="true"/>
   6.575 +            <sequential>
   6.576 +                <j2seproject3:junit-debug excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
   6.577 +                    <customize/>
   6.578 +                </j2seproject3:junit-debug>
   6.579 +            </sequential>
   6.580 +        </macrodef>
   6.581 +    </target>
   6.582 +    <target if="${testng.available}" name="-init-macrodef-testng-debug">
   6.583 +        <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.584 +            <attribute default="${main.class}" name="testClass"/>
   6.585 +            <attribute default="" name="testMethod"/>
   6.586 +            <element name="customize2" optional="true"/>
   6.587 +            <sequential>
   6.588 +                <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}">
   6.589 +                    <isset property="test.method"/>
   6.590 +                </condition>
   6.591 +                <condition else="-suitename example -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}">
   6.592 +                    <matches pattern=".*\.xml" string="@{testClass}"/>
   6.593 +                </condition>
   6.594 +                <delete dir="${build.test.results.dir}" quiet="true"/>
   6.595 +                <mkdir dir="${build.test.results.dir}"/>
   6.596 +                <j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}">
   6.597 +                    <customize>
   6.598 +                        <customize2/>
   6.599 +                        <jvmarg value="-ea"/>
   6.600 +                        <arg line="${testng.debug.mode}"/>
   6.601 +                        <arg line="-d ${build.test.results.dir}"/>
   6.602 +                        <arg line="-listener org.testng.reporters.VerboseReporter"/>
   6.603 +                        <arg line="${testng.cmd.args}"/>
   6.604 +                    </customize>
   6.605 +                </j2seproject3:debug>
   6.606 +            </sequential>
   6.607 +        </macrodef>
   6.608 +    </target>
   6.609 +    <target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl">
   6.610 +        <macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.611 +            <attribute default="${main.class}" name="testClass"/>
   6.612 +            <attribute default="" name="testMethod"/>
   6.613 +            <element implicit="true" name="customize2" optional="true"/>
   6.614 +            <sequential>
   6.615 +                <j2seproject3:testng-debug testClass="@{testClass}" testMethod="@{testMethod}">
   6.616 +                    <customize2/>
   6.617 +                </j2seproject3:testng-debug>
   6.618 +            </sequential>
   6.619 +        </macrodef>
   6.620 +    </target>
   6.621 +    <target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit">
   6.622 +        <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.623 +            <attribute default="${includes}" name="includes"/>
   6.624 +            <attribute default="${excludes}" name="excludes"/>
   6.625 +            <attribute default="**" name="testincludes"/>
   6.626 +            <attribute default="" name="testmethods"/>
   6.627 +            <attribute default="${main.class}" name="testClass"/>
   6.628 +            <attribute default="" name="testMethod"/>
   6.629 +            <sequential>
   6.630 +                <j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
   6.631 +                    <customize>
   6.632 +                        <classpath>
   6.633 +                            <path path="${run.test.classpath}"/>
   6.634 +                        </classpath>
   6.635 +                        <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
   6.636 +                        <jvmarg line="${run.jvmargs}"/>
   6.637 +                        <jvmarg line="${run.jvmargs.ide}"/>
   6.638 +                    </customize>
   6.639 +                </j2seproject3:test-debug-impl>
   6.640 +            </sequential>
   6.641 +        </macrodef>
   6.642 +    </target>
   6.643 +    <target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng">
   6.644 +        <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.645 +            <attribute default="${includes}" name="includes"/>
   6.646 +            <attribute default="${excludes}" name="excludes"/>
   6.647 +            <attribute default="**" name="testincludes"/>
   6.648 +            <attribute default="" name="testmethods"/>
   6.649 +            <attribute default="${main.class}" name="testClass"/>
   6.650 +            <attribute default="" name="testMethod"/>
   6.651 +            <sequential>
   6.652 +                <j2seproject3:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}">
   6.653 +                    <customize2>
   6.654 +                        <syspropertyset>
   6.655 +                            <propertyref prefix="test-sys-prop."/>
   6.656 +                            <mapper from="test-sys-prop.*" to="*" type="glob"/>
   6.657 +                        </syspropertyset>
   6.658 +                    </customize2>
   6.659 +                </j2seproject3:testng-debug-impl>
   6.660 +            </sequential>
   6.661 +        </macrodef>
   6.662 +    </target>
   6.663 +    <target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/>
   6.664 +    <!--
   6.665 +                pre NB7.2 profiling section; consider it deprecated
   6.666 +            -->
   6.667 +    <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/>
   6.668 +    <target if="profiler.info.jvmargs.agent" name="-profile-pre-init">
   6.669 +        <!-- Empty placeholder for easier customization. -->
   6.670 +        <!-- You can override this target in the ../build.xml file. -->
   6.671 +    </target>
   6.672 +    <target if="profiler.info.jvmargs.agent" name="-profile-post-init">
   6.673 +        <!-- Empty placeholder for easier customization. -->
   6.674 +        <!-- You can override this target in the ../build.xml file. -->
   6.675 +    </target>
   6.676 +    <target if="profiler.info.jvmargs.agent" name="-profile-init-macrodef-profile">
   6.677 +        <macrodef name="resolve">
   6.678 +            <attribute name="name"/>
   6.679 +            <attribute name="value"/>
   6.680 +            <sequential>
   6.681 +                <property name="@{name}" value="${env.@{value}}"/>
   6.682 +            </sequential>
   6.683 +        </macrodef>
   6.684 +        <macrodef name="profile">
   6.685 +            <attribute default="${main.class}" name="classname"/>
   6.686 +            <element name="customize" optional="true"/>
   6.687 +            <sequential>
   6.688 +                <property environment="env"/>
   6.689 +                <resolve name="profiler.current.path" value="${profiler.info.pathvar}"/>
   6.690 +                <java classname="@{classname}" dir="${profiler.info.dir}" fork="true" jvm="${profiler.info.jvm}">
   6.691 +                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
   6.692 +                    <jvmarg value="${profiler.info.jvmargs.agent}"/>
   6.693 +                    <jvmarg line="${profiler.info.jvmargs}"/>
   6.694 +                    <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
   6.695 +                    <arg line="${application.args}"/>
   6.696 +                    <classpath>
   6.697 +                        <path path="${run.classpath}"/>
   6.698 +                    </classpath>
   6.699 +                    <syspropertyset>
   6.700 +                        <propertyref prefix="run-sys-prop."/>
   6.701 +                        <mapper from="run-sys-prop.*" to="*" type="glob"/>
   6.702 +                    </syspropertyset>
   6.703 +                    <customize/>
   6.704 +                </java>
   6.705 +            </sequential>
   6.706 +        </macrodef>
   6.707 +    </target>
   6.708 +    <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" if="profiler.info.jvmargs.agent" name="-profile-init-check">
   6.709 +        <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail>
   6.710 +        <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>
   6.711 +    </target>
   6.712 +    <!--
   6.713 +                end of pre NB7.2 profiling section
   6.714 +            -->
   6.715 +    <target depends="-init-debug-args" name="-init-macrodef-nbjpda">
   6.716 +        <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
   6.717 +            <attribute default="${main.class}" name="name"/>
   6.718 +            <attribute default="${debug.classpath}" name="classpath"/>
   6.719 +            <attribute default="" name="stopclassname"/>
   6.720 +            <sequential>
   6.721 +                <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
   6.722 +                    <classpath>
   6.723 +                        <path path="@{classpath}"/>
   6.724 +                    </classpath>
   6.725 +                </nbjpdastart>
   6.726 +            </sequential>
   6.727 +        </macrodef>
   6.728 +        <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
   6.729 +            <attribute default="${build.classes.dir}" name="dir"/>
   6.730 +            <sequential>
   6.731 +                <nbjpdareload>
   6.732 +                    <fileset dir="@{dir}" includes="${fix.classes}">
   6.733 +                        <include name="${fix.includes}*.class"/>
   6.734 +                    </fileset>
   6.735 +                </nbjpdareload>
   6.736 +            </sequential>
   6.737 +        </macrodef>
   6.738 +    </target>
   6.739 +    <target name="-init-debug-args">
   6.740 +        <property name="version-output" value="java version &quot;${ant.java.version}"/>
   6.741 +        <condition property="have-jdk-older-than-1.4">
   6.742 +            <or>
   6.743 +                <contains string="${version-output}" substring="java version &quot;1.0"/>
   6.744 +                <contains string="${version-output}" substring="java version &quot;1.1"/>
   6.745 +                <contains string="${version-output}" substring="java version &quot;1.2"/>
   6.746 +                <contains string="${version-output}" substring="java version &quot;1.3"/>
   6.747 +            </or>
   6.748 +        </condition>
   6.749 +        <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
   6.750 +            <istrue value="${have-jdk-older-than-1.4}"/>
   6.751 +        </condition>
   6.752 +        <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
   6.753 +            <os family="windows"/>
   6.754 +        </condition>
   6.755 +        <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
   6.756 +            <isset property="debug.transport"/>
   6.757 +        </condition>
   6.758 +    </target>
   6.759 +    <target depends="-init-debug-args" name="-init-macrodef-debug">
   6.760 +        <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.761 +            <attribute default="${main.class}" name="classname"/>
   6.762 +            <attribute default="${debug.classpath}" name="classpath"/>
   6.763 +            <element name="customize" optional="true"/>
   6.764 +            <sequential>
   6.765 +                <java classname="@{classname}" dir="${work.dir}" fork="true">
   6.766 +                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
   6.767 +                    <jvmarg line="${debug-args-line}"/>
   6.768 +                    <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
   6.769 +                    <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
   6.770 +                    <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
   6.771 +                    <jvmarg line="${run.jvmargs}"/>
   6.772 +                    <jvmarg line="${run.jvmargs.ide}"/>
   6.773 +                    <classpath>
   6.774 +                        <path path="@{classpath}"/>
   6.775 +                    </classpath>
   6.776 +                    <syspropertyset>
   6.777 +                        <propertyref prefix="run-sys-prop."/>
   6.778 +                        <mapper from="run-sys-prop.*" to="*" type="glob"/>
   6.779 +                    </syspropertyset>
   6.780 +                    <customize/>
   6.781 +                </java>
   6.782 +            </sequential>
   6.783 +        </macrodef>
   6.784 +    </target>
   6.785 +    <target name="-init-macrodef-java">
   6.786 +        <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
   6.787 +            <attribute default="${main.class}" name="classname"/>
   6.788 +            <attribute default="${run.classpath}" name="classpath"/>
   6.789 +            <attribute default="jvm" name="jvm"/>
   6.790 +            <element name="customize" optional="true"/>
   6.791 +            <sequential>
   6.792 +                <java classname="@{classname}" dir="${work.dir}" fork="true">
   6.793 +                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
   6.794 +                    <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
   6.795 +                    <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
   6.796 +                    <jvmarg line="${run.jvmargs}"/>
   6.797 +                    <jvmarg line="${run.jvmargs.ide}"/>
   6.798 +                    <classpath>
   6.799 +                        <path path="@{classpath}"/>
   6.800 +                    </classpath>
   6.801 +                    <syspropertyset>
   6.802 +                        <propertyref prefix="run-sys-prop."/>
   6.803 +                        <mapper from="run-sys-prop.*" to="*" type="glob"/>
   6.804 +                    </syspropertyset>
   6.805 +                    <customize/>
   6.806 +                </java>
   6.807 +            </sequential>
   6.808 +        </macrodef>
   6.809 +    </target>
   6.810 +    <target name="-init-macrodef-copylibs">
   6.811 +        <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3">
   6.812 +            <attribute default="${manifest.file}" name="manifest"/>
   6.813 +            <element name="customize" optional="true"/>
   6.814 +            <sequential>
   6.815 +                <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
   6.816 +                <pathconvert property="run.classpath.without.build.classes.dir">
   6.817 +                    <path path="${run.classpath}"/>
   6.818 +                    <map from="${build.classes.dir.resolved}" to=""/>
   6.819 +                </pathconvert>
   6.820 +                <pathconvert pathsep=" " property="jar.classpath">
   6.821 +                    <path path="${run.classpath.without.build.classes.dir}"/>
   6.822 +                    <chainedmapper>
   6.823 +                        <flattenmapper/>
   6.824 +                        <filtermapper>
   6.825 +                            <replacestring from=" " to="%20"/>
   6.826 +                        </filtermapper>
   6.827 +                        <globmapper from="*" to="lib/*"/>
   6.828 +                    </chainedmapper>
   6.829 +                </pathconvert>
   6.830 +                <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
   6.831 +                <copylibs compress="${jar.compress}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
   6.832 +                    <fileset dir="${build.classes.dir}"/>
   6.833 +                    <manifest>
   6.834 +                        <attribute name="Class-Path" value="${jar.classpath}"/>
   6.835 +                        <customize/>
   6.836 +                    </manifest>
   6.837 +                </copylibs>
   6.838 +            </sequential>
   6.839 +        </macrodef>
   6.840 +    </target>
   6.841 +    <target name="-init-presetdef-jar">
   6.842 +        <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
   6.843 +            <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
   6.844 +                <j2seproject1:fileset dir="${build.classes.dir}"/>
   6.845 +            </jar>
   6.846 +        </presetdef>
   6.847 +    </target>
   6.848 +    <target name="-init-ap-cmdline-properties">
   6.849 +        <property name="annotation.processing.enabled" value="true"/>
   6.850 +        <property name="annotation.processing.processors.list" value=""/>
   6.851 +        <property name="annotation.processing.processor.options" value=""/>
   6.852 +        <property name="annotation.processing.run.all.processors" value="true"/>
   6.853 +        <property name="javac.processorpath" value="${javac.classpath}"/>
   6.854 +        <property name="javac.test.processorpath" value="${javac.test.classpath}"/>
   6.855 +        <condition property="ap.supported.internal" value="true">
   6.856 +            <not>
   6.857 +                <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
   6.858 +            </not>
   6.859 +        </condition>
   6.860 +    </target>
   6.861 +    <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
   6.862 +        <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
   6.863 +            <isfalse value="${annotation.processing.run.all.processors}"/>
   6.864 +        </condition>
   6.865 +        <condition else="" property="ap.proc.none.internal" value="-proc:none">
   6.866 +            <isfalse value="${annotation.processing.enabled}"/>
   6.867 +        </condition>
   6.868 +    </target>
   6.869 +    <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
   6.870 +        <property name="ap.cmd.line.internal" value=""/>
   6.871 +    </target>
   6.872 +    <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
   6.873 +    <!--
   6.874 +                ===================
   6.875 +                COMPILATION SECTION
   6.876 +                ===================
   6.877 +            -->
   6.878 +    <target name="-deps-jar-init" unless="built-jar.properties">
   6.879 +        <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/>
   6.880 +        <delete file="${built-jar.properties}" quiet="true"/>
   6.881 +    </target>
   6.882 +    <target if="already.built.jar.${basedir}" name="-warn-already-built-jar">
   6.883 +        <echo level="warn" message="Cycle detected: example was already built"/>
   6.884 +    </target>
   6.885 +    <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps">
   6.886 +        <mkdir dir="${build.dir}"/>
   6.887 +        <touch file="${built-jar.properties}" verbose="false"/>
   6.888 +        <property file="${built-jar.properties}" prefix="already.built.jar."/>
   6.889 +        <antcall target="-warn-already-built-jar"/>
   6.890 +        <propertyfile file="${built-jar.properties}">
   6.891 +            <entry key="${basedir}" value=""/>
   6.892 +        </propertyfile>
   6.893 +    </target>
   6.894 +    <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
   6.895 +    <target depends="init" name="-check-automatic-build">
   6.896 +        <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
   6.897 +    </target>
   6.898 +    <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
   6.899 +        <antcall target="clean"/>
   6.900 +    </target>
   6.901 +    <target depends="init,deps-jar" name="-pre-pre-compile">
   6.902 +        <mkdir dir="${build.classes.dir}"/>
   6.903 +    </target>
   6.904 +    <target name="-pre-compile">
   6.905 +        <!-- Empty placeholder for easier customization. -->
   6.906 +        <!-- You can override this target in the ../build.xml file. -->
   6.907 +    </target>
   6.908 +    <target if="do.depend.true" name="-compile-depend">
   6.909 +        <pathconvert property="build.generated.subdirs">
   6.910 +            <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
   6.911 +                <include name="*"/>
   6.912 +            </dirset>
   6.913 +        </pathconvert>
   6.914 +        <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
   6.915 +    </target>
   6.916 +    <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile">
   6.917 +        <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
   6.918 +        <copy todir="${build.classes.dir}">
   6.919 +            <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
   6.920 +        </copy>
   6.921 +    </target>
   6.922 +    <target if="has.persistence.xml" name="-copy-persistence-xml">
   6.923 +        <mkdir dir="${build.classes.dir}/META-INF"/>
   6.924 +        <copy todir="${build.classes.dir}/META-INF">
   6.925 +            <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/>
   6.926 +        </copy>
   6.927 +    </target>
   6.928 +    <target name="-post-compile">
   6.929 +        <!-- Empty placeholder for easier customization. -->
   6.930 +        <!-- You can override this target in the ../build.xml file. -->
   6.931 +    </target>
   6.932 +    <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
   6.933 +    <target name="-pre-compile-single">
   6.934 +        <!-- Empty placeholder for easier customization. -->
   6.935 +        <!-- You can override this target in the ../build.xml file. -->
   6.936 +    </target>
   6.937 +    <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
   6.938 +        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
   6.939 +        <j2seproject3:force-recompile/>
   6.940 +        <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/>
   6.941 +    </target>
   6.942 +    <target name="-post-compile-single">
   6.943 +        <!-- Empty placeholder for easier customization. -->
   6.944 +        <!-- You can override this target in the ../build.xml file. -->
   6.945 +    </target>
   6.946 +    <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
   6.947 +    <!--
   6.948 +                ====================
   6.949 +                JAR BUILDING SECTION
   6.950 +                ====================
   6.951 +            -->
   6.952 +    <target depends="init" name="-pre-pre-jar">
   6.953 +        <dirname file="${dist.jar}" property="dist.jar.dir"/>
   6.954 +        <mkdir dir="${dist.jar.dir}"/>
   6.955 +    </target>
   6.956 +    <target name="-pre-jar">
   6.957 +        <!-- Empty placeholder for easier customization. -->
   6.958 +        <!-- You can override this target in the ../build.xml file. -->
   6.959 +    </target>
   6.960 +    <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available">
   6.961 +        <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
   6.962 +        <touch file="${tmp.manifest.file}" verbose="false"/>
   6.963 +    </target>
   6.964 +    <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest">
   6.965 +        <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
   6.966 +        <copy file="${manifest.file}" tofile="${tmp.manifest.file}"/>
   6.967 +    </target>
   6.968 +    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass">
   6.969 +        <manifest file="${tmp.manifest.file}" mode="update">
   6.970 +            <attribute name="Main-Class" value="${main.class}"/>
   6.971 +        </manifest>
   6.972 +    </target>
   6.973 +    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile">
   6.974 +        <manifest file="${tmp.manifest.file}" mode="update">
   6.975 +            <attribute name="Profile" value="${javac.profile}"/>
   6.976 +        </manifest>
   6.977 +    </target>
   6.978 +    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen">
   6.979 +        <basename file="${application.splash}" property="splashscreen.basename"/>
   6.980 +        <mkdir dir="${build.classes.dir}/META-INF"/>
   6.981 +        <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
   6.982 +        <manifest file="${tmp.manifest.file}" mode="update">
   6.983 +            <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
   6.984 +        </manifest>
   6.985 +    </target>
   6.986 +    <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">
   6.987 +        <j2seproject3:copylibs manifest="${tmp.manifest.file}"/>
   6.988 +        <echo level="info">To run this application from the command line without Ant, try:</echo>
   6.989 +        <property location="${dist.jar}" name="dist.jar.resolved"/>
   6.990 +        <echo level="info">java -jar "${dist.jar.resolved}"</echo>
   6.991 +    </target>
   6.992 +    <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">
   6.993 +        <j2seproject1:jar manifest="${tmp.manifest.file}"/>
   6.994 +        <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
   6.995 +        <property location="${dist.jar}" name="dist.jar.resolved"/>
   6.996 +        <pathconvert property="run.classpath.with.dist.jar">
   6.997 +            <path path="${run.classpath}"/>
   6.998 +            <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
   6.999 +        </pathconvert>
  6.1000 +        <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}">
  6.1001 +            <isset property="main.class.available"/>
  6.1002 +        </condition>
  6.1003 +        <condition else="debug" property="jar.usage.level" value="info">
  6.1004 +            <isset property="main.class.available"/>
  6.1005 +        </condition>
  6.1006 +        <echo level="${jar.usage.level}" message="${jar.usage.message}"/>
  6.1007 +    </target>
  6.1008 +    <target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest">
  6.1009 +        <delete>
  6.1010 +            <fileset file="${tmp.manifest.file}"/>
  6.1011 +        </delete>
  6.1012 +    </target>
  6.1013 +    <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"/>
  6.1014 +    <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"/>
  6.1015 +    <target name="-post-jar">
  6.1016 +        <!-- Empty placeholder for easier customization. -->
  6.1017 +        <!-- You can override this target in the ../build.xml file. -->
  6.1018 +    </target>
  6.1019 +    <target depends="init,compile,-pre-jar,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/>
  6.1020 +    <target depends="init,compile,-pre-jar,-do-jar,-post-jar" description="Build JAR." name="jar"/>
  6.1021 +    <!--
  6.1022 +                =================
  6.1023 +                EXECUTION SECTION
  6.1024 +                =================
  6.1025 +            -->
  6.1026 +    <target depends="init,compile" description="Run a main class." name="run">
  6.1027 +        <j2seproject1:java>
  6.1028 +            <customize>
  6.1029 +                <arg line="${application.args}"/>
  6.1030 +            </customize>
  6.1031 +        </j2seproject1:java>
  6.1032 +    </target>
  6.1033 +    <target name="-do-not-recompile">
  6.1034 +        <property name="javac.includes.binary" value=""/>
  6.1035 +    </target>
  6.1036 +    <target depends="init,compile-single" name="run-single">
  6.1037 +        <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
  6.1038 +        <j2seproject1:java classname="${run.class}"/>
  6.1039 +    </target>
  6.1040 +    <target depends="init,compile-test-single" name="run-test-with-main">
  6.1041 +        <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
  6.1042 +        <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
  6.1043 +    </target>
  6.1044 +    <!--
  6.1045 +                =================
  6.1046 +                DEBUGGING SECTION
  6.1047 +                =================
  6.1048 +            -->
  6.1049 +    <target depends="init" if="netbeans.home" name="-debug-start-debugger">
  6.1050 +        <j2seproject1:nbjpdastart name="${debug.class}"/>
  6.1051 +    </target>
  6.1052 +    <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
  6.1053 +        <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
  6.1054 +    </target>
  6.1055 +    <target depends="init,compile" name="-debug-start-debuggee">
  6.1056 +        <j2seproject3:debug>
  6.1057 +            <customize>
  6.1058 +                <arg line="${application.args}"/>
  6.1059 +            </customize>
  6.1060 +        </j2seproject3:debug>
  6.1061 +    </target>
  6.1062 +    <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
  6.1063 +    <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
  6.1064 +        <j2seproject1:nbjpdastart stopclassname="${main.class}"/>
  6.1065 +    </target>
  6.1066 +    <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
  6.1067 +    <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
  6.1068 +        <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
  6.1069 +        <j2seproject3:debug classname="${debug.class}"/>
  6.1070 +    </target>
  6.1071 +    <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
  6.1072 +    <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
  6.1073 +        <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
  6.1074 +        <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
  6.1075 +    </target>
  6.1076 +    <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
  6.1077 +    <target depends="init" name="-pre-debug-fix">
  6.1078 +        <fail unless="fix.includes">Must set fix.includes</fail>
  6.1079 +        <property name="javac.includes" value="${fix.includes}.java"/>
  6.1080 +    </target>
  6.1081 +    <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
  6.1082 +        <j2seproject1:nbjpdareload/>
  6.1083 +    </target>
  6.1084 +    <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
  6.1085 +    <!--
  6.1086 +                =================
  6.1087 +                PROFILING SECTION
  6.1088 +                =================
  6.1089 +            -->
  6.1090 +    <!--
  6.1091 +                pre NB7.2 profiler integration
  6.1092 +            -->
  6.1093 +    <target depends="profile-init,compile" description="Profile a project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72">
  6.1094 +        <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
  6.1095 +        <nbprofiledirect>
  6.1096 +            <classpath>
  6.1097 +                <path path="${run.classpath}"/>
  6.1098 +            </classpath>
  6.1099 +        </nbprofiledirect>
  6.1100 +        <profile/>
  6.1101 +    </target>
  6.1102 +    <target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="profiler.info.jvmargs.agent" name="-profile-single-pre72">
  6.1103 +        <fail unless="profile.class">Must select one file in the IDE or set profile.class</fail>
  6.1104 +        <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
  6.1105 +        <nbprofiledirect>
  6.1106 +            <classpath>
  6.1107 +                <path path="${run.classpath}"/>
  6.1108 +            </classpath>
  6.1109 +        </nbprofiledirect>
  6.1110 +        <profile classname="${profile.class}"/>
  6.1111 +    </target>
  6.1112 +    <target depends="profile-init,compile-single" if="profiler.info.jvmargs.agent" name="-profile-applet-pre72">
  6.1113 +        <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
  6.1114 +        <nbprofiledirect>
  6.1115 +            <classpath>
  6.1116 +                <path path="${run.classpath}"/>
  6.1117 +            </classpath>
  6.1118 +        </nbprofiledirect>
  6.1119 +        <profile classname="sun.applet.AppletViewer">
  6.1120 +            <customize>
  6.1121 +                <arg value="${applet.url}"/>
  6.1122 +            </customize>
  6.1123 +        </profile>
  6.1124 +    </target>
  6.1125 +    <target depends="profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72">
  6.1126 +        <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
  6.1127 +        <nbprofiledirect>
  6.1128 +            <classpath>
  6.1129 +                <path path="${run.test.classpath}"/>
  6.1130 +            </classpath>
  6.1131 +        </nbprofiledirect>
  6.1132 +        <junit dir="${profiler.info.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${profiler.info.jvm}" showoutput="true">
  6.1133 +            <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
  6.1134 +            <jvmarg value="${profiler.info.jvmargs.agent}"/>
  6.1135 +            <jvmarg line="${profiler.info.jvmargs}"/>
  6.1136 +            <test name="${profile.class}"/>
  6.1137 +            <classpath>
  6.1138 +                <path path="${run.test.classpath}"/>
  6.1139 +            </classpath>
  6.1140 +            <syspropertyset>
  6.1141 +                <propertyref prefix="test-sys-prop."/>
  6.1142 +                <mapper from="test-sys-prop.*" to="*" type="glob"/>
  6.1143 +            </syspropertyset>
  6.1144 +            <formatter type="brief" usefile="false"/>
  6.1145 +            <formatter type="xml"/>
  6.1146 +        </junit>
  6.1147 +    </target>
  6.1148 +    <!--
  6.1149 +                end of pre NB72 profiling section
  6.1150 +            -->
  6.1151 +    <target if="netbeans.home" name="-profile-check">
  6.1152 +        <condition property="profiler.configured">
  6.1153 +            <or>
  6.1154 +                <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/>
  6.1155 +                <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/>
  6.1156 +            </or>
  6.1157 +        </condition>
  6.1158 +    </target>
  6.1159 +    <target depends="-profile-check,-profile-pre72" description="Profile a project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent">
  6.1160 +        <startprofiler/>
  6.1161 +        <antcall target="run"/>
  6.1162 +    </target>
  6.1163 +    <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">
  6.1164 +        <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
  6.1165 +        <startprofiler/>
  6.1166 +        <antcall target="run-single"/>
  6.1167 +    </target>
  6.1168 +    <target depends="-profile-test-single-pre72" description="Profile a selected test in the IDE." name="profile-test-single"/>
  6.1169 +    <target depends="-profile-check" description="Profile a selected test in the IDE." if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs">
  6.1170 +        <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
  6.1171 +        <startprofiler/>
  6.1172 +        <antcall target="test-single"/>
  6.1173 +    </target>
  6.1174 +    <target depends="-profile-check" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-test-with-main">
  6.1175 +        <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
  6.1176 +        <startprofiler/>
  6.1177 +        <antcal target="run-test-with-main"/>
  6.1178 +    </target>
  6.1179 +    <target depends="-profile-check,-profile-applet-pre72" if="profiler.configured" name="profile-applet" unless="profiler.info.jvmargs.agent">
  6.1180 +        <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
  6.1181 +        <startprofiler/>
  6.1182 +        <antcall target="run-applet"/>
  6.1183 +    </target>
  6.1184 +    <!--
  6.1185 +                ===============
  6.1186 +                JAVADOC SECTION
  6.1187 +                ===============
  6.1188 +            -->
  6.1189 +    <target depends="init" if="have.sources" name="-javadoc-build">
  6.1190 +        <mkdir dir="${dist.javadoc.dir}"/>
  6.1191 +        <condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}">
  6.1192 +            <and>
  6.1193 +                <isset property="endorsed.classpath.cmd.line.arg"/>
  6.1194 +                <not>
  6.1195 +                    <equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/>
  6.1196 +                </not>
  6.1197 +            </and>
  6.1198 +        </condition>
  6.1199 +        <javadoc additionalparam="${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}">
  6.1200 +            <classpath>
  6.1201 +                <path path="${javac.classpath}"/>
  6.1202 +            </classpath>
  6.1203 +            <fileset dir="${src.dir}" excludes="*.java,${excludes}" includes="${includes}">
  6.1204 +                <filename name="**/*.java"/>
  6.1205 +            </fileset>
  6.1206 +            <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
  6.1207 +                <include name="**/*.java"/>
  6.1208 +                <exclude name="*.java"/>
  6.1209 +            </fileset>
  6.1210 +            <arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/>
  6.1211 +        </javadoc>
  6.1212 +        <copy todir="${dist.javadoc.dir}">
  6.1213 +            <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
  6.1214 +                <filename name="**/doc-files/**"/>
  6.1215 +            </fileset>
  6.1216 +            <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
  6.1217 +                <include name="**/doc-files/**"/>
  6.1218 +            </fileset>
  6.1219 +        </copy>
  6.1220 +    </target>
  6.1221 +    <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
  6.1222 +        <nbbrowse file="${dist.javadoc.dir}/index.html"/>
  6.1223 +    </target>
  6.1224 +    <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
  6.1225 +    <!--
  6.1226 +                =========================
  6.1227 +                TEST COMPILATION SECTION
  6.1228 +                =========================
  6.1229 +            -->
  6.1230 +    <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
  6.1231 +        <mkdir dir="${build.test.classes.dir}"/>
  6.1232 +    </target>
  6.1233 +    <target name="-pre-compile-test">
  6.1234 +        <!-- Empty placeholder for easier customization. -->
  6.1235 +        <!-- You can override this target in the ../build.xml file. -->
  6.1236 +    </target>
  6.1237 +    <target if="do.depend.true" name="-compile-test-depend">
  6.1238 +        <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
  6.1239 +    </target>
  6.1240 +    <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
  6.1241 +        <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}"/>
  6.1242 +        <copy todir="${build.test.classes.dir}">
  6.1243 +            <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
  6.1244 +        </copy>
  6.1245 +    </target>
  6.1246 +    <target name="-post-compile-test">
  6.1247 +        <!-- Empty placeholder for easier customization. -->
  6.1248 +        <!-- You can override this target in the ../build.xml file. -->
  6.1249 +    </target>
  6.1250 +    <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
  6.1251 +    <target name="-pre-compile-test-single">
  6.1252 +        <!-- Empty placeholder for easier customization. -->
  6.1253 +        <!-- You can override this target in the ../build.xml file. -->
  6.1254 +    </target>
  6.1255 +    <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
  6.1256 +        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
  6.1257 +        <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
  6.1258 +        <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}"/>
  6.1259 +        <copy todir="${build.test.classes.dir}">
  6.1260 +            <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
  6.1261 +        </copy>
  6.1262 +    </target>
  6.1263 +    <target name="-post-compile-test-single">
  6.1264 +        <!-- Empty placeholder for easier customization. -->
  6.1265 +        <!-- You can override this target in the ../build.xml file. -->
  6.1266 +    </target>
  6.1267 +    <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
  6.1268 +    <!--
  6.1269 +                =======================
  6.1270 +                TEST EXECUTION SECTION
  6.1271 +                =======================
  6.1272 +            -->
  6.1273 +    <target depends="init" if="have.tests" name="-pre-test-run">
  6.1274 +        <mkdir dir="${build.test.results.dir}"/>
  6.1275 +    </target>
  6.1276 +    <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
  6.1277 +        <j2seproject3:test testincludes="**/*Test.java"/>
  6.1278 +    </target>
  6.1279 +    <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
  6.1280 +        <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
  6.1281 +    </target>
  6.1282 +    <target depends="init" if="have.tests" name="test-report"/>
  6.1283 +    <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
  6.1284 +    <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
  6.1285 +    <target depends="init" if="have.tests" name="-pre-test-run-single">
  6.1286 +        <mkdir dir="${build.test.results.dir}"/>
  6.1287 +    </target>
  6.1288 +    <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
  6.1289 +        <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
  6.1290 +        <j2seproject3:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/>
  6.1291 +    </target>
  6.1292 +    <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
  6.1293 +        <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
  6.1294 +    </target>
  6.1295 +    <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"/>
  6.1296 +    <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method">
  6.1297 +        <fail unless="test.class">Must select some files in the IDE or set test.class</fail>
  6.1298 +        <fail unless="test.method">Must select some method in the IDE or set test.method</fail>
  6.1299 +        <j2seproject3:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/>
  6.1300 +    </target>
  6.1301 +    <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method">
  6.1302 +        <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
  6.1303 +    </target>
  6.1304 +    <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"/>
  6.1305 +    <!--
  6.1306 +                =======================
  6.1307 +                TEST DEBUGGING SECTION
  6.1308 +                =======================
  6.1309 +            -->
  6.1310 +    <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test">
  6.1311 +        <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
  6.1312 +        <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/>
  6.1313 +    </target>
  6.1314 +    <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method">
  6.1315 +        <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
  6.1316 +        <fail unless="test.method">Must select some method in the IDE or set test.method</fail>
  6.1317 +        <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/>
  6.1318 +    </target>
  6.1319 +    <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
  6.1320 +        <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
  6.1321 +    </target>
  6.1322 +    <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
  6.1323 +    <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/>
  6.1324 +    <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
  6.1325 +        <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
  6.1326 +    </target>
  6.1327 +    <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
  6.1328 +    <!--
  6.1329 +                =========================
  6.1330 +                APPLET EXECUTION SECTION
  6.1331 +                =========================
  6.1332 +            -->
  6.1333 +    <target depends="init,compile-single" name="run-applet">
  6.1334 +        <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
  6.1335 +        <j2seproject1:java classname="sun.applet.AppletViewer">
  6.1336 +            <customize>
  6.1337 +                <arg value="${applet.url}"/>
  6.1338 +            </customize>
  6.1339 +        </j2seproject1:java>
  6.1340 +    </target>
  6.1341 +    <!--
  6.1342 +                =========================
  6.1343 +                APPLET DEBUGGING  SECTION
  6.1344 +                =========================
  6.1345 +            -->
  6.1346 +    <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
  6.1347 +        <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
  6.1348 +        <j2seproject3:debug classname="sun.applet.AppletViewer">
  6.1349 +            <customize>
  6.1350 +                <arg value="${applet.url}"/>
  6.1351 +            </customize>
  6.1352 +        </j2seproject3:debug>
  6.1353 +    </target>
  6.1354 +    <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
  6.1355 +    <!--
  6.1356 +                ===============
  6.1357 +                CLEANUP SECTION
  6.1358 +                ===============
  6.1359 +            -->
  6.1360 +    <target name="-deps-clean-init" unless="built-clean.properties">
  6.1361 +        <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/>
  6.1362 +        <delete file="${built-clean.properties}" quiet="true"/>
  6.1363 +    </target>
  6.1364 +    <target if="already.built.clean.${basedir}" name="-warn-already-built-clean">
  6.1365 +        <echo level="warn" message="Cycle detected: example was already built"/>
  6.1366 +    </target>
  6.1367 +    <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps">
  6.1368 +        <mkdir dir="${build.dir}"/>
  6.1369 +        <touch file="${built-clean.properties}" verbose="false"/>
  6.1370 +        <property file="${built-clean.properties}" prefix="already.built.clean."/>
  6.1371 +        <antcall target="-warn-already-built-clean"/>
  6.1372 +        <propertyfile file="${built-clean.properties}">
  6.1373 +            <entry key="${basedir}" value=""/>
  6.1374 +        </propertyfile>
  6.1375 +    </target>
  6.1376 +    <target depends="init" name="-do-clean">
  6.1377 +        <delete dir="${build.dir}"/>
  6.1378 +        <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/>
  6.1379 +    </target>
  6.1380 +    <target name="-post-clean">
  6.1381 +        <!-- Empty placeholder for easier customization. -->
  6.1382 +        <!-- You can override this target in the ../build.xml file. -->
  6.1383 +    </target>
  6.1384 +    <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
  6.1385 +    <target name="-check-call-dep">
  6.1386 +        <property file="${call.built.properties}" prefix="already.built."/>
  6.1387 +        <condition property="should.call.dep">
  6.1388 +            <and>
  6.1389 +                <not>
  6.1390 +                    <isset property="already.built.${call.subproject}"/>
  6.1391 +                </not>
  6.1392 +                <available file="${call.script}"/>
  6.1393 +            </and>
  6.1394 +        </condition>
  6.1395 +    </target>
  6.1396 +    <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
  6.1397 +        <ant antfile="${call.script}" inheritall="false" target="${call.target}">
  6.1398 +            <propertyset>
  6.1399 +                <propertyref prefix="transfer."/>
  6.1400 +                <mapper from="transfer.*" to="*" type="glob"/>
  6.1401 +            </propertyset>
  6.1402 +        </ant>
  6.1403 +    </target>
  6.1404 +</project>
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/remoting/server/tests/integration-data/example/nbproject/genfiles.properties	Wed Apr 17 19:44:36 2013 +0200
     7.3 @@ -0,0 +1,8 @@
     7.4 +build.xml.data.CRC32=e1bb0e2b
     7.5 +build.xml.script.CRC32=825a45da
     7.6 +build.xml.stylesheet.CRC32=8064a381@1.61.0.46
     7.7 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
     7.8 +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
     7.9 +nbproject/build-impl.xml.data.CRC32=e1bb0e2b
    7.10 +nbproject/build-impl.xml.script.CRC32=9957d528
    7.11 +nbproject/build-impl.xml.stylesheet.CRC32=c4a38350@1.61.0.46
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/remoting/server/tests/integration-data/example/nbproject/project.properties	Wed Apr 17 19:44:36 2013 +0200
     8.3 @@ -0,0 +1,71 @@
     8.4 +annotation.processing.enabled=true
     8.5 +annotation.processing.enabled.in.editor=false
     8.6 +annotation.processing.processor.options=
     8.7 +annotation.processing.processors.list=
     8.8 +annotation.processing.run.all.processors=true
     8.9 +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
    8.10 +build.classes.dir=${build.dir}/classes
    8.11 +build.classes.excludes=**/*.java,**/*.form
    8.12 +# This directory is removed when the project is cleaned:
    8.13 +build.dir=build
    8.14 +build.generated.dir=${build.dir}/generated
    8.15 +build.generated.sources.dir=${build.dir}/generated-sources
    8.16 +# Only compile against the classpath explicitly listed here:
    8.17 +build.sysclasspath=ignore
    8.18 +build.test.classes.dir=${build.dir}/test/classes
    8.19 +build.test.results.dir=${build.dir}/test/results
    8.20 +# Uncomment to specify the preferred debugger connection transport:
    8.21 +#debug.transport=dt_socket
    8.22 +debug.classpath=\
    8.23 +    ${run.classpath}
    8.24 +debug.test.classpath=\
    8.25 +    ${run.test.classpath}
    8.26 +# This directory is removed when the project is cleaned:
    8.27 +dist.dir=dist
    8.28 +dist.jar=${dist.dir}/example.jar
    8.29 +dist.javadoc.dir=${dist.dir}/javadoc
    8.30 +excludes=
    8.31 +includes=**
    8.32 +jar.compress=false
    8.33 +javac.classpath=
    8.34 +# Space-separated list of extra javac options
    8.35 +javac.compilerargs=
    8.36 +javac.deprecation=false
    8.37 +javac.processorpath=\
    8.38 +    ${javac.classpath}
    8.39 +javac.source=1.6
    8.40 +javac.target=1.6
    8.41 +javac.test.classpath=\
    8.42 +    ${javac.classpath}:\
    8.43 +    ${build.classes.dir}
    8.44 +javac.test.processorpath=\
    8.45 +    ${javac.test.classpath}
    8.46 +javadoc.additionalparam=
    8.47 +javadoc.author=false
    8.48 +javadoc.encoding=${source.encoding}
    8.49 +javadoc.noindex=false
    8.50 +javadoc.nonavbar=false
    8.51 +javadoc.notree=false
    8.52 +javadoc.private=false
    8.53 +javadoc.splitindex=true
    8.54 +javadoc.use=true
    8.55 +javadoc.version=false
    8.56 +javadoc.windowtitle=
    8.57 +main.class=
    8.58 +manifest.file=manifest.mf
    8.59 +meta.inf.dir=${src.dir}/META-INF
    8.60 +mkdist.disabled=false
    8.61 +platform.active=default_platform
    8.62 +run.classpath=\
    8.63 +    ${javac.classpath}:\
    8.64 +    ${build.classes.dir}
    8.65 +# Space-separated list of JVM arguments used when running the project.
    8.66 +# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
    8.67 +# To set system properties for unit tests define test-sys-prop.name=value:
    8.68 +run.jvmargs=
    8.69 +run.test.classpath=\
    8.70 +    ${javac.test.classpath}:\
    8.71 +    ${build.test.classes.dir}
    8.72 +source.encoding=UTF-8
    8.73 +src.dir=src
    8.74 +test.src.dir=test
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/remoting/server/tests/integration-data/example/nbproject/project.xml	Wed Apr 17 19:44:36 2013 +0200
     9.3 @@ -0,0 +1,15 @@
     9.4 +<?xml version="1.0" encoding="UTF-8"?>
     9.5 +<project xmlns="http://www.netbeans.org/ns/project/1">
     9.6 +    <type>org.netbeans.modules.java.j2seproject</type>
     9.7 +    <configuration>
     9.8 +        <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
     9.9 +            <name>example</name>
    9.10 +            <source-roots>
    9.11 +                <root id="src.dir"/>
    9.12 +            </source-roots>
    9.13 +            <test-roots>
    9.14 +                <root id="test.src.dir"/>
    9.15 +            </test-roots>
    9.16 +        </data>
    9.17 +    </configuration>
    9.18 +</project>
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/remoting/server/tests/integration-data/example/src/org/netbeans/modules/jackpot30/example/ClassA.java	Wed Apr 17 19:44:36 2013 +0200
    10.3 @@ -0,0 +1,7 @@
    10.4 +package org.netbeans.modules.jackpot30.example;
    10.5 +
    10.6 +public class ClassA {
    10.7 +
    10.8 +    public void method() {}
    10.9 +    
   10.10 +}
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/remoting/server/tests/integration-data/example/src/org/netbeans/modules/jackpot30/example/SubClassA.java	Wed Apr 17 19:44:36 2013 +0200
    11.3 @@ -0,0 +1,9 @@
    11.4 +package org.netbeans.modules.jackpot30.example;
    11.5 +
    11.6 +public class SubClassA extends ClassA {
    11.7 +
    11.8 +    @Override
    11.9 +    public void method() {
   11.10 +    }
   11.11 +
   11.12 +}
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/remoting/server/tests/integration-data/example/src/org/netbeans/modules/jackpot30/example/UseClassA.java	Wed Apr 17 19:44:36 2013 +0200
    12.3 @@ -0,0 +1,9 @@
    12.4 +package org.netbeans.modules.jackpot30.example;
    12.5 +
    12.6 +public class UseClassA {
    12.7 +
    12.8 +    public void user() {
    12.9 +        ClassA a = new ClassA();
   12.10 +        a.method();
   12.11 +    }
   12.12 +}
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/remoting/server/tests/integration/pom.xml	Wed Apr 17 19:44:36 2013 +0200
    13.3 @@ -0,0 +1,49 @@
    13.4 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    13.5 +  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    13.6 +  <modelVersion>4.0.0</modelVersion>
    13.7 +
    13.8 +  <groupId>org.netbeans.modules.jackpot30</groupId>
    13.9 +  <artifactId>web.ui.integration.test</artifactId>
   13.10 +  <version>1.0-SNAPSHOT</version>
   13.11 +  <packaging>jar</packaging>
   13.12 +
   13.13 +  <name>web.ui.integration.test</name>
   13.14 +  <url>http://maven.apache.org</url>
   13.15 +
   13.16 +  <properties>
   13.17 +    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   13.18 +  </properties>
   13.19 +
   13.20 +    <dependencies>
   13.21 +        <dependency>
   13.22 +            <groupId>org.seleniumhq.selenium</groupId>
   13.23 +            <artifactId>selenium-java</artifactId>
   13.24 +            <version>2.31.0</version>
   13.25 +        </dependency>
   13.26 +        <dependency>
   13.27 +            <groupId>com.opera</groupId>
   13.28 +            <artifactId>operadriver</artifactId>
   13.29 +        </dependency>
   13.30 +        <dependency>
   13.31 +            <groupId>junit</groupId>
   13.32 +            <artifactId>junit</artifactId>
   13.33 +            <version>4.10</version>
   13.34 +            <scope>test</scope>
   13.35 +        </dependency>
   13.36 +    </dependencies>
   13.37 +    <dependencyManagement>
   13.38 +        <dependencies>
   13.39 +            <dependency>
   13.40 +                <groupId>com.opera</groupId>
   13.41 +                <artifactId>operadriver</artifactId>
   13.42 +                <version>1.2</version>
   13.43 +                <exclusions>
   13.44 +                    <exclusion>
   13.45 +                        <groupId>org.seleniumhq.selenium</groupId>
   13.46 +                        <artifactId>selenium-remote-driver</artifactId>
   13.47 +                    </exclusion>
   13.48 +                </exclusions>
   13.49 +            </dependency>
   13.50 +        </dependencies>
   13.51 +    </dependencyManagement>
   13.52 +</project>
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/remoting/server/tests/integration/src/test/java/org/netbeans/modules/jackpot30/web/ui/test/OverallTest.java	Wed Apr 17 19:44:36 2013 +0200
    14.3 @@ -0,0 +1,187 @@
    14.4 +/*
    14.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    14.6 + *
    14.7 + * Copyright 2013 Oracle and/or its affiliates. All rights reserved.
    14.8 + *
    14.9 + * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
   14.10 + * Other names may be trademarks of their respective owners.
   14.11 + *
   14.12 + * The contents of this file are subject to the terms of either the GNU
   14.13 + * General Public License Version 2 only ("GPL") or the Common
   14.14 + * Development and Distribution License("CDDL") (collectively, the
   14.15 + * "License"). You may not use this file except in compliance with the
   14.16 + * License. You can obtain a copy of the License at
   14.17 + * http://www.netbeans.org/cddl-gplv2.html
   14.18 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   14.19 + * specific language governing permissions and limitations under the
   14.20 + * License.  When distributing the software, include this License Header
   14.21 + * Notice in each file and include the License file at
   14.22 + * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
   14.23 + * particular file as subject to the "Classpath" exception as provided
   14.24 + * by Oracle in the GPL Version 2 section of the License file that
   14.25 + * accompanied this code. If applicable, add the following below the
   14.26 + * License Header, with the fields enclosed by brackets [] replaced by
   14.27 + * your own identifying information:
   14.28 + * "Portions Copyrighted [year] [name of copyright owner]"
   14.29 + *
   14.30 + * If you wish your version of this file to be governed by only the CDDL
   14.31 + * or only the GPL Version 2, indicate your decision by adding
   14.32 + * "[Contributor] elects to include this software in this distribution
   14.33 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   14.34 + * single choice of license, a recipient has the option to distribute
   14.35 + * your version of this file under either the CDDL, the GPL Version 2 or
   14.36 + * to extend the choice of license to its licensees as provided above.
   14.37 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   14.38 + * Version 2 license, then the option applies only if the new code is
   14.39 + * made subject to such option by the copyright holder.
   14.40 + *
   14.41 + * Contributor(s):
   14.42 + *
   14.43 + * Portions Copyrighted 2013 Sun Microsystems, Inc.
   14.44 + */
   14.45 +package org.netbeans.modules.jackpot30.web.ui.test;
   14.46 +
   14.47 +import com.gargoylesoftware.htmlunit.BrowserVersion;
   14.48 +import com.google.common.base.Function;
   14.49 +import com.google.common.base.Predicate;
   14.50 +import java.util.ArrayList;
   14.51 +import java.util.Arrays;
   14.52 +import java.util.List;
   14.53 +import org.junit.Assert;
   14.54 +import org.junit.Test;
   14.55 +import org.openqa.selenium.By;
   14.56 +import org.openqa.selenium.WebDriver;
   14.57 +import org.openqa.selenium.WebElement;
   14.58 +import org.openqa.selenium.firefox.FirefoxDriver;
   14.59 +import org.openqa.selenium.htmlunit.HtmlUnitDriver;
   14.60 +import org.openqa.selenium.support.ui.WebDriverWait;
   14.61 +
   14.62 +/**
   14.63 + *
   14.64 + * @author lahvac
   14.65 + */
   14.66 +public class OverallTest {
   14.67 +
   14.68 +    @Test
   14.69 +    public void overallTest() throws Exception {
   14.70 +//        WebDriver driver = new FirefoxDriver();
   14.71 +        WebDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_10);
   14.72 +
   14.73 +        ((HtmlUnitDriver) driver).setJavascriptEnabled(true);
   14.74 +
   14.75 +        try {
   14.76 +            driver.get("http://localhost:9998/index/ui/index.html");
   14.77 +
   14.78 +            //wait for the page to be rendered:
   14.79 +            new WebDriverWait(driver, 20).until(new Predicate<WebDriver>() {
   14.80 +                public boolean apply(WebDriver t) {
   14.81 +                    List<WebElement> cb = t.findElements(By.id("projectCheckBox-data"));
   14.82 +                    return !cb.isEmpty() && cb.get(0).isDisplayed();
   14.83 +                }
   14.84 +            });
   14.85 +
   14.86 +            WebElement searchInput = driver.findElements(By.id("search-input")).get(0);
   14.87 +
   14.88 +            searchInput.sendKeys("ClassA");
   14.89 +            searchInput.submit();
   14.90 +
   14.91 +            WebElement link = new WebDriverWait(driver, 20).until(new Function<WebDriver, WebElement>() {
   14.92 +                public WebElement apply(WebDriver t) {
   14.93 +                    List<WebElement> cb = t.findElements(By.tagName("a"));
   14.94 +
   14.95 +                    for (WebElement we : cb) {
   14.96 +                        String href = we.getAttribute("href");
   14.97 +
   14.98 +                        if (href != null && href.contains("goto=CLASS:org.netbeans.modules.jackpot30.example.ClassA")) return we;
   14.99 +                    }
  14.100 +
  14.101 +                    return null;
  14.102 +                }
  14.103 +            });
  14.104 +
  14.105 +
  14.106 +            link.click();
  14.107 +
  14.108 +            WebElement methodIdentifierSpan = new WebDriverWait(driver, 20).until(new Function<WebDriver, WebElement>() {
  14.109 +                public WebElement apply(WebDriver t) {
  14.110 +                    List<WebElement> cb = t.findElements(By.tagName("span"));
  14.111 +
  14.112 +                    for (WebElement we : cb) {
  14.113 +                        String href = we.getAttribute("jpt30pos");
  14.114 +
  14.115 +                        if (href != null && href.equals("88")) return we;
  14.116 +                    }
  14.117 +
  14.118 +                    return null;
  14.119 +                }
  14.120 +            });
  14.121 +
  14.122 +            String classes = methodIdentifierSpan.getAttribute("class");
  14.123 +
  14.124 +            Assert.assertTrue(classes.contains("identifier") && classes.contains("method") && classes.contains("declaration") && classes.contains("public"));
  14.125 +
  14.126 +            methodIdentifierSpan.click();
  14.127 +
  14.128 +            Assert.assertEquals(Arrays.asList("example/src/org/netbeans/modules/jackpot30/example/SubClassA.java",
  14.129 +                                              "example/src/org/netbeans/modules/jackpot30/example/UseClassA.java"),
  14.130 +                                usagesList(driver));
  14.131 +
  14.132 +            findCheckbox(driver, "showUsages").click(); //uncheck
  14.133 +
  14.134 +            Assert.assertEquals(Arrays.asList("example/src/org/netbeans/modules/jackpot30/example/SubClassA.java"),
  14.135 +                                usagesList(driver));
  14.136 +
  14.137 +            findCheckbox(driver, "showUsages").click(); //check
  14.138 +            
  14.139 +            Assert.assertEquals(Arrays.asList("example/src/org/netbeans/modules/jackpot30/example/SubClassA.java",
  14.140 +                                              "example/src/org/netbeans/modules/jackpot30/example/UseClassA.java"),
  14.141 +                                usagesList(driver));
  14.142 +
  14.143 +            findCheckbox(driver, "showSubtypes").click(); //uncheck
  14.144 +
  14.145 +            Assert.assertEquals(Arrays.asList("example/src/org/netbeans/modules/jackpot30/example/UseClassA.java"),
  14.146 +                                usagesList(driver));
  14.147 +
  14.148 +            findCheckbox(driver, "showSubtypes").click(); //uncheck
  14.149 +            
  14.150 +            Assert.assertEquals(Arrays.asList("example/src/org/netbeans/modules/jackpot30/example/SubClassA.java",
  14.151 +                                              "example/src/org/netbeans/modules/jackpot30/example/UseClassA.java"),
  14.152 +                                usagesList(driver));
  14.153 +        } finally {
  14.154 +            driver.quit();
  14.155 +        }
  14.156 +    }
  14.157 +
  14.158 +    private List<String> usagesList(WebDriver driver) {
  14.159 +        Iterable<WebElement> usages = new WebDriverWait(driver, 20).until(new Function<WebDriver, Iterable<WebElement>>() {
  14.160 +            public Iterable<WebElement> apply(WebDriver t) {
  14.161 +                List<WebElement> cb = t.findElements(By.className("usages"));
  14.162 +
  14.163 +                if (cb.isEmpty()) return null;
  14.164 +
  14.165 +                return cb;
  14.166 +            }
  14.167 +        });
  14.168 +
  14.169 +        List<String> usageStrings = new ArrayList<String>();
  14.170 +
  14.171 +        for (WebElement we : usages) {
  14.172 +            if (!we.isDisplayed()) continue;
  14.173 +            usageStrings.add(we.getText());
  14.174 +        }
  14.175 +
  14.176 +        return usageStrings;
  14.177 +    }
  14.178 +
  14.179 +    private WebElement findCheckbox(WebDriver driver, final String id) {
  14.180 +        return new WebDriverWait(driver, 20).until(new Function<WebDriver, WebElement>() {
  14.181 +            public WebElement apply(WebDriver t) {
  14.182 +                List<WebElement> cb = t.findElements(By.id(id));
  14.183 +
  14.184 +                if (cb.isEmpty()) return null;
  14.185 +
  14.186 +                return cb.get(0);
  14.187 +            }
  14.188 +        });
  14.189 +    }
  14.190 +}
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/remoting/server/tests/run-integration-tests	Wed Apr 17 19:44:36 2013 +0200
    15.3 @@ -0,0 +1,25 @@
    15.4 +#!/bin/bash -x
    15.5 +do_index() {
    15.6 +    rm -rf cache
    15.7 +    mkdir -p cache
    15.8 +    ../../build/indexing-backend/index.sh data Data ../tests/cache/temp.zip integration-data integration-data/example
    15.9 +    (cd cache; unzip temp.zip; rm temp.zip)
   15.10 +}
   15.11 +
   15.12 +do_index
   15.13 +
   15.14 +OUT=`mktemp`;
   15.15 +trap "rm $OUT" EXIT
   15.16 +#JACKPOT_WEB_OPTS=-Xmx128m ../../build/indexing-backend/web.sh --port 0 cache >"$OUT" &
   15.17 +JACKPOT_WEB_OPTS=-Xmx128m ../../build/indexing-backend/web.sh cache >"$OUT" &
   15.18 +
   15.19 +trap "kill %1" EXIT
   15.20 +
   15.21 +#while [ -z "$PORT" ] ; do
   15.22 +#     sleep 1s;
   15.23 +#     PORT=`cat "$OUT" | grep "Running on port: " | cut -d ':' -f 2 | tr -d ' '`;
   15.24 +#done
   15.25 +
   15.26 +(cd integration; mvn test)
   15.27 +
   15.28 +exit 0
    16.1 --- a/remoting/server/web/web.ui.frontend/public_html/index/ui/search.html	Wed Apr 17 19:38:41 2013 +0200
    16.2 +++ b/remoting/server/web/web.ui.frontend/public_html/index/ui/search.html	Wed Apr 17 19:44:36 2013 +0200
    16.3 @@ -1,14 +1,14 @@
    16.4  <form ng-submit="performQuery()">
    16.5 -    <input class="search-query" ng-model="prefix" type="text" name="prefix" placeholder="Search"/><!--ng-change="performQueryDelayed()" -->
    16.6 +    <input class="search-query" ng-model="prefix" type="text" name="prefix" placeholder="Search" id="search-input"/><!--ng-change="performQueryDelayed()" -->
    16.7      <button class="btn" type="submit">Search</button>
    16.8  </form>
    16.9  <label>Projects:</label>
   16.10  <input ng-model="$parent.allProjectsCheckBox" ng-change="$parent.allProjectsCheckBoxChanged()" type="checkbox" checked="yes">All</input>
   16.11  <span class="project-checkboxes" ng-repeat="project in $parent.projects">
   16.12 -    <input class="projectCheckBox" type='checkbox' ng-model="project.selected" name="path" ng-change="$parent.projectCheckBoxChanged()">{{project.displayName}}</input>
   16.13 +    <input class="projectCheckBox" type='checkbox' ng-model="project.selected" name="path" ng-change="$parent.projectCheckBoxChanged()" id="projectCheckBox-{{project.id}}">{{project.displayName}}</input>
   16.14  </span>
   16.15  <table width="100%">
   16.16 -    <tr ng-repeat="symbolsDescription in searchResult" ng-show="projects.get(symbolsDescription.project.id).selected==true"> <!--projects[symbolsDescription.projectId].neco==true">-->
   16.17 +    <tr ng-repeat="symbolsDescription in searchResult" ng-show="projects.get(symbolsDescription.project.id).selected==true" id="{{symbolsDescription.project.id}}"> <!--projects[symbolsDescription.projectId].neco==true">-->
   16.18          <td style="vertical-align: top">
   16.19              <img src="/index/icons/{{getElementIcon(symbolsDescription.kind, symbolsDescription.modifiers)}}" alt="{{symbolsDescription.kind}}"/>
   16.20          </td><td>
    17.1 --- a/remoting/server/web/web.ui.frontend/public_html/index/ui/usages.html	Wed Apr 17 19:38:41 2013 +0200
    17.2 +++ b/remoting/server/web/web.ui.frontend/public_html/index/ui/usages.html	Wed Apr 17 19:44:36 2013 +0200
    17.3 @@ -6,15 +6,15 @@
    17.4      <input class="projectCheckBox" type='checkbox' ng-model="project.selected" name="path" ng-change="$parent.projectCheckBoxChanged()">{{project.displayName}}</input>
    17.5  </span>
    17.6  <br><br>
    17.7 -<input type='checkbox' ng-model="showUsages">Usages</input>
    17.8 -<input type='checkbox' ng-model="showSubtypes">Subtypes/Overriders</input>
    17.9 +<input type='checkbox' ng-model="showUsages" id="showUsages">Usages</input>
   17.10 +<input type='checkbox' ng-model="showSubtypes" id="showSubtypes">Subtypes/Overriders</input>
   17.11  <br><br>
   17.12  <table width="100%">
   17.13      <tr ng-repeat="usage in usages" ng-show="projects.get(usage.project.id).selected==true && ((showUsages && !!usage.usage) || (showSubtypes && (usage.subtypes || usage.overridersParents)))">
   17.14          <td style="vertical-align: top">
   17.15              <img src="/index/icons/{{getElementIcon(symbolsDescription.kind, symbolsDescription.modifiers)}}" alt="{{symbolsDescription.kind}}"/>
   17.16          </td><td>
   17.17 -            <a href="#/showCode?path={{usage.project.id}}&relative={{usage.file}}&highlights={{escape('/index/ui/localUsages?path=' + usage.project.id + '&relative=' + usage.file + '&signature=' + signature)}}">{{usage.file}}</a>
   17.18 +            <a class="usages" href="#/showCode?path={{usage.project.id}}&relative={{usage.file}}&highlights={{escape('/index/ui/localUsages?path=' + usage.project.id + '&relative=' + usage.file + '&signature=' + signature)}}">{{usage.file}}</a>
   17.19          </td>
   17.20          <td  align="right">{{usage.project.displayName.replace("&", "&amp;").replace("<", "&lt;").replace(" ", "&nbsp;")}}</td>
   17.21      </tr>