summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustyna Ilczuk <justyna.ilczuk@gmail.com>2013-03-24 20:20:02 +0100
committerJustyna Ilczuk <justyna.ilczuk@gmail.com>2013-03-24 20:20:02 +0100
commit0252245893e1e0d6f72e1a214f1c67e48d9c1aac (patch)
tree92c935e58d711bfb03e1cc0cf2f9e64726277c14
parent5898a9c318b318562f353f9ff5042c4073cb19a6 (diff)
downloadmobi_reader-0252245893e1e0d6f72e1a214f1c67e48d9c1aac.tar.gz
mobi_reader-0252245893e1e0d6f72e1a214f1c67e48d9c1aac.tar.bz2
mobi_reader-0252245893e1e0d6f72e1a214f1c67e48d9c1aac.tar.xz
mobi_reader-0252245893e1e0d6f72e1a214f1c67e48d9c1aac.zip
I constructed basic scaffolding.
-rw-r--r--MobiReader/build.xml53
-rw-r--r--MobiReader/manifest.mf3
-rw-r--r--MobiReader/nbproject/build-impl.xml1445
-rw-r--r--MobiReader/nbproject/configs/Run_as_WebStart.properties2
-rw-r--r--MobiReader/nbproject/configs/Run_in_Browser.properties2
-rw-r--r--MobiReader/nbproject/genfiles.properties8
-rw-r--r--MobiReader/nbproject/jfx-impl.xml3213
-rw-r--r--MobiReader/nbproject/project.properties109
-rw-r--r--MobiReader/nbproject/project.xml29
-rw-r--r--MobiReader/src/mobireader/MobiReader.java38
-rw-r--r--MobiReader/test/tests/UnzippingJUnitTest.java46
11 files changed, 4948 insertions, 0 deletions
diff --git a/MobiReader/build.xml b/MobiReader/build.xml
new file mode 100644
index 0000000..75dfdc0
--- /dev/null
+++ b/MobiReader/build.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?><!-- You may freely edit this file. See commented blocks below for --><!-- some examples of how to customize the build. --><!-- (If you delete it and reopen the project it will be recreated.) --><!-- By default, only the Clean and Build commands use this build script. --><project name="MobiReader" default="default" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant">
+ <description>Builds, tests, and runs the project MobiReader.</description>
+ <import file="nbproject/build-impl.xml"/>
+ <!--
+
+ There exist several targets which are by default empty and which can be
+ used for execution of your tasks. These targets are usually executed
+ before and after some main targets. Those of them relevant for JavaFX project are:
+
+ -pre-init: called before initialization of project properties
+ -post-init: called after initialization of project properties
+ -pre-compile: called before javac compilation
+ -post-compile: called after javac compilation
+ -pre-compile-test: called before javac compilation of JUnit tests
+ -post-compile-test: called after javac compilation of JUnit tests
+ -pre-jfx-jar: called before FX SDK specific <fx:jar> task
+ -post-jfx-jar: called after FX SDK specific <fx:jar> task
+ -pre-jfx-deploy: called before FX SDK specific <fx:deploy> task
+ -post-jfx-deploy: called after FX SDK specific <fx:deploy> task
+ -pre-jfx-native: called just after -pre-jfx-deploy if <fx:deploy> runs in native packaging mode
+ -post-jfx-native: called just after -post-jfx-deploy if <fx:deploy> runs in native packaging mode
+ -post-clean: called after cleaning build products
+
+ (Targets beginning with '-' are not intended to be called on their own.)
+
+ Example of inserting a HTML postprocessor after javaFX SDK deployment:
+
+ <target name="-post-jfx-deploy">
+ <basename property="jfx.deployment.base" file="${jfx.deployment.jar}" suffix=".jar"/>
+ <property name="jfx.deployment.html" location="${jfx.deployment.dir}${file.separator}${jfx.deployment.base}.html"/>
+ <custompostprocess>
+ <fileset dir="${jfx.deployment.html}"/>
+ </custompostprocess>
+ </target>
+
+ Example of calling an Ant task from JavaFX SDK. Note that access to JavaFX SDK Ant tasks must be
+ initialized; to ensure this is done add the dependence on -check-jfx-sdk-version target:
+
+ <target name="-post-jfx-jar" depends="-check-jfx-sdk-version">
+ <echo message="Calling jar task from JavaFX SDK"/>
+ <fx:jar ...>
+ ...
+ </fx:jar>
+ </target>
+
+ For more details about JavaFX SDK Ant tasks go to
+ http://docs.oracle.com/javafx/2/deployment/jfxpub-deployment.htm
+
+ For list of available properties check the files
+ nbproject/build-impl.xml and nbproject/jfx-impl.xml.
+
+ -->
+</project>
diff --git a/MobiReader/manifest.mf b/MobiReader/manifest.mf
new file mode 100644
index 0000000..328e8e5
--- /dev/null
+++ b/MobiReader/manifest.mf
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+X-COMMENT: Main-Class will be added automatically by build
+
diff --git a/MobiReader/nbproject/build-impl.xml b/MobiReader/nbproject/build-impl.xml
new file mode 100644
index 0000000..9f19e73
--- /dev/null
+++ b/MobiReader/nbproject/build-impl.xml
@@ -0,0 +1,1445 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+*** GENERATED FROM project.xml - DO NOT EDIT ***
+*** EDIT ../build.xml INSTEAD ***
+
+For the purpose of easier reading the script
+is divided into following sections:
+
+ - initialization
+ - compilation
+ - jar
+ - execution
+ - debugging
+ - javadoc
+ - test compilation
+ - test execution
+ - test debugging
+ - applet
+ - cleanup
+
+ -->
+<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="MobiReader-impl">
+ <import file="jfx-impl.xml"/>
+ <fail message="Please build using Ant 1.8.0 or higher.">
+ <condition>
+ <not>
+ <antversion atleast="1.8.0"/>
+ </not>
+ </condition>
+ </fail>
+ <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
+ <!--
+ ======================
+ INITIALIZATION SECTION
+ ======================
+ -->
+ <target name="-pre-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-pre-init" name="-init-private">
+ <property file="nbproject/private/config.properties"/>
+ <property file="nbproject/private/configs/${config}.properties"/>
+ <property file="nbproject/private/private.properties"/>
+ </target>
+ <target depends="-pre-init,-init-private" name="-init-user">
+ <property file="${user.properties.file}"/>
+ <!-- The two properties below are usually overridden -->
+ <!-- by the active platform. Just a fallback. -->
+ <property name="default.javac.source" value="1.4"/>
+ <property name="default.javac.target" value="1.4"/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user" name="-init-project">
+ <property file="nbproject/configs/${config}.properties"/>
+ <property file="nbproject/project.properties"/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
+ <j2seproject1:property name="platform.home" value="platforms.${platform.active}.home"/>
+ <j2seproject1:property name="platform.bootcp" value="platforms.${platform.active}.bootclasspath"/>
+ <j2seproject1:property name="platform.compiler" value="platforms.${platform.active}.compile"/>
+ <j2seproject1:property name="platform.javac.tmp" value="platforms.${platform.active}.javac"/>
+ <condition property="platform.javac" value="${platform.home}/bin/javac">
+ <equals arg1="${platform.javac.tmp}" arg2="$${platforms.${platform.active}.javac}"/>
+ </condition>
+ <property name="platform.javac" value="${platform.javac.tmp}"/>
+ <j2seproject1:property name="platform.java.tmp" value="platforms.${platform.active}.java"/>
+ <condition property="platform.java" value="${platform.home}/bin/java">
+ <equals arg1="${platform.java.tmp}" arg2="$${platforms.${platform.active}.java}"/>
+ </condition>
+ <property name="platform.java" value="${platform.java.tmp}"/>
+ <j2seproject1:property name="platform.javadoc.tmp" value="platforms.${platform.active}.javadoc"/>
+ <condition property="platform.javadoc" value="${platform.home}/bin/javadoc">
+ <equals arg1="${platform.javadoc.tmp}" arg2="$${platforms.${platform.active}.javadoc}"/>
+ </condition>
+ <property name="platform.javadoc" value="${platform.javadoc.tmp}"/>
+ <condition property="platform.invalid" value="true">
+ <or>
+ <contains string="${platform.javac}" substring="$${platforms."/>
+ <contains string="${platform.java}" substring="$${platforms."/>
+ <contains string="${platform.javadoc}" substring="$${platforms."/>
+ </or>
+ </condition>
+ <fail unless="platform.home">Must set platform.home</fail>
+ <fail unless="platform.bootcp">Must set platform.bootcp</fail>
+ <fail unless="platform.java">Must set platform.java</fail>
+ <fail unless="platform.javac">Must set platform.javac</fail>
+ <fail if="platform.invalid">
+ The J2SE Platform is not correctly set up.
+ Your active platform is: ${platform.active}, but the corresponding property "platforms.${platform.active}.home" is not found in the project's properties files.
+ Either open the project in the IDE and setup the Platform with the same name or add it manually.
+ For example like this:
+ ant -Duser.properties.file=&lt;path_to_property_file&gt; jar (where you put the property "platforms.${platform.active}.home" in a .properties file)
+ or ant -Dplatforms.${platform.active}.home=&lt;path_to_JDK_home&gt; jar (where no properties file is used)
+ </fail>
+ <available file="${manifest.file}" property="manifest.available"/>
+ <condition property="splashscreen.available">
+ <and>
+ <not>
+ <equals arg1="${application.splash}" arg2="" trim="true"/>
+ </not>
+ <available file="${application.splash}"/>
+ </and>
+ </condition>
+ <condition property="main.class.available">
+ <and>
+ <isset property="main.class"/>
+ <not>
+ <equals arg1="${main.class}" arg2="" trim="true"/>
+ </not>
+ </and>
+ </condition>
+ <condition property="manifest.available+main.class">
+ <and>
+ <isset property="manifest.available"/>
+ <isset property="main.class.available"/>
+ </and>
+ </condition>
+ <condition property="do.archive">
+ <not>
+ <istrue value="${jar.archive.disabled}"/>
+ </not>
+ </condition>
+ <condition property="do.mkdist">
+ <and>
+ <isset property="do.archive"/>
+ <isset property="libs.CopyLibs.classpath"/>
+ <not>
+ <istrue value="${mkdist.disabled}"/>
+ </not>
+ </and>
+ </condition>
+ <condition property="manifest.available+main.class+mkdist.available">
+ <and>
+ <istrue value="${manifest.available+main.class}"/>
+ <isset property="do.mkdist"/>
+ </and>
+ </condition>
+ <condition property="do.archive+manifest.available">
+ <and>
+ <isset property="manifest.available"/>
+ <istrue value="${do.archive}"/>
+ </and>
+ </condition>
+ <condition property="do.archive+main.class.available">
+ <and>
+ <isset property="main.class.available"/>
+ <istrue value="${do.archive}"/>
+ </and>
+ </condition>
+ <condition property="do.archive+splashscreen.available">
+ <and>
+ <isset property="splashscreen.available"/>
+ <istrue value="${do.archive}"/>
+ </and>
+ </condition>
+ <condition property="do.archive+manifest.available+main.class">
+ <and>
+ <istrue value="${manifest.available+main.class}"/>
+ <istrue value="${do.archive}"/>
+ </and>
+ </condition>
+ <condition property="manifest.available-mkdist.available">
+ <or>
+ <istrue value="${manifest.available}"/>
+ <isset property="do.mkdist"/>
+ </or>
+ </condition>
+ <condition property="manifest.available+main.class-mkdist.available">
+ <or>
+ <istrue value="${manifest.available+main.class}"/>
+ <isset property="do.mkdist"/>
+ </or>
+ </condition>
+ <condition property="have.tests">
+ <or>
+ <available file="${test.src.dir}"/>
+ </or>
+ </condition>
+ <condition property="have.sources">
+ <or>
+ <available file="${src.dir}"/>
+ </or>
+ </condition>
+ <condition property="netbeans.home+have.tests">
+ <and>
+ <isset property="netbeans.home"/>
+ <isset property="have.tests"/>
+ </and>
+ </condition>
+ <condition property="no.javadoc.preview">
+ <and>
+ <isset property="javadoc.preview"/>
+ <isfalse value="${javadoc.preview}"/>
+ </and>
+ </condition>
+ <property name="run.jvmargs" value=""/>
+ <property name="run.jvmargs.ide" value=""/>
+ <property name="javac.compilerargs" value=""/>
+ <property name="work.dir" value="${basedir}"/>
+ <condition property="no.deps">
+ <and>
+ <istrue value="${no.dependencies}"/>
+ </and>
+ </condition>
+ <property name="javac.debug" value="true"/>
+ <property name="javadoc.preview" value="true"/>
+ <property name="application.args" value=""/>
+ <property name="source.encoding" value="${file.encoding}"/>
+ <property name="runtime.encoding" value="${source.encoding}"/>
+ <condition property="javadoc.encoding.used" value="${javadoc.encoding}">
+ <and>
+ <isset property="javadoc.encoding"/>
+ <not>
+ <equals arg1="${javadoc.encoding}" arg2=""/>
+ </not>
+ </and>
+ </condition>
+ <property name="javadoc.encoding.used" value="${source.encoding}"/>
+ <property name="includes" value="**"/>
+ <property name="excludes" value=""/>
+ <property name="do.depend" value="false"/>
+ <condition property="do.depend.true">
+ <istrue value="${do.depend}"/>
+ </condition>
+ <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
+ <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
+ <length length="0" string="${endorsed.classpath}" when="greater"/>
+ </condition>
+ <property name="jar.index" value="false"/>
+ <property name="jar.index.metainf" value="${jar.index}"/>
+ <property name="copylibs.rebase" value="true"/>
+ <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
+ <condition property="junit.available">
+ <or>
+ <available classname="org.junit.Test" classpath="${run.test.classpath}"/>
+ <available classname="junit.framework.Test" classpath="${run.test.classpath}"/>
+ </or>
+ </condition>
+ <condition property="testng.available">
+ <available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/>
+ </condition>
+ <condition property="junit+testng.available">
+ <and>
+ <istrue value="${junit.available}"/>
+ <istrue value="${testng.available}"/>
+ </and>
+ </condition>
+ <condition else="testng" property="testng.mode" value="mixed">
+ <istrue value="${junit+testng.available}"/>
+ </condition>
+ <condition else="" property="testng.debug.mode" value="-mixed">
+ <istrue value="${junit+testng.available}"/>
+ </condition>
+ </target>
+ <target name="-post-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-check-javafx" name="-init-check">
+ <fail unless="src.dir">Must set src.dir</fail>
+ <fail unless="test.src.dir">Must set test.src.dir</fail>
+ <fail unless="build.dir">Must set build.dir</fail>
+ <fail unless="dist.dir">Must set dist.dir</fail>
+ <fail unless="build.classes.dir">Must set build.classes.dir</fail>
+ <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
+ <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
+ <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
+ <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
+ <fail unless="dist.jar">Must set dist.jar</fail>
+ </target>
+ <target name="-init-macrodef-property">
+ <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute name="name"/>
+ <attribute name="value"/>
+ <sequential>
+ <property name="@{name}" value="${@{value}}"/>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
+ <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${src.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}" name="classpath"/>
+ <attribute default="${javac.processorpath}" name="processorpath"/>
+ <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="${javac.debug}" name="debug"/>
+ <attribute default="${empty.dir}" name="sourcepath"/>
+ <attribute default="${empty.dir}" name="gensrcdir"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property location="${build.dir}/empty" name="empty.dir"/>
+ <mkdir dir="${empty.dir}"/>
+ <mkdir dir="@{apgeneratedsrcdir}"/>
+ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" executable="${platform.javac}" fork="yes" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
+ <src>
+ <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </src>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <compilerarg line="${javac.compilerargs}"/>
+ <compilerarg value="-processorpath"/>
+ <compilerarg path="@{processorpath}:${empty.dir}"/>
+ <compilerarg line="${ap.processors.internal}"/>
+ <compilerarg line="${annotation.processing.processor.options}"/>
+ <compilerarg value="-s"/>
+ <compilerarg path="@{apgeneratedsrcdir}"/>
+ <compilerarg line="${ap.proc.none.internal}"/>
+ <customize/>
+ </javac>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
+ <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${src.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}" name="classpath"/>
+ <attribute default="${javac.processorpath}" name="processorpath"/>
+ <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="${javac.debug}" name="debug"/>
+ <attribute default="${empty.dir}" name="sourcepath"/>
+ <attribute default="${empty.dir}" name="gensrcdir"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property location="${build.dir}/empty" name="empty.dir"/>
+ <mkdir dir="${empty.dir}"/>
+ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" executable="${platform.javac}" fork="yes" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
+ <src>
+ <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </src>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <compilerarg line="${javac.compilerargs}"/>
+ <customize/>
+ </javac>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
+ <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${src.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}" name="classpath"/>
+ <sequential>
+ <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ </depend>
+ </sequential>
+ </macrodef>
+ <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <sequential>
+ <fail unless="javac.includes">Must set javac.includes</fail>
+ <pathconvert pathsep="${line.separator}" property="javac.includes.binary">
+ <path>
+ <filelist dir="@{destdir}" files="${javac.includes}"/>
+ </path>
+ <globmapper from="*.java" to="*.class"/>
+ </pathconvert>
+ <tempfile deleteonexit="true" property="javac.includesfile.binary"/>
+ <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/>
+ <delete>
+ <files includesfile="${javac.includesfile.binary}"/>
+ </delete>
+ <delete>
+ <fileset file="${javac.includesfile.binary}"/>
+ </delete>
+ </sequential>
+ </macrodef>
+ </target>
+ <target if="${junit.available}" name="-init-macrodef-junit-init">
+ <condition else="false" property="nb.junit.batch" value="true">
+ <and>
+ <istrue value="${junit.available}"/>
+ <not>
+ <isset property="test.method"/>
+ </not>
+ </and>
+ </condition>
+ <condition else="false" property="nb.junit.single" value="true">
+ <and>
+ <istrue value="${junit.available}"/>
+ <isset property="test.method"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-init-test-properties">
+ <property name="test.binaryincludes" value="&lt;nothing&gt;"/>
+ <property name="test.binarytestincludes" value=""/>
+ <property name="test.binaryexcludes" value=""/>
+ </target>
+ <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
+ <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property name="junit.forkmode" value="perTest"/>
+ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}">
+ <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ <jvmarg value="-ea"/>
+ <customize/>
+ </junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
+ <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property name="junit.forkmode" value="perTest"/>
+ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}">
+ <batchtest todir="${build.test.results.dir}">
+ <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+ <filename name="${test.binarytestincludes}"/>
+ </fileset>
+ </batchtest>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ <jvmarg value="-ea"/>
+ <customize/>
+ </junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/>
+ <target if="${testng.available}" name="-init-macrodef-testng">
+ <macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}">
+ <isset property="test.method"/>
+ </condition>
+ <union id="test.set">
+ <fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ </union>
+ <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
+ <testng classfilesetref="test.set" failureProperty="tests.failed" jvm="${platform.java}" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="MobiReader" testname="TestNG tests" workingDir="${work.dir}">
+ <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
+ <propertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </propertyset>
+ <customize/>
+ </testng>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-test-impl">
+ <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element implicit="true" name="customize" optional="true"/>
+ <sequential>
+ <echo>No tests executed.</echo>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl">
+ <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element implicit="true" name="customize" optional="true"/>
+ <sequential>
+ <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize/>
+ </j2seproject3:junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl">
+ <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element implicit="true" name="customize" optional="true"/>
+ <sequential>
+ <j2seproject3:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize/>
+ </j2seproject3:testng>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test">
+ <macrodef name="test" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <sequential>
+ <j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ </classpath>
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ <jvmarg line="${run.jvmargs.ide}"/>
+ </customize>
+ </j2seproject3:test-impl>
+ </sequential>
+ </macrodef>
+ </target>
+ <target if="${junit.available}" name="-init-macrodef-junit-debug" unless="${nb.junit.batch}">
+ <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property name="junit.forkmode" value="perTest"/>
+ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}">
+ <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ <jvmarg value="-ea"/>
+ <jvmarg line="${debug-args-line}"/>
+ <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+ <customize/>
+ </junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
+ <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property name="junit.forkmode" value="perTest"/>
+ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}">
+ <batchtest todir="${build.test.results.dir}">
+ <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+ <filename name="${test.binarytestincludes}"/>
+ </fileset>
+ </batchtest>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ <jvmarg value="-ea"/>
+ <jvmarg line="${debug-args-line}"/>
+ <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+ <customize/>
+ </junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch" if="${junit.available}" name="-init-macrodef-junit-debug-impl">
+ <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element implicit="true" name="customize" optional="true"/>
+ <sequential>
+ <j2seproject3:junit-debug excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize/>
+ </j2seproject3:junit-debug>
+ </sequential>
+ </macrodef>
+ </target>
+ <target if="${testng.available}" name="-init-macrodef-testng-debug">
+ <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${main.class}" name="testClass"/>
+ <attribute default="" name="testMethod"/>
+ <element name="customize2" optional="true"/>
+ <sequential>
+ <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}">
+ <isset property="test.method"/>
+ </condition>
+ <condition else="-suitename MobiReader -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}">
+ <matches pattern=".*\.xml" string="@{testClass}"/>
+ </condition>
+ <delete dir="${build.test.results.dir}" quiet="true"/>
+ <mkdir dir="${build.test.results.dir}"/>
+ <j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}">
+ <customize>
+ <customize2/>
+ <jvmarg value="-ea"/>
+ <arg line="${testng.debug.mode}"/>
+ <arg line="-d ${build.test.results.dir}"/>
+ <arg line="-listener org.testng.reporters.VerboseReporter"/>
+ <arg line="${testng.cmd.args}"/>
+ </customize>
+ </j2seproject3:debug>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl">
+ <macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${main.class}" name="testClass"/>
+ <attribute default="" name="testMethod"/>
+ <element implicit="true" name="customize2" optional="true"/>
+ <sequential>
+ <j2seproject3:testng-debug testClass="@{testClass}" testMethod="@{testMethod}">
+ <customize2/>
+ </j2seproject3:testng-debug>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit">
+ <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <attribute default="${main.class}" name="testClass"/>
+ <attribute default="" name="testMethod"/>
+ <sequential>
+ <j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ </classpath>
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ <jvmarg line="${run.jvmargs.ide}"/>
+ </customize>
+ </j2seproject3:test-debug-impl>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng">
+ <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <attribute default="${main.class}" name="testClass"/>
+ <attribute default="" name="testMethod"/>
+ <sequential>
+ <j2seproject3:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}">
+ <customize2>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ </customize2>
+ </j2seproject3:testng-debug-impl>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/>
+ <!--
+ pre NB7.2 profiling section; consider it deprecated
+ -->
+ <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/>
+ <target if="profiler.info.jvmargs.agent" name="-profile-pre-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target if="profiler.info.jvmargs.agent" name="-profile-post-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target if="profiler.info.jvmargs.agent" name="-profile-init-macrodef-profile">
+ <macrodef name="resolve">
+ <attribute name="name"/>
+ <attribute name="value"/>
+ <sequential>
+ <property name="@{name}" value="${env.@{value}}"/>
+ </sequential>
+ </macrodef>
+ <macrodef name="profile">
+ <attribute default="${main.class}" name="classname"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property environment="env"/>
+ <resolve name="profiler.current.path" value="${profiler.info.pathvar}"/>
+ <java classname="@{classname}" dir="${profiler.info.dir}" fork="true" jvm="${profiler.info.jvm}">
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg value="${profiler.info.jvmargs.agent}"/>
+ <jvmarg line="${profiler.info.jvmargs}"/>
+ <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
+ <arg line="${application.args}"/>
+ <classpath>
+ <path path="${run.classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" if="profiler.info.jvmargs.agent" name="-profile-init-check">
+ <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail>
+ <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>
+ </target>
+ <!--
+ end of pre NB7.2 profiling section
+ -->
+ <target depends="-init-debug-args" name="-init-macrodef-nbjpda">
+ <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${main.class}" name="name"/>
+ <attribute default="${debug.classpath}" name="classpath"/>
+ <attribute default="" name="stopclassname"/>
+ <sequential>
+ <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <bootclasspath>
+ <path path="${platform.bootcp}"/>
+ </bootclasspath>
+ </nbjpdastart>
+ </sequential>
+ </macrodef>
+ <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${build.classes.dir}" name="dir"/>
+ <sequential>
+ <nbjpdareload>
+ <fileset dir="@{dir}" includes="${fix.classes}">
+ <include name="${fix.includes}*.class"/>
+ </fileset>
+ </nbjpdareload>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-debug-args">
+ <exec executable="${platform.java}" outputproperty="version-output">
+ <arg value="-version"/>
+ </exec>
+ <condition property="have-jdk-older-than-1.4">
+ <or>
+ <contains string="${version-output}" substring="java version &quot;1.0"/>
+ <contains string="${version-output}" substring="java version &quot;1.1"/>
+ <contains string="${version-output}" substring="java version &quot;1.2"/>
+ <contains string="${version-output}" substring="java version &quot;1.3"/>
+ </or>
+ </condition>
+ <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
+ <istrue value="${have-jdk-older-than-1.4}"/>
+ </condition>
+ <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
+ <os family="windows"/>
+ </condition>
+ <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
+ <isset property="debug.transport"/>
+ </condition>
+ </target>
+ <target depends="-init-debug-args" name="-init-macrodef-debug">
+ <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${debug.classpath}" name="classpath"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <java classname="@{classname}" dir="${work.dir}" fork="true" jvm="${platform.java}">
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg line="${debug-args-line}"/>
+ <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ <jvmarg line="${run.jvmargs.ide}"/>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-java">
+ <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${run.classpath}" name="classpath"/>
+ <attribute default="jvm" name="jvm"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <java classname="@{classname}" dir="${work.dir}" fork="true" jvm="${platform.java}">
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ <jvmarg line="${run.jvmargs.ide}"/>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-copylibs">
+ <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${manifest.file}" name="manifest"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <pathconvert property="run.classpath.without.build.classes.dir">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to=""/>
+ </pathconvert>
+ <pathconvert pathsep=" " property="jar.classpath">
+ <path path="${run.classpath.without.build.classes.dir}"/>
+ <chainedmapper>
+ <flattenmapper/>
+ <filtermapper>
+ <replacestring from=" " to="%20"/>
+ </filtermapper>
+ <globmapper from="*" to="lib/*"/>
+ </chainedmapper>
+ </pathconvert>
+ <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
+ <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}">
+ <fileset dir="${build.classes.dir}"/>
+ <manifest>
+ <attribute name="Class-Path" value="${jar.classpath}"/>
+ <customize/>
+ </manifest>
+ </copylibs>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-presetdef-jar">
+ <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
+ <j2seproject1:fileset dir="${build.classes.dir}"/>
+ </jar>
+ </presetdef>
+ </target>
+ <target name="-init-ap-cmdline-properties">
+ <property name="annotation.processing.enabled" value="true"/>
+ <property name="annotation.processing.processors.list" value=""/>
+ <property name="annotation.processing.processor.options" value=""/>
+ <property name="annotation.processing.run.all.processors" value="true"/>
+ <property name="javac.processorpath" value="${javac.classpath}"/>
+ <property name="javac.test.processorpath" value="${javac.test.classpath}"/>
+ <condition property="ap.supported.internal" value="true">
+ <not>
+ <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
+ </not>
+ </condition>
+ </target>
+ <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
+ <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
+ <isfalse value="${annotation.processing.run.all.processors}"/>
+ </condition>
+ <condition else="" property="ap.proc.none.internal" value="-proc:none">
+ <isfalse value="${annotation.processing.enabled}"/>
+ </condition>
+ </target>
+ <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
+ <property name="ap.cmd.line.internal" value=""/>
+ </target>
+ <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"/>
+ <!--
+ ===================
+ COMPILATION SECTION
+ ===================
+ -->
+ <target name="-deps-jar-init" unless="built-jar.properties">
+ <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/>
+ <delete file="${built-jar.properties}" quiet="true"/>
+ </target>
+ <target if="already.built.jar.${basedir}" name="-warn-already-built-jar">
+ <echo level="warn" message="Cycle detected: MobiReader was already built"/>
+ </target>
+ <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps">
+ <mkdir dir="${build.dir}"/>
+ <touch file="${built-jar.properties}" verbose="false"/>
+ <property file="${built-jar.properties}" prefix="already.built.jar."/>
+ <antcall target="-warn-already-built-jar"/>
+ <propertyfile file="${built-jar.properties}">
+ <entry key="${basedir}" value=""/>
+ </propertyfile>
+ </target>
+ <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
+ <target depends="init" name="-check-automatic-build">
+ <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
+ </target>
+ <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
+ <antcall target="clean"/>
+ </target>
+ <target depends="init,deps-jar" name="-pre-pre-compile">
+ <mkdir dir="${build.classes.dir}"/>
+ </target>
+ <target name="-pre-compile">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target if="do.depend.true" name="-compile-depend">
+ <pathconvert property="build.generated.subdirs">
+ <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </pathconvert>
+ <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
+ </target>
+ <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile">
+ <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
+ <copy todir="${build.classes.dir}">
+ <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target if="has.persistence.xml" name="-copy-persistence-xml">
+ <mkdir dir="${build.classes.dir}/META-INF"/>
+ <copy todir="${build.classes.dir}/META-INF">
+ <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/>
+ </copy>
+ </target>
+ <target name="-post-compile">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
+ <target name="-pre-compile-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+ <j2seproject3:force-recompile/>
+ <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/>
+ </target>
+ <target name="-post-compile-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
+ <!--
+ ====================
+ JAR BUILDING SECTION
+ ====================
+ -->
+ <target depends="init" name="-pre-pre-jar">
+ <dirname file="${dist.jar}" property="dist.jar.dir"/>
+ <mkdir dir="${dist.jar.dir}"/>
+ </target>
+ <target name="-pre-jar">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available-mkdist.available">
+ <j2seproject1:jar/>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class-mkdist.available">
+ <j2seproject1:jar manifest="${manifest.file}"/>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
+ <j2seproject1:jar manifest="${manifest.file}">
+ <j2seproject1:manifest>
+ <j2seproject1:attribute name="Main-Class" value="${main.class}"/>
+ </j2seproject1:manifest>
+ </j2seproject1:jar>
+ <echo level="info">To run this application from the command line without Ant, try:</echo>
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <property location="${dist.jar}" name="dist.jar.resolved"/>
+ <pathconvert property="run.classpath.with.dist.jar">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
+ </pathconvert>
+ <echo level="info">${platform.java} -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
+ </target>
+ <target depends="init" if="do.archive" name="-do-jar-with-libraries-create-manifest" unless="manifest.available">
+ <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
+ <touch file="${tmp.manifest.file}" verbose="false"/>
+ </target>
+ <target depends="init" if="do.archive+manifest.available" name="-do-jar-with-libraries-copy-manifest">
+ <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
+ <copy file="${manifest.file}" tofile="${tmp.manifest.file}"/>
+ </target>
+ <target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+main.class.available" name="-do-jar-with-libraries-set-main">
+ <manifest file="${tmp.manifest.file}" mode="update">
+ <attribute name="Main-Class" value="${main.class}"/>
+ </manifest>
+ </target>
+ <target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-with-libraries-set-splashscreen">
+ <basename file="${application.splash}" property="splashscreen.basename"/>
+ <mkdir dir="${build.classes.dir}/META-INF"/>
+ <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
+ <manifest file="${tmp.manifest.file}" mode="update">
+ <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
+ </manifest>
+ </target>
+ <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen" if="do.mkdist" name="-do-jar-with-libraries-pack">
+ <j2seproject3:copylibs manifest="${tmp.manifest.file}"/>
+ <echo level="info">To run this application from the command line without Ant, try:</echo>
+ <property location="${dist.jar}" name="dist.jar.resolved"/>
+ <echo level="info">${platform.java} -jar "${dist.jar.resolved}"</echo>
+ </target>
+ <target depends="-do-jar-with-libraries-pack" if="do.archive" name="-do-jar-with-libraries-delete-manifest">
+ <delete>
+ <fileset file="${tmp.manifest.file}"/>
+ </delete>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen,-do-jar-with-libraries-pack,-do-jar-with-libraries-delete-manifest" name="-do-jar-with-libraries"/>
+ <target depends="-jfx-copylibs,-rebase-libs,jfx-deployment" name="-post-jar">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar,-jfx-copylibs,-rebase-libs" description="Build JAR." name="jar"/>
+ <!--
+ =================
+ EXECUTION SECTION
+ =================
+ -->
+ <target depends="init,compile,jar" description="Run a main class." name="run">
+ <j2seproject1:java>
+ <customize>
+ <arg line="${application.args}"/>
+ </customize>
+ </j2seproject1:java>
+ </target>
+ <target name="-do-not-recompile">
+ <property name="javac.includes.binary" value=""/>
+ </target>
+ <target depends="init,compile-single" name="run-single">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <j2seproject1:java classname="${run.class}"/>
+ </target>
+ <target depends="init,compile-test-single" name="run-test-with-main">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
+ </target>
+ <!--
+ =================
+ DEBUGGING SECTION
+ =================
+ -->
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger">
+ <j2seproject1:nbjpdastart name="${debug.class}"/>
+ </target>
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
+ <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
+ </target>
+ <target depends="init,compile" name="-debug-start-debuggee">
+ <j2seproject3:debug>
+ <customize>
+ <arg line="${application.args}"/>
+ </customize>
+ </j2seproject3:debug>
+ </target>
+ <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee,jar" description="Debug project in IDE." if="netbeans.home" name="debug"/>
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
+ <j2seproject1:nbjpdastart stopclassname="${main.class}"/>
+ </target>
+ <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
+ <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+ <j2seproject3:debug classname="${debug.class}"/>
+ </target>
+ <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
+ <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+ <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
+ </target>
+ <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
+ <target depends="init" name="-pre-debug-fix">
+ <fail unless="fix.includes">Must set fix.includes</fail>
+ <property name="javac.includes" value="${fix.includes}.java"/>
+ </target>
+ <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
+ <j2seproject1:nbjpdareload/>
+ </target>
+ <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
+ <!--
+ =================
+ PROFILING SECTION
+ =================
+ -->
+ <!--
+ pre NB7.2 profiler integration
+ -->
+ <target depends="profile-init,compile" description="Profile a project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72">
+ <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
+ <nbprofiledirect>
+ <classpath>
+ <path path="${run.classpath}"/>
+ </classpath>
+ </nbprofiledirect>
+ <profile/>
+ </target>
+ <target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="profiler.info.jvmargs.agent" name="-profile-single-pre72">
+ <fail unless="profile.class">Must select one file in the IDE or set profile.class</fail>
+ <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
+ <nbprofiledirect>
+ <classpath>
+ <path path="${run.classpath}"/>
+ </classpath>
+ </nbprofiledirect>
+ <profile classname="${profile.class}"/>
+ </target>
+ <target depends="profile-init,compile-single" if="profiler.info.jvmargs.agent" name="-profile-applet-pre72">
+ <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
+ <nbprofiledirect>
+ <classpath>
+ <path path="${run.classpath}"/>
+ </classpath>
+ </nbprofiledirect>
+ <profile classname="sun.applet.AppletViewer">
+ <customize>
+ <arg value="${applet.url}"/>
+ </customize>
+ </profile>
+ </target>
+ <target depends="profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72">
+ <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
+ <nbprofiledirect>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ </classpath>
+ </nbprofiledirect>
+ <junit dir="${profiler.info.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${profiler.info.jvm}" showoutput="true">
+ <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
+ <jvmarg value="${profiler.info.jvmargs.agent}"/>
+ <jvmarg line="${profiler.info.jvmargs}"/>
+ <test name="${profile.class}"/>
+ <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"/>
+ </junit>
+ </target>
+ <!--
+ end of pre NB72 profiling section
+ -->
+ <target if="netbeans.home" name="-profile-check">
+ <condition property="profiler.configured">
+ <or>
+ <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/>
+ <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/>
+ </or>
+ </condition>
+ </target>
+ <target depends="-profile-check,-profile-pre72,jar" description="Profile a project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent">
+ <startprofiler/>
+ <antcall target="run"/>
+ </target>
+ <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">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <startprofiler/>
+ <antcall target="run-single"/>
+ </target>
+ <target depends="-profile-test-single-pre72" description="Profile a selected test in the IDE." name="profile-test-single"/>
+ <target depends="-profile-check" description="Profile a selected test in the IDE." if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs">
+ <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
+ <startprofiler/>
+ <antcall target="test-single"/>
+ </target>
+ <target depends="-profile-check" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-test-with-main">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <startprofiler/>
+ <antcal target="run-test-with-main"/>
+ </target>
+ <target depends="-profile-check,-profile-applet-pre72" if="profiler.configured" name="profile-applet" unless="profiler.info.jvmargs.agent">
+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+ <startprofiler/>
+ <antcall target="run-applet"/>
+ </target>
+ <!--
+ ===============
+ JAVADOC SECTION
+ ===============
+ -->
+ <target depends="init" if="have.sources" name="-javadoc-build">
+ <mkdir dir="${dist.javadoc.dir}"/>
+ <condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}">
+ <and>
+ <isset property="endorsed.classpath.cmd.line.arg"/>
+ <not>
+ <equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/>
+ </not>
+ </and>
+ </condition>
+ <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" executable="${platform.javadoc}" 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}">
+ <classpath>
+ <path path="${javac.classpath}"/>
+ </classpath>
+ <fileset dir="${src.dir}" excludes="*.java,${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+ <include name="**/*.java"/>
+ <exclude name="*.java"/>
+ </fileset>
+ <arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/>
+ </javadoc>
+ <copy todir="${dist.javadoc.dir}">
+ <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+ <include name="**/doc-files/**"/>
+ </fileset>
+ </copy>
+ </target>
+ <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
+ <nbbrowse file="${dist.javadoc.dir}/index.html"/>
+ </target>
+ <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
+ <!--
+ =========================
+ TEST COMPILATION SECTION
+ =========================
+ -->
+ <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
+ <mkdir dir="${build.test.classes.dir}"/>
+ </target>
+ <target name="-pre-compile-test">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target if="do.depend.true" name="-compile-test-depend">
+ <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
+ </target>
+ <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
+ <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}"/>
+ <copy todir="${build.test.classes.dir}">
+ <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target name="-post-compile-test">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
+ <target name="-pre-compile-test-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+ <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
+ <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}"/>
+ <copy todir="${build.test.classes.dir}">
+ <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target name="-post-compile-test-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
+ <!--
+ =======================
+ TEST EXECUTION SECTION
+ =======================
+ -->
+ <target depends="init" if="have.tests" name="-pre-test-run">
+ <mkdir dir="${build.test.results.dir}"/>
+ </target>
+ <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
+ <j2seproject3:test testincludes="**/*Test.java"/>
+ </target>
+ <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <target depends="init" if="have.tests" name="test-report"/>
+ <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
+ <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
+ <target depends="init" if="have.tests" name="-pre-test-run-single">
+ <mkdir dir="${build.test.results.dir}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
+ <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
+ <j2seproject3:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <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"/>
+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method">
+ <fail unless="test.class">Must select some files in the IDE or set test.class</fail>
+ <fail unless="test.method">Must select some method in the IDE or set test.method</fail>
+ <j2seproject3:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <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"/>
+ <!--
+ =======================
+ TEST DEBUGGING SECTION
+ =======================
+ -->
+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test">
+ <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
+ <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method">
+ <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
+ <fail unless="test.method">Must select some method in the IDE or set test.method</fail>
+ <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/>
+ </target>
+ <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
+ <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
+ </target>
+ <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
+ <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/>
+ <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
+ <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
+ </target>
+ <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
+ <!--
+ =========================
+ APPLET EXECUTION SECTION
+ =========================
+ -->
+ <target depends="init,compile-single" name="run-applet">
+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+ <j2seproject1:java classname="sun.applet.AppletViewer">
+ <customize>
+ <arg value="${applet.url}"/>
+ </customize>
+ </j2seproject1:java>
+ </target>
+ <!--
+ =========================
+ APPLET DEBUGGING SECTION
+ =========================
+ -->
+ <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+ <j2seproject3:debug classname="sun.applet.AppletViewer">
+ <customize>
+ <arg value="${applet.url}"/>
+ </customize>
+ </j2seproject3:debug>
+ </target>
+ <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
+ <!--
+ ===============
+ CLEANUP SECTION
+ ===============
+ -->
+ <target name="-deps-clean-init" unless="built-clean.properties">
+ <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/>
+ <delete file="${built-clean.properties}" quiet="true"/>
+ </target>
+ <target if="already.built.clean.${basedir}" name="-warn-already-built-clean">
+ <echo level="warn" message="Cycle detected: MobiReader was already built"/>
+ </target>
+ <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps">
+ <mkdir dir="${build.dir}"/>
+ <touch file="${built-clean.properties}" verbose="false"/>
+ <property file="${built-clean.properties}" prefix="already.built.clean."/>
+ <antcall target="-warn-already-built-clean"/>
+ <propertyfile file="${built-clean.properties}">
+ <entry key="${basedir}" value=""/>
+ </propertyfile>
+ </target>
+ <target depends="init" name="-do-clean">
+ <delete dir="${build.dir}"/>
+ <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/>
+ </target>
+ <target name="-post-clean">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
+ <target name="-check-call-dep">
+ <property file="${call.built.properties}" prefix="already.built."/>
+ <condition property="should.call.dep">
+ <and>
+ <not>
+ <isset property="already.built.${call.subproject}"/>
+ </not>
+ <available file="${call.script}"/>
+ </and>
+ </condition>
+ </target>
+ <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
+ <ant antfile="${call.script}" inheritall="false" target="${call.target}">
+ <propertyset>
+ <propertyref prefix="transfer."/>
+ <mapper from="transfer.*" to="*" type="glob"/>
+ </propertyset>
+ </ant>
+ </target>
+</project>
diff --git a/MobiReader/nbproject/configs/Run_as_WebStart.properties b/MobiReader/nbproject/configs/Run_as_WebStart.properties
new file mode 100644
index 0000000..670fff0
--- /dev/null
+++ b/MobiReader/nbproject/configs/Run_as_WebStart.properties
@@ -0,0 +1,2 @@
+# Do not modify this property in this configuration. It can be re-generated.
+$label=Run as WebStart
diff --git a/MobiReader/nbproject/configs/Run_in_Browser.properties b/MobiReader/nbproject/configs/Run_in_Browser.properties
new file mode 100644
index 0000000..f2a5a65
--- /dev/null
+++ b/MobiReader/nbproject/configs/Run_in_Browser.properties
@@ -0,0 +1,2 @@
+# Do not modify this property in this configuration. It can be re-generated.
+$label=Run in Browser
diff --git a/MobiReader/nbproject/genfiles.properties b/MobiReader/nbproject/genfiles.properties
new file mode 100644
index 0000000..9c0693f
--- /dev/null
+++ b/MobiReader/nbproject/genfiles.properties
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=14d4ff44
+build.xml.script.CRC32=df09ec1e
+build.xml.stylesheet.CRC32=28e38971@1.56.1.46
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=14d4ff44
+nbproject/build-impl.xml.script.CRC32=52668f5e
+nbproject/build-impl.xml.stylesheet.CRC32=c6d2a60f@1.56.1.46
diff --git a/MobiReader/nbproject/jfx-impl.xml b/MobiReader/nbproject/jfx-impl.xml
new file mode 100644
index 0000000..f7a88ec
--- /dev/null
+++ b/MobiReader/nbproject/jfx-impl.xml
@@ -0,0 +1,3213 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+*** GENERATED FROM TEMPLATE - DO NOT EDIT ***
+*** EDIT ../build.xml INSTEAD ***
+-->
+
+<project name="jfx-impl" default="jfx-deployment" basedir=".." xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1"
+ xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:fx="javafx:com.sun.javafx.tools.ant">
+ <description>JavaFX-specific Ant calls</description>
+
+
+ <!-- Empty placeholders for easier customization in ../build.xml -->
+
+ <target name="-pre-jfx-jar">
+ <!-- Called right before <fx:jar> task. You can override this target in the ../build.xml file. -->
+ </target>
+
+ <target name="-post-jfx-jar">
+ <!-- Called right after <fx:jar> task. You can override this target in the ../build.xml file. -->
+ </target>
+
+ <target name="-pre-jfx-deploy">
+ <!-- Called right before <fx:deploy> task. You can override this target in the ../build.xml file. -->
+ </target>
+
+ <target name="-post-jfx-deploy">
+ <!-- Called right after <fx:deploy> task. You can override this target in the ../build.xml file. -->
+ </target>
+
+ <target name="-pre-jfx-native">
+ <!-- Called right before the call to native packager (just after -pre-jfx-deploy). You can override this target in the ../build.xml file. -->
+ </target>
+
+ <target name="-post-jfx-native">
+ <!-- Called right after the call to native packager (just after -post-jfx-deploy). You can override this target in the ../build.xml file. -->
+ </target>
+
+
+ <!-- Check system and JDK version -->
+
+ <target name="-check-operating-system">
+ <condition property="running.on.mac">
+ <os family="mac"/>
+ </condition>
+ <condition property="running.on.unix">
+ <os family="unix"/>
+ </condition>
+ <condition property="running.on.windows">
+ <os family="windows"/>
+ </condition>
+ <echo message="running.on.mac = ${running.on.mac}" level="verbose"/>
+ <echo message="running.on.unix = ${running.on.unix}" level="verbose"/>
+ <echo message="running.on.windows = ${running.on.windows}" level="verbose"/>
+ </target>
+
+ <target name="-check-platform-home-fxsdk-java" depends="-check-property-javafx.sdk" if="javafx.sdk.defined">
+ <condition property="do.set.platform.home.fxsdk.java">
+ <and>
+ <not><isset property="active.platform.home.java.executable"/></not>
+ <or>
+ <available file="${javafx.sdk}${file.separator}bin${file.separator}java"/>
+ <available file="${javafx.sdk}${file.separator}bin${file.separator}java.exe"/>
+ </or>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-platform-home-fxsdk-java" depends="-check-platform-home-fxsdk-java" if="do.set.platform.home.fxsdk.java">
+ <property name="active.platform.home.java.executable" value="${javafx.sdk}${file.separator}bin${file.separator}java"/>
+ </target>
+ <target name="-check-platform-home-java" if="platform.home">
+ <condition property="do.set.platform.home.java">
+ <and>
+ <not><isset property="active.platform.home.java.executable"/></not>
+ <or>
+ <available file="${platform.home}${file.separator}bin${file.separator}java"/>
+ <available file="${platform.home}${file.separator}bin${file.separator}java.exe"/>
+ </or>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-platform-home-java" depends="-set-platform-home-fxsdk-java,-check-platform-home-java" if="do.set.platform.home.java">
+ <property name="active.platform.home.java.executable" value="${platform.home}${file.separator}bin${file.separator}java"/>
+ </target>
+ <target name="-check-platform-home-probjdk-java" unless="active.platform.home.java.executable">
+ <condition property="do.set.platform.home.probjdk.java">
+ <and>
+ <not><isset property="active.platform.home.java.executable"/></not>
+ <or>
+ <available file="${java.home}${file.separator}..${file.separator}bin${file.separator}java"/>
+ <available file="${java.home}${file.separator}..${file.separator}bin${file.separator}java.exe"/>
+ </or>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-platform-home-probjdk-java" depends="-set-platform-home-java,-check-platform-home-probjdk-java" if="do.set.platform.home.probjdk.java">
+ <property name="active.platform.home.java.executable" value="${java.home}${file.separator}..${file.separator}bin${file.separator}java"/>
+ </target>
+ <target name="-check-platform-home-envjdk-java" unless="active.platform.home.java.executable">
+ <property environment="env"/>
+ <condition property="do.set.platform.home.envjdk.java">
+ <and>
+ <not><isset property="active.platform.home.java.executable"/></not>
+ <or>
+ <available file="${env.JAVA_HOME}${file.separator}bin${file.separator}java"/>
+ <available file="${env.JAVA_HOME}${file.separator}bin${file.separator}java.exe"/>
+ </or>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-platform-home-envjdk-java" depends="-set-platform-home-probjdk-java,-check-platform-home-envjdk-java" if="do.set.platform.home.envjdk.java">
+ <property environment="env"/>
+ <property name="active.platform.home.java.executable" value="${env.JAVA_HOME}${file.separator}bin${file.separator}java"/>
+ </target>
+ <target name="-check-platform-home-fxrt-java" depends="-check-property-javafx.runtime" if="javafx.runtime.defined">
+ <condition property="do.set.platform.home.fxrt.java">
+ <and>
+ <not><isset property="active.platform.home.java.executable"/></not>
+ <or>
+ <available file="${javafx.runtime}${file.separator}bin${file.separator}java"/>
+ <available file="${javafx.runtime}${file.separator}bin${file.separator}java.exe"/>
+ </or>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-platform-home-fxrt-java" depends="-set-platform-home-envjdk-java,-check-platform-home-fxrt-java" if="do.set.platform.home.fxrt.java">
+ <property name="active.platform.home.java.executable" value="${javafx.runtime}${file.separator}bin${file.separator}java"/>
+ <echo message="Warning: java executable not found in JDK, evaluating java executable in RT instead." level="info"/>
+ </target>
+ <target name="-check-platform-home-jre-java" unless="active.platform.home.java.executable">
+ <condition property="do.set.platform.home.jre.java">
+ <and>
+ <not><isset property="active.platform.home.java.executable"/></not>
+ <or>
+ <available file="${java.home}${file.separator}bin${file.separator}java"/>
+ <available file="${java.home}${file.separator}bin${file.separator}java.exe"/>
+ </or>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-platform-home-jre-java" depends="-set-platform-home-fxrt-java,-check-platform-home-jre-java" if="do.set.platform.home.jre.java">
+ <property name="active.platform.home.java.executable" value="${java.home}${file.separator}bin${file.separator}java"/>
+ <echo message="Warning: java executable not found in JDK, evaluating java executable in RT instead." level="info"/>
+ </target>
+ <target name="-check-platform-home" depends="-set-platform-home-jre-java">
+ <echo message="active.platform.home.java.executable = ${active.platform.home.java.executable}" level="verbose"/>
+ <fail message="Error:${line.separator}java executable not found !" unless="active.platform.home.java.executable"/>
+ </target>
+
+ <target name="-check-jdk-version" depends="-do-init,-check-platform-home" unless="jdk-version-checked-in-jfximpl">
+ <local name="version-output"/>
+ <exec executable="${active.platform.home.java.executable}" outputproperty="version-output">
+ <arg value="-version"/>
+ </exec>
+ <echo message="version-output:${line.separator}${version-output}" level="verbose"/>
+ <condition property="have-jdk-older-than-1.6">
+ <or>
+ <contains string="${version-output}" substring="java version &quot;1.0"/>
+ <contains string="${version-output}" substring="java version &quot;1.1"/>
+ <contains string="${version-output}" substring="java version &quot;1.2"/>
+ <contains string="${version-output}" substring="java version &quot;1.3"/>
+ <contains string="${version-output}" substring="java version &quot;1.4"/>
+ <contains string="${version-output}" substring="java version &quot;1.5"/>
+ </or>
+ </condition>
+ <fail message="Error:${line.separator}JavaFX 2.0+ projects require JDK version 1.6+ !" if="have-jdk-older-than-1.6"/>
+ <condition property="have-jdk-7u4or5-mac">
+ <and>
+ <or>
+ <contains string="${version-output}" substring="java version &quot;1.7.0_04"/>
+ <contains string="${version-output}" substring="java version &quot;1.7.0_05"/>
+ </or>
+ <os family="mac"/>
+ </and>
+ </condition>
+ <condition property="have-jdk-pre7u6">
+ <or>
+ <isset property="have-jdk-older-than-1.6"/>
+ <contains string="${version-output}" substring="java version &quot;1.6"/>
+ <contains string="${version-output}" substring="java version &quot;1.7.0&quot;"/>
+ <contains string="${version-output}" substring="java version &quot;1.7.0_01"/>
+ <contains string="${version-output}" substring="java version &quot;1.7.0_02"/>
+ <contains string="${version-output}" substring="java version &quot;1.7.0_03"/>
+ <contains string="${version-output}" substring="java version &quot;1.7.0_04"/>
+ <contains string="${version-output}" substring="java version &quot;1.7.0_05"/>
+ </or>
+ </condition>
+ <condition property="have-jdk7-css2bin-bug">
+ <!-- as of NB7.3 release date the external css-to-bss converter is unreliable in almost all JDK7/8 versions -->
+ <or>
+ <contains string="${version-output}" substring="java version &quot;1.7"/>
+ <contains string="${version-output}" substring="java version &quot;1.8"/>
+ </or>
+ </condition>
+ <property name="jdk-version-checked-in-jfximpl" value="true"/>
+ <echo message="have-jdk-7u4or5-mac = ${have-jdk-7u4or5-mac}" level="verbose"/>
+ <echo message="have-jdk-pre7u6 = ${have-jdk-pre7u6}" level="verbose"/>
+ <echo message="have-jdk7-css2bin-bug = ${have-jdk7-css2bin-bug}" level="verbose"/>
+ </target>
+
+ <target name="-check-ant-jre-version" unless="ant-jre-version-checked-in-jfximpl">
+ <local name="version-output"/>
+ <exec executable="${java.home}${file.separator}bin${file.separator}java" outputproperty="version-output">
+ <arg value="-version"/>
+ </exec>
+ <echo message="version-output:${line.separator}${version-output}" level="verbose"/>
+ <condition property="have-ant-jre-pre7u6">
+ <or>
+ <contains string="${version-output}" substring="java version &quot;1.0"/>
+ <contains string="${version-output}" substring="java version &quot;1.1"/>
+ <contains string="${version-output}" substring="java version &quot;1.2"/>
+ <contains string="${version-output}" substring="java version &quot;1.3"/>
+ <contains string="${version-output}" substring="java version &quot;1.4"/>
+ <contains string="${version-output}" substring="java version &quot;1.5"/>
+ <contains string="${version-output}" substring="java version &quot;1.6"/>
+ <contains string="${version-output}" substring="java version &quot;1.7.0&quot;"/>
+ <contains string="${version-output}" substring="java version &quot;1.7.0_01"/>
+ <contains string="${version-output}" substring="java version &quot;1.7.0_02"/>
+ <contains string="${version-output}" substring="java version &quot;1.7.0_03"/>
+ <contains string="${version-output}" substring="java version &quot;1.7.0_04"/>
+ <contains string="${version-output}" substring="java version &quot;1.7.0_05"/>
+ </or>
+ </condition>
+ <property name="ant-jre-version-checked-in-jfximpl" value="true"/>
+ <echo message="have-ant-jre-pre7u6 = ${have-ant-jre-pre7u6}" level="verbose"/>
+ </target>
+
+ <target name="-check-jdk-7u4or5-mac" depends="-check-jdk-version" if="have-jdk-7u4or5-mac">
+ <fail message="Error:${line.separator}JDK 7u4 Mac and 7u5 Mac do not support WebStart and JavaFX 2.0+ browser plugin technologies.${line.separator}Please upgrade to JDK 7u6 or later."/>
+ </target>
+
+
+ <!-- Check availability of JavaFX SDK deployment support (ant-javafx.jar) -->
+
+ <target name="-check-endorsed-javafx-ant-classpath">
+ <condition property="endorsed-javafx-ant-classpath-available">
+ <and>
+ <isset property="endorsed.javafx.ant.classpath"/>
+ <not>
+ <equals arg1="${endorsed.javafx.ant.classpath}" arg2=""/>
+ </not>
+ </and>
+ </condition>
+ <echo message="endorsed-javafx-ant-classpath-available = ${endorsed-javafx-ant-classpath-available}" level="verbose"/>
+ </target>
+
+ <target name="-check-property-javafx.sdk">
+ <echo message="javafx.sdk = ${javafx.sdk}" level="verbose"/>
+ <condition property="javafx.sdk.defined">
+ <and>
+ <isset property="javafx.sdk"/>
+ <not><contains string="${javafx.sdk}" substring="$${platform" casesensitive="false"/></not>
+ </and>
+ </condition>
+ <condition property="javafx.sdk.missing+default">
+ <and>
+ <equals arg1="${platform.active}" arg2="Default_JavaFX_Platform" trim="true"/>
+ <not><isset property="javafx.sdk.defined"/></not>
+ </and>
+ </condition>
+ <condition property="javafx.sdk.missing-default">
+ <and>
+ <not><equals arg1="${platform.active}" arg2="Default_JavaFX_Platform" trim="true"/></not>
+ <not><isset property="javafx.sdk.defined"/></not>
+ </and>
+ </condition>
+ <echo message="javafx.sdk.defined = ${javafx.sdk.defined}" level="verbose"/>
+ <echo message="javafx.sdk.missing+default = ${javafx.sdk.missing+default}" level="verbose"/>
+ <echo message="javafx.sdk.missing-default = ${javafx.sdk.missing-default}" level="verbose"/>
+ </target>
+
+ <target name="-check-ant-javafx-in-fxsdk-lib" depends="-check-property-javafx.sdk" if="javafx.sdk.defined">
+ <condition property="do.set.ant-javafx.in.fxsdk.lib">
+ <and>
+ <not><isset property="ant-javafx.jar.location"/></not>
+ <available file="${javafx.sdk}${file.separator}lib${file.separator}ant-javafx.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-ant-javafx-in-fxsdk-lib" depends="-check-ant-javafx-in-fxsdk-lib" if="do.set.ant-javafx.in.fxsdk.lib">
+ <property name="ant-javafx.jar.location" value="${javafx.sdk}${file.separator}lib${file.separator}ant-javafx.jar"/>
+ </target>
+ <target name="-check-ant-javafx-in-fxsdk-tools" depends="-check-property-javafx.sdk" if="javafx.sdk.defined">
+ <condition property="do.set.ant-javafx.in.fxsdk.tools">
+ <and>
+ <not><isset property="ant-javafx.jar.location"/></not>
+ <available file="${javafx.sdk}${file.separator}tools${file.separator}ant-javafx.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-ant-javafx-in-fxsdk-tools" depends="-set-ant-javafx-in-fxsdk-lib,-check-ant-javafx-in-fxsdk-tools" if="do.set.ant-javafx.in.fxsdk.tools">
+ <property name="ant-javafx.jar.location" value="${javafx.sdk}${file.separator}tools${file.separator}ant-javafx.jar"/>
+ </target>
+ <target name="-check-ant-javafx-in-platform-home-lib" if="platform.home">
+ <condition property="do.set.ant-javafx.in.platform.home.lib">
+ <and>
+ <not><isset property="ant-javafx.jar.location"/></not>
+ <available file="${platform.home}${file.separator}lib${file.separator}ant-javafx.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-ant-javafx-in-platform-home-lib" depends="-set-ant-javafx-in-fxsdk-tools,-check-ant-javafx-in-platform-home-lib" if="do.set.ant-javafx.in.platform.home.lib">
+ <property name="ant-javafx.jar.location" value="${platform.home}${file.separator}lib${file.separator}ant-javafx.jar"/>
+ </target>
+ <target name="-check-ant-javafx-in-platform-home-tools" if="platform.home">
+ <condition property="do.set.ant-javafx.in.platform.home.tools">
+ <and>
+ <not><isset property="ant-javafx.jar.location"/></not>
+ <available file="${platform.home}${file.separator}tools${file.separator}ant-javafx.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-ant-javafx-in-platform-home-tools" depends="-set-ant-javafx-in-platform-home-lib,-check-ant-javafx-in-platform-home-tools" if="do.set.ant-javafx.in.platform.home.tools">
+ <property name="ant-javafx.jar.location" value="${platform.home}${file.separator}tools${file.separator}ant-javafx.jar"/>
+ </target>
+ <target name="-check-ant-javafx-in-probjdk-lib" unless="ant-javafx.jar.location">
+ <condition property="do.set.ant-javafx.in.probjdk.lib">
+ <and>
+ <not><isset property="ant-javafx.jar.location"/></not>
+ <available file="${java.home}${file.separator}..${file.separator}lib${file.separator}ant-javafx.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-ant-javafx-in-probjdk-lib" depends="-set-ant-javafx-in-platform-home-tools,-check-ant-javafx-in-probjdk-lib" if="do.set.ant-javafx.in.probjdk.lib">
+ <property name="ant-javafx.jar.location" value="${java.home}${file.separator}..${file.separator}lib${file.separator}ant-javafx.jar"/>
+ </target>
+ <target name="-check-ant-javafx-in-probjdk-tools" unless="ant-javafx.jar.location">
+ <condition property="do.set.ant-javafx.in.probjdk.tools">
+ <and>
+ <not><isset property="ant-javafx.jar.location"/></not>
+ <available file="${java.home}${file.separator}..${file.separator}tools${file.separator}ant-javafx.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-ant-javafx-in-probjdk-tools" depends="-set-ant-javafx-in-probjdk-lib,-check-ant-javafx-in-probjdk-tools" if="do.set.ant-javafx.in.probjdk.tools">
+ <property name="ant-javafx.jar.location" value="${java.home}${file.separator}..${file.separator}tools${file.separator}ant-javafx.jar"/>
+ </target>
+ <target name="-check-ant-javafx-in-macjdk-lib" unless="ant-javafx.jar.location">
+ <condition property="do.set.ant-javafx.in.macjdk.lib">
+ <and>
+ <not><isset property="ant-javafx.jar.location"/></not>
+ <available file="${java.home}${file.separator}lib${file.separator}ant-javafx.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-ant-javafx-in-macjdk-lib" depends="-set-ant-javafx-in-probjdk-tools,-check-ant-javafx-in-macjdk-lib" if="do.set.ant-javafx.in.macjdk.lib">
+ <property name="ant-javafx.jar.location" value="${java.home}${file.separator}lib${file.separator}ant-javafx.jar"/>
+ </target>
+ <target name="-check-ant-javafx-in-envjdk-lib" unless="ant-javafx.jar.location">
+ <property environment="env"/>
+ <condition property="do.set.ant-javafx.in.envjdk.lib">
+ <and>
+ <not><isset property="ant-javafx.jar.location"/></not>
+ <available file="${env.JAVA_HOME}${file.separator}lib${file.separator}ant-javafx.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-ant-javafx-in-envjdk-lib" depends="-set-ant-javafx-in-macjdk-lib,-check-ant-javafx-in-envjdk-lib" if="do.set.ant-javafx.in.envjdk.lib">
+ <property name="ant-javafx.jar.location" value="${env.JAVA_HOME}${file.separator}lib${file.separator}ant-javafx.jar"/>
+ </target>
+ <target name="-check-ant-javafx-in-envjdk-tools" unless="ant-javafx.jar.location">
+ <property environment="env"/>
+ <condition property="do.set.ant-javafx.in.envjdk.tools">
+ <and>
+ <not><isset property="ant-javafx.jar.location"/></not>
+ <available file="${env.JAVA_HOME}${file.separator}tools${file.separator}ant-javafx.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-ant-javafx-in-envjdk-tools" depends="-set-ant-javafx-in-envjdk-lib,-check-ant-javafx-in-envjdk-tools" if="do.set.ant-javafx.in.envjdk.tools">
+ <property name="ant-javafx.jar.location" value="${env.JAVA_HOME}${file.separator}tools${file.separator}ant-javafx.jar"/>
+ </target>
+ <target name="-pre-check-ant-javafx-version" depends="-set-ant-javafx-in-envjdk-tools" unless="ant-javafx-version-already-checked-in-jfximpl">
+ <condition property="do.check.ant-javafx.version">
+ <and>
+ <isset property="ant-javafx.jar.location"/>
+ <not><isset property="ant-javafx-version-already-checked-in-jfximpl"/></not>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-endorsed-javafx-ant-classpath" depends="-check-endorsed-javafx-ant-classpath,-pre-check-ant-javafx-version" if="endorsed-javafx-ant-classpath-available">
+ <property name="javafx.ant.classpath" value="${endorsed.javafx.ant.classpath}:${ant-javafx.jar.location}"/>
+ </target>
+ <target name="-set-javafx-ant-classpath" depends="-check-endorsed-javafx-ant-classpath,-pre-check-ant-javafx-version" unless="endorsed-javafx-ant-classpath-available">
+ <property name="javafx.ant.classpath" value="${ant-javafx.jar.location}"/>
+ </target>
+ <target name="-check-ant-javafx-version" depends="-pre-check-ant-javafx-version,
+ -set-endorsed-javafx-ant-classpath,-set-javafx-ant-classpath" if="do.check.ant-javafx.version">
+ <echo message="ant-javafx.jar.location = ${ant-javafx.jar.location}" level="verbose"/>
+ <echo message="javafx.ant.classpath = ${javafx.ant.classpath}" level="verbose"/>
+ <taskdef resource="com/sun/javafx/tools/ant/antlib.xml"
+ uri="javafx:com.sun.javafx.tools.ant"
+ classpath="${javafx.ant.classpath}"/>
+ <condition property="have-fx-ant-init">
+ <typefound name="javafx:com.sun.javafx.tools.ant:init-ant"/>
+ </condition>
+ <property name="ant-javafx-version-already-checked-in-jfximpl" value="true"/>
+ <echo message="have-fx-ant-init = ${have-fx-ant-init}" level="verbose"/>
+ </target>
+ <target name="-check-jfx-sdk-version-old" depends="-check-ant-javafx-version" unless="have-fx-ant-init">
+ <property name="javafx.ant.version" value="1.0"/>
+ </target>
+ <target name="-check-jfx-sdk-version-new" depends="-check-ant-javafx-version" if="have-fx-ant-init">
+ <fx:init-ant/>
+ <condition property="have-fx-ant-api-1.1">
+ <!-- new features from JavaFX 2.0.2 are available in API version 1.1 or later -->
+ <matches pattern="1.[1-9]" string="${javafx.ant.version}"/>
+ </condition>
+ <condition property="have-fx-ant-api-1.2">
+ <!-- new features from JavaFX 2.2 are available in API version 1.2 or later -->
+ <matches pattern="1.[2-9]" string="${javafx.ant.version}"/>
+ </condition>
+ </target>
+ <target name="-check-jfx-sdk-version" depends="-check-jfx-sdk-version-old, -check-jfx-sdk-version-new" unless="jfx.sdk.version.checked">
+ <echo message="Detected JavaFX Ant API version ${javafx.ant.version}" level="info"/>
+ <echo message="have-fx-ant-api-1.1 = ${have-fx-ant-api-1.1}" level="verbose"/>
+ <echo message="have-fx-ant-api-1.2 = ${have-fx-ant-api-1.2}" level="verbose"/>
+ <echo message="javafx.ant.classpath = ${javafx.ant.classpath}" level="verbose"/>
+ <property name="jfx.sdk.version.checked" value="true"/>
+ </target>
+
+ <target name="-check-jfx-deployment" depends="-check-jdk-version,-check-jfx-sdk-version">
+ <condition property="jfx-deployment-available">
+ <and>
+ <or>
+ <isset property="do.set.ant-javafx.in.fxsdk.lib"/>
+ <isset property="do.set.ant-javafx.in.fxsdk.tools"/>
+ <isset property="do.set.ant-javafx.in.platform.home.lib"/>
+ <isset property="do.set.ant-javafx.in.platform.home.tools"/>
+ <isset property="do.set.ant-javafx.in.probjdk.lib"/>
+ <isset property="do.set.ant-javafx.in.probjdk.tools"/>
+ <isset property="do.set.ant-javafx.in.envjdk.lib"/>
+ <isset property="do.set.ant-javafx.in.envjdk.tools"/>
+ </or>
+ <isset property="ant-javafx.jar.location"/>
+ </and>
+ </condition>
+ <condition property="jfx-deployment-missing+jdk7u6">
+ <and>
+ <not><isset property="jfx-deployment-available"/></not>
+ <not><isset property="have-jdk-pre7u6"/></not>
+ </and>
+ </condition>
+ <condition property="jfx-deployment-missing+javafx.sdk.missing+default">
+ <and>
+ <not><isset property="jfx-deployment-available"/></not>
+ <isset property="have-jdk-pre7u6"/>
+ <isset property="javafx.sdk.missing+default"/>
+ </and>
+ </condition>
+ <condition property="jfx-deployment-missing+javafx.sdk.missing-default">
+ <and>
+ <not><isset property="jfx-deployment-available"/></not>
+ <isset property="have-jdk-pre7u6"/>
+ <isset property="javafx.sdk.missing-default"/>
+ </and>
+ </condition>
+ <fail message="Error:${line.separator}JavaFX deployment library not found in active JDK.${line.separator}Please check that the JDK is correctly installed and its version is at least 7u4 on Mac or 7u6 on other systems." if="jfx-deployment-missing+jdk7u6"/>
+ <fail message="Error:${line.separator}JavaFX deployment library not found.${line.separator}JavaFX SDK path undefined. Check the definition of ${platform.active} in Java Platform Manager${line.separator}(or directly the properties platform.active and javafx.sdk in project.properties file).${line.separator}Note: If missing, the default JavaFX-enabled platform gets created automatically when creating a new JavaFX Project." if="jfx-deployment-missing+javafx.sdk.missing+default"/>
+ <fail message="Error:${line.separator}JavaFX deployment library not found.${line.separator}JavaFX SDK path undefined. Check the definition of ${platform.active} in Java Platform Manager${line.separator}(or directly the properties platform.active and javafx.sdk in project.properties file)." if="jfx-deployment-missing+javafx.sdk.missing-default"/>
+ <fail message="Error:${line.separator}JavaFX deployment library not found." unless="jfx-deployment-available"/>
+ <echo message="jfx-deployment-available = ${jfx-deployment-available}" level="verbose"/>
+ </target>
+
+
+ <!-- Check availability of main JavaFX runtime jar (jfxrt.jar) -->
+
+ <target name="-check-property-javafx.runtime">
+ <echo message="javafx.runtime = ${javafx.runtime}" level="verbose"/>
+ <condition property="javafx.runtime.defined">
+ <and>
+ <isset property="javafx.runtime"/>
+ <not><contains string="${javafx.runtime}" substring="$${platform" casesensitive="false"/></not>
+ </and>
+ </condition>
+ <condition property="javafx.runtime.missing+default">
+ <and>
+ <equals arg1="${platform.active}" arg2="Default_JavaFX_Platform" trim="true"/>
+ <not><isset property="javafx.runtime.defined"/></not>
+ </and>
+ </condition>
+ <condition property="javafx.runtime.missing-default">
+ <and>
+ <not><equals arg1="${platform.active}" arg2="Default_JavaFX_Platform" trim="true"/></not>
+ <not><isset property="javafx.runtime.defined"/></not>
+ </and>
+ </condition>
+ <echo message="javafx.runtime.defined = ${javafx.runtime.defined}" level="verbose"/>
+ <echo message="javafx.runtime.missing+default = ${javafx.runtime.missing+default}" level="verbose"/>
+ <echo message="javafx.runtime.missing-default = ${javafx.runtime.missing-default}" level="verbose"/>
+ </target>
+
+ <target name="-check-jfxrt-in-fxrt" depends="-check-property-javafx.runtime" if="javafx.runtime.defined">
+ <condition property="do.set.jfxrt.in.fxrt">
+ <and>
+ <not><isset property="jfxrt.jar.location"/></not>
+ <available file="${javafx.runtime}${file.separator}lib${file.separator}jfxrt.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-jfxrt-in-fxrt" depends="-check-jfxrt-in-fxrt" if="do.set.jfxrt.in.fxrt">
+ <property name="jfxrt.jar.location" value="${javafx.runtime}${file.separator}lib${file.separator}jfxrt.jar"/>
+ </target>
+ <target name="-check-jfxrt-in-fxsdk-jre" depends="-check-property-javafx.sdk" if="javafx.sdk.defined">
+ <condition property="do.set.jfxrt.in.fxsdk.jre">
+ <and>
+ <not><isset property="jfxrt.jar.location"/></not>
+ <available file="${javafx.sdk}${file.separator}jre${file.separator}lib${file.separator}jfxrt.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-jfxrt-in-fxsdk-jre" depends="-set-jfxrt-in-fxrt,-check-jfxrt-in-fxsdk-jre" if="do.set.jfxrt.in.fxsdk.jre">
+ <property name="jfxrt.jar.location" value="${javafx.sdk}${file.separator}jre${file.separator}lib${file.separator}jfxrt.jar"/>
+ </target>
+ <target name="-check-jfxrt-in-fxsdk-rt" depends="-check-property-javafx.sdk" if="javafx.sdk.defined">
+ <condition property="do.set.jfxrt.in.fxsdk.rt">
+ <and>
+ <not><isset property="jfxrt.jar.location"/></not>
+ <available file="${javafx.sdk}${file.separator}rt${file.separator}lib${file.separator}jfxrt.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-jfxrt-in-fxsdk-rt" depends="-set-jfxrt-in-fxsdk-jre,-check-jfxrt-in-fxsdk-rt" if="do.set.jfxrt.in.fxsdk.rt">
+ <property name="jfxrt.jar.location" value="${javafx.sdk}${file.separator}rt${file.separator}lib${file.separator}jfxrt.jar"/>
+ </target>
+ <target name="-check-jfxrt-in-platform-home-jre" if="platform.home">
+ <condition property="do.set.jfxrt.in.platform.home.jre">
+ <and>
+ <not><isset property="jfxrt.jar.location"/></not>
+ <available file="${platform.home}${file.separator}jre${file.separator}lib${file.separator}jfxrt.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-jfxrt-in-platform-home-jre" depends="-set-jfxrt-in-fxsdk-rt,-check-jfxrt-in-platform-home-jre" if="do.set.jfxrt.in.platform.home.jre">
+ <property name="jfxrt.jar.location" value="${platform.home}${file.separator}jre${file.separator}lib${file.separator}jfxrt.jar"/>
+ </target>
+ <target name="-check-jfxrt-in-platform-home-rt" if="platform.home">
+ <condition property="do.set.jfxrt.in.platform.home.rt">
+ <and>
+ <not><isset property="jfxrt.jar.location"/></not>
+ <available file="${platform.home}${file.separator}rt${file.separator}lib${file.separator}jfxrt.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-jfxrt-in-platform-home-rt" depends="-set-jfxrt-in-platform-home-jre,-check-jfxrt-in-platform-home-rt" if="do.set.jfxrt.in.platform.home.rt">
+ <property name="jfxrt.jar.location" value="${platform.home}${file.separator}rt${file.separator}lib${file.separator}jfxrt.jar"/>
+ </target>
+ <target name="-check-jfxrt-in-jre" unless="jfxrt.jar.location">
+ <condition property="do.set.jfxrt.in.jre">
+ <and>
+ <not><isset property="jfxrt.jar.location"/></not>
+ <available file="${java.home}${file.separator}lib${file.separator}jfxrt.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-jfxrt-in-jre" depends="-set-jfxrt-in-platform-home-rt,-check-jfxrt-in-jre" if="do.set.jfxrt.in.jre">
+ <property name="jfxrt.jar.location" value="${java.home}${file.separator}lib${file.separator}jfxrt.jar"/>
+ </target>
+ <target name="-check-jfxrt-in-envjdk-jre" unless="jfxrt.jar.location">
+ <property environment="env"/>
+ <condition property="do.set.jfxrt.in.envjdk.jre">
+ <and>
+ <not><isset property="ant-javafx.jar.location"/></not>
+ <available file="${env.JAVA_HOME}${file.separator}jre${file.separator}lib${file.separator}jfxrt.jar"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-jfxrt-in-envjdk-jre" depends="-set-jfxrt-in-jre,-check-jfxrt-in-envjdk-jre" if="do.set.jfxrt.in.envjdk.jre">
+ <property name="jfxrt.jar.location" value="${env.JAVA_HOME}${file.separator}jre${file.separator}lib${file.separator}jfxrt.jar"/>
+ </target>
+ <target name="-pre-check-jfx-runtime" depends="-set-jfxrt-in-envjdk-jre">
+ <echo message="jfxrt.jar.location = ${jfxrt.jar.location}" level="verbose"/>
+ </target>
+
+ <target name="-check-jfx-runtime" depends="-check-jdk-version, -pre-check-jfx-runtime">
+ <condition property="jfx-runtime-available">
+ <and>
+ <or>
+ <isset property="do.set.jfxrt.in.fxrt"/>
+ <isset property="do.set.jfxrt.in.fxsdk.jre"/>
+ <isset property="do.set.jfxrt.in.fxsdk.rt"/>
+ <isset property="do.set.jfxrt.in.platform.home.jre"/>
+ <isset property="do.set.jfxrt.in.platform.home.rt"/>
+ <isset property="do.set.jfxrt.in.jre"/>
+ <isset property="do.set.jfxrt.in.envjdk.jre"/>
+ </or>
+ <isset property="jfxrt.jar.location"/>
+ </and>
+ </condition>
+ <fail message="Error:${line.separator}JavaFX runtime JAR not found." unless="jfx-runtime-available"/>
+ <echo message="jfx-runtime-available = ${jfx-runtime-available}" level="verbose"/>
+ </target>
+
+
+ <!-- Check availability of WebStart executable -->
+
+ <target name="-check-webstart-in-fxrt" depends="-check-property-javafx.runtime" if="javafx.runtime.defined">
+ <condition property="do.set.webstart.in.fxrt">
+ <and>
+ <not><isset property="active.webstart.executable"/></not>
+ <isset property="javafx.runtime.defined"/>
+ <or>
+ <available file="${javafx.runtime}${file.separator}bin${file.separator}javaws.exe"/>
+ <available file="${javafx.runtime}${file.separator}bin${file.separator}javaws"/>
+ </or>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-webstart-in-fxrt" depends="-check-webstart-in-fxrt" if="do.set.webstart.in.fxrt">
+ <property name="active.webstart.executable" value="${javafx.runtime}${file.separator}bin${file.separator}javaws"/>
+ </target>
+ <target name="-check-webstart-in-fxsdk-jre" depends="-check-property-javafx.sdk" if="javafx.sdk.defined">
+ <condition property="do.set.webstart.in.fxsdk.jre">
+ <and>
+ <not><isset property="active.webstart.executable"/></not>
+ <isset property="javafx.sdk.defined"/>
+ <or>
+ <available file="${javafx.sdk}${file.separator}jre${file.separator}bin${file.separator}javaws.exe"/>
+ <available file="${javafx.sdk}${file.separator}jre${file.separator}bin${file.separator}javaws"/>
+ </or>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-webstart-in-fxsdk-jre" depends="-set-webstart-in-fxrt,-check-webstart-in-fxsdk-jre" if="do.set.webstart.in.fxsdk.jre">
+ <property name="active.webstart.executable" value="${javafx.sdk}${file.separator}jre${file.separator}bin${file.separator}javaws"/>
+ </target>
+ <target name="-check-webstart-in-fxsdk" depends="-check-property-javafx.sdk" if="javafx.sdk.defined">
+ <condition property="do.set.webstart.in.fxsdk">
+ <and>
+ <not><isset property="active.webstart.executable"/></not>
+ <isset property="javafx.sdk.defined"/>
+ <or>
+ <available file="${javafx.sdk}${file.separator}bin${file.separator}javaws.exe"/>
+ <available file="${javafx.sdk}${file.separator}bin${file.separator}javaws"/>
+ </or>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-webstart-in-fxsdk" depends="-set-webstart-in-fxsdk-jre,-check-webstart-in-fxsdk" if="do.set.webstart.in.fxsdk">
+ <property name="active.webstart.executable" value="${javafx.sdk}${file.separator}bin${file.separator}javaws"/>
+ </target>
+ <target name="-check-webstart-in-platform-home-jre" if="platform.home">
+ <condition property="do.set.webstart.in.platform.home.jre">
+ <and>
+ <not><isset property="active.webstart.executable"/></not>
+ <or>
+ <available file="${platform.home}${file.separator}jre${file.separator}bin${file.separator}javaws.exe"/>
+ <available file="${platform.home}${file.separator}jre${file.separator}bin${file.separator}javaws"/>
+ </or>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-webstart-in-platform-home-jre" depends="-set-webstart-in-fxsdk,-check-webstart-in-platform-home-jre" if="do.set.webstart.in.platform.home.jre">
+ <property name="active.webstart.executable" value="${platform.home}${file.separator}jre${file.separator}bin${file.separator}javaws"/>
+ </target>
+ <target name="-check-webstart-in-platform-home" if="platform.home">
+ <condition property="do.set.webstart.in.platform.home">
+ <and>
+ <not><isset property="active.webstart.executable"/></not>
+ <or>
+ <available file="${platform.home}${file.separator}bin${file.separator}javaws.exe"/>
+ <available file="${platform.home}${file.separator}bin${file.separator}javaws"/>
+ </or>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-webstart-in-platform-home" depends="-set-webstart-in-platform-home-jre,-check-webstart-in-platform-home" if="do.set.webstart.in.platform.home">
+ <property name="active.webstart.executable" value="${platform.home}${file.separator}bin${file.separator}javaws"/>
+ </target>
+ <target name="-check-webstart-in-jre" unless="active.webstart.executable">
+ <condition property="do.set.webstart.in.jre">
+ <and>
+ <not><isset property="active.webstart.executable"/></not>
+ <or>
+ <available file="${java.home}${file.separator}bin${file.separator}javaws.exe"/>
+ <available file="${java.home}${file.separator}bin${file.separator}javaws"/>
+ </or>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-webstart-in-jre" depends="-set-webstart-in-platform-home,-check-webstart-in-jre" if="do.set.webstart.in.jre">
+ <property name="active.webstart.executable" value="${java.home}${file.separator}bin${file.separator}javaws"/>
+ </target>
+ <target name="-check-webstart-in-probjdk" unless="active.webstart.executable">
+ <condition property="do.set.webstart.in.probjdk">
+ <and>
+ <not><isset property="active.webstart.executable"/></not>
+ <or>
+ <available file="${java.home}${file.separator}..${file.separator}bin${file.separator}javaws.exe"/>
+ <available file="${java.home}${file.separator}..${file.separator}bin${file.separator}javaws"/>
+ </or>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-webstart-in-probjdk" depends="-set-webstart-in-jre,-check-webstart-in-probjdk" if="do.set.webstart.in.probjdk">
+ <property name="active.webstart.executable" value="${java.home}${file.separator}..${file.separator}bin${file.separator}javaws"/>
+ </target>
+ <target name="-check-webstart-in-envjdk" unless="active.webstart.executable">
+ <property environment="env"/>
+ <condition property="do.set.webstart.in.envjdk">
+ <and>
+ <not><isset property="active.webstart.executable"/></not>
+ <or>
+ <available file="${env.JAVA_HOME}${file.separator}bin${file.separator}javaws.exe"/>
+ <available file="${env.JAVA_HOME}${file.separator}bin${file.separator}javaws"/>
+ </or>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-webstart-in-envjdk" depends="-set-webstart-in-probjdk,-check-webstart-in-envjdk" if="do.set.webstart.in.envjdk">
+ <property name="active.webstart.executable" value="${env.JAVA_HOME}${file.separator}bin${file.separator}javaws"/>
+ </target>
+ <target name="-pre-check-webstart-in-unix" depends="-check-operating-system,-set-webstart-in-envjdk" unless="active.webstart.executable">
+ <condition property="running.on.unix-active.webstart.executable">
+ <and>
+ <not><isset property="active.webstart.executable"/></not>
+ <isset property="running.on.unix"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-check-webstart-in-unix" depends="-pre-check-webstart-in-unix" if="running.on.unix-active.webstart.executable">
+ <local name="exec.which.javaws.result"/>
+ <exec executable="which" failifexecutionfails="false" failonerror="false" resultproperty="exec.which.javaws.result" outputproperty="exec.which.javaws.output">
+ <arg value="javaws"/>
+ </exec>
+ <condition property="do.set.webstart.in.unix">
+ <and>
+ <not><isset property="active.webstart.executable"/></not>
+ <isset property="exec.which.javaws.result"/>
+ <equals arg1="${exec.which.javaws.result}" arg2="0"/>
+ <isset property="exec.which.javaws.output"/>
+ <not><equals arg1="${exec.which.javaws.output}" arg2=""/></not>
+ </and>
+ </condition>
+ <echo message="do.set.webstart.in.unix = ${do.set.webstart.in.unix}" level="verbose"/>
+ </target>
+ <target name="-set-webstart-in-unix" depends="-set-webstart-in-envjdk,-check-webstart-in-unix" if="do.set.webstart.in.unix">
+ <property name="active.webstart.executable" value="${exec.which.javaws.output}"/>
+ </target>
+ <target name="-pre-check-jfx-webstart" depends="-set-webstart-in-unix">
+ <echo message="active.webstart.executable = ${active.webstart.executable}" level="verbose"/>
+ </target>
+
+ <target name="-check-jfx-webstart" depends="-pre-check-jfx-webstart">
+ <condition property="jfx-webstart-available">
+ <and>
+ <or>
+ <isset property="do.set.webstart.in.fxrt"/>
+ <isset property="do.set.webstart.in.fxsdk.jre"/>
+ <isset property="do.set.webstart.in.fxsdk"/>
+ <isset property="do.set.webstart.in.platform.home.jre"/>
+ <isset property="do.set.webstart.in.platform.home"/>
+ <isset property="do.set.webstart.in.jre"/>
+ <isset property="do.set.webstart.in.probjdk"/>
+ <isset property="do.set.webstart.in.envjdk"/>
+ <isset property="do.set.webstart.in.unix"/>
+ </or>
+ <isset property="active.webstart.executable"/>
+ </and>
+ </condition>
+ <condition property="jfx-webstart-missing+jdk7u6">
+ <and>
+ <not><isset property="jfx-webstart-available"/></not>
+ <not><isset property="have-jdk-pre7u6"/></not>
+ </and>
+ </condition>
+ <condition property="jfx-webstart-missing+javafx.runtime.missing+default">
+ <and>
+ <not><isset property="jfx-webstart-available"/></not>
+ <isset property="have-jdk-pre7u6"/>
+ <isset property="javafx.runtime.missing+default"/>
+ </and>
+ </condition>
+ <condition property="jfx-webstart-missing+javafx.runtime.missing-default">
+ <and>
+ <not><isset property="jfx-webstart-available"/></not>
+ <isset property="have-jdk-pre7u6"/>
+ <isset property="javafx.runtime.missing-default"/>
+ </and>
+ </condition>
+ <fail message="Error:${line.separator}WebStart executable could not be found in active JDK.${line.separator}Please check that the JDK is correctly installed and its version is at least 7u6." if="jfx-webstart-missing+jdk7u6"/>
+ <fail message="Error:${line.separator}WebStart executable could not be found.${line.separator}JavaFX RT path undefined. Check the definition of ${platform.active} in Java Platform Manager${line.separator}(or directly the properties platform.active and javafx.runtime in project.properties file).${line.separator}Note: If missing, the default JavaFX-enabled platform gets created automatically when creating a new JavaFX Project." if="jfx-webstart-missing+javafx.runtime.missing+default"/>
+ <fail message="Error:${line.separator}WebStart executable could not be found.${line.separator}JavaFX RT path undefined. Check the definition of ${platform.active} in Java Platform Manager${line.separator}(or directly the properties platform.active and javafx.runtime in project.properties file)." if="jfx-webstart-missing+javafx.runtime.missing-default"/>
+ <fail message="Error:${line.separator}WebStart executable could not be found." unless="jfx-webstart-available"/>
+ <echo message="jfx-webstart-available = ${jfx-webstart-available}" level="verbose"/>
+ </target>
+
+
+ <!-- Legacy targets kept for compatibility with older build-impl.xml scripts -->
+
+ <!-- Note: target "-check-javafx" is not necessary any more but is referenced from NB 7.1 build-impl.xml -->
+ <target name="-check-javafx"/>
+ <!-- Note: target "-javafx-check-error" is not necessary any more but is referenced from NB 7.1 build-impl.xml -->
+ <target name="-javafx-check-error"/>
+ <!-- Note: target "-init-javafx" is not necessary any more but is referenced from NB 7.1 build-impl.xml -->
+ <target name="-init-javafx"/>
+
+
+ <!-- Check project properties -->
+
+ <target name="-check-default-run-config" unless="config">
+ <property name="config" value="&lt;default config&gt;"/>
+ </target>
+
+ <target name="-check-project">
+ <condition property="main-class-available">
+ <isset property="javafx.main.class"/>
+ </condition>
+ <condition property="vmargs-available">
+ <and>
+ <isset property="run.jvmargs"/>
+ <not><equals arg1="${run.jvmargs}" arg2=""/></not>
+ </and>
+ </condition>
+ <condition property="preloader-available">
+ <and>
+ <isset property="javafx.preloader.enabled"/>
+ <equals arg1="${javafx.preloader.enabled}" arg2="true"/>
+ <isset property="javafx.preloader.class"/>
+ <not><equals arg1="${javafx.preloader.class}" arg2=""/></not>
+ <isset property="javafx.preloader.jar.filename"/>
+ <not><equals arg1="${javafx.preloader.jar.filename}" arg2=""/></not>
+ </and>
+ </condition>
+ <condition property="app-with-preloader">
+ <and>
+ <istrue value="${preloader-available}"/>
+ <istrue value="${main-class-available}"/>
+ </and>
+ </condition>
+ <condition property="app-with-external-preloader-jar">
+ <and>
+ <isset property="app-with-preloader"/>
+ <isset property="javafx.preloader.type"/>
+ <equals arg1="${javafx.preloader.type}" arg2="jar" trim="true"/>
+ </and>
+ </condition>
+ <condition property="app-without-preloader">
+ <and>
+ <not>
+ <istrue value="${preloader-available}"/>
+ </not>
+ <istrue value="${main-class-available}"/>
+ </and>
+ </condition>
+ <condition property="preloader-app">
+ <and>
+ <isset property="javafx.preloader"/>
+ <equals arg1="${javafx.preloader}" arg2="true"/>
+ </and>
+ </condition>
+ <condition property="fx-in-swing-app">
+ <and>
+ <isset property="javafx.swing"/>
+ <equals arg1="${javafx.swing}" arg2="true"/>
+ </and>
+ </condition>
+ <condition property="fx-in-swing-workaround-app">
+ <and>
+ <istrue value="${fx-in-swing-app}"/>
+ <istrue value="${preloader-app}"/>
+ </and>
+ </condition>
+ <condition property="preloader-app-no-workaround">
+ <and>
+ <istrue value="${preloader-app}"/>
+ <not><istrue value="${fx-in-swing-app}"/></not>
+ </and>
+ </condition>
+ <condition property="html-template-available">
+ <and>
+ <isset property="javafx.run.htmltemplate"/>
+ <not>
+ <equals arg1="${javafx.run.htmltemplate}" arg2=""/>
+ </not>
+ </and>
+ </condition>
+ <condition property="icon-available">
+ <and>
+ <isset property="javafx.deploy.icon"/>
+ <not>
+ <equals arg1="${javafx.deploy.icon}" arg2=""/>
+ </not>
+ </and>
+ </condition>
+ <condition property="dimensions-available">
+ <and>
+ <isset property="javafx.run.width"/>
+ <isset property="javafx.run.height"/>
+ <not><equals arg1="${javafx.run.width}" arg2=""/></not>
+ <not><equals arg1="${javafx.run.height}" arg2=""/></not>
+ </and>
+ </condition>
+ <condition property="update-mode-background">
+ <and>
+ <isset property="javafx.deploy.backgroundupdate"/>
+ <equals arg1="${javafx.deploy.backgroundupdate}" arg2="true" trim="true"/>
+ </and>
+ </condition>
+ <condition property="offline-allowed">
+ <and>
+ <isset property="javafx.deploy.allowoffline"/>
+ <equals arg1="${javafx.deploy.allowoffline}" arg2="true" trim="true"/>
+ </and>
+ </condition>
+ <condition property="permissions-elevated">
+ <and>
+ <isset property="javafx.deploy.permissionselevated"/>
+ <equals arg1="${javafx.deploy.permissionselevated}" arg2="true" trim="true"/>
+ </and>
+ </condition>
+ <condition property="binary-encode-css">
+ <and>
+ <isset property="javafx.binarycss"/>
+ <equals arg1="${javafx.binarycss}" arg2="true" trim="true"/>
+ </and>
+ </condition>
+ <condition property="rebase-lib-jars">
+ <and>
+ <isset property="javafx.rebase.libs"/>
+ <equals arg1="${javafx.rebase.libs}" arg2="true" trim="true"/>
+ </and>
+ </condition>
+ <echo message="main-class-available = ${main-class-available}" level="verbose"/>
+ <echo message="vmargs-available = ${vmargs-available}" level="verbose"/>
+ <echo message="preloader-available = ${preloader-available}" level="verbose"/>
+ <echo message="app-with-preloader = ${app-with-preloader}" level="verbose"/>
+ <echo message="app-with-preloader-without-project = ${app-with-preloader-without-project}" level="verbose"/>
+ <echo message="app-without-preloader = ${app-without-preloader}" level="verbose"/>
+ <echo message="preloader-app = ${preloader-app}" level="verbose"/>
+ <echo message="fx-in-swing-app = ${fx-in-swing-app}" level="verbose"/>
+ <echo message="fx-in-swing-workaround-app = ${fx-in-swing-workaround-app}" level="verbose"/>
+ <echo message="preloader-app-no-workaround = ${preloader-app-no-workaround}" level="verbose"/>
+ <echo message="html-template-available = ${html-template-available}" level="verbose"/>
+ <echo message="icon-available = ${icon-available}" level="verbose"/>
+ <echo message="dimensions-available = ${dimensions-available}" level="verbose"/>
+ <echo message="update-mode-background = ${update-mode-background}" level="verbose"/>
+ <echo message="offline-allowed = ${offline-allowed}" level="verbose"/>
+ <echo message="permissions-elevated = ${permissions-elevated}" level="verbose"/>
+ <echo message="binary-encode-css = ${binary-encode-css}" level="verbose"/>
+ <echo message="rebase-lib-jars = ${rebase-lib-jars}" level="verbose"/>
+ </target>
+
+ <target name="-swing-api-check" depends="-check-project,-check-jfx-deployment" if="fx-in-swing-app">
+ <condition property="fx-in-swing-app-workaround">
+ <and>
+ <isset property="fx-in-swing-app"/>
+ <not><isset property="have-fx-ant-api-1.2"/></not>
+ </and>
+ </condition>
+ </target>
+ <target name="-swing-api-warning" depends="-swing-api-check" if="fx-in-swing-app-workaround">
+ <echo message="Info: No support for FX-in-Swing deployment detected in current JavaFX SDK. Using workaround instead."/>
+ </target>
+
+ <target name="-icon-deployment-check" depends="-check-project,-check-jfx-deployment" if="icon-available">
+ <condition property="icon-deployment-may-not-be-supported">
+ <and>
+ <isset property="icon-available"/>
+ <not><isset property="have-fx-ant-api-1.1"/></not>
+ </and>
+ </condition>
+ </target>
+ <target name="-icon-warning" depends="-icon-deployment-check" if="icon-deployment-may-not-be-supported">
+ <echo message="Warning: Note that due to a bug in early JavaFX 2.0 SDK distributions the icon may not be properly set in deployment files."/>
+ </target>
+
+ <target name="-set-dimensions" depends="-check-project" if="dimensions-available">
+ <property name="javafx.width" value="${javafx.run.width}"/>
+ <property name="javafx.height" value="${javafx.run.height}"/>
+ </target>
+ <target name="-reset-dimensions" depends="-check-project" unless="dimensions-available">
+ <property name="javafx.width" value="800"/>
+ <property name="javafx.height" value="600"/>
+ </target>
+
+ <target name="-set-update-mode-background" depends="-check-project" if="update-mode-background">
+ <property name="update-mode" value="background"/>
+ </target>
+ <target name="-set-update-mode-eager" depends="-check-project" unless="update-mode-background">
+ <property name="update-mode" value="eager"/>
+ </target>
+
+ <target name="-set-permissions-elevated" depends="-check-project" if="permissions-elevated">
+ <property name="permissions.elevated" value="true"/>
+ </target>
+ <target name="-reset-permissions-elevated" depends="-check-project" unless="permissions-elevated">
+ <property name="permissions.elevated" value="false"/>
+ </target>
+
+ <target name="-set-binary-css" depends="-check-project,-init-css-conversion" if="do.copy.binary.css">
+ <property name="css-include-ext" value="bss"/>
+ <property name="css-exclude-ext" value="css"/>
+ </target>
+ <target name="-unset-binary-css" depends="-check-project,-init-css-conversion" unless="do.copy.binary.css">
+ <property name="css-include-ext" value="css"/>
+ <property name="css-exclude-ext" value="bss"/>
+ </target>
+ <target name="-copy-binary-css" depends="-init-css-conversion,-set-binary-css,-unset-binary-css,-copy-binary-css-bypass,-copy-binary-css-impl"/>
+ <target name="-init-css-conversion" depends="-check-project,-check-jdk-version">
+ <fileset id="cssfiles" dir="${basedir}${file.separator}${build.classes.dir}">
+ <include name="**${file.separator}*.css"/>
+ </fileset>
+ <pathconvert refid="cssfiles" property="cssfileset.notempty" setonempty="false"/>
+ <condition property="do.copy.binary.css">
+ <and>
+ <isset property="binary-encode-css"/>
+ <isset property="cssfileset.notempty"/>
+ <not><isset property="have-jdk7-css2bin-bug"/></not>
+ </and>
+ </condition>
+ <condition property="do.bypass.binary.css">
+ <and>
+ <isset property="binary-encode-css"/>
+ <isset property="cssfileset.notempty"/>
+ <isset property="have-jdk7-css2bin-bug"/>
+ </and>
+ </condition>
+ <echo message="do.copy.binary.css = ${do.copy.binary.css}" level="verbose"/>
+ <echo message="do.bypass.binary.css = ${do.bypass.binary.css}" level="verbose"/>
+ </target>
+ <target name="-copy-binary-css-bypass" depends="-init-css-conversion" if="do.bypass.binary.css">
+ <echo message="Warning: Bypassing FX CSS to BSS conversion due to a bug in &lt;fx:csstobin&gt; task in current JDK platform" level="warning"/>
+ </target>
+ <target name="-copy-binary-css-impl" depends="-init-css-conversion" if="do.copy.binary.css">
+ <property name="cssfileslist" refid="cssfiles"/>
+ <echo message="css files to binary convert: " level="verbose">${cssfileslist}</echo>
+ <fx:csstobin outdir="${basedir}${file.separator}${build.classes.dir}">
+ <fileset refid="cssfiles"/>
+ </fx:csstobin>
+ </target>
+
+
+ <!-- Copy dependent libraries -->
+
+ <!-- Note: target "-jfx-copylibs" is referenced from NB 7.1 build-impl.xml -->
+ <target name="-jfx-copylibs" depends="init,compile,-pre-pre-jar,-pre-jar,-jfx-copylibs-warning" unless="fallback.no.javascript">
+ <jfx-copylibs-js-impl/>
+ </target>
+ <target name="-jfx-copylibs-warning" if="fallback.no.javascript">
+ <echo message="Warning: Dependent Libraries copy (-jfx-copylibs) skipped in fallback build mode due to JDK missing JavaScript support."/>
+ </target>
+ <macrodef name="jfx-copylibs-js-impl">
+ <sequential>
+ <local name="run.classpath.without.build.classes.and.dist.dir"/>
+ <pathconvert property="run.classpath.without.build.classes.and.dist.dir">
+ <path path="${run.classpath}"/>
+ <map from="${basedir}${file.separator}${build.classes.dir}" to=""/>
+ <map from="${basedir}${file.separator}${dist.jar}" to=""/>
+ <map from="${javafx.runtime}${file.separator}lib${file.separator}jfxrt.jar" to=""/>
+ <map from="${javafx.runtime}${file.separator}lib${file.separator}deploy.jar" to=""/>
+ <map from="${javafx.runtime}${file.separator}lib${file.separator}javaws.jar" to=""/>
+ <map from="${javafx.runtime}${file.separator}lib${file.separator}plugin.jar" to=""/>
+ </pathconvert>
+ <!-- add possibly missing dependencies at distance 2 (build system logic thus provides transitive closure) -->
+ <local name="run.and.lib.classpath"/>
+ <echo message="JavaScript: -jfx-copylibs" level="verbose"/>
+ <script language="javascript">
+ <![CDATA[
+ var pathConvert = project.createTask("pathconvert");
+ pathConvert.setProperty("run.and.lib.classpath");
+ var classPath = project.getProperty("run.classpath.without.build.classes.and.dist.dir");
+ var fileSeparator = project.getProperty("file.separator");
+ if(classPath != null) {
+ var classPathCopy = pathConvert.createPath();
+ classPathCopy.setPath(classPath);
+ if(classPath.indexOf(";") != -1) {
+ var pathArray = classPath.split(";");
+ } else {
+ var pathArray = classPath.split(":");
+ }
+ var added = "";
+ for (var i=0; i<pathArray.length; i++) {
+ var index = pathArray[i].lastIndexOf(fileSeparator);
+ if (index >=0) {
+ var onePath = pathArray[i].substr(0,index+1) + "lib";
+ var oneDir = new java.io.File(onePath);
+ if(oneDir.exists()) {
+ var fs = project.createDataType("fileset");
+ fs.setDir( oneDir );
+ fs.setIncludes("*.jar");
+ var ds = fs.getDirectoryScanner(project);
+ var srcFiles = ds.getIncludedFiles();
+ for (j=0; j<srcFiles.length; j++) {
+ if(classPath.indexOf(srcFiles[j]) == -1 && added.indexOf(srcFiles[j]) == -1) {
+ var path = pathConvert.createPath();
+ path.setPath(onePath + fileSeparator + srcFiles[j]);
+ added += srcFiles[j];
+ }
+ }
+ }
+ }
+ }
+ }
+ pathConvert.perform();
+ ]]>
+ </script>
+ <echo message="run.and.lib.classpath = ${run.and.lib.classpath}" level="verbose"/>
+ <delete dir="${dist.dir}${file.separator}lib" includeEmptyDirs="true" quiet="true"/>
+ <copy todir="${dist.dir}${file.separator}lib" flatten="true" preservelastmodified="true" overwrite="true">
+ <path>
+ <pathelement path="${run.and.lib.classpath}"/>
+ </path>
+ </copy>
+ </sequential>
+ </macrodef>
+
+ <target name="-copy-external-preloader-jar" depends="-check-project" if="app-with-external-preloader-jar">
+ <copy file="${javafx.preloader.jar.path}" todir="${dist.dir}${file.separator}lib"/>
+ </target>
+
+
+ <!-- Optional classpath re-base of dependent JAR manifests after copy to lib/, required by GlassFish -->
+
+ <!-- Note: target "-rebase-libs" is referenced from NB 7.1 build-impl.xml -->
+ <target name="-rebase-libs" depends="-check-project, -jfx-copylibs, -check-rebase-libs, -rebase-libs-warning" if="do-rebase-lib-jars">
+ <rebase-libs-js-impl/>
+ </target>
+ <target name="-check-rebase-libs">
+ <condition property="do-rebase-lib-jars">
+ <and>
+ <isset property="rebase-lib-jars"/>
+ <not><isset property="fallback.no.javascript"/></not>
+ </and>
+ </condition>
+ <condition property="do-skip-rebase-libs">
+ <and>
+ <isset property="rebase-lib-jars"/>
+ <isset property="fallback.no.javascript"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-rebase-libs-warning" depends="-check-rebase-libs" if="do-skip-rebase-libs">
+ <echo message="Warning: Dependent Libraries JARs rebase (-rebase-libs) skipped in fallback build mode due to JDK missing JavaScript support."/>
+ </target>
+
+ <macrodef name="rebase-libs-js-impl">
+ <sequential>
+ <property name="pp_rebase_dir" value="${basedir}${file.separator}${dist.dir}${file.separator}lib"/>
+ <property name="pp_rebase_fs" value="*.jar"/>
+ <echo message="JavaScript: -rebase-libs-js-impl" level="verbose"/>
+ <script language="javascript">
+ <![CDATA[
+ var dir = project.getProperty("pp_rebase_dir");
+ var fDir = new java.io.File(dir);
+ if( fDir.exists() ) {
+ var callTask = project.createTask("antcall");
+ callTask.setTarget("-rebase-libs-macro-call");
+ var param = callTask.createParam();
+ param.setName("jar.file.to.rebase");
+ var includes = project.getProperty("pp_rebase_fs");
+ var fs = project.createDataType("fileset");
+ fs.setDir( fDir );
+ fs.setIncludes(includes);
+ var ds = fs.getDirectoryScanner(project);
+ var srcFiles = ds.getIncludedFiles();
+ for (i=0; i<srcFiles.length; i++) {
+ param.setValue(dir + "${file.separator}" + srcFiles[i]);
+ callTask.perform();
+ }
+ }
+ ]]>
+ </script>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="rebase-lib">
+ <attribute name="jarfile"/>
+ <sequential>
+ <local name="tmpdir"/>
+ <property name="tmpdir" value="${java.io.tmpdir}${file.separator}${user.name}_${ant.project.name}_rebase" />
+ <echo message="tmpdir = ${tmpdir}" level="verbose"/>
+ <delete dir="${tmpdir}" quiet="true"/>
+ <mkdir dir="${tmpdir}"/>
+ <unzip src="@{jarfile}" dest="${tmpdir}">
+ <patternset>
+ <include name="META-INF${file.separator}MANIFEST.MF"/>
+ </patternset>
+ </unzip>
+ <local name="manifest.file.temp"/>
+ <property name="manifest.file.temp" value="${tmpdir}${file.separator}META-INF${file.separator}MANIFEST.MF" />
+ <echo message="manifest.file.temp = ${manifest.file.temp}" level="verbose"/>
+ <!-- edited manifest file -->
+ <local name="manifest.file.temp.new"/>
+ <property name="manifest.file.temp.new" value="${manifest.file.temp}_new" />
+ <echo message="manifest.file.temp.new = ${manifest.file.temp.new}" level="verbose"/>
+ <echo message="JavaScript: rebase-lib" level="verbose"/>
+ <script language="javascript">
+ <![CDATA[
+ var UTF_8 = "UTF-8";
+ var ATTR_CLASS_PATH = "Class-Path";
+ var ATTR_CLASS_PATH_FX = "JavaFX-Class-Path";
+ function isSigned(manifest) {
+ var sections = manifest.getSectionNames();
+ while(sections.hasMoreElements()) {
+ var sectionname = sections.nextElement();
+ var section = manifest.getSection(sectionname);
+ if(section != null) {
+ var sectionKeys = section.getAttributeKeys();
+ while (sectionKeys.hasMoreElements()) {
+ var element = sectionKeys.nextElement();
+ if (element.endsWith("-Digest") || element.endsWith("-digest")) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+ var src = project.getProperty("manifest.file.temp");
+ var srf = new java.io.File(src);
+ try {
+ var fis = new java.io.FileInputStream(srf);
+ try {
+ var isr = new java.io.InputStreamReader(fis, UTF_8);
+ try {
+ var manifest = new org.apache.tools.ant.taskdefs.Manifest(isr);
+ } finally {
+ isr.close();
+ }
+ } finally {
+ fis.close();
+ }
+ } catch(e) {
+ var manifest = null;
+ }
+ if(manifest != null) {
+ if(isSigned(manifest)) {
+ println("Warning: Signed JAR can not be rebased.");
+ } else {
+ var mainSection = manifest.getMainSection();
+ var classPath = mainSection.getAttributeValue(ATTR_CLASS_PATH);
+ if (classPath != null) {
+ var classPathAttr = ATTR_CLASS_PATH;
+ } else {
+ classPath = mainSection.getAttributeValue(ATTR_CLASS_PATH_FX);
+ if(classPath != null) {
+ var classPathAttr = ATTR_CLASS_PATH_FX;
+ }
+ }
+ if(classPath != null) {
+ var result = new java.lang.StringBuilder();
+ var changed = false;
+ var pathArray = classPath.split(" ");
+ for (var i=0; i<pathArray.length; i++) {
+ if (result.length() > 0) {
+ result.append(' ');
+ }
+ var index = pathArray[i].lastIndexOf('/');
+ if (index >=0 && index < pathArray[i].length()-1) {
+ pathArray[i] = pathArray[i].substring(index+1);
+ changed = true;
+ }
+ result.append(pathArray[i]);
+ }
+ mainSection.removeAttribute(classPathAttr);
+ mainSection.addAttributeAndCheck(new org.apache.tools.ant.taskdefs.Manifest.Attribute(classPathAttr, result.toString()));
+ var tgt = project.getProperty("manifest.file.temp.new");
+ var tgf = new java.io.File(tgt);
+ try {
+ var fos = new java.io.FileOutputStream(tgf);
+ try {
+ var osw = new java.io.OutputStreamWriter(fos, UTF_8);
+ try {
+ var manifestOut = new java.io.PrintWriter(osw);
+ manifest.write(manifestOut);
+ manifestOut.close();
+ } finally {
+ osw.close();
+ }
+ } finally {
+ fos.close();
+ }
+ } catch(e) {
+ println("Warning: problem storing rebased manifest file.");
+ }
+ }
+ }
+ }
+ ]]>
+ </script>
+ <antcall target="-move-new-manifest-if-exists">
+ <param name="move.file.from" value="${manifest.file.temp.new}"/>
+ <param name="move.file.to" value="${manifest.file.temp}"/>
+ </antcall>
+ <zip destfile="@{jarfile}" basedir="${tmpdir}" update="true"/>
+ <delete dir="${tmpdir}" quiet="true"/>
+ </sequential>
+ </macrodef>
+
+ <target name="-new-temp-mainfest-existence">
+ <condition property="new-temp-manifest-exists">
+ <available file="${move.file.from}"/>
+ </condition>
+ <echo message="new-temp-manifest-exists = ${new-temp-manifest-exists}" level="verbose"/>
+ </target>
+
+ <target name="-move-new-manifest-if-exists" depends="-new-temp-mainfest-existence" if="new-temp-manifest-exists">
+ <move file="${move.file.from}" tofile="${move.file.to}" failonerror="false"/>
+ </target>
+
+ <target name="-rebase-libs-macro-call">
+ <echo message="Rebase jarfile = ${jar.file.to.rebase}" level="verbose"/>
+ <rebase-lib jarfile="${jar.file.to.rebase}"/>
+ </target>
+
+
+ <!-- Main Deployment Target -->
+
+ <!-- Note: target "jfx-deployment" is referenced from NB 7.1+ build-impl.xml -->
+ <target name="jfx-deployment" depends="-check-jfx-deployment-launch,-do-jfx-deployment-script,-do-jfx-deployment-noscript" if="jfx-deployment-available"/>
+
+ <target name="-check-dist-lib-exists">
+ <deploy-defines/>
+ <available file="${jfx.deployment.dir}${file.separator}lib" type="dir" property="dist.lib.exists"/>
+ </target>
+ <target name="-check-jfx-deployment-jar-current-nolib" depends="-check-dist-lib-exists" unless="dist.lib.exists">
+ <uptodate property="jfx-deployment-jar-current" targetfile="${jfx.deployment.dir}${file.separator}${jfx.deployment.jar}" >
+ <srcfiles dir="${basedir}${file.separator}${build.classes.dir}" includes="**${file.separator}*"/>
+ <srcfiles dir="${basedir}${file.separator}nbproject" includes="**${file.separator}*"/>
+ </uptodate>
+ </target>
+ <target name="-check-jfx-deployment-jar-current-lib" depends="-check-dist-lib-exists" if="dist.lib.exists">
+ <uptodate property="jfx-deployment-jar-current" targetfile="${jfx.deployment.dir}${file.separator}${jfx.deployment.jar}" >
+ <srcfiles dir="${basedir}${file.separator}${build.classes.dir}" includes="**${file.separator}*"/>
+ <srcfiles dir="${jfx.deployment.dir}${file.separator}lib" includes="**${file.separator}*"/>
+ <srcfiles dir="${basedir}${file.separator}nbproject" includes="**${file.separator}*"/>
+ </uptodate>
+ </target>
+ <target name="-check-jfx-deployment-launch" depends="-check-jfx-deployment,-check-jfx-deployment-jar-current-nolib,-check-jfx-deployment-jar-current-lib">
+ <condition property="do-jfx-deployment-script">
+ <and>
+ <isset property="jfx-deployment-available"/>
+ <not><isset property="fallback.no.javascript"/></not>
+ <not><isset property="jfx-deployment-jar-current"/></not>
+ </and>
+ </condition>
+ <condition property="do-jfx-deployment-noscript">
+ <and>
+ <isset property="jfx-deployment-available"/>
+ <isset property="fallback.no.javascript"/>
+ <not><isset property="jfx-deployment-jar-current"/></not>
+ </and>
+ </condition>
+ </target>
+ <target name="-do-jfx-deployment-script" depends="-check-jfx-deployment-launch" if="do-jfx-deployment-script">
+ <antcall target="jfx-deployment-script"/>
+ </target>
+ <target name="-do-jfx-deployment-noscript" depends="-check-jfx-deployment-launch" if="do-jfx-deployment-noscript">
+ <antcall target="jfx-deployment-noscript"/>
+ </target>
+
+ <target name="jfx-deployment-script" depends="-check-jfx-deployment,-check-project,
+ -swing-api-warning,-icon-warning,
+ -set-dimensions,-reset-dimensions,-set-update-mode-background,-set-update-mode-eager,
+ -set-permissions-elevated,-reset-permissions-elevated,
+ -copy-external-preloader-jar,-copy-binary-css,
+ -deploy-app-sign-nopreloader-notemplate,
+ -deploy-app-sign-preloader-notemplate,
+ -deploy-app-sign-nopreloader-template,
+ -deploy-app-sign-preloader-template,
+ -deploy-app-sign-nopreloader-notemplate-swing,
+ -deploy-app-sign-nopreloader-template-swing,
+ -deploy-app-nosign-nopreloader-notemplate,
+ -deploy-app-nosign-preloader-notemplate,
+ -deploy-app-nosign-nopreloader-template,
+ -deploy-app-nosign-preloader-template,
+ -deploy-app-nosign-nopreloader-notemplate-swing,
+ -deploy-app-nosign-nopreloader-template-swing"
+ if="jfx-deployment-available">
+ </target>
+
+ <target name="jfx-deployment-noscript" depends="-check-jfx-deployment,-check-project,
+ -swing-api-warning,-icon-warning,
+ -set-dimensions,-reset-dimensions,-set-update-mode-background,-set-update-mode-eager,
+ -set-permissions-elevated,-reset-permissions-elevated,
+ -copy-external-preloader-jar,-copy-binary-css,
+ -fallback-deploy-app-sign-nopreloader-notemplate,
+ -fallback-deploy-app-sign-preloader-notemplate,
+ -fallback-deploy-app-sign-nopreloader-template,
+ -fallback-deploy-app-sign-preloader-template,
+ -fallback-deploy-app-sign-nopreloader-notemplate-swing,
+ -fallback-deploy-app-sign-nopreloader-template-swing,
+ -fallback-deploy-app-nosign-nopreloader-notemplate,
+ -fallback-deploy-app-nosign-preloader-notemplate,
+ -fallback-deploy-app-nosign-nopreloader-template,
+ -fallback-deploy-app-nosign-preloader-template,
+ -fallback-deploy-app-nosign-nopreloader-notemplate-swing,
+ -fallback-deploy-app-nosign-nopreloader-template-swing"
+ if="jfx-deployment-available">
+ </target>
+
+
+ <!-- Security / Signing -->
+
+ <target name="-unavailable-signjars-task" depends="-check-jfx-deployment" unless="jfx-deployment-available">
+ <echo message="Warning: Task required to sign JAR file is missing, check the availability of JavaFX 2.0 deployment tasks. JAR files will not be signed."/>
+ </target>
+
+ <target name="-security-props-check">
+ <condition property="javafx.signed.true">
+ <istrue value="${javafx.signing.enabled}"/>
+ </condition>
+ </target>
+
+ <target name="-check-signing-possible" depends="-security-props-check,-check-jfx-deployment,-unavailable-signjars-task">
+ <condition property="javafx.signed.true+signjars.task.available">
+ <and>
+ <isset property="javafx.signed.true"/>
+ <isset property="jfx-deployment-available"/>
+ </and>
+ </condition>
+ </target>
+
+ <target name="-javafx-init-keystore" depends="-check-signing-possible,-javafx-init-signing,-javafx-init-keystore1,-javafx-init-keystore2,-check-keystore-exists"
+ if="javafx.signed.true+signjars.task.available" unless="javafx.signjar.keystore.exists">
+ <property name="javafx.signjar.vendor" value="CN=${application.vendor}"/>
+ <echo message="Going to create default keystore in ${javafx.signjar.keystore}"/>
+ <genkey dname="${javafx.signjar.vendor}" alias="${javafx.signjar.alias}" keystore="${javafx.signjar.keystore}"
+ storepass="${javafx.signjar.storepass}" keypass="${javafx.signjar.keypass}"/>
+ </target>
+
+ <target name="-check-keystore-exists">
+ <available property="javafx.signjar.keystore.exists" file="${javafx.signjar.keystore}"/>
+ </target>
+
+ <target name="-javafx-init-signing">
+ <condition property="generated.key.signing">
+ <equals arg1="${javafx.signing.type}" arg2="self" trim="true"/>
+ </condition>
+ </target>
+
+ <target name="-javafx-init-keystore1" depends="-javafx-init-signing" if="generated.key.signing">
+ <property name="javafx.signjar.keystore" value="${basedir}${file.separator}build${file.separator}nb-jfx.jks" />
+ <property name="javafx.signjar.storepass" value="storepass"/>
+ <property name="javafx.signjar.keypass" value="keypass"/>
+ <property name="javafx.signjar.alias" value="nb-jfx"/>
+ </target>
+
+ <target name="-javafx-init-keystore2" depends="-javafx-init-signing" unless="generated.key.signing">
+ <property name="javafx.signjar.keystore" value="${javafx.signing.keystore}" />
+ <property name="javafx.signjar.storepass" value="${javafx.signing.keystore.password}"/>
+ <property name="javafx.signjar.keypass" value="${javafx.signing.keyalias.password}"/>
+ <property name="javafx.signjar.alias" value="${javafx.signing.keyalias}"/>
+ </target>
+
+
+ <!-- Project Deployment Macros -->
+
+ <macrodef name="deploy-defines">
+ <sequential>
+ <basename property="jfx.deployment.jar" file="${dist.jar}"/>
+ <property name="jfx.deployment.dir" location="${dist.dir}"/>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="deploy-preprocess">
+ <sequential>
+ <delete includeEmptyDirs="true" quiet="true">
+ <fileset dir="${jfx.deployment.dir}${file.separator}lib">
+ <exclude name="**${file.separator}*.jar"/>
+ </fileset>
+ </delete>
+ </sequential>
+ </macrodef>
+
+ <!-- fx:jar scripted call enables passing of arbitrarily long list of params and fx-version dependent behavior -->
+ <macrodef name="deploy-jar">
+ <sequential>
+ <antcall target="-pre-jfx-jar"/>
+ <echo message="javafx.ant.classpath = ${javafx.ant.classpath}" level="verbose"/>
+ <typedef name="fx_jar" classname="com.sun.javafx.tools.ant.FXJar" classpath="${javafx.ant.classpath}"/>
+ <echo message="Launching &lt;fx:jar&gt; task from ${ant-javafx.jar.location}" level="info"/>
+ <property name="pp_jar_destfile" value="${jfx.deployment.dir}${file.separator}${jfx.deployment.jar}"/>
+ <property name="pp_jar_buildclasses" value="${basedir}${file.separator}${build.classes.dir}"/>
+ <property name="pp_jar_cssbss" value="**${file.separator}*.${css-exclude-ext}"/>
+ <property name="pp_jar_dir" value="${jfx.deployment.dir}"/>
+ <property name="pp_jar_fs1" value="lib${file.separator}${javafx.preloader.jar.filename}"/>
+ <property name="pp_jar_fs2" value="lib${file.separator}*.jar"/>
+ <echo message="deploy_jar: pp_jar_destfile = ${pp_jar_destfile}" level="verbose"/>
+ <echo message="deploy_jar: pp_jar_buildclasses = ${pp_jar_buildclasses}" level="verbose"/>
+ <echo message="deploy_jar: pp_jar_cssbss = ${pp_jar_cssbss}" level="verbose"/>
+ <echo message="deploy_jar: pp_jar_dir = ${pp_jar_dir}" level="verbose"/>
+ <echo message="deploy_jar: pp_jar_fs1 = ${pp_jar_fs1}" level="verbose"/>
+ <echo message="deploy_jar: pp_jar_fs2 = ${pp_jar_fs2}" level="verbose"/>
+ <echo message="JavaScript: deploy-jar" level="verbose"/>
+ <script language="javascript">
+ <![CDATA[
+ var S = java.io.File.separator;
+ var JFXPAR = "javafx.param";
+ var JFXPARN = "name";
+ var JFXPARV = "value";
+ var JFXLAZY = "download.mode.lazy.jar";
+ var withpreloader = project.getProperty("app-with-preloader");
+ var fx_ant_api_1_1 = project.getProperty("have-fx-ant-api-1.1");
+ var fx_ant_api_1_2 = project.getProperty("have-fx-ant-api-1.2");
+ var fx_in_swing_app = project.getProperty("fx-in-swing-app");
+
+ // get jars with lazy download mode property set
+ function getLazyJars() {
+ var jars = new Array();
+ var keys = project.getProperties().keys();
+ while(keys.hasMoreElements()) {
+ var pn = keys.nextElement();
+ if(pn.substr(0,JFXLAZY.length) == JFXLAZY) {
+ var fname = pn.substring(JFXLAZY.length+1);
+ jars.push(fname);
+ }
+ }
+ return jars.length > 0 ? jars : null;
+ }
+ // set download mode of dependent libraries
+ function setDownloadMode(fsEager, fsLazy, jars) {
+ for(i = 0; i < jars.length; i++) {
+ fsEager.setExcludes("lib" + S + jars[i]);
+ fsLazy.setIncludes("lib" + S + jars[i]);
+ }
+ }
+
+ // fx:jar
+ var jar = project.createTask("fx_jar");
+ jar.setProject(project);
+ var destfile = project.getProperty("pp_jar_destfile");
+ jar.setDestfile(destfile);
+
+ // fx:application
+ var app = jar.createApplication();
+ app.setProject(project);
+ var title = project.getProperty("application.title");
+ if(fx_in_swing_app == "true" && fx_ant_api_1_2 == "true") {
+ var mainclass = project.getProperty("main.class");
+ app.setToolkit("swing");
+ } else {
+ var mainclass = project.getProperty("javafx.main.class");
+ }
+ var fallback = project.getProperty("javafx.fallback.class");
+ app.setName(title);
+ app.setMainClass(mainclass);
+ app.setFallbackClass(fallback);
+ if(withpreloader == "true") {
+ preloaderclass = project.getProperty("javafx.preloader.class");
+ app.setPreloaderClass(preloaderclass);
+ }
+ // fx:param, fx:argument
+ var keys = project.getProperties().keys();
+ while(keys.hasMoreElements()) {
+ var pn = keys.nextElement();
+ if(pn.substr(0,JFXPAR.length) == JFXPAR && pn.indexOf(JFXPARN) == (pn.length()-JFXPARN.length)) {
+ var propn = project.getProperty(pn);
+ if(propn != null && propn.length() > 0) {
+ var pv = pn.substr(0,pn.indexOf(JFXPARN)) + JFXPARV;
+ var propv = project.getProperty(pv);
+ if(propv != null && propv.length() > 0) {
+ var par = app.createParam();
+ par.setName(propn);
+ par.setValue(propv);
+ } else {
+ if(fx_ant_api_1_1 == "true") {
+ var arg = app.createArgument();
+ arg.addText(propn);
+ }
+ }
+ }
+ }
+ }
+
+ // fx:resources
+ var res = jar.createResources();
+ res.setProject(project);
+ var pdir = project.getProperty("pp_jar_dir");
+ if(withpreloader == "true") {
+ var f1 = res.createFileSet();
+ f1.setProject(project);
+ f1.setDir(new java.io.File(pdir));
+ var i1 = project.getProperty("pp_jar_fs1");
+ f1.setIncludes(i1);
+ f1.setRequiredFor("preloader");
+ var f2 = res.createFileSet();
+ f2.setProject(project);
+ f2.setDir(new java.io.File(pdir));
+ var i2a = project.getProperty("jfx.deployment.jar");
+ var i2b = project.getProperty("pp_jar_fs2");
+ var e2c = project.getProperty("pp_jar_fs1");
+ f2.setIncludes(i2a);
+ f2.setIncludes(i2b);
+ f2.setExcludes(e2c);
+ f2.setRequiredFor("startup");
+ var lazyjars = getLazyJars();
+ if(lazyjars != null) {
+ var f3 = res.createFileSet();
+ f3.setProject(project);
+ f3.setDir(new java.io.File(pdir));
+ f3.setRequiredFor("runtime");
+ setDownloadMode(f2,f3,lazyjars);
+ }
+ } else {
+ var fn = res.createFileSet();
+ fn.setProject(project);
+ fn.setDir(new java.io.File(pdir));
+ var ia = project.getProperty("jfx.deployment.jar");
+ var ib = project.getProperty("pp_jar_fs2");
+ fn.setIncludes(ia);
+ fn.setIncludes(ib);
+ fn.setRequiredFor("startup");
+ var lazyjars = getLazyJars();
+ if(lazyjars != null) {
+ var fn2 = res.createFileSet();
+ fn2.setProject(project);
+ fn2.setDir(new java.io.File(pdir));
+ fn2.setRequiredFor("runtime");
+ setDownloadMode(fn,fn2,lazyjars);
+ }
+ }
+
+ // fileset to exclude *.css or *.bss
+ var fs = jar.createFileSet();
+ fs.setProject(project);
+ var buildcls = project.getProperty("pp_jar_buildclasses");
+ var exc = project.getProperty("pp_jar_cssbss");
+ fs.setDir(new java.io.File(buildcls));
+ fs.setExcludes(exc);
+
+ // manifest
+ var man = jar.createManifest();
+ var a1val = project.getProperty("application.vendor");
+ var a1 = new org.apache.tools.ant.taskdefs.Manifest.Attribute();
+ a1.setName("Implementation-Vendor");
+ a1.setValue(a1val);
+ man.addConfiguredAttribute(a1);
+ var a2val = project.getProperty("application.title");
+ var a2 = new org.apache.tools.ant.taskdefs.Manifest.Attribute();
+ a2.setName("Implementation-Title");
+ a2.setValue(a2val);
+ man.addConfiguredAttribute(a2);
+ var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute();
+ a3.setName("Implementation-Version");
+ a3.setValue("1.0");
+ man.addConfiguredAttribute(a3);
+
+ jar.perform();
+ ]]>
+ </script>
+ <antcall target="-post-jfx-jar"/>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="deploy-sign">
+ <sequential>
+ <echo message="keystore=${javafx.signjar.keystore}" level="verbose"/>
+ <echo message="storepass=${javafx.signjar.storepass}" level="verbose"/>
+ <echo message="alias=${javafx.signjar.alias}" level="verbose"/>
+ <echo message="keypass=${javafx.signjar.keypass}" level="verbose"/>
+ <signjar keystore="${javafx.signjar.keystore}"
+ storepass="${javafx.signjar.storepass}"
+ alias="${javafx.signjar.alias}"
+ keypass="${javafx.signjar.keypass}">
+ <fileset dir="${jfx.deployment.dir}">
+ <include name="${jfx.deployment.jar}"/>
+ <include name="lib${file.separator}*.jar"/>
+ </fileset>
+ </signjar>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="deploy-sign-preloader">
+ <sequential>
+ <echo message="keystore=${javafx.signjar.keystore}" level="verbose"/>
+ <echo message="storepass=${javafx.signjar.storepass}" level="verbose"/>
+ <echo message="alias=${javafx.signjar.alias}" level="verbose"/>
+ <echo message="keypass=${javafx.signjar.keypass}" level="verbose"/>
+ <signjar keystore="${javafx.signjar.keystore}"
+ storepass="${javafx.signjar.storepass}"
+ alias="${javafx.signjar.alias}"
+ keypass="${javafx.signjar.keypass}">
+ <fileset dir="${jfx.deployment.dir}">
+ <include name="lib${file.separator}${javafx.preloader.jar.filename}"/>
+ </fileset>
+ </signjar>
+ <signjar keystore="${javafx.signjar.keystore}"
+ storepass="${javafx.signjar.storepass}"
+ alias="${javafx.signjar.alias}"
+ keypass="${javafx.signjar.keypass}">
+ <fileset dir="${jfx.deployment.dir}">
+ <include name="${jfx.deployment.jar}"/>
+ <include name="lib${file.separator}*.jar"/>
+ <exclude name="lib${file.separator}${javafx.preloader.jar.filename}"/>
+ </fileset>
+ </signjar>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="deploy-process-template">
+ <sequential>
+ <echo message="javafx.run.htmltemplate = ${javafx.run.htmltemplate}" level="verbose"/>
+ <pathconvert property="javafx.run.htmltemplate.processed">
+ <path path="${javafx.run.htmltemplate}"/>
+ <mapper>
+ <chainedmapper>
+ <flattenmapper/>
+ <globmapper from="*" to="${jfx.deployment.dir}${file.separator}*" casesensitive="no"/>
+ </chainedmapper>
+ </mapper>
+ </pathconvert>
+ <echo message="javafx.run.htmltemplate.processed = ${javafx.run.htmltemplate.processed}" level="verbose"/>
+ </sequential>
+ </macrodef>
+
+ <!-- fx:deploy scripted call enables passing of arbitrarily long lists of params, vmoptions and callbacks and fx-version dependent behavior -->
+ <macrodef name="deploy-deploy">
+ <sequential>
+ <antcall target="-pre-jfx-deploy"/>
+ <antcall target="-call-pre-jfx-native"/>
+ <echo message="javafx.ant.classpath = ${javafx.ant.classpath}" level="verbose"/>
+ <typedef name="fx_deploy" classname="com.sun.javafx.tools.ant.DeployFXTask" classpath="${javafx.ant.classpath}"/>
+ <echo message="Launching &lt;fx:deploy&gt; task from ${ant-javafx.jar.location}" level="info"/>
+ <property name="pp_deploy_dir" value="${jfx.deployment.dir}"/>
+ <property name="pp_deploy_fs1" value="lib${file.separator}${javafx.preloader.jar.filename}"/>
+ <property name="pp_deploy_fs2" value="lib${file.separator}*.jar"/>
+ <echo message="deploy_deploy: pp_deploy_dir = ${pp_deploy_dir}" level="verbose"/>
+ <echo message="deploy_deploy: pp_deploy_fs1 = ${pp_deploy_fs1}" level="verbose"/>
+ <echo message="deploy_deploy: pp_deploy_fs2 = ${pp_deploy_fs2}" level="verbose"/>
+ <echo message="JavaScript: deploy-deploy" level="verbose"/>
+ <script language="javascript">
+ <![CDATA[
+ function isTrue(prop) {
+ return prop != null &&
+ (prop.toLowerCase()=="true" || prop.toLowerCase()=="yes" || prop.toLowerCase()=="on");
+ }
+ var S = java.io.File.separator;
+ var JFXPAR = "javafx.param";
+ var JFXPARN = "name";
+ var JFXPARV = "value";
+ var JFXCALLB = "javafx.jscallback";
+ var JFXLAZY = "download.mode.lazy.jar";
+ var withpreloader = project.getProperty("app-with-preloader");
+ var fx_ant_api_1_1 = project.getProperty("have-fx-ant-api-1.1");
+ var fx_ant_api_1_2 = project.getProperty("have-fx-ant-api-1.2");
+ var fx_in_swing_app = project.getProperty("fx-in-swing-app");
+
+ // get jars with lazy download mode property set
+ function getLazyJars() {
+ var jars = new Array();
+ var keys = project.getProperties().keys();
+ while(keys.hasMoreElements()) {
+ var pn = keys.nextElement();
+ if(pn.substr(0,JFXLAZY.length) == JFXLAZY) {
+ var fname = pn.substring(JFXLAZY.length+1);
+ jars.push(fname);
+ }
+ }
+ return jars.length > 0 ? jars : null;
+ }
+ // set download mode of dependent libraries
+ function setDownloadMode(fsEager, fsLazy, jars) {
+ for(i = 0; i < jars.length; i++) {
+ fsEager.setExcludes("lib" + S + jars[i]);
+ fsLazy.setIncludes("lib" + S + jars[i]);
+ }
+ }
+
+ // fx:deploy
+ var deploy = project.createTask("fx_deploy");
+ deploy.setProject(project);
+ var width = project.getProperty("javafx.width");
+ var height = project.getProperty("javafx.height");
+ var outdir = project.getProperty("jfx.deployment.dir");
+ var embedJNLP = project.getProperty("javafx.deploy.embedJNLP");
+ var updatemode = project.getProperty("update-mode");
+ var outfile = project.getProperty("application.title");
+ var includeDT = project.getProperty("javafx.deploy.includeDT");
+ var offline = project.getProperty("javafx.deploy.allowoffline");
+ deploy.setWidth(width);
+ deploy.setHeight(height);
+ deploy.setOutdir(outdir);
+ deploy.setEmbedJNLP(isTrue(embedJNLP));
+ deploy.setUpdateMode(updatemode);
+ deploy.setOutfile(outfile);
+ deploy.setIncludeDT(isTrue(includeDT));
+ if(offline != null) {
+ if(fx_ant_api_1_1 == "true") {
+ deploy.setOfflineAllowed(isTrue(offline));
+ } else {
+ println("Warning: offlineAllowed not supported by this version of JavaFX SDK deployment Ant task. Please upgrade JavaFX to 2.0.2 or higher.");
+ }
+ }
+ // native packaging (time consuming, thus applied in explicit build only)
+ var nativeEnabled = project.getProperty("do.build.native.package");
+ var nativeType = project.getProperty("javafx.native.bundling.type");
+ var projStateRun = project.getProperty("project.state.running");
+ var projStateDbg = project.getProperty("project.state.debugging");
+ var projStatePrf = project.getProperty("project.state.profiling");
+ if(isTrue(nativeEnabled) && nativeType != null && nativeType != "none") {
+ if(!isTrue(projStateRun) && !isTrue(projStateDbg) && !isTrue(projStatePrf)) {
+ if(fx_ant_api_1_2 == "true") {
+ deploy.setNativeBundles(nativeType);
+ println("Note: To create native bundles the <fx:deploy> task may require external tools. See JavaFX 2.2+ documentation for details.");
+ println("");
+ println("Launching <fx:deploy> in native packager mode...");
+ } else {
+ println("Warning: Native packaging is not supported by this version of JavaFX SDK deployment Ant task. Please upgrade to JDK 7u6 or higher.");
+ }
+ }
+ }
+
+ // fx:application
+ var app = deploy.createApplication();
+ app.setProject(project);
+ var title = project.getProperty("application.title");
+ if(fx_in_swing_app == "true" && fx_ant_api_1_2 == "true") {
+ var mainclass = project.getProperty("main.class");
+ app.setToolkit("swing");
+ } else {
+ var mainclass = project.getProperty("javafx.main.class");
+ }
+ var fallback = project.getProperty("javafx.fallback.class");
+ app.setName(title);
+ app.setMainClass(mainclass);
+ app.setFallbackClass(fallback);
+ if(withpreloader == "true") {
+ preloaderclass = project.getProperty("javafx.preloader.class");
+ app.setPreloaderClass(preloaderclass);
+ }
+ // fx:param, fx:argument
+ var keys = project.getProperties().keys();
+ while(keys.hasMoreElements()) {
+ var pn = keys.nextElement();
+ if(pn.substr(0,JFXPAR.length) == JFXPAR && pn.indexOf(JFXPARN) == (pn.length()-JFXPARN.length)) {
+ var propn = project.getProperty(pn);
+ if(propn != null && propn.length() > 0) {
+ var pv = pn.substr(0,pn.indexOf(JFXPARN)) + JFXPARV;
+ var propv = project.getProperty(pv);
+ if(propv != null && propv.length() > 0) {
+ var par = app.createParam();
+ par.setName(propn);
+ par.setValue(propv);
+ } else {
+ if(fx_ant_api_1_1 == "true") {
+ var arg = app.createArgument();
+ arg.addText(propn);
+ } else {
+ println("Warning: Unnamed parameters not supported by this version of JavaFX SDK deployment Ant tasks. Upgrade JavaFX to 2.0.2 or higher.");
+ }
+ }
+ }
+ }
+ }
+
+ // fx:resources
+ var res = deploy.createResources();
+ res.setProject(project);
+ var deploydir = project.getProperty("pp_deploy_dir");
+ if(withpreloader == "true") {
+ var f1 = res.createFileSet();
+ f1.setProject(project);
+ f1.setDir(new java.io.File(deploydir));
+ var i1 = project.getProperty("pp_deploy_fs1");
+ f1.setIncludes(i1);
+ f1.setRequiredFor("preloader");
+ var f2 = res.createFileSet();
+ f2.setProject(project);
+ f2.setDir(new java.io.File(deploydir));
+ var i2a = project.getProperty("jfx.deployment.jar");
+ var i2b = project.getProperty("pp_deploy_fs2");
+ var e2c = project.getProperty("pp_deploy_fs1");
+ f2.setIncludes(i2a);
+ f2.setIncludes(i2b);
+ f2.setExcludes(e2c);
+ f2.setRequiredFor("startup");
+ var lazyjars = getLazyJars();
+ if(lazyjars != null) {
+ var f3 = res.createFileSet();
+ f3.setProject(project);
+ f3.setDir(new java.io.File(deploydir));
+ f3.setRequiredFor("runtime");
+ setDownloadMode(f2,f3,lazyjars);
+ }
+ } else {
+ var fn = res.createFileSet();
+ fn.setProject(project);
+ fn.setDir(new java.io.File(deploydir));
+ var ia = project.getProperty("jfx.deployment.jar");
+ var ib = project.getProperty("pp_deploy_fs2");
+ fn.setIncludes(ia);
+ fn.setIncludes(ib);
+ fn.setRequiredFor("startup");
+ var lazyjars = getLazyJars();
+ if(lazyjars != null) {
+ var fn2 = res.createFileSet();
+ fn2.setProject(project);
+ fn2.setDir(new java.io.File(deploydir));
+ fn2.setRequiredFor("runtime");
+ setDownloadMode(fn,fn2,lazyjars);
+ }
+ }
+
+ // fx:info
+ var info = deploy.createInfo();
+ info.setProject(project);
+ var vendor = project.getProperty("application.vendor");
+ var description = project.getProperty("application.desc");
+ info.setTitle(title); // title known from before
+ info.setVendor(vendor);
+ info.setDescription(description);
+ var icon = project.getProperty("javafx.deploy.icon");
+ if(icon != null) {
+ if(fx_ant_api_1_1 == "true") {
+ var iicon = info.createIcon();
+ iicon.setHref(icon);
+ } else {
+ println("Warning: Icon not supported by this version of JavaFX SDK deployment Ant task. Please upgrade JavaFX to 2.0.2 or higher.");
+ }
+ }
+
+ // fx:permissions
+ var perm = deploy.createPermissions();
+ perm.setProject(project);
+ var elev = project.getProperty("permissions.elevated");
+ perm.setElevated(isTrue(elev));
+
+ // fx:preferences
+ var pref = deploy.createPreferences();
+ pref.setProject(project);
+ var scut = project.getProperty("javafx.deploy.adddesktopshortcut");
+ var instp = project.getProperty("javafx.deploy.installpermanently");
+ var smenu = project.getProperty("javafx.deploy.addstartmenushortcut");
+ pref.setShortcut(isTrue(scut));
+ pref.setInstall(isTrue(instp));
+ pref.setMenu(isTrue(smenu));
+
+ // fx:template
+ var templ = project.getProperty("javafx.run.htmltemplate");
+ var templp = project.getProperty("javafx.run.htmltemplate.processed");
+ if(templ != null && templp != null && templ.length() > 0 && templp.length() > 0) {
+ var temp = deploy.createTemplate();
+ temp.setProject(project);
+ temp.setFile(new java.io.File(templ));
+ temp.setTofile(new java.io.File(templp));
+ }
+
+ // fx:platform
+ var plat = deploy.createPlatform();
+ plat.setProject(project);
+ var jvmargs = project.getProperty("run.jvmargs");
+ if(jvmargs != null && jvmargs.length() > 0) {
+ var jvmargss = jvmargs.split(" ");
+ for(i = 0; i < jvmargss.length; i++) {
+ if(jvmargss[i] != null && jvmargss[i].length() > 0) {
+ var vmarg = plat.createJvmarg();
+ vmarg.setValue(jvmargss[i]);
+ }
+ }
+ }
+
+ // fx:callbacks
+ var callbs = deploy.createCallbacks();
+ callbs.setProject(project);
+ var keys = project.getProperties().keys();
+ while(keys.hasMoreElements()) {
+ var pn = keys.nextElement();
+ if(pn.substr(0,JFXCALLB.length) == JFXCALLB) {
+ var prop = project.getProperty(pn);
+ if(prop != null && prop.length() > 0) {
+ var cname = pn.substring(JFXCALLB.length+1);
+ var cb = callbs.createCallback();
+ cb.setProject(project);
+ cb.setName(cname);
+ cb.addText(prop);
+ }
+ }
+ }
+
+ deploy.perform();
+ ]]>
+ </script>
+ <antcall target="-post-jfx-deploy"/>
+ <antcall target="-call-post-jfx-native"/>
+ </sequential>
+ </macrodef>
+
+ <!-- JavaFX SDK 2.0.x and 2.1.x deploy task can not generate pre-FX jnlp which is needed for FX-in-Swing projects-->
+ <macrodef name="deploy-deploy-swing">
+ <sequential>
+ <antcall target="-pre-jfx-deploy"/>
+ <local name="permissions-elevated-token"/>
+ <condition property="permissions-elevated-token" value="${line.separator} &lt;security&gt;${line.separator} &lt;all-permissions/&gt;${line.separator} &lt;/security&gt;" else="">
+ <isset property="permissions-elevated"/>
+ </condition>
+ <local name="offline-allowed-token"/>
+ <condition property="offline-allowed-token" value="${line.separator} &lt;offline-allowed/&gt;" else="">
+ <isset property="offline-allowed"/>
+ </condition>
+ <local name="update-mode-background-token"/>
+ <condition property="update-mode-background-token" value="background" else="always">
+ <isset property="update-mode-background"/>
+ </condition>
+ <local name="html-template-processed-available"/>
+ <condition property="html-template-processed-available">
+ <and>
+ <isset property="javafx.run.htmltemplate.processed"/>
+ <not>
+ <equals arg1="${javafx.run.htmltemplate.processed}" arg2=""/>
+ </not>
+ </and>
+ </condition>
+ <local name="javafx.deploy.icon.basename"/>
+ <basename property="javafx.deploy.icon.basename" file="${javafx.deploy.icon}"/>
+ <local name="local-icon-filename-available"/>
+ <condition property="local-icon-filename-available">
+ <and>
+ <isset property="icon-available"/>
+ <isset property="javafx.deploy.icon.basename"/>
+ <not><equals arg1="${javafx.deploy.icon.basename}" arg2=""/></not>
+ <not><contains string="${javafx.deploy.icon.basename}" substring="$${javafx" casesensitive="false"/></not>
+ <not><contains string="${javafx.deploy.icon}" substring="http:" casesensitive="false"/></not>
+ </and>
+ </condition>
+ <local name="icon-token"/>
+ <condition property="icon-token" value="${line.separator} &lt;icon href=&quot;${javafx.deploy.icon.basename}&quot; kind=&quot;default&quot;/&gt;">
+ <isset property="local-icon-filename-available"/>
+ </condition>
+ <condition property="icon-token" value="${line.separator} &lt;icon href=&quot;${javafx.deploy.icon}&quot; kind=&quot;default&quot;/&gt;" else="">
+ <isset property="icon-available"/>
+ </condition>
+ <basename property="dist.filename" file="${dist.jar}" suffix=".jar"/>
+ <length file="${dist.jar}" property="dist.jar.size" />
+ <local name="vmargs-token"/>
+ <condition property="vmargs-token" value="java-vm-args=&quot;${run.jvmargs}&quot; " else="">
+ <isset property="vmargs-available"/>
+ </condition>
+ <local name="applet-params-token"/>
+ <local name="application-args-token"/>
+ <echo message="JavaScript: deploy-deploy-swing 1" level="verbose"/>
+ <script language="javascript">
+ <![CDATA[
+ var JFXPAR = "javafx.param";
+ var JFXPARN = "name";
+ var JFXPARV = "value";
+
+ var params = "";
+ var args = "";
+ var keys = project.getProperties().keys();
+ while(keys.hasMoreElements()) {
+ var pn = keys.nextElement();
+ if(pn.substr(0,JFXPAR.length) == JFXPAR && pn.indexOf(JFXPARN) == (pn.length()-JFXPARN.length)) {
+ var propn = project.getProperty(pn);
+ if(propn != null && propn.length() > 0) {
+ var pv = pn.substr(0,pn.indexOf(JFXPARN)) + JFXPARV;
+ var propv = project.getProperty(pv);
+ if(propv != null && propv.length() > 0) {
+ params += "\n <param name=\"" + propn + "\" value=\"" + propv + "\"/>";
+ args += "\n <argument>" + propn + "=" + propv + "</argument>";
+ } else {
+ params += "\n <param name=\"" + propn + "\" value=\"\"/>";
+ args += "\n <argument>" + propn + "</argument>";
+ }
+ }
+ }
+ }
+ project.setProperty("applet-params-token", params);
+ project.setProperty("application-args-token", args);
+ ]]>
+ </script>
+ <local name="application.desc.processed"/>
+ <condition property="application.desc.processed" value="${application.desc}" else="Swing applet embedding JavaFX components.">
+ <isset property="application.desc"/>
+ </condition>
+ <filterchain id="jnlp.template.filter">
+ <replacetokens>
+ <token key="NAME" value="${dist.filename}"/>
+ <token key="MAINCLASS" value="${main.class}"/>
+ <token key="FILESIZE" value="${dist.jar.size}"/>
+ <token key="VENDOR" value="${application.vendor}"/>
+ <token key="TITLE" value="${application.title}"/>
+ <token key="DESCRIPTION" value="${application.desc.processed}"/>
+ <token key="WIDTH" value="${javafx.run.width}"/>
+ <token key="HEIGHT" value="${javafx.run.height}"/>
+ <token key="PERMISSIONS" value="${permissions-elevated-token}"/>
+ <token key="OFFLINE" value="${offline-allowed-token}"/>
+ <token key="UPDATEMODE" value="${update-mode-background-token}"/>
+ <token key="ICON" value="${icon-token}"/>
+ <token key="VMARGS" value="${vmargs-token}"/>
+ <token key="PARAMETERS" value="${applet-params-token}"/>
+ <token key="ARGUMENTS" value="${application-args-token}"/>
+ </replacetokens>
+ </filterchain>
+ <copy file="${basedir}${file.separator}nbproject${file.separator}templates${file.separator}FXSwingTemplateApplication.jnlp"
+ tofile="${dist.dir}${file.separator}${dist.filename}_application.jnlp" >
+ <filterchain refid="jnlp.template.filter"/>
+ </copy>
+ <copy file="${basedir}${file.separator}nbproject${file.separator}templates${file.separator}FXSwingTemplateApplet.jnlp"
+ tofile="${dist.dir}${file.separator}${dist.filename}_applet.jnlp" >
+ <filterchain refid="jnlp.template.filter"/>
+ </copy>
+ <copy file="${basedir}${file.separator}nbproject${file.separator}templates${file.separator}FXSwingTemplate.html"
+ tofile="${dist.dir}${file.separator}${dist.filename}.html" >
+ <filterchain refid="jnlp.template.filter"/>
+ </copy>
+ <echo message="JavaScript: deploy-deploy-swing 2" level="verbose"/>
+ <script language="javascript">
+ <![CDATA[
+ var PREF = "file:";
+ var doCopyIcon = project.getProperty("local-icon-filename-available");
+ if(doCopyIcon != null) {
+ var iconProp = project.getProperty("javafx.deploy.icon");
+ if(iconProp.indexOf(PREF) == 0) {
+ iconProp = iconProp.slice(PREF.length);
+ }
+ while(iconProp.charAt(0) == "/") {
+ iconProp = iconProp.slice(1);
+ }
+ var S = java.io.File.separator;
+ var baseDir = project.getProperty("basedir");
+ var distDir = project.getProperty("dist.dir");
+ var copyTask = project.createTask("copy");
+ var source = new java.io.File(iconProp);
+ var target = new java.io.File(baseDir + S + distDir);
+ copyTask.setFile(source);
+ copyTask.setTodir(target);
+ copyTask.setFlatten(true);
+ copyTask.setFailOnError(false);
+ copyTask.perform();
+ }
+ var doCopyHTMLFrom = project.getProperty("html-template-available");
+ var doCopyHTMLTo = project.getProperty("html-template-processed-available");
+ if(doCopyHTMLFrom != null && doCopyHTMLTo != null) {
+ var htmlFrom = project.getProperty("javafx.run.htmltemplate");
+ if(htmlFrom.indexOf(PREF) == 0) {
+ htmlFrom = htmlFrom.slice(PREF.length);
+ }
+ while(htmlFrom.charAt(0) == "/") {
+ htmlFrom = htmlFrom.slice(1);
+ }
+ var htmlTo = project.getProperty("javafx.run.htmltemplate.processed");
+ if(htmlTo.indexOf(PREF) == 0) {
+ htmlTo = htmlTo.slice(PREF.length);
+ }
+ while(htmlTo.charAt(0) == "/") {
+ htmlTo = htmlTo.slice(1);
+ }
+ var copyTask = project.createTask("copy");
+ var source = new java.io.File(htmlFrom);
+ var target = new java.io.File(htmlTo);
+ copyTask.setFile(source);
+ copyTask.setTofile(target);
+ copyTask.setFailOnError(false);
+ copyTask.perform();
+ }
+ ]]>
+ </script>
+ <antcall target="-post-jfx-deploy"/>
+ </sequential>
+ </macrodef>
+
+
+ <!-- Fallback Project Deployment Macros To Support At Least Partially JDKs Without JavaScript Support -->
+
+ <macrodef name="fallback-deploy-application-def">
+ <sequential>
+ <echo message="Warning: Parameters (if any) not passed to &lt;fx:application&gt; in fallback build mode due to JDK missing JavaScript support."/>
+ <fx:application id="fxApp"
+ name="${application.title}"
+ mainClass="${javafx.main.class}"
+ fallbackClass="${javafx.fallback.class}">
+ <!-- PARAMETERS NOT PASSED IN FALLBACK -->
+ </fx:application>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="fallback-deploy-application-def-preloader">
+ <sequential>
+ <echo message="Warning: Parameters (if any) not passed to &lt;fx:application&gt; in fallback build mode due to JDK missing JavaScript support."/>
+ <fx:application id="fxApp"
+ name="${application.title}"
+ mainClass="${javafx.main.class}"
+ preloaderClass="${javafx.preloader.class}"
+ fallbackClass="${javafx.fallback.class}">
+ <!-- PARAMETERS NOT PASSED IN FALLBACK -->
+ </fx:application>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="fallback-deploy-application-def-swing">
+ <sequential>
+ <echo message="Warning: Parameters (if any) not passed to &lt;fx:application&gt; in fallback build mode due to JDK missing JavaScript support."/>
+ <fx:application id="fxApp"
+ name="${application.title}"
+ mainClass="${main.class}"
+ fallbackClass="${javafx.fallback.class}"
+ toolkit="swing">
+ <!-- PARAMETERS NOT PASSED IN FALLBACK -->
+ </fx:application>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="fallback-deploy-resources">
+ <sequential>
+ <fx:resources id="appRes">
+ <fx:fileset requiredFor="startup" dir="${jfx.deployment.dir}">
+ <include name="${jfx.deployment.jar}"/>
+ <include name="lib${file.separator}*.jar"/>
+ <exclude name="lib${file.separator}${jfx.deployment.jar}"/>
+ </fx:fileset>
+ </fx:resources>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="fallback-deploy-resources-preloader">
+ <sequential>
+ <fx:resources id="appRes">
+ <fx:fileset requiredFor="preloader" dir="${jfx.deployment.dir}">
+ <include name="lib${file.separator}${javafx.preloader.jar.filename}"/>
+ </fx:fileset>
+ <fx:fileset requiredFor="startup" dir="${jfx.deployment.dir}">
+ <include name="${jfx.deployment.jar}"/>
+ <include name="lib${file.separator}*.jar"/>
+ <exclude name="lib${file.separator}${javafx.preloader.jar.filename}"/>
+ <exclude name="lib${file.separator}${jfx.deployment.jar}"/>
+ </fx:fileset>
+ </fx:resources>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="fallback-deploy-jar">
+ <sequential>
+ <antcall target="-pre-jfx-jar"/>
+ <fx:jar destfile="${jfx.deployment.dir}${file.separator}${jfx.deployment.jar}">
+ <fx:application refid="fxApp"/>
+ <fx:resources refid="appRes"/>
+ <fileset dir="${build.classes.dir}">
+ <exclude name="**${file.separator}*.${css-exclude-ext}"/>
+ </fileset>
+ <manifest>
+ <attribute name="Implementation-Vendor" value="${application.vendor}"/>
+ <attribute name="Implementation-Title" value="${application.title}"/>
+ <attribute name="Implementation-Version" value="1.0"/>
+ </manifest>
+ </fx:jar>
+ <antcall target="-post-jfx-jar"/>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="fallback-deploy-deploy">
+ <sequential>
+ <antcall target="-pre-jfx-deploy"/>
+ <echo message="Warning: JVM Arguments and Callbacks (if any) not passed to &lt;fx:deploy&gt; in fallback build mode due to JDK missing JavaScript support."/>
+ <fx:deploy width="${javafx.width}" height="${javafx.height}"
+ outdir="${jfx.deployment.dir}" embedjnlp="true" updatemode="${update-mode}"
+ outfile="${application.title}" includeDT="${javafx.deploy.includeDT}">
+ <fx:application refid="fxApp"/>
+ <fx:resources refid="appRes"/>
+ <fx:info title="${application.title}" vendor="${application.vendor}"/>
+ <fx:permissions elevated="${permissions.elevated}"/>
+ <fx:preferences shortcut="${javafx.deploy.adddesktopshortcut}" install="${javafx.deploy.installpermanently}" menu="${javafx.deploy.addstartmenushortcut}"/>
+ <!-- PLATFORM NOT PASSED IN FALLBACK -->
+ <!-- CALLBACKS NOT PASSED IN FALLBACK -->
+ </fx:deploy>
+ <antcall target="-post-jfx-deploy"/>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="fallback-deploy-deploy-template">
+ <sequential>
+ <antcall target="-pre-jfx-deploy"/>
+ <echo message="Warning: JVM Arguments and Callbacks (if any) not passed to &lt;fx:deploy&gt; in fallback build mode due to JDK missing JavaScript support."/>
+ <deploy-process-template/>
+ <fx:deploy width="${javafx.width}" height="${javafx.height}"
+ outdir="${jfx.deployment.dir}" embedjnlp="true" updatemode="${update-mode}"
+ outfile="${application.title}" includeDT="${javafx.deploy.includeDT}">
+ <fx:application refid="fxApp"/>
+ <fx:resources refid="appRes"/>
+ <fx:info title="${application.title}" vendor="${application.vendor}"/>
+ <fx:permissions elevated="${permissions.elevated}"/>
+ <fx:preferences shortcut="${javafx.deploy.adddesktopshortcut}" install="${javafx.deploy.installpermanently}" menu="${javafx.deploy.addstartmenushortcut}"/>
+ <fx:template file="${javafx.run.htmltemplate}" tofile="${javafx.run.htmltemplate.processed}"/>
+ <!-- PLATFORM NOT PASSED IN FALLBACK -->
+ <!-- CALLBACKS NOT PASSED IN FALLBACK -->
+ </fx:deploy>
+ <antcall target="-post-jfx-deploy"/>
+ </sequential>
+ </macrodef>
+
+
+ <!-- Project Deployment Targets -->
+
+ <target name="-check-sign" depends="-check-project,-javafx-init-keystore" if="javafx.signed.true+signjars.task.available">
+ <condition property="sign-nopreloader-notemplate">
+ <and>
+ <isset property="app-without-preloader"/>
+ <not><isset property="html-template-available"/></not>
+ <not><isset property="fx-in-swing-app-workaround"/></not>
+ </and>
+ </condition>
+ <condition property="sign-preloader-notemplate">
+ <and>
+ <isset property="app-with-preloader"/>
+ <not><isset property="html-template-available"/></not>
+ <not><isset property="fx-in-swing-app-workaround"/></not>
+ </and>
+ </condition>
+ <condition property="sign-nopreloader-template">
+ <and>
+ <isset property="app-without-preloader"/>
+ <isset property="html-template-available"/>
+ <not><isset property="fx-in-swing-app-workaround"/></not>
+ </and>
+ </condition>
+ <condition property="sign-preloader-template">
+ <and>
+ <isset property="app-with-preloader"/>
+ <isset property="html-template-available"/>
+ <not><isset property="fx-in-swing-app-workaround"/></not>
+ </and>
+ </condition>
+ <condition property="sign-nopreloader-notemplate-swing">
+ <and>
+ <isset property="app-without-preloader"/>
+ <not><isset property="html-template-available"/></not>
+ <isset property="fx-in-swing-app-workaround"/>
+ </and>
+ </condition>
+ <condition property="sign-nopreloader-template-swing">
+ <and>
+ <isset property="app-without-preloader"/>
+ <isset property="html-template-available"/>
+ <isset property="fx-in-swing-app-workaround"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-check-nosign" depends="-check-project">
+ <condition property="nosign-nopreloader-notemplate">
+ <and>
+ <isset property="app-without-preloader"/>
+ <not><isset property="html-template-available"/></not>
+ <not><isset property="javafx.signed.true"/></not>
+ <not><isset property="fx-in-swing-app-workaround"/></not>
+ </and>
+ </condition>
+ <condition property="nosign-preloader-notemplate">
+ <and>
+ <isset property="app-with-preloader"/>
+ <not><isset property="html-template-available"/></not>
+ <not><isset property="javafx.signed.true"/></not>
+ <not><isset property="fx-in-swing-app-workaround"/></not>
+ </and>
+ </condition>
+ <condition property="nosign-nopreloader-template">
+ <and>
+ <isset property="app-without-preloader"/>
+ <isset property="html-template-available"/>
+ <not><isset property="javafx.signed.true"/></not>
+ <not><isset property="fx-in-swing-app-workaround"/></not>
+ </and>
+ </condition>
+ <condition property="nosign-preloader-template">
+ <and>
+ <isset property="app-with-preloader"/>
+ <isset property="html-template-available"/>
+ <not><isset property="javafx.signed.true"/></not>
+ <not><isset property="fx-in-swing-app-workaround"/></not>
+ </and>
+ </condition>
+ <condition property="nosign-nopreloader-notemplate-swing">
+ <and>
+ <isset property="app-without-preloader"/>
+ <not><isset property="html-template-available"/></not>
+ <not><isset property="javafx.signed.true"/></not>
+ <isset property="fx-in-swing-app-workaround"/>
+ </and>
+ </condition>
+ <condition property="nosign-nopreloader-template-swing">
+ <and>
+ <isset property="app-without-preloader"/>
+ <isset property="html-template-available"/>
+ <not><isset property="javafx.signed.true"/></not>
+ <isset property="fx-in-swing-app-workaround"/>
+ </and>
+ </condition>
+ </target>
+
+
+ <!-- WITH SIGNING -->
+
+ <!-- project without preloader -->
+ <!-- no html template -->
+ <target name="-deploy-app-sign-nopreloader-notemplate" depends="-check-sign" if="sign-nopreloader-notemplate" unless="preloader-app">
+ <echo message="-deploy-app-sign-nopreloader-notemplate" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <deploy-jar/>
+ <deploy-sign/>
+ <deploy-deploy/>
+ </target>
+
+ <!-- project with preloader -->
+ <!-- no html template -->
+ <target name="-deploy-app-sign-preloader-notemplate" depends="-check-sign" if="sign-preloader-notemplate" unless="preloader-app">
+ <echo message="-deploy-app-sign-preloader-notemplate" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <deploy-jar/>
+ <deploy-sign-preloader/>
+ <deploy-deploy/>
+ </target>
+
+ <!-- project without preloader -->
+ <!-- html template -->
+ <target name="-deploy-app-sign-nopreloader-template" depends="-check-sign" if="sign-nopreloader-template" unless="preloader-app">
+ <echo message="-deploy-app-sign-nopreloader-template" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <deploy-jar/>
+ <deploy-sign/>
+ <deploy-process-template/>
+ <deploy-deploy/>
+ </target>
+
+ <!-- project with preloader -->
+ <!-- html template -->
+ <target name="-deploy-app-sign-preloader-template" depends="-check-sign" if="sign-preloader-template" unless="preloader-app">
+ <echo message="-deploy-app-sign-preloader-template" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <deploy-jar/>
+ <deploy-sign-preloader/>
+ <deploy-process-template/>
+ <deploy-deploy/>
+ </target>
+
+ <!-- project without preloader -->
+ <!-- no html template -->
+ <!-- FX in Swing app -->
+ <target name="-deploy-app-sign-nopreloader-notemplate-swing" depends="-check-sign" if="sign-nopreloader-notemplate-swing" unless="preloader-app-no-workaround">
+ <echo message="-deploy-app-sign-nopreloader-notemplate-swing" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <deploy-jar/>
+ <deploy-sign/>
+ <deploy-deploy-swing/>
+ </target>
+
+ <!-- project without preloader -->
+ <!-- html template -->
+ <!-- FX in Swing app -->
+ <target name="-deploy-app-sign-nopreloader-template-swing" depends="-check-sign" if="sign-nopreloader-template-swing" unless="preloader-app-no-workaround">
+ <echo message="-deploy-app-sign-nopreloader-template-swing" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <deploy-jar/>
+ <deploy-sign/>
+ <deploy-process-template/>
+ <deploy-deploy-swing/>
+ </target>
+
+
+ <!-- NO SIGNING -->
+
+ <!-- project without preloader -->
+ <!-- no html template -->
+ <target name="-deploy-app-nosign-nopreloader-notemplate" depends="-check-nosign" if="nosign-nopreloader-notemplate" unless="preloader-app">
+ <echo message="-deploy-app-nosign-nopreloader-notemplate" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <deploy-jar/>
+ <deploy-deploy/>
+ </target>
+
+ <!-- project with preloader -->
+ <!-- no html template -->
+ <target name="-deploy-app-nosign-preloader-notemplate" depends="-check-nosign" if="nosign-preloader-notemplate" unless="preloader-app">
+ <echo message="-deploy-app-nosign-preloader-notemplate" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <deploy-jar/>
+ <deploy-deploy/>
+ </target>
+
+ <!-- project without preloader -->
+ <!-- html template -->
+ <target name="-deploy-app-nosign-nopreloader-template" depends="-check-nosign" if="nosign-nopreloader-template" unless="preloader-app">
+ <echo message="-deploy-app-nosign-nopreloader-template" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <deploy-jar/>
+ <deploy-process-template/>
+ <deploy-deploy/>
+ </target>
+
+ <!-- project with preloader -->
+ <!-- html template -->
+ <target name="-deploy-app-nosign-preloader-template" depends="-check-nosign" if="nosign-preloader-template" unless="preloader-app">
+ <echo message="-deploy-app-nosign-preloader-template" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <deploy-jar/>
+ <deploy-process-template/>
+ <deploy-deploy/>
+ </target>
+
+ <!-- project without preloader -->
+ <!-- no html template -->
+ <!-- FX in Swing app -->
+ <target name="-deploy-app-nosign-nopreloader-notemplate-swing" depends="-check-nosign" if="nosign-nopreloader-notemplate-swing" unless="preloader-app-no-workaround">
+ <echo message="-deploy-app-nosign-nopreloader-notemplate-swing" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <deploy-jar/>
+ <deploy-deploy-swing/>
+ </target>
+
+ <!-- project without preloader -->
+ <!-- html template -->
+ <!-- FX in Swing app -->
+ <target name="-deploy-app-nosign-nopreloader-template-swing" depends="-check-nosign" if="nosign-nopreloader-template-swing" unless="preloader-app-no-workaround">
+ <echo message="-deploy-app-nosign-nopreloader-template-swing" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <deploy-jar/>
+ <deploy-process-template/>
+ <deploy-deploy-swing/>
+ </target>
+
+
+ <!-- FALLBACK (NO JAVASCRIPT) TARGETS WITH SIGNING -->
+
+ <target name="-check-fallback-sign-deploy-swing-possible" depends="-check-sign">
+ <local name="fail-deploy-swing-possible"/>
+ <condition property="fail-deploy-swing-possible">
+ <and>
+ <or>
+ <isset property="sign-nopreloader-notemplate-swing"/>
+ <isset property="sign-nopreloader-template-swing"/>
+ </or>
+ <not><isset property="have-fx-ant-api-1.2"/></not>
+ </and>
+ </condition>
+ <fail message="Error: JavaFX SDK version 2.2 or newer is needed to deploy FX-in-Swing on JDK without JavaScript support."
+ if="fail-deploy-swing-possible"/>
+ </target>
+
+ <!-- FALLBACK project without preloader -->
+ <!-- FALLBACK no html template -->
+ <target name="-fallback-deploy-app-sign-nopreloader-notemplate" depends="-check-sign" if="sign-nopreloader-notemplate" unless="preloader-app">
+ <echo message="-fallback-deploy-app-sign-nopreloader-notemplate" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <fallback-deploy-application-def/>
+ <fallback-deploy-resources/>
+ <fallback-deploy-jar/>
+ <deploy-sign/>
+ <fallback-deploy-deploy/>
+ </target>
+
+ <!-- FALLBACK project with preloader -->
+ <!-- FALLBACK no html template -->
+ <target name="-fallback-deploy-app-sign-preloader-notemplate" depends="-check-sign" if="sign-preloader-notemplate" unless="preloader-app">
+ <echo message="-fallback-deploy-app-sign-preloader-notemplate" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <fallback-deploy-application-def-preloader/>
+ <fallback-deploy-resources-preloader/>
+ <fallback-deploy-jar/>
+ <deploy-sign-preloader/>
+ <fallback-deploy-deploy/>
+ </target>
+
+ <!-- FALLBACK project without preloader -->
+ <!-- FALLBACK html template -->
+ <target name="-fallback-deploy-app-sign-nopreloader-template" depends="-check-sign" if="sign-nopreloader-template" unless="preloader-app">
+ <echo message="-fallback-deploy-app-sign-nopreloader-template" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <fallback-deploy-application-def/>
+ <fallback-deploy-resources/>
+ <fallback-deploy-jar/>
+ <deploy-sign/>
+ <fallback-deploy-deploy-template/>
+ </target>
+
+ <!-- FALLBACK project with preloader -->
+ <!-- FALLBACK html template -->
+ <target name="-fallback-deploy-app-sign-preloader-template" depends="-check-sign" if="sign-preloader-template" unless="preloader-app">
+ <echo message="-fallback-deploy-app-sign-preloader-template" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <fallback-deploy-application-def-preloader/>
+ <fallback-deploy-resources-preloader/>
+ <fallback-deploy-jar/>
+ <deploy-sign-preloader/>
+ <fallback-deploy-deploy-template/>
+ </target>
+
+ <!-- FALLBACK project without preloader -->
+ <!-- FALLBACK no html template -->
+ <!-- FALLBACK FX in Swing app -->
+ <target name="-fallback-deploy-app-sign-nopreloader-notemplate-swing" depends="-check-fallback-sign-deploy-swing-possible" if="sign-nopreloader-notemplate-swing" unless="preloader-app-no-workaround">
+ <echo message="-fallback-deploy-app-sign-nopreloader-notemplate-swing" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <fallback-deploy-application-def-swing/>
+ <fallback-deploy-resources/>
+ <fallback-deploy-jar/>
+ <deploy-sign/>
+ <fallback-deploy-deploy/>
+ </target>
+
+ <!-- FALLBACK project without preloader -->
+ <!-- FALLBACK html template -->
+ <!-- FALLBACK FX in Swing app -->
+ <target name="-fallback-deploy-app-sign-nopreloader-template-swing" depends="-check-fallback-sign-deploy-swing-possible" if="sign-nopreloader-template-swing" unless="preloader-app-no-workaround">
+ <echo message="-fallback-deploy-app-sign-nopreloader-template-swing" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <fallback-deploy-application-def-swing/>
+ <fallback-deploy-resources/>
+ <fallback-deploy-jar/>
+ <deploy-sign/>
+ <fallback-deploy-deploy-template/>
+ </target>
+
+
+ <!-- FALLBACK (NO JAVASCRIPT) TARGETS NO SIGNING -->
+
+ <target name="-check-fallback-nosign-deploy-swing-possible" depends="-check-nosign">
+ <local name="fail-deploy-swing-possible"/>
+ <condition property="fail-deploy-swing-possible">
+ <and>
+ <or>
+ <isset property="nosign-nopreloader-notemplate-swing"/>
+ <isset property="nosign-nopreloader-template-swing"/>
+ </or>
+ <not><isset property="have-fx-ant-api-1.2"/></not>
+ </and>
+ </condition>
+ <fail message="Error: JavaFX SDK version 2.2 or newer is needed to deploy FX-in-Swing on JDK without JavaScript support."
+ if="fail-deploy-swing-possible"/>
+ </target>
+
+ <!-- FALLBACK project without preloader -->
+ <!-- FALLBACK no html template -->
+ <target name="-fallback-deploy-app-nosign-nopreloader-notemplate" depends="-check-nosign" if="nosign-nopreloader-notemplate" unless="preloader-app">
+ <echo message="-fallback-deploy-app-nosign-nopreloader-notemplate" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <fallback-deploy-application-def/>
+ <fallback-deploy-resources/>
+ <fallback-deploy-jar/>
+ <fallback-deploy-deploy/>
+ </target>
+
+ <!-- FALLBACK project with preloader -->
+ <!-- FALLBACK no html template -->
+ <target name="-fallback-deploy-app-nosign-preloader-notemplate" depends="-check-nosign" if="nosign-preloader-notemplate" unless="preloader-app">
+ <echo message="-fallback-deploy-app-nosign-preloader-notemplate" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <fallback-deploy-application-def-preloader/>
+ <fallback-deploy-resources-preloader/>
+ <fallback-deploy-jar/>
+ <fallback-deploy-deploy/>
+ </target>
+
+ <!-- FALLBACK project without preloader -->
+ <!-- FALLBACK html template -->
+ <target name="-fallback-deploy-app-nosign-nopreloader-template" depends="-check-nosign" if="nosign-nopreloader-template" unless="preloader-app">
+ <echo message="-fallback-deploy-app-nosign-nopreloader-template" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <fallback-deploy-application-def/>
+ <fallback-deploy-resources/>
+ <fallback-deploy-jar/>
+ <fallback-deploy-deploy-template/>
+ </target>
+
+ <!-- FALLBACK project with preloader -->
+ <!-- FALLBACK html template -->
+ <target name="-fallback-deploy-app-nosign-preloader-template" depends="-check-nosign" if="nosign-preloader-template" unless="preloader-app">
+ <echo message="-fallback-deploy-app-nosign-preloader-template" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <fallback-deploy-application-def-preloader/>
+ <fallback-deploy-resources-preloader/>
+ <fallback-deploy-jar/>
+ <fallback-deploy-deploy-template/>
+ </target>
+
+ <!-- FALLBACK project without preloader -->
+ <!-- FALLBACK no html template -->
+ <!-- FALLBACK FX in Swing app -->
+ <target name="-fallback-deploy-app-nosign-nopreloader-notemplate-swing" depends="-check-fallback-nosign-deploy-swing-possible" if="nosign-nopreloader-notemplate-swing" unless="preloader-app-no-workaround">
+ <echo message="-fallback-deploy-app-nosign-nopreloader-notemplate-swing" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <fallback-deploy-application-def-swing/>
+ <fallback-deploy-resources/>
+ <fallback-deploy-jar/>
+ <fallback-deploy-deploy/>
+ </target>
+
+ <!-- FALLBACK project without preloader -->
+ <!-- FALLBACK html template -->
+ <!-- FALLBACK FX in Swing app -->
+ <target name="-fallback-deploy-app-nosign-nopreloader-template-swing" depends="-check-fallback-nosign-deploy-swing-possible" if="nosign-nopreloader-template-swing" unless="preloader-app-no-workaround">
+ <echo message="-fallback-deploy-app-nosign-nopreloader-template-swing" level="verbose"/>
+ <deploy-defines/>
+ <deploy-preprocess/>
+ <fallback-deploy-application-def-swing/>
+ <fallback-deploy-resources/>
+ <fallback-deploy-jar/>
+ <fallback-deploy-deploy-template/>
+ </target>
+
+
+ <!-- Project Build Targets -->
+
+ <target name="jfx-build" depends="-jfx-do-compile, -jfx-do-jar, -jfx-do-post-jar"/>
+ <target name="jfx-build-noscript" depends="-set-fallback-no-javascript, -jfx-do-compile, -jfx-do-jar, -jfx-do-post-jar"/>
+
+ <target name="jfx-rebuild" depends="clean, -jfx-do-compile, -jfx-do-jar, -jfx-do-post-jar"/>
+ <target name="jfx-rebuild-noscript" depends="-set-fallback-no-javascript, clean, -jfx-do-compile, -jfx-do-jar, -jfx-do-post-jar"/>
+
+ <target name="jfx-build-native" depends="-set-do-build-native-package, -check-ant-jre-supports-native-packaging, -check-native-packager-external-tools, jfx-rebuild"/>
+ <target name="jfx-build-native-noscript" depends="-set-do-build-native-package, -check-ant-jre-supports-native-packaging, -check-native-packager-external-tools, jfx-rebuild-noscript"/>
+
+ <target name="-check-do-jar">
+ <condition property="do-jar-false">
+ <and>
+ <isset property="do.jar"/>
+ <equals arg1="${do.jar}" arg2="false"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-set-fallback-no-javascript">
+ <property name="fallback.no.javascript" value="true"/>
+ <echo message="Warning: Using fallback build infrastructure due to default JDK missing JavaScript support."/>
+ </target>
+ <target name="-jfx-do-compile" depends="-check-do-jar" if="do-jar-false">
+ <antcall target="compile"/>
+ </target>
+ <target name="-jfx-do-jar" depends="-check-do-jar" unless="do-jar-false">
+ <antcall target="jar"/>
+ </target>
+ <target name="-jfx-do-post-jar" depends="-init-check,-check-project" if="preloader-app">
+ <!-- Preloaders are created using SE copylibs task that creates readme file relevant for SE only -->
+ <delete file="${basedir}${file.separator}${dist.dir}${file.separator}README.TXT"/>
+ </target>
+
+ <target name="-set-do-build-native-package">
+ <property name="do.build.native.package" value="true"/>
+ <echo message="do.build.native.package = ${do.build.native.package}" level="verbose"/>
+ </target>
+ <target name="-check-ant-jre-supports-native-packaging" depends="-check-ant-jre-version">
+ <fail message="Error:${line.separator}JavaFX native packager requires NetBeans to run on JDK 1.7u6 or later !" if="have-ant-jre-pre7u6"/>
+ </target>
+
+ <target name="-call-pre-jfx-native" if="do.build.native.package">
+ <antcall target="-pre-jfx-native"/>
+ </target>
+ <target name="-call-post-jfx-native" if="do.build.native.package">
+ <antcall target="-post-jfx-native"/>
+ </target>
+
+ <target name="-check-native-bundling-type" depends="-check-operating-system" if="do.build.native.package">
+ <condition property="need.Inno.presence">
+ <and>
+ <isset property="running.on.windows"/>
+ <isset property="javafx.native.bundling.type"/>
+ <or>
+ <equals arg1="${javafx.native.bundling.type}" arg2="all" casesensitive="false"/>
+ <equals arg1="${javafx.native.bundling.type}" arg2="installer" casesensitive="false"/>
+ </or>
+ </and>
+ </condition>
+ <condition property="need.WiX.presence">
+ <and>
+ <isset property="running.on.windows"/>
+ <isset property="javafx.native.bundling.type"/>
+ <or>
+ <equals arg1="${javafx.native.bundling.type}" arg2="all" casesensitive="false"/>
+ <equals arg1="${javafx.native.bundling.type}" arg2="installer" casesensitive="false"/>
+ </or>
+ </and>
+ </condition>
+ <echo message="need.Inno.presence:${need.Inno.presence}" level="verbose"/>
+ <echo message="need.WiX.presence:${need.WiX.presence}" level="verbose"/>
+ </target>
+ <target name="-check-Inno-presence" depends="-check-native-bundling-type" if="need.Inno.presence">
+ <local name="exec-output"/>
+ <local name="exec-error"/>
+ <local name="exec-result"/>
+ <exec executable="iscc" outputproperty="exec-output" failifexecutionfails="false" errorproperty="exec-error" resultproperty="exec-result"/>
+ <echo message="exec-output:${exec-output}" level="verbose"/>
+ <echo message="exec-error:${exec-error}" level="verbose"/>
+ <echo message="exec-result:${exec-result}" level="verbose"/>
+ <condition property="missing.Inno">
+ <not><and>
+ <contains string="${exec-output}" substring="Inno Setup"/>
+ <not><contains string="${exec-output}" substring="Inno Setup 1"/></not>
+ <not><contains string="${exec-output}" substring="Inno Setup 2"/></not>
+ <not><contains string="${exec-output}" substring="Inno Setup 3"/></not>
+ <not><contains string="${exec-output}" substring="Inno Setup 4"/></not>
+ </and></not>
+ </condition>
+ </target>
+ <target name="-check-WiX-presence" depends="-check-native-bundling-type" if="need.WiX.presence">
+ <local name="exec-output"/>
+ <local name="exec-error"/>
+ <local name="exec-result"/>
+ <exec executable="candle" outputproperty="exec-output" failifexecutionfails="false" errorproperty="exec-error" resultproperty="exec-result">
+ <arg value="-?"/>
+ </exec>
+ <echo message="exec-output:${exec-output}" level="verbose"/>
+ <echo message="exec-error:${exec-error}" level="verbose"/>
+ <echo message="exec-result:${exec-result}" level="verbose"/>
+ <condition property="missing.WiX">
+ <not><and>
+ <contains string="${exec-output}" substring="Windows Installer Xml Compiler version"/>
+ <not><contains string="${exec-output}" substring="Windows Installer Xml Compiler version 1"/></not>
+ <not><contains string="${exec-output}" substring="Windows Installer Xml Compiler version 2"/></not>
+ </and></not>
+ </condition>
+ </target>
+ <target name="-check-native-packager-external-tools" depends="-check-Inno-presence, -check-WiX-presence">
+ <property name="missing.Inno.message" value="JavaFX native packager requires external Inno Setup 5+ tools installed and included on PATH. See http://www.jrsoftware.org/"/>
+ <property name="missing.WiX.message" value="JavaFX native packager requires external WiX 3.0+ tools installed and included on PATH. See http://wix.sourceforge.net/"/>
+ <condition property="missing.Inno.WiX">
+ <and>
+ <isset property="missing.Inno"/>
+ <isset property="missing.WiX"/>
+ </and>
+ </condition>
+ <fail message="Error:${line.separator}${missing.Inno.message}${line.separator}${missing.WiX.message}" if="missing.Inno.WiX"/>
+ <fail message="Error:${line.separator}${missing.Inno.message}" if="missing.Inno"/>
+ <fail message="Error:${line.separator}${missing.WiX.message}" if="missing.WiX"/>
+ </target>
+
+ <!-- Project Run Support -->
+
+ <target name="-warn-of-preloader" depends="-check-project" if="preloader-app-no-workaround">
+ <fail message="Error:${line.separator}JavaFX 2 Preloader Project can not be executed directly.${line.separator}Please execute instead a JavaFX Application that uses the Preloader."/>
+ </target>
+
+ <target name="-mark-project-state-running">
+ <property name="project.state.running" value="true"/>
+ <echo message="project.state.running = ${project.state.running}" level="verbose"/>
+ </target>
+ <target name="-mark-project-state-debugging">
+ <property name="project.state.debugging" value="true"/>
+ <echo message="project.state.debugging = ${project.state.debugging}" level="verbose"/>
+ </target>
+ <target name="-mark-project-state-profiling">
+ <property name="project.state.profiling" value="true"/>
+ <echo message="project.state.profiling = ${project.state.profiling}" level="verbose"/>
+ </target>
+ <target name="-mark-project-needs-jnlp">
+ <property name="project.needs.jnlp" value="true"/>
+ <echo message="project.needs.jnlp = ${project.needs.jnlp}" level="verbose"/>
+ </target>
+
+ <!-- set property javafx.disable.concurrent.runs=true to disable runs from temporary directory -->
+ <target name="-check-concurrent-runs">
+ <condition property="disable-concurrent-runs">
+ <and>
+ <isset property="javafx.disable.concurrent.runs"/>
+ <equals arg1="${javafx.disable.concurrent.runs}" arg2="true" trim="true"/>
+ </and>
+ </condition>
+ <condition property="temp.run.jar" value="${jfx.deployment.dir}${file.separator}${jfx.deployment.jar}">
+ <isset property="disable-concurrent-runs"/>
+ </condition>
+ <condition property="temp.run.jnlp" value="${jfx.deployment.jnlp}">
+ <isset property="disable-concurrent-runs"/>
+ </condition>
+ <condition property="temp.run.html" value="${jfx.deployment.html}">
+ <isset property="disable-concurrent-runs"/>
+ </condition>
+ </target>
+ <target name="-create-temp-run-dir" depends="-check-concurrent-runs" unless="disable-concurrent-runs">
+ <echo message="Creating temp run dir" level="verbose"/>
+ <tempfile property="temp.run.dir" destDir="${basedir}${file.separator}${dist.dir}${file.separator}" prefix="run"/>
+ <echo message="temp.run.dir = ${temp.run.dir}" level="verbose"/>
+ <copy todir="${temp.run.dir}" includeemptydirs="true" overwrite="true">
+ <fileset dir="${basedir}${file.separator}${dist.dir}">
+ <exclude name="**${file.separator}bundles${file.separator}**"/>
+ <exclude name="**${file.separator}run*${file.separator}**"/>
+ </fileset>
+ </copy>
+ <property name="temp.run.jar" value="${temp.run.dir}${file.separator}${jfx.deployment.jar}"/>
+ <basename property="jfx.deployment.base" file="${jfx.deployment.jar}" suffix=".jar"/>
+ <property name="temp.run.jnlp" value="${temp.run.dir}${file.separator}${jfx.deployment.base}.jnlp"/>
+ <property name="temp.run.html" value="${temp.run.dir}${file.separator}${jfx.deployment.base}.html"/>
+ </target>
+ <target name="-remove-temp-run-dir" if="temp.run.dir">
+ <echo message="Removing temp run dir" level="verbose"/>
+ <delete dir="${temp.run.dir}" quiet="true" failonerror="false"/>
+ </target>
+ <target depends="init,compile,jar,-create-temp-run-dir" description="Run JavaFX project standalone." name="jfx-project-run">
+ <echo message="Executing ${main.class} from ${temp.run.jar} using platform ${platform.java}"/>
+ <property name="run.jvmargs" value=""/>
+ <property name="run.jvmargs.ide" value=""/>
+ <java classname="${main.class}" dir="${work.dir}" fork="true" jvm="${platform.java}">
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ <jvmarg line="${run.jvmargs.ide}"/>
+ <classpath>
+ <path path="${temp.run.jar}:${javac.classpath}"/>
+ </classpath>
+ <arg line="${application.args}"/>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ </java>
+ <antcall target="-remove-temp-run-dir"/>
+ </target>
+
+
+ <!-- Running/Debugging/Profiling Standalone -->
+
+ <target name="jfxsa-run" depends="-mark-project-state-running,-clean-if-config-changed,-check-jfx-runtime,-warn-of-preloader,jfx-project-run"/>
+ <target name="jfxsa-run-noscript" depends="-set-fallback-no-javascript, jfxsa-run"/>
+
+ <target name="jfxsa-debug" depends="-mark-project-state-debugging,-clean-if-config-changed,jar,-check-jfx-runtime,-warn-of-preloader,debug"/>
+ <target name="jfxsa-debug-noscript" depends="-set-fallback-no-javascript, jfxsa-debug"/>
+
+ <target name="jfxsa-profile" depends="-mark-project-state-profiling,-check-jfx-runtime,-warn-of-preloader,profile"/>
+ <target name="jfxsa-profile-noscript" depends="-set-fallback-no-javascript, jfxsa-profile"/>
+
+ <target name="-check-clean-if-config-changed" depends="-init-project">
+ <deploy-defines/>
+ <uptodate property="jfx.deployment.jar.newer.than.nbproject" targetfile="${jfx.deployment.dir}${file.separator}${jfx.deployment.jar}" >
+ <srcfiles dir="${basedir}${file.separator}nbproject" includes="**${file.separator}*"/>
+ </uptodate>
+ <echo message="jfx.deployment.jar.newer.than.nbproject = ${jfx.deployment.jar.newer.than.nbproject}" level="verbose"/>
+ <available file="${jfx.deployment.dir}${file.separator}${jfx.deployment.jar}" type="file" property="jfx.deployment.jar.exists"/>
+ <condition property="request.clean.due.to.config.change">
+ <and>
+ <isset property="jfx.deployment.jar.exists"/>
+ <not><isset property="jfx.deployment.jar.newer.than.nbproject"/></not>
+ </and>
+ </condition>
+ </target>
+ <target name="-clean-if-config-changed" depends="-check-clean-if-config-changed" if="request.clean.due.to.config.change">
+ <echo message="Config change detected. Invoking clean." level="verbose"/>
+ <antcall target="clean"/>
+ </target>
+
+
+ <!-- Shared Debugging init -->
+
+ <target name="-init-debug-args">
+ <property name="version-output" value="java version &quot;${ant.java.version}"/>
+ <condition property="have-jdk-older-than-1.4">
+ <or>
+ <contains string="${version-output}" substring="java version &quot;1.0"/>
+ <contains string="${version-output}" substring="java version &quot;1.1"/>
+ <contains string="${version-output}" substring="java version &quot;1.2"/>
+ <contains string="${version-output}" substring="java version &quot;1.3"/>
+ </or>
+ </condition>
+ <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
+ <istrue value="${have-jdk-older-than-1.4}"/>
+ </condition>
+ <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
+ <os family="windows"/>
+ </condition>
+ <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
+ <isset property="debug.transport"/>
+ </condition>
+ </target>
+
+
+ <!-- Running/Debugging/Profiling as WebStart -->
+
+ <target name="-check-jnlp-file-fx" depends="-swing-api-check" unless="fx-in-swing-app-workaround">
+ <basename property="jfx.deployment.base" file="${jfx.deployment.jar}" suffix=".jar"/>
+ <property name="jfx.deployment.jnlp" location="${jfx.deployment.dir}${file.separator}${jfx.deployment.base}.jnlp"/>
+ </target>
+ <target name="-check-jnlp-file-swing" depends="-swing-api-check" if="fx-in-swing-app-workaround">
+ <basename property="jfx.deployment.base" file="${jfx.deployment.jar}" suffix=".jar"/>
+ <property name="jfx.deployment.jnlp" location="${jfx.deployment.dir}${file.separator}${jfx.deployment.base}_application.jnlp"/>
+ </target>
+ <target name="-check-jnlp-file" depends="-check-jnlp-file-fx,-check-jnlp-file-swing">
+ <condition property="jnlp-file-exists">
+ <available file="${jfx.deployment.jnlp}"/>
+ </condition>
+ <condition property="jnlp-file-exists+netbeans.home">
+ <and>
+ <isset property="jnlp-file-exists"/>
+ <isset property="netbeans.home"/>
+ </and>
+ </condition>
+ </target>
+
+ <target name="-resolve-jnlp-file" depends="-check-jnlp-file" unless="jnlp-file-exists">
+ <antcall target="jfx-deployment"/>
+ <antcall target="-check-jnlp-file"/>
+ </target>
+
+ <!-- set property javafx.enable.concurrent.external.runs=true to enable multiple runs of the same WebStart or Run-in-Browser project -->
+ <target name="-check-concurrent-jnlp-runs" depends="-resolve-jnlp-file">
+ <condition property="disable-concurrent-runs">
+ <not>
+ <and>
+ <isset property="javafx.enable.concurrent.external.runs"/>
+ <equals arg1="${javafx.enable.concurrent.external.runs}" arg2="true" trim="true"/>
+ </and>
+ </not>
+ </condition>
+ <condition property="temp.run.jnlp" value="${jfx.deployment.jnlp}">
+ <isset property="disable-concurrent-runs"/>
+ </condition>
+ </target>
+ <target name="-warn-concurrent-jnlp-runs" unless="disable-concurrent-runs">
+ <echo message="Note: Concurrent Run as WebStart enabled.${line.separator}Temporary directory ${temp.run.dir}${line.separator}will remain unused when WebStart execution has finished. Use project Clean to delete unused directories."/>
+ </target>
+
+ <target name="jfxws-run" if="jnlp-file-exists" depends="-mark-project-state-running,-clean-if-config-changed,-mark-project-needs-jnlp,-check-jdk-7u4or5-mac,jar,
+ -check-jfx-webstart,-resolve-jnlp-file,-check-jfx-runtime,-check-concurrent-jnlp-runs,-create-temp-run-dir"
+ description="Start JavaFX javaws execution">
+ <echo message="Executing ${temp.run.jnlp} using ${active.webstart.executable}"/>
+ <exec executable="${active.webstart.executable}">
+ <arg file="${temp.run.jnlp}"/>
+ </exec>
+ <antcall target="-warn-concurrent-jnlp-runs"/>
+ </target>
+
+ <target name="jfxws-debug" if="jnlp-file-exists+netbeans.home" depends="-mark-project-state-debugging,-clean-if-config-changed,-mark-project-needs-jnlp,
+ -check-jdk-7u4or5-mac,jar,-check-jfx-webstart,-resolve-jnlp-file,-check-jfx-runtime,
+ -debug-start-debugger,-debug-javaws-debuggee" description="Debug JavaFX javaws project in IDE"/>
+
+ <target name="-debug-javaws-debuggee" depends="-init-debug-args">
+ <echo message="Executing ${jfx.deployment.jnlp} in debug mode using ${active.webstart.executable}"/>
+ <exec executable="${active.webstart.executable}">
+ <env key="JAVAWS_VM_ARGS" value="${debug-args-line} -Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+ <arg value="-wait"/>
+ <arg file="${jfx.deployment.jnlp}"/>
+ </exec>
+ </target>
+
+ <target name="-profile-check-1">
+ <property name="run.jvmargs.ide" value=""/>
+ <condition property="profiler.configured">
+ <or>
+ <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/>
+ <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/>
+ </or>
+ </condition>
+ </target>
+
+ <target if="jnlp-file-exists+netbeans.home" name="-profile-check-jnlp">
+ <antcall target="-profile-check-1"/>
+ </target>
+
+ <target name="-do-jfxws-profile" depends="-mark-project-state-profiling,-mark-project-needs-jnlp,
+ -check-jdk-7u4or5-mac,jar,-check-jfx-webstart,-resolve-jnlp-file,-check-jfx-runtime">
+ <echo message="Executing ${jfx.deployment.jnlp} in profile mode using ${active.webstart.executable}"/>
+ <property name="run.jvmargs.ide" value=""/>
+ <exec executable="${active.webstart.executable}">
+ <env key="JAVAWS_VM_ARGS" value="${run.jvmargs.ide}"/>
+ <arg value="-wait"/>
+ <arg file="${jfx.deployment.jnlp}"/>
+ </exec>
+ </target>
+
+ <target name="jfxws-profile" if="profiler.configured"
+ depends="-profile-check-1"
+ description="Profile JavaFX javaws project in IDE">
+ <startprofiler/>
+ <antcall target="-do-jfxws-profile"/>
+ </target>
+
+ <target name="jfxws-run-noscript" depends="-set-fallback-no-javascript, jfxws-run"/>
+
+ <target name="jfxws-debug-noscript" depends="-set-fallback-no-javascript, jfxws-debug"/>
+
+ <target name="jfxws-profile-noscript" depends="-set-fallback-no-javascript, jfxws-profile"/>
+
+
+ <!-- Running/Debugging/Profiling in Browser -->
+
+ <target name="-check-selected-browser-path" depends="-check-default-run-config">
+ <condition property="javafx.run.inbrowser.undefined">
+ <or>
+ <and>
+ <isset property="javafx.run.inbrowser"/>
+ <equals arg1="${javafx.run.inbrowser}" arg2="undefined"/>
+ </and>
+ <and>
+ <isset property="javafx.run.inbrowser.path"/>
+ <equals arg1="${javafx.run.inbrowser.path}" arg2="undefined"/>
+ </and>
+ </or>
+ </condition>
+ <condition property="javafx.run.inbrowser.path-exists">
+ <and>
+ <isset property="javafx.run.inbrowser.path"/>
+ <available file="${javafx.run.inbrowser.path}"/>
+ </and>
+ </condition>
+ <fail message="Error:${line.separator}Browser selection not recognizable from ${config} run configuration.${line.separator}Please go to Project Properties dialog, category Run, to select a valid browser." unless="javafx.run.inbrowser.path"/>
+ <fail message="Error:${line.separator}No browser defined in ${config} run configuration.${line.separator}Please verify in Tools->Options dialog that NetBeans recognizes a valid browser, then go to Project Properties dialog, category Run, to select a valid browser." if="javafx.run.inbrowser.undefined"/>
+ <fail message="Error:${line.separator}Browser ${javafx.run.inbrowser.path} referred from ${config} run configuration can not be found.${line.separator}(This can happen, e.g, when the JavaFX Project is transferred to another system.)${line.separator}Please go to Project Properties dialog, category Run, to select a valid browser." unless="javafx.run.inbrowser.path-exists"/>
+ </target>
+
+ <target name="-substitute-template-processed-html-file" depends="-check-project" if="html-template-available">
+ <deploy-process-template/>
+ </target>
+ <target name="-check-template-processed-html-file" depends="-substitute-template-processed-html-file">
+ <condition property="html-file-exists">
+ <and>
+ <isset property="html-template-available"/>
+ <available file="${javafx.run.htmltemplate.processed}"/>
+ </and>
+ </condition>
+ </target>
+
+ <target name="-set-template-processed-html-file" depends="-check-template-processed-html-file" if="html-file-exists">
+ <property name="jfx.deployment.html" location="${javafx.run.htmltemplate.processed}"/>
+ </target>
+
+ <target name="-set-html-file" depends="-set-template-processed-html-file" unless="html-file-exists">
+ <basename property="jfx.deployment.base" file="${jfx.deployment.jar}" suffix=".jar"/>
+ <property name="jfx.deployment.html" location="${jfx.deployment.dir}${file.separator}${jfx.deployment.base}.html"/>
+ <condition property="html-file-exists">
+ <available file="${jfx.deployment.html}"/>
+ </condition>
+ <condition property="html-file-exists+netbeans.home">
+ <and>
+ <isset property="html-file-exists"/>
+ <isset property="netbeans.home"/>
+ </and>
+ </condition>
+ </target>
+
+ <!-- set property javafx.enable.concurrent.external.runs=true to enable multiple runs of the same WebStart or Run-in-Browser project -->
+ <target name="-check-concurrent-html-runs" depends="-set-html-file">
+ <condition property="disable-concurrent-runs">
+ <or>
+ <not>
+ <and>
+ <isset property="javafx.enable.concurrent.external.runs"/>
+ <equals arg1="${javafx.enable.concurrent.external.runs}" arg2="true" trim="true"/>
+ </and>
+ </not>
+ <and>
+ <isset property="html-template-available"/>
+ <available file="${javafx.run.htmltemplate.processed}"/>
+ </and>
+ </or>
+ </condition>
+ <condition property="temp.run.html" value="${jfx.deployment.html}">
+ <isset property="disable-concurrent-runs"/>
+ </condition>
+ </target>
+ <target name="-warn-concurrent-html-runs" unless="disable-concurrent-runs">
+ <echo message="Note: Concurrent Run in Browser enabled.${line.separator}Temporary directory ${temp.run.dir}${line.separator}will remain unused when execution in browser has finished. Use project Clean to delete unused directories."/>
+ </target>
+
+ <target name="jfxbe-run" if="html-file-exists" depends="-mark-project-state-running,-clean-if-config-changed,-mark-project-needs-jnlp,-check-jdk-7u4or5-mac,jar,
+ -check-selected-browser-path,-set-html-file,-check-jfx-runtime,-check-concurrent-html-runs,-create-temp-run-dir"
+ description="Start JavaFX execution in browser">
+ <echo message="Executing ${temp.run.html} using ${javafx.run.inbrowser}"/>
+ <echo message="(${javafx.run.inbrowser.path})"/>
+ <exec executable="${javafx.run.inbrowser.path}">
+ <arg file="${temp.run.html}"/>
+ </exec>
+ <antcall target="-warn-concurrent-html-runs"/>
+ </target>
+
+ <target name="jfxbe-debug" if="html-file-exists+netbeans.home" depends="-mark-project-state-debugging,-clean-if-config-changed,-mark-project-needs-jnlp,
+ -check-jdk-7u4or5-mac,jar,-check-selected-browser-path,-set-html-file,-check-jfx-runtime,
+ -debug-start-debugger,-debug-jfxbe-debuggee" description="Debug JavaFX project in browser"/>
+
+ <target name="-debug-jfxbe-debuggee" depends="-init-debug-args">
+ <echo message="Executing ${jfx.deployment.html} in debug mode using ${javafx.run.inbrowser}"/>
+ <echo message="(${javafx.run.inbrowser.path})"/>
+ <exec executable="${javafx.run.inbrowser.path}">
+ <env key="_JPI_VM_OPTIONS" value="${debug-args-line} -Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+ <arg file="${jfx.deployment.html}"/>
+ </exec>
+ </target>
+
+ <target if="html-file-exists+netbeans.home" name="-profile-check-html">
+ <antcall target="-profile-check-1"/>
+ </target>
+
+ <target name="-do-jfxbe-profile" depends="-mark-project-state-profiling,-mark-project-needs-jnlp,
+ -check-jdk-7u4or5-mac,jar,-check-selected-browser-path,-set-html-file,-check-jfx-runtime">
+ <echo message="Executing ${jfx.deployment.html} in profile mode using ${javafx.run.inbrowser}"/>
+ <echo message="(${javafx.run.inbrowser.path})"/>
+ <property name="run.jvmargs.ide" value=""/>
+ <exec executable="${javafx.run.inbrowser.path}">
+ <env key="_JPI_VM_OPTIONS" value="${run.jvmargs.ide}"/>
+ <arg file="${jfx.deployment.html}"/>
+ </exec>
+ </target>
+
+ <target name="jfxbe-profile" if="profiler.configured"
+ depends="-profile-check-html"
+ description="Profile JavaFX project in browser">
+ <startprofiler/>
+ <antcall target="-do-jfxbe-profile"/>
+ </target>
+
+ <target name="jfxbe-run-noscript" depends="-set-fallback-no-javascript, jfxbe-run"/>
+
+ <target name="jfxbe-debug-noscript" depends="-set-fallback-no-javascript, jfxbe-debug"/>
+
+ <target name="jfxbe-profile-noscript" depends="-set-fallback-no-javascript, jfxbe-profile"/>
+
+
+</project>
diff --git a/MobiReader/nbproject/project.properties b/MobiReader/nbproject/project.properties
new file mode 100644
index 0000000..0b86f59
--- /dev/null
+++ b/MobiReader/nbproject/project.properties
@@ -0,0 +1,109 @@
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=false
+annotation.processing.processor.options=
+annotation.processing.processors.list=
+annotation.processing.run.all.processors=true
+annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
+application.title=MobiReader
+application.vendor=att
+build.classes.dir=${build.dir}/classes
+build.classes.excludes=**/*.java,**/*.form
+# This directory is removed when the project is cleaned:
+build.dir=build
+build.generated.dir=${build.dir}/generated
+build.generated.sources.dir=${build.dir}/generated-sources
+# Only compile against the classpath explicitly listed here:
+build.sysclasspath=ignore
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+compile.on.save=true
+compile.on.save.unsupported.javafx=true
+# Uncomment to specify the preferred debugger connection transport:
+#debug.transport=dt_socket
+debug.classpath=\
+ ${run.classpath}
+debug.test.classpath=\
+ ${run.test.classpath}
+# This directory is removed when the project is cleaned:
+dist.dir=dist
+dist.jar=${dist.dir}/MobiReader.jar
+dist.javadoc.dir=${dist.dir}/javadoc
+endorsed.classpath=
+excludes=
+includes=**
+# Non-JavaFX jar file creation is deactivated in JavaFX 2.0+ projects
+jar.archive.disabled=true
+jar.compress=false
+javac.classpath=\
+ ${javafx.runtime}/lib/jfxrt.jar:\
+ ${javafx.runtime}/lib/deploy.jar:\
+ ${javafx.runtime}/lib/javaws.jar:\
+ ${javafx.runtime}/lib/plugin.jar
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.deprecation=false
+javac.processorpath=\
+ ${javac.classpath}
+javac.source=1.7
+javac.target=1.7
+javac.test.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}:\
+ ${libs.junit_4.classpath}
+javac.test.processorpath=\
+ ${javac.test.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=${source.encoding}
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.private=false
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+javafx.binarycss=false
+javafx.deploy.allowoffline=true
+# If true, application update mode is set to 'background', if false, update mode is set to 'eager'
+javafx.deploy.backgroundupdate=false
+javafx.deploy.embedJNLP=true
+javafx.deploy.includeDT=true
+# Set true to prevent creation of temporary copy of deployment artifacts before each run (disables concurrent runs)
+javafx.disable.concurrent.runs=false
+# Set true to enable multiple concurrent runs of the same WebStart or Run-in-Browser project
+javafx.enable.concurrent.external.runs=false
+# This is a JavaFX project
+javafx.enabled=true
+javafx.fallback.class=com.javafx.main.NoJavaFXFallback
+# Main class for JavaFX
+javafx.main.class=mobireader.MobiReader
+javafx.preloader.class=
+# This project does not use Preloader
+javafx.preloader.enabled=false
+javafx.preloader.jar.filename=
+javafx.preloader.jar.path=
+javafx.preloader.project.path=
+javafx.preloader.type=none
+# Set true for GlassFish only. Rebases manifest classpaths of JARs in lib dir. Not usable with signed JARs.
+javafx.rebase.libs=false
+javafx.run.height=600
+javafx.run.width=800
+javafx.runtime=${platforms.Default_JavaFX_Platform.javafx.runtime.home}
+javafx.sdk=${platforms.Default_JavaFX_Platform.javafx.sdk.home}
+# Pre-JavaFX 2.0 WebStart is deactivated in JavaFX 2.0+ projects
+jnlp.enabled=false
+# Main class for Java launcher
+main.class=com.javafx.main.Main
+manifest.file=manifest.mf
+meta.inf.dir=${src.dir}/META-INF
+platform.active=Default_JavaFX_Platform
+run.classpath=\
+ ${dist.jar}:\
+ ${javac.classpath}
+run.test.classpath=\
+ ${javac.test.classpath}:\
+ ${build.test.classes.dir}
+source.encoding=UTF-8
+src.dir=src
+test.src.dir=test
diff --git a/MobiReader/nbproject/project.xml b/MobiReader/nbproject/project.xml
new file mode 100644
index 0000000..27def4b
--- /dev/null
+++ b/MobiReader/nbproject/project.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+ <type>org.netbeans.modules.java.j2seproject</type>
+ <configuration>
+ <buildExtensions xmlns="http://www.netbeans.org/ns/ant-build-extender/1">
+ <extension file="jfx-impl.xml" id="jfx">
+ <dependency dependsOn="-check-javafx" target="-init-check"/>
+ <dependency dependsOn="-jfx-copylibs" target="-post-jar"/>
+ <dependency dependsOn="-rebase-libs" target="-post-jar"/>
+ <dependency dependsOn="jfx-deployment" target="-post-jar"/>
+ <dependency dependsOn="jar" target="debug"/>
+ <dependency dependsOn="-jfx-copylibs" target="jar"/>
+ <dependency dependsOn="-rebase-libs" target="jar"/>
+ <dependency dependsOn="jar" target="profile"/>
+ <dependency dependsOn="jar" target="run"/>
+ </extension>
+ </buildExtensions>
+ <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
+ <name>MobiReader</name>
+ <explicit-platform explicit-source-supported="true"/>
+ <source-roots>
+ <root id="src.dir"/>
+ </source-roots>
+ <test-roots>
+ <root id="test.src.dir"/>
+ </test-roots>
+ </data>
+ </configuration>
+</project>
diff --git a/MobiReader/src/mobireader/MobiReader.java b/MobiReader/src/mobireader/MobiReader.java
new file mode 100644
index 0000000..9a11700
--- /dev/null
+++ b/MobiReader/src/mobireader/MobiReader.java
@@ -0,0 +1,38 @@
+package mobireader;
+
+import javafx.application.Application;
+import javafx.event.ActionEvent;
+import javafx.event.EventHandler;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.layout.StackPane;
+import javafx.stage.Stage;
+
+
+public class MobiReader extends Application {
+
+ @Override
+ public void start(Stage primaryStage) {
+ Button btn = new Button();
+ btn.setText("Display help");
+ btn.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent event) {
+ System.out.println("Read the docs! Trololo.");
+ }
+ });
+
+ StackPane root = new StackPane();
+ root.getChildren().add(btn);
+
+ Scene scene = new Scene(root, 300, 250);
+
+ primaryStage.setTitle("Hello World!");
+ primaryStage.setScene(scene);
+ primaryStage.show();
+ }
+
+ public static void main(String[] args) {
+ launch(args);
+ }
+}
diff --git a/MobiReader/test/tests/UnzippingJUnitTest.java b/MobiReader/test/tests/UnzippingJUnitTest.java
new file mode 100644
index 0000000..f9c18cd
--- /dev/null
+++ b/MobiReader/test/tests/UnzippingJUnitTest.java
@@ -0,0 +1,46 @@
+package tests;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+public class UnzippingJUnitTest {
+
+ public UnzippingJUnitTest() {
+ }
+
+ @BeforeClass
+ public static void setUpClass() {
+ }
+
+ @AfterClass
+ public static void tearDownClass() {
+ }
+
+ @Before
+ public void setUp() {
+ }
+
+ @After
+ public void tearDown() {
+ }
+
+ @Test
+ public void testBullshit() {
+ assertEquals("10 equals 11", 10, 11);
+ }
+
+ @Test
+ public void testTruth() {
+ assertEquals("10 does not equal 10", 10, 10);
+ }
+ // TODO add test methods here.
+ // The methods must be annotated with annotation @Test. For example:
+ //
+ // @Test
+ // public void hello() {}
+} \ No newline at end of file