changeset 3:f8edf4620fe5 2.1-b01

RT-17689: Split runtime repository into rt and rt-closed repositories
author kcr
date Thu, 10 Nov 2011 13:27:16 -0800
parents c3a298155334
children e5aab381b9f1 da278c9dba1e
files base.properties build-defs.xml common.properties javafx-ui-controls/javafx-ui-controls.iml javafx-ui-controls/project.properties
diffstat 5 files changed, 516 insertions(+), 266 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/base.properties	Thu Nov 10 13:27:16 2011 -0800
@@ -0,0 +1,25 @@
+# This file contains properties that are common to the various subprojects
+# of the runtime repository.  It will be included automatically by the
+# build-defs.xml file *before* importing the subproject's project.properties
+# file, meaning that any properties specified in this file will
+# take precedence over those in the subproject's project.properties file and
+# the common.properties file.
+
+build.dir=build
+dist.dir=dist
+build.classes.dir=${build.dir}/classes
+build.test.classes.dir=${build.dir}/test/classes
+coverage.dir=${build.dir}/coverage
+coverage.classes.dir=${coverage.dir}/classes
+coverage.datafile=${coverage.dir}/cobertura.ser
+coverage.dist.dir=${dist.dir}/coverage
+
+rt.dist.root.dir=..
+
+# These two properties are used in building the classpath defined in
+# the project.properties file of each subproject.  The tv build can override
+# these to point to a different output directory where the tv-specific jars
+# are kept; that way the tv build can reuse the classpath information defined
+# in the runtime project.properties files.
+runtime.dist.root.dir=../../rt-closed
+runtime.deps.dir=${runtime.dist.root.dir}/build/deps
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-defs.xml	Thu Nov 10 13:27:16 2011 -0800
@@ -0,0 +1,447 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project name="runtime-build-defs" basedir=".">
+    <description>
+      Defines common properties and macros for JavaFX runtime repo.
+      Sub-projects should import this file into their build.xml file.
+      This file will import all other necessary top repository build-*.xml files.
+    </description>
+
+    <import file="../build-defs.xml"/>
+
+    <!--
+        Note that .properties files are loaded relative to the basedir of
+        the caller script, i.e., the <subproject>/build.xml file.  The order
+        is important here:
+         1. First set a couple properties that are referenced by the
+            subproject's project.properties file when building javac.classpath
+            and other properties.
+         2. Load the subproject's project.properties file to set up
+            classpath properties and any other properties that will override
+            the default values defined in common.properties.
+         3. Load the common.properties file, which includes default values
+            of properties common to most/all subprojects.
+    -->
+    <property file="../base.properties"/>
+    <property file="project.properties"/>
+    <property file="../common.properties"/>
+
+    <!-- Create a class path for the lombok annotation processor. Note that
+         this HAS to exist or the path won't get translated correctly to the
+         OS specific form (read: Windows) and the windows build will break. -->
+    <path id="id.processor.path" path="${javac.processorpath}"/>
+
+    <!-- create a class path for cobertura for code test coverage analysis -->
+    <path id="cobertura.class.path">
+        <fileset dir="${import.cobertura.dir}" includes="**/*.jar" />
+    </path>
+
+    <!--
+	Allow override of javac.debuglevel on a per-project basis. For example, to override javac.debuglevel on
+        javafx-ui-common: 
+	ant -Djavafx-ui-common.javac.debuglevel=source,lines,vars
+    -->	
+    <propertycopy name="javac.debuglevel" from="${ant.project.name}.javac.debuglevel" silent="true" override="true"/>
+
+    <!--
+
+        Default targets for all subprojects are defined below.  These can
+        be overridden in each subproject's build.xml file if necessary;
+        if left unspecified, the default behavior will be used as defined here.
+
+    -->
+
+    <target name="-pre-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the subproject build.xml file. -->
+    </target>
+
+    <target name="init" depends="-pre-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the subproject build.xml file. -->
+    </target>
+
+    <target name="jar" depends="init">
+        <build-project/>
+    </target>
+
+    <target name="jar_and_copy_to_sdk" depends="jar">
+        <echo message="${dist.dir}/${ant.project.name}.jar to ${jfx.sdk.desktop.dir}"/>
+        <copy file="${dist.dir}/${ant.project.name}.jar" todir="${jfx.sdk.desktop.dir}"/>
+    </target>  
+
+    <target name="clean">
+        <clean-project/>
+    </target>
+
+    <target name="test" depends="jar">
+        <test-project/>
+    </target>
+
+    <target name="test-single" depends="jar">
+        <test-single/>
+    </target>
+
+    <property name="delomboked.src.dir" value="${build.dir}/src-delomboked"/>
+    <property name="delomboked.src.zip" value="${dist.dir}/${ant.project.name}-src.zip"/>
+    <condition property="is.delombok.needed">
+        <or>
+            <not>
+                <available file="${delomboked.src.zip}"/>
+            </not>
+            <not>
+                <uptodate srcfile="${dist.dir}/${ant.project.name}.jar"
+                          targetfile="${delomboked.src.zip}"/>
+            </not>
+        </or>
+    </condition>
+
+    <target name="delombok" if="is.delombok.needed">
+        <do-delombok/>
+    </target>
+
+    <!--
+
+        Main project level macros for doing all of the common tasks. These
+        exist so that subproject build.xml files can rewrite the main targets
+        (clean, test, etc) and by simply calling these macros perform the
+        appropriate tasks.
+
+    -->
+
+    <macrodef name="clean-project">
+        <sequential>
+            <delete dir="${build.dir}"/>
+            <delete dir="${dist.dir}"/>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="build-project">
+        <attribute name="name" default="${ant.project.name}"/>
+        <element name="excludefromcopy" optional="true"/>
+        <element name="addedsrcdirs" optional="true"/>
+        <element name="addedsrcfiles" optional="true"/>
+        <element name="addedprops" optional="true"/>
+        <element name="addedjarfilesets" optional="true"/>
+        <sequential>
+            <mkdir dir="${build.classes.dir}"/>
+
+            <condition property="processor.flag" value="" else="-processorpath ${toString:id.processor.path}">
+                <isset property="disable-lombok"/>
+            </condition>
+
+            <!-- compile .java source files -->
+            <javac compiler="modern"
+             fork="true"
+             destdir="${build.classes.dir}"
+             debug="${javac.debug}"
+             debuglevel="${javac.debuglevel}"
+             deprecation="${javac.deprecation}"
+             source="${javac.source}"
+             target="${javac.target}"
+             includeantruntime="false"
+             encoding="${source.encoding}"
+             excludes="${runtime.excludes}"
+             sourcepath="">
+                <src>
+                    <pathelement location="${src.dir}"/>
+                    <addedsrcdirs />
+                </src>
+                <classpath>
+                    <path path="${javac.classpath}"/>
+                </classpath>
+                <compilerarg line="${processor.flag} ${javac.compilerargs}"/>
+                <addedprops/>
+            </javac>
+
+            <!-- copy resource files (images, etc) -->
+            <copy todir="${build.classes.dir}">
+                <fileset dir="${src.dir}" excludes="${build.classes.excludes}"/>
+                <addedsrcfiles />
+            </copy>
+
+            <mkdir dir="${build.dir}/builders" />
+            <copy todir="${build.dir}/builders">
+                <fileset dir="${build.classes.dir}" includes="**/*.java" />
+            </copy>
+
+            <!-- create the jar file -->
+            <mkdir dir="${dist.dir}"/>
+            <jar destfile="${dist.dir}/@{name}.jar">
+                <fileset dir="${build.classes.dir}"
+                    excludes="${jar.file.excludes},${jar.file.excludes.extra}" />
+                <addedjarfilesets/>
+            </jar>
+
+            <!-- copy the jar file to the shared lib directory -->
+            <copy file="${dist.dir}/@{name}.jar" todir="${runtime.deps.dir}"/>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="test-project">
+        <attribute name="testsrc" default="${test.dir}"/>
+        <sequential>
+            <!-- compile all test sources -->
+            <build-tests testsrc="@{testsrc}"/>
+            <!-- run the tests -->
+            <run-junit>
+                <customtests>
+                    <batchtest todir="${build.test.results.dir}">
+                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+                            <filename name="**/*Test.class"/>
+                        </fileset>
+                    </batchtest>
+                </customtests>
+            </run-junit>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="build-tests">
+        <attribute name="testsrc" default="${test.dir}"/>
+        <attribute name="includes" default="${includes}"/>
+        <attribute name="excludes" default="${excludes}"/>
+        <element name="addedprops" optional="true"/>
+        <sequential>
+            <mkdir dir="${build.test.classes.dir}"/>
+
+            <condition property="processor.flag" value="" else="-processorpath ${toString:id.processor.path}">
+                <isset property="disable-lombok"/>
+            </condition>
+
+            <!-- compile .java test sources -->
+            <javac compiler="modern"
+             fork="true"
+             destdir="${build.test.classes.dir}"
+             debug="${javac.debug}"
+             debuglevel="${javac.debuglevel}"
+             deprecation="${javac.deprecation}"
+             source="${javac.source}"
+             target="${javac.target}"
+             includeantruntime="false"
+             encoding="${source.encoding}"
+             sourcepath="">
+                <src>
+                    <pathelement location="@{testsrc}"/>
+                </src>
+                <classpath>
+                    <path path="${javac.test.classpath}"/>
+                </classpath>
+                <compilerarg line="${processor.flag} ${javac.compilerargs}"/>
+                <include name="@{includes}"/>
+                <exclude name="@{excludes}"/>
+                <addedprops/>
+            </javac>
+
+            <!-- copy resource files (images, etc) -->
+            <copy todir="${build.test.classes.dir}">
+                <fileset dir="@{testsrc}" excludes="${build.classes.excludes}"/>
+            </copy>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="run-junit">
+        <attribute name="includes" default="${includes}"/>
+        <attribute name="excludes" default="${excludes}"/>
+        <element name="customtests" optional="false"/>
+        <element name="addedjvmargs" optional="true"/>
+        <!--<attribute default="**" name="testincludes"/>-->
+        <sequential>
+            <property name="work.dir" value="${basedir}"/>
+            <mkdir dir="${build.test.results.dir}"/>
+            <junit dir="${work.dir}" errorproperty="tests.failed"
+             failureproperty="tests.failed" fork="true" showoutput="true">
+                <customtests/>
+                <classpath>
+                    <path path="${run.test.classpath}"/>
+                </classpath>
+                <syspropertyset>
+                    <propertyref prefix="test-sys-prop."/>
+                    <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                </syspropertyset>
+                <formatter type="brief" usefile="false"/>
+                <formatter type="xml"/>
+                <assertions>
+                    <enable/>
+                </assertions>
+                <jvmarg line="${run.jvmargs}"/>
+                <addedjvmargs/>
+            <!--
+                <jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1090"/>
+            -->
+            </junit>
+            <fail if="tests.failed"/>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="test-single">
+        <attribute name="testsrc" default="${test.dir}"/>
+        <sequential>
+            <fail unless="run.file">Must set property 'run.file'</fail>
+            <!-- compile all test sources -->
+            <build-tests testsrc="@{testsrc}" includes="${run.file}"/>
+            <!-- run the single test -->
+            <run-junit>
+                <customtests>
+                    <batchtest todir="${build.test.results.dir}">
+                        <fileset dir="${test.dir}" includes="${run.file}"/>
+                    </batchtest>
+                </customtests>
+            </run-junit>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="debug-selected-file-in-test">
+        <attribute name="name" default="${ant.project.name}"/>
+        <sequential>
+            <fail unless="debug.class">Must set property 'debug.class'</fail>
+            <path id="cp">
+                <pathelement path="${run.test.classpath}"/>
+            </path>
+            <nbjpdastart addressproperty="jpda.address" name="@{name}" transport="dt_socket">
+                <classpath refid="cp"/>
+            </nbjpdastart>
+            <run-junit>
+                <customtests>
+                    <test name="${debug.class}" />
+                </customtests>
+                <addedjvmargs>
+                    <jvmarg value="-Xdebug"/>
+                    <jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
+                </addedjvmargs>
+            </run-junit>
+        </sequential>
+    </macrodef>
+
+    <!-- generate delombok-ed sources with annotations expanded for easier debugging -->
+    <macrodef name="do-delombok">
+        <attribute name="name" default="${ant.project.name}"/>
+        <element name="addedsrcfiles" optional="true"/>
+        <sequential>
+            <property name="src.dir.location" location="${src.dir}"/>
+            <echo>Running delombok on sources in ${src.dir.location}</echo>
+
+            <delete dir="${build.dir}/${jfx.delomboked.src.dir.name}"/>
+            <java classname="lombok.core.Main" fork="true" failonerror="true">
+                <classpath>
+                    <!-- lombok-0.9.3 generates a NPE when processing certain javafx bean annotations,
+                         so use a more recent version for delombok-ing -->
+                    <pathelement location="${jfx.root.dir}/rt-closed/build/deps/lombok-trunk.jar"/>
+                    <pathelement path="${javac.classpath}"/>
+                    <pathelement path="${dist.dir}/@{name}.jar"/>
+                    <pathelement location="${jfx.root.dir}/rt-closed/build/deps/javafx-beans.jar"/>
+                    <pathelement location="${jfx.root.dir}/rt-closed/build/deps/javafx-annotation-processor.jar"/>
+                </classpath>
+                <arg value="delombok"/>
+                <arg value="-d"/>
+                <arg value="${delomboked.src.dir}"/>
+                <arg value="${src.dir}"/>
+            </java>
+
+            <!-- create a zip of delombok-ed sources -->
+            <jar destfile="${delomboked.src.zip}">
+                <fileset dir="${delomboked.src.dir}"/>
+                <addedsrcfiles/>
+            </jar>
+        </sequential>
+    </macrodef>
+
+    <!-- Stuff dealing with adding coverage to JUnit execution -->
+
+    <target name="cobertura-taskdefs">
+        <taskdef classpathref="cobertura.class.path" resource="tasks.properties"/>
+    </target>
+
+    <macrodef name="instrument">
+        <sequential>
+            <mkdir dir="${coverage.classes.dir}"/>
+            <cobertura-instrument todir="${coverage.classes.dir}" datafile="${coverage.datafile}">
+                <fileset dir="${build.classes.dir}" includes="**/*.class"/>
+                <classpath refid="cobertura.class.path"/>
+            </cobertura-instrument>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="clean-instrument">
+        <sequential>
+            <!--delete dir="${coverage.dir}"/-->
+        </sequential>
+    </macrodef>
+
+    <macrodef name="coverage-report">
+        <sequential>
+            <mkdir dir="${coverage.dist.dir}"/>
+            <cobertura-report destdir="${coverage.dist.dir}" datafile="${coverage.datafile}">
+                <fileset dir="${src.dir}"/>
+                <fileset dir="${build.dir}/builders"/>
+                <classpath>
+                    <path location="${build.classes.dir}"/>
+                </classpath>
+            </cobertura-report>
+            <cobertura-report format="xml" destdir="${coverage.dist.dir}" datafile="${coverage.datafile}">
+                <fileset dir="${src.dir}"/>
+                <fileset dir="${build.dir}/builders"/>
+            </cobertura-report>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="run-junit-coverage">
+        <attribute name="includes" default="${includes}"/>
+        <attribute name="excludes" default="${excludes}"/>
+        <element name="customtests" optional="false"/>
+        <!--<attribute default="**" name="testincludes"/>-->
+        <sequential>
+            <property name="work.dir" value="${basedir}"/>
+            <mkdir dir="${build.test.results.dir}"/>
+            <junit dir="${work.dir}" errorproperty="tests.failed"
+             failureproperty="tests.failed" fork="true" showoutput="true">
+                <customtests/>
+                <sysproperty key="net.sourceforge.cobertura.datafile"
+		     file="${coverage.datafile}" />
+                <classpath location="${coverage.classes.dir}" />
+                <classpath>
+                    <path path="${run.test.classpath}"/>
+                </classpath>
+                <classpath refid="cobertura.class.path" />
+                <syspropertyset>
+                    <propertyref prefix="test-sys-prop."/>
+                    <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                </syspropertyset>
+                <formatter type="brief" usefile="false"/>
+                <formatter type="xml"/>
+                <assertions>
+                    <enable/>
+                </assertions>
+                <jvmarg line="${run.jvmargs}"/>
+            </junit>
+            <fail if="tests.failed"/>
+        </sequential>
+    </macrodef>
+
+    <target name="-pre-coverage" depends="init">
+    </target>
+
+    <target name="coverage" depends="init,jar,cobertura-taskdefs,-pre-coverage">
+        <instrument />
+        <build-tests testsrc="${test.dir}"/>
+        <run-junit-coverage>
+            <customtests>
+                <batchtest todir="${build.test.results.dir}">
+                    <fileset dir="${build.test.classes.dir}" excludes="${excludes},${excludes}" includes="${includes}">
+                        <filename name="**/*Test.class"/>
+                    </fileset>
+                </batchtest>
+            </customtests>
+        </run-junit-coverage>
+        <coverage-report />
+        <clean-instrument />
+    </target>
+
+
+    <target name="func-test" depends="init,jar">
+        <test-project testsrc="${ftest.dir}"/>
+    </target>
+
+
+    <!-- End stuff dealing with adding coverage to JUnit execution -->
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common.properties	Thu Nov 10 13:27:16 2011 -0800
@@ -0,0 +1,42 @@
+# This file contains properties that are common to the various subprojects
+# of the runtime repository.  It will be included automatically by the
+# build-defs.xml file *after* importing the subproject's project.properties
+# file, meaning that any properties specified in project.properties will
+# take precedence over those in this file.
+
+src.dir=src
+test.dir=test
+build.classes.excludes=**/*.fx,**/*.java,**/*.form
+jar.file.excludes=**/package.html,**/*.java,**/*.DISABLED,**/doc-files/**
+jar.file.excludes.extra=
+build.test.results.dir=${build.dir}/test/results
+excludes=
+includes=**
+javac.debug=true
+javac.debuglevel=${jfx.javac.debuglevel}
+javac.compilerargs=
+javac.processorpath=${import.lombok.jar}:\
+    ${runtime.dist.root.dir}/javafx-beans/dist/javafx-beans.jar:\
+    ${runtime.dist.root.dir}/javafx-annotation-processor/dist/javafx-annotation-processor.jar:\
+    ${javac.classpath}
+javac.deprecation=false
+javac.source=1.6
+javac.target=1.6
+javafxc.compilerargs=
+source.encoding=UTF-8
+run.jvmargs=-Djava.library.path=${jfx.sdk.rt.bin.dir}
+
+libs.junit_4.classpath=${runtime.deps.dir}/junit.jar
+javac.classpath=
+javac.test.additional.classpath=
+javac.test.classpath=\
+    ${javac.classpath}:\
+    ${javac.test.additional.classpath}:\
+    ${build.classes.dir}:\
+    ${jfx.sdk.rt.jar}:\
+    ${runtime.deps.dir}/junit.jar
+run.test.classpath=\
+    ${javac.test.classpath}:\
+    ${build.test.classes.dir}:\
+    ${jfx.sdk.rt.jar}:\
+    ${runtime.deps.dir}/junit.jar
--- a/javafx-ui-controls/javafx-ui-controls.iml	Thu Nov 10 13:20:11 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,264 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/build/classes" />
-    <output-test url="file://$MODULE_DIR$/build/test/classes" />
-    <exclude-output />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="javafx-anim" />
-    <orderEntry type="module" module-name="javafx-beans" />
-    <orderEntry type="module" module-name="javafx-collections" />
-    <orderEntry type="module" module-name="javafx-common" />
-    <orderEntry type="module" module-name="javafx-geom" />
-    <orderEntry type="module" module-name="javafx-ui-common" />
-    <orderEntry type="module" module-name="javafx-logging" />
-    <orderEntry type="module-library" scope="TEST">
-      <library>
-        <CLASSES>
-          <root url="jar://$JFX$/runtime/build/deps/junit.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$JFX$/build-tools/checkstyle/dist/javafx-checkstyle.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module" module-name="aria" scope="TEST" />
-    <orderEntry type="module" module-name="decora-compiler" scope="TEST" />
-    <orderEntry type="module" module-name="decora-d3d" scope="TEST" />
-    <orderEntry type="module" module-name="decora-es2" scope="TEST" />
-    <orderEntry type="module" module-name="decora-jsw" scope="TEST" />
-    <orderEntry type="module" module-name="decora-ogl" scope="TEST" />
-    <orderEntry type="module" module-name="decora-prism" scope="TEST" />
-    <orderEntry type="module" module-name="decora-prism-ps" scope="TEST" />
-    <orderEntry type="module" module-name="decora-prism-sw" scope="TEST" />
-    <orderEntry type="module" module-name="decora-runtime" scope="TEST" />
-    <orderEntry type="module" module-name="decora-sse" scope="TEST" />
-    <orderEntry type="module" module-name="dummy" scope="TEST" />
-    <orderEntry type="module" module-name="HelloWorld" scope="TEST" />
-    <orderEntry type="module" module-name="iaccessible" scope="TEST" />
-    <orderEntry type="module" module-name="javafx-css" scope="TEST" />
-    <orderEntry type="module" module-name="javafx-font" scope="TEST" />
-    <orderEntry type="module" module-name="javafx-httprequest" scope="TEST" />
-    <orderEntry type="module" module-name="javafx-iio" scope="TEST" />
-    <orderEntry type="module" module-name="javafx-json" scope="TEST" />
-    <orderEntry type="module" module-name="javafx-sg-common" scope="TEST" />
-    <orderEntry type="module" module-name="javafx-sg-prism" scope="TEST" />
-    <orderEntry type="module" module-name="javafx-ui-charts" scope="TEST" />
-    <orderEntry type="module" module-name="javafx-ui-desktop" scope="TEST" />
-    <orderEntry type="module" module-name="javafx-ui-quantum" scope="TEST" />
-    <orderEntry type="module" module-name="javafx-ui-webnode" scope="TEST" />
-    <orderEntry type="module" module-name="pisces" scope="TEST" />
-    <orderEntry type="module" module-name="prism-common" scope="TEST" />
-    <orderEntry type="module" module-name="prism-d3d" scope="TEST" />
-    <orderEntry type="module" module-name="prism-es1" scope="TEST" />
-    <orderEntry type="module" module-name="prism-es2" scope="TEST" />
-    <orderEntry type="module" module-name="prism-j2d" scope="TEST" />
-    <orderEntry type="module" module-name="prism-jogl" scope="TEST" />
-    <orderEntry type="module" module-name="prism-null" scope="TEST" />
-    <orderEntry type="module" module-name="prism-ps" scope="TEST" />
-    <orderEntry type="module" module-name="webnode-prism" />
-  </component>
-  <component name="org.twodividedbyzero.idea.findbugs">
-    <option name="_basePreferences">
-      <map>
-        <entry key="property.analysisEffortLevel" value="default" />
-        <entry key="property.analyzeAfterCompile" value="false" />
-        <entry key="property.exportAsHtml" value="true" />
-        <entry key="property.exportAsXml" value="true" />
-        <entry key="property.exportBaseDir" value="" />
-        <entry key="property.exportCreateArchiveDir" value="false" />
-        <entry key="property.exportOpenBrowser" value="true" />
-        <entry key="property.minPriorityToReport" value="Medium" />
-        <entry key="property.runAnalysisInBackground" value="false" />
-        <entry key="property.showHiddenDetectors" value="false" />
-        <entry key="property.toolWindowToFront" value="true" />
-      </map>
-    </option>
-    <option name="_detectors">
-      <map>
-        <entry key="AppendingToAnObjectOutputStream" value="true" />
-        <entry key="BCPMethodReturnCheck" value="false" />
-        <entry key="BadAppletConstructor" value="false" />
-        <entry key="BadResultSetAccess" value="true" />
-        <entry key="BadSyntaxForRegularExpression" value="true" />
-        <entry key="BadUseOfReturnValue" value="true" />
-        <entry key="BadlyOverriddenAdapter" value="true" />
-        <entry key="BooleanReturnNull" value="true" />
-        <entry key="BuildInterproceduralCallGraph" value="false" />
-        <entry key="BuildObligationPolicyDatabase" value="true" />
-        <entry key="CallToUnsupportedMethod" value="false" />
-        <entry key="CalledMethods" value="true" />
-        <entry key="CheckCalls" value="false" />
-        <entry key="CheckExpectedWarnings" value="false" />
-        <entry key="CheckImmutableAnnotation" value="true" />
-        <entry key="CheckTypeQualifiers" value="true" />
-        <entry key="CloneIdiom" value="true" />
-        <entry key="ComparatorIdiom" value="true" />
-        <entry key="ConfusedInheritance" value="true" />
-        <entry key="ConfusionBetweenInheritedAndOuterMethod" value="true" />
-        <entry key="CrossSiteScripting" value="true" />
-        <entry key="DoInsideDoPrivileged" value="true" />
-        <entry key="DontCatchIllegalMonitorStateException" value="true" />
-        <entry key="DontIgnoreResultOfPutIfAbsent" value="true" />
-        <entry key="DontUseEnum" value="true" />
-        <entry key="DroppedException" value="true" />
-        <entry key="DumbMethodInvocations" value="true" />
-        <entry key="DumbMethods" value="true" />
-        <entry key="DuplicateBranches" value="true" />
-        <entry key="EmptyZipFileEntry" value="true" />
-        <entry key="EqStringTest" value="false" />
-        <entry key="EqualsOperandShouldHaveClassCompatibleWithThis" value="true" />
-        <entry key="FieldItemSummary" value="true" />
-        <entry key="FinalizerNullsFields" value="true" />
-        <entry key="FindBadCast" value="false" />
-        <entry key="FindBadCast2" value="true" />
-        <entry key="FindBadEqualsImplementation" value="false" />
-        <entry key="FindBadForLoop" value="true" />
-        <entry key="FindBugsSummaryStats" value="true" />
-        <entry key="FindCircularDependencies" value="false" />
-        <entry key="FindDeadLocalStores" value="true" />
-        <entry key="FindDoubleCheck" value="true" />
-        <entry key="FindEmptySynchronizedBlock" value="true" />
-        <entry key="FindFieldSelfAssignment" value="true" />
-        <entry key="FindFinalizeInvocations" value="true" />
-        <entry key="FindFloatEquality" value="true" />
-        <entry key="FindFloatMath" value="false" />
-        <entry key="FindHEmismatch" value="true" />
-        <entry key="FindInconsistentSync2" value="true" />
-        <entry key="FindJSR166LockMonitorenter" value="true" />
-        <entry key="FindLocalSelfAssignment2" value="true" />
-        <entry key="FindMaskedFields" value="true" />
-        <entry key="FindMismatchedWaitOrNotify" value="true" />
-        <entry key="FindNakedNotify" value="true" />
-        <entry key="FindNonSerializableStoreIntoSession" value="true" />
-        <entry key="FindNonSerializableValuePassedToWriteObject" value="true" />
-        <entry key="FindNonShortCircuit" value="true" />
-        <entry key="FindNullDeref" value="true" />
-        <entry key="FindNullDerefsInvolvingNonShortCircuitEvaluation" value="true" />
-        <entry key="FindOpenStream" value="true" />
-        <entry key="FindPuzzlers" value="true" />
-        <entry key="FindRefComparison" value="true" />
-        <entry key="FindReturnRef" value="true" />
-        <entry key="FindRunInvocations" value="true" />
-        <entry key="FindSelfComparison" value="true" />
-        <entry key="FindSelfComparison2" value="true" />
-        <entry key="FindSleepWithLockHeld" value="true" />
-        <entry key="FindSpinLoop" value="true" />
-        <entry key="FindSqlInjection" value="true" />
-        <entry key="FindTwoLockWait" value="true" />
-        <entry key="FindUncalledPrivateMethods" value="true" />
-        <entry key="FindUnconditionalWait" value="true" />
-        <entry key="FindUninitializedGet" value="true" />
-        <entry key="FindUnrelatedTypesInGenericContainer" value="true" />
-        <entry key="FindUnreleasedLock" value="true" />
-        <entry key="FindUnsatisfiedObligation" value="true" />
-        <entry key="FindUnsyncGet" value="true" />
-        <entry key="FindUselessControlFlow" value="true" />
-        <entry key="FormatStringChecker" value="true" />
-        <entry key="HugeSharedStringConstants" value="true" />
-        <entry key="IDivResultCastToDouble" value="true" />
-        <entry key="IncompatMask" value="true" />
-        <entry key="InconsistentAnnotations" value="true" />
-        <entry key="InefficientMemberAccess" value="false" />
-        <entry key="InefficientToArray" value="true" />
-        <entry key="InfiniteLoop" value="true" />
-        <entry key="InfiniteRecursiveLoop" value="true" />
-        <entry key="InfiniteRecursiveLoop2" value="false" />
-        <entry key="InheritanceUnsafeGetResource" value="true" />
-        <entry key="InitializationChain" value="true" />
-        <entry key="InstantiateStaticClass" value="true" />
-        <entry key="InvalidJUnitTest" value="true" />
-        <entry key="IteratorIdioms" value="true" />
-        <entry key="LazyInit" value="true" />
-        <entry key="LoadOfKnownNullValue" value="true" />
-        <entry key="LockedFields" value="false" />
-        <entry key="LostLoggerDueToWeakReference" value="true" />
-        <entry key="MethodReturnCheck" value="true" />
-        <entry key="Methods" value="true" />
-        <entry key="MultithreadedInstanceAccess" value="true" />
-        <entry key="MutableLock" value="true" />
-        <entry key="MutableStaticFields" value="true" />
-        <entry key="Naming" value="true" />
-        <entry key="Noise" value="false" />
-        <entry key="NoiseNullDeref" value="false" />
-        <entry key="NoteAnnotationRetention" value="true" />
-        <entry key="NoteCheckReturnValue" value="true" />
-        <entry key="NoteCheckReturnValueAnnotations" value="true" />
-        <entry key="NoteDirectlyRelevantTypeQualifiers" value="true" />
-        <entry key="NoteJCIPAnnotation" value="true" />
-        <entry key="NoteNonNullAnnotations" value="true" />
-        <entry key="NoteNonnullReturnValues" value="true" />
-        <entry key="NoteSuppressedWarnings" value="true" />
-        <entry key="NoteUnconditionalParamDerefs" value="true" />
-        <entry key="NumberConstructor" value="true" />
-        <entry key="OverridingEqualsNotSymmetrical" value="true" />
-        <entry key="PreferZeroLengthArrays" value="true" />
-        <entry key="PublicSemaphores" value="false" />
-        <entry key="QuestionableBooleanAssignment" value="true" />
-        <entry key="ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" value="true" />
-        <entry key="ReadReturnShouldBeChecked" value="true" />
-        <entry key="RedundantInterfaces" value="true" />
-        <entry key="ReflectiveClasses" value="true" />
-        <entry key="RepeatedConditionals" value="true" />
-        <entry key="ResolveAllReferences" value="false" />
-        <entry key="RuntimeExceptionCapture" value="true" />
-        <entry key="SerializableIdiom" value="true" />
-        <entry key="StartInConstructor" value="true" />
-        <entry key="StaticCalendarDetector" value="true" />
-        <entry key="StringConcatenation" value="true" />
-        <entry key="SuperfluousInstanceOf" value="true" />
-        <entry key="SuspiciousThreadInterrupted" value="true" />
-        <entry key="SwitchFallthrough" value="true" />
-        <entry key="SynchronizationOnSharedBuiltinConstant" value="true" />
-        <entry key="SynchronizeAndNullCheckField" value="true" />
-        <entry key="SynchronizeOnClassLiteralNotGetClass" value="true" />
-        <entry key="SynchronizingOnContentsOfFieldToProtectField" value="true" />
-        <entry key="TestASM" value="false" />
-        <entry key="TestDataflowAnalysis" value="false" />
-        <entry key="TestingGround" value="false" />
-        <entry key="TrainFieldStoreTypes" value="true" />
-        <entry key="TrainNonNullAnnotations" value="true" />
-        <entry key="TrainUnconditionalDerefParams" value="true" />
-        <entry key="URLProblems" value="true" />
-        <entry key="UncallableMethodOfAnonymousClass" value="true" />
-        <entry key="UnnecessaryMath" value="true" />
-        <entry key="UnreadFields" value="true" />
-        <entry key="UseObjectEquals" value="false" />
-        <entry key="UselessSubclassMethod" value="false" />
-        <entry key="VarArgsProblems" value="true" />
-        <entry key="VolatileUsage" value="true" />
-        <entry key="WaitInLoop" value="true" />
-        <entry key="WrongMapIterator" value="true" />
-        <entry key="XMLFactoryBypass" value="true" />
-      </map>
-    </option>
-    <option name="_reportCategories">
-      <map>
-        <entry key="BAD_PRACTICE" value="true" />
-        <entry key="CORRECTNESS" value="true" />
-        <entry key="EXPERIMENTAL" value="true" />
-        <entry key="I18N" value="true" />
-        <entry key="MALICIOUS_CODE" value="true" />
-        <entry key="MT_CORRECTNESS" value="true" />
-        <entry key="NOISE" value="false" />
-        <entry key="PERFORMANCE" value="true" />
-        <entry key="SECURITY" value="true" />
-        <entry key="STYLE" value="true" />
-      </map>
-    </option>
-  </component>
-</module>
-
--- a/javafx-ui-controls/project.properties	Thu Nov 10 13:20:11 2011 -0800
+++ b/javafx-ui-controls/project.properties	Thu Nov 10 13:27:16 2011 -0800
@@ -11,8 +11,8 @@
 javac.test.classpath=\
     ${javac.classpath}:\
     ${build.classes.dir}:\
-    ../javafx-ui-common/build/test/classes:\
-    ../javafx-ui-testing/dist/javafx-ui-testing.jar:\
+    ${runtime.dist.root.dir}/javafx-ui-common/build/test/classes:\
+    ${runtime.dist.root.dir}/javafx-ui-testing/dist/javafx-ui-testing.jar:\
     ${runtime.deps.dir}/junit.jar
 run.test.classpath=\
     ${javac.test.classpath}:\