-.lib/
-*/build/
-*/dist/
+/build/
+/dist/
+/bin/
+/.lib/
+/nbproject/private/
+++ /dev/null
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
+++ /dev/null
-
-README
-------
-
-This is a library containing some common utilities and classes betwen
-server and client.
-
-This is primarily classes and utilities for handling the client<>server
-protocol.
-
-LICENSE
--------
- DuskZ is free software, see COPYING for your rights.
-
- Some files are under other compatible licenses.
-
- Copyright (C) 2000 Tom Weingarten <captaint@home.com>
- Copyright (C) 2013 Michael Zucchi <notzed@gmail.com>
-
- DuskZ is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.
-
- DuskZ is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with DuskZ; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
\ No newline at end of file
+++ /dev/null
-<?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. -->
-<!-- Commands such as Run, Debug, and Test only use this build script if -->
-<!-- the Compile on Save feature is turned off for the project. -->
-<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
-<!-- in the project's Project Properties dialog box.-->
-<project name="DuskCommon" default="default" basedir=".">
- <description>Builds, tests, and runs the project DuskCommon.</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. They 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-single: called before javac compilation of single file
- -post-compile-single: called after javac compilation of single file
- -pre-compile-test: called before javac compilation of JUnit tests
- -post-compile-test: called after javac compilation of JUnit tests
- -pre-compile-test-single: called before javac compilation of single JUnit test
- -post-compile-test-single: called after javac compilation of single JUunit test
- -pre-jar: called before JAR building
- -post-jar: called after JAR building
- -post-clean: called after cleaning build products
-
- (Targets beginning with '-' are not intended to be called on their own.)
-
- Example of inserting an obfuscator after compilation could look like this:
-
- <target name="-post-compile">
- <obfuscate>
- <fileset dir="${build.classes.dir}"/>
- </obfuscate>
- </target>
-
- For list of available properties check the imported
- nbproject/build-impl.xml file.
-
-
- Another way to customize the build is by overriding existing main targets.
- The targets of interest are:
-
- -init-macrodef-javac: defines macro for javac compilation
- -init-macrodef-junit: defines macro for junit execution
- -init-macrodef-debug: defines macro for class debugging
- -init-macrodef-java: defines macro for class execution
- -do-jar-with-manifest: JAR building (if you are using a manifest)
- -do-jar-without-manifest: JAR building (if you are not using a manifest)
- run: execution of project
- -javadoc-build: Javadoc generation
- test-report: JUnit report generation
-
- An example of overriding the target for project execution could look like this:
-
- <target name="run" depends="DuskCommon-impl.jar">
- <exec dir="bin" executable="launcher.exe">
- <arg file="${dist.jar}"/>
- </exec>
- </target>
-
- Notice that the overridden target depends on the jar target and not only on
- the compile target as the regular run target does. Again, for a list of available
- properties which you can use, check the target you are overriding in the
- nbproject/build-impl.xml file.
-
- -->
-</project>
+++ /dev/null
-<?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="DuskCommon-impl">
- <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">
- <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>
- <condition else="false" property="jdkBug6558476">
- <and>
- <matches pattern="1\.[56]" string="${java.specification.version}"/>
- <not>
- <os family="unix"/>
- </not>
- </and>
- </condition>
- <property name="javac.fork" value="${jdkBug6558476}"/>
- <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" 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}" fork="${javac.fork}" 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}" fork="${javac.fork}" 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="<nothing>"/>
- <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}" 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}" 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" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="DuskCommon" 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}" 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}" 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 DuskCommon -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>
- </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">
- <property name="version-output" value="java version "${ant.java.version}"/>
- <condition property="have-jdk-older-than-1.4">
- <or>
- <contains string="${version-output}" substring="java version "1.0"/>
- <contains string="${version-output}" substring="java version "1.1"/>
- <contains string="${version-output}" substring="java version "1.2"/>
- <contains string="${version-output}" substring="java version "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">
- <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">
- <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: DuskCommon 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">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">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 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" description="Build JAR." name="jar"/>
- <!--
- =================
- EXECUTION SECTION
- =================
- -->
- <target depends="init,compile" 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" 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" 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}" 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: DuskCommon 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>
+++ /dev/null
-build.xml.data.CRC32=cb9774bc
-build.xml.script.CRC32=41ed8886
-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=cb9774bc
-nbproject/build-impl.xml.script.CRC32=4cf1c99d
-nbproject/build-impl.xml.stylesheet.CRC32=c6d2a60f@1.56.1.46
+++ /dev/null
-project.license=dusk
-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
-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
-# 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}/DuskCommon.jar
-dist.javadoc.dir=${dist.dir}/javadoc
-excludes=
-includes=**
-jar.compress=false
-javac.classpath=
-# 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}
-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=
-meta.inf.dir=${src.dir}/META-INF
-mkdist.disabled=true
-platform.active=default_platform
-run.classpath=\
- ${javac.classpath}:\
- ${build.classes.dir}
-# Space-separated list of JVM arguments used when running the project.
-# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
-# To set system properties for unit tests define test-sys-prop.name=value:
-run.jvmargs=
-run.test.classpath=\
- ${javac.test.classpath}:\
- ${build.test.classes.dir}
-source.encoding=UTF-8
-src.dir=src
-test.src.dir=test
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://www.netbeans.org/ns/project/1">
- <type>org.netbeans.modules.java.j2seproject</type>
- <configuration>
- <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
- <name>DuskCommon</name>
- <source-roots>
- <root id="src.dir"/>
- </source-roots>
- <test-roots>
- <root id="test.src.dir"/>
- </test-roots>
- </data>
- </configuration>
-</project>
+++ /dev/null
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
+++ /dev/null
-/*
- * This file is part of DuskZ, a graphical mud engine.
- *
- * Copyright (C) 2000 Tom Weingarten <captaint@home.com>
- * Copyright (C) 2013 Michael Zucchi <notzed@gmail.com>
- *
- * DuskZ is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * DuskZ is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with DuskZ; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-/**
- * Changes
- * Feb-2013 Michael Zucchi - modernised java
- * Mar-2013 Michael Zucchi - changed server protocol
- */
-package duskz.server.entityz;
-
-import duskz.server.*;
-import duskz.protocol.DuskProtocol;
-import duskz.server.entity.Mob;
-import duskz.server.entity.Merchant;
-import duskz.server.entity.Sign;
-import duskz.server.entity.Item;
-import duskz.server.entity.Prop;
-import duskz.server.entity.DuskObject;
-import duskz.server.entity.Equipment;
-import duskz.server.entity.PlayerMerchant;
-import duskz.server.entity.LivingThing;
-import duskz.server.entity.TileMap;
-import java.io.*;
-import java.util.LinkedList;
-import java.util.StringTokenizer;
-
-public class CommandsWork implements DuskProtocol {
-
- public static String parseCommand(LivingThing lt, DuskEngine game, String cmdline) throws Exception {
- if (cmdline == null) {
- return null;
- }
- if (lt == null) {
- return null;
- }
- if (game == null) {
- return null;
- }
-
- String cmd = null;
- String args = null;
-
- int intIndex = cmdline.indexOf(" ");
- if (intIndex == -1) {
- cmd = cmdline.toLowerCase();
- } else {
- cmd = cmdline.substring(0, intIndex).toLowerCase();
- args = cmdline.substring(intIndex + 1).trim();
- }
-
- if (cmd.length() < 1) {
- return "huh?";
- }
-
- lt.isAlwaysCommands = true;
- boolean blnFoundScriptedCommand = false;
- /*
- ** Don't try to find a scripted command if they are doing a tell
- */
- if (cmd.substring(0, 1) != "/") {
- try {
- Script script = new Script("commands/" + cmd, game, false);
- script.varVariables.addVariable("trigger", lt);
- if (args != null) {
- script.runScript(args);
- } else {
- script.runScript();
- }
- script.close();
- blnFoundScriptedCommand = true;
- } catch (Exception e) {
- blnFoundScriptedCommand = false;
- }
- if (!lt.isAlwaysCommands) {
- return null;
- }
- }
- if (lt.privs > 2) {
- if (cmdline.startsWith(">")) {
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- cmdline = cmdline.substring(1);
- if (cmdline.equalsIgnoreCase("s")) {
- if (game.blnSavingGame) {
- return "Game already being saved, please wait.";
- }
- game.saveMap();
- return "Game settings saved";
- }
-
- String strMapLog = "shortmap_redraw";
- try (PrintStream psMap = new PrintStream(new FileOutputStream(strMapLog, true), true)) {
- game.changeMap(lt, lt.x, lt.y, Short.parseShort(cmdline));
- psMap.println("changetile " + lt.x + " " + lt.y + " " + Short.parseShort(cmdline));
- return null;
- } catch (Exception e) {
- game.log.printError("parseCommand():While " + lt.name + " tried to >" + cmdline, e);
- return null;
- }
- }
- if (cmdline.startsWith("<")) {
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- cmdline = cmdline.substring(1);
- if (cmdline.equals("s")) {
- if (game.blnSavingGame) {
- return "Game already being saved, please wait.";
- }
- game.saveMap();
- return "Game settings saved";
- } else if (cmdline.equalsIgnoreCase("merchant")) {
- if (lt.overMerchant() != null) {
- return "There's already a merchant there.";
- }
- if (lt.overPlayerMerchant() != null) {
- return "There's already a merchant there.";
- }
- Merchant mrcStore = new Merchant(game);
- mrcStore.x = lt.x;
- mrcStore.y = lt.y;
- //game.vctMerchants.add(mrcStore);
- //game.blnMerchantListChanged = true;
- game.addDuskObject(lt.map, mrcStore);
- return null;
- } else if (cmdline.toLowerCase().startsWith("prop ")) {
- if (cmdline.length() == 5) {
- return "Add what prop?";
- }
- cmdline = cmdline.substring(5);
- Prop prpStore = game.getProp(cmdline);
- if (prpStore != null) {
- prpStore.x = lt.x;
- prpStore.y = lt.y;
- //game.vctProps.addElement(prpStore);
- //game.blnPropListChanged = true;
- game.addDuskObject(lt.map, prpStore);
- }
- return null;
- } else if (cmdline.startsWith("sign ")) {
- if (cmdline.length() == 5) {
- return "What should the sign say?";
- }
- Sign sgnStore = new Sign(game, "sign", cmdline.substring(5), lt.x, lt.y, game.getID());
- //game.vctSigns.add(sgnStore);
- //game.blnSignListChanged = true;
- game.addDuskObject(lt.map, sgnStore);
- return null;
- }
- Item itmStore = game.getItem(cmdline);
- if (itmStore != null) {
- itmStore.x = lt.x;
- itmStore.y = lt.y;
- //game.vctItems.add(itmStore);
- game.addDuskObject(lt.map, itmStore);
- return null;
- }
- try {
- Mob mob = new Mob(cmdline, lt.x, lt.y, game);
- // TODO: this previously didn't call addDuskObject - bug or intentional?
- //game.vctMobs.addElement(mob);
- //game.blnMobListChanged = true;
- game.addDuskObject(lt.map, mob);
-
- mob.changeLocBypass(lt.map, lt.x, lt.y);
- } catch (Exception e) {
- game.log.printError("parseCommand():While creating mob \"" + cmdline + "\"", e);
- }
- return null;
- }
- }
-
- // Remap shortcuts
- if (cmd.startsWith(";")) {
- args = cmdline.substring(1).trim();
- cmd = "gossip";
- }
- if (cmd.startsWith(":")) {
- args = cmdline.substring(1).trim();
- cmd = "clan";
- }
- if (cmd.startsWith("'")) {
- args = cmdline.substring(1).trim();
- cmd = "say";
- }
- if (cmd.startsWith(".")) {
- args = cmdline.substring(1).trim();
- cmd = "emote";
- }
- if (cmd.startsWith("/")) {
- args = cmdline.substring(1).trim();
- cmd = "tell";
- }
-
- switch (cmd) {
-
- case "addmember": {
- if (lt.privs != 1)
- return "Huh?";
- if (args == null) {
- return "Add who?";
- }
- LivingThing thnStore = game.getPlayer(args);
- if (thnStore == null) {
- return "They're not in this world";
- }
- if (lt.battle != null) {
- return "Not while you're fighting!";
- }
- if (thnStore.battle != null) {
- thnStore.chatMessage(lt.name + " has invited you to join their clan, but you are in the middle of a battle");
- return "They're in the middle of a battle. They have been notified that you tried to clan them.";
- }
- lt.chatMessage("You have invited " + thnStore.name + " to join the clan " + lt.clan + ".");
-
- if (true)
- // FIXME: protocol implementation
- throw new RuntimeException("cannot ask questions yet");
- // FIXME: this looks dodgy
- // FIXME: move to livingthing
-
- /*
- // thnStore.halt();
- thnStore.stillThere(); // This puts something in the buffer
- thnStore.stillThere(); // Have to do this twice to ensure that thnStore is out of
- // its read loop
- lt.connectionThread.sleep(500); // wait for the "notdead" response to get back from client.
- try {
- // Empty out the BufferedReader for the answer
- // while (thnStore.instream.ready()) {
- // thnStore.instream.read();
- // }
- } catch (Exception e) {
- game.log.printError("parseCommand():While " + lt.name + " was trying to addmember " + thnStore.name, e);
- }
- thnStore.chatMessage(lt.name + " has invited you to join the clan " + lt.clan + ". If you accept, type yes.");
- try {
- if (thnStore.instream.readLine().equalsIgnoreCase("yes")) {
- thnStore.clan = lt.clan;
- if (thnStore.privs == 1) {
- thnStore.privs = 0;
- }
- thnStore.chatMessage("You have been added to the clan, " + lt.clan + "");
- thnStore.proceed();
- game.removeDuskObject(thnStore);
- game.addDuskObject(thnStore);
- return thnStore.name + " has accepted your invitation.";
- }
- } catch (Exception e) {
- game.log.printError("parseCommand():While reading the answer to " + lt.name + "'s attempt to addmember " + thnStore.name, e);
- }
- thnStore.proceed();
- */
- return thnStore.name + " has declined your invitation.";
- }
- case "kick": {
- if (lt.privs != 1)
- return "Huh?";
- if (args == null) {
- return "Kick who?";
- }
- LivingThing thnStore = game.getPlayer(args);
- if (thnStore == null) {
- return "They're not in this world.";
- }
- if (!thnStore.clan.equalsIgnoreCase(lt.clan)) {
- return "They're not in your clan.";
- }
- thnStore.chatMessage("You have been kicked out of " + lt.clan + ".");
- thnStore.clan = "none";
- game.removeDuskObject(thnStore);
- game.addDuskObject(thnStore.map, thnStore);
- return thnStore.name + " has been kicked out of your clan.";
- }
-// if (lt.privs > 2) {
-// if (lt.privs > 4) {
- case "makegod": {
- if (lt.privs <= 4)
- return "Huh?";
-
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- if (args == null) {
- return "Make who a god?";
- }
- int iSPloc = args.indexOf(" ");
- if (iSPloc < 0) {
- return "Make them what level of a god?";
- }
- String sName = args.substring(0, iSPloc).trim();
- int level = Integer.parseInt(args.substring(iSPloc).trim());
-
- LivingThing thnStore = game.getPlayer(sName);
- if (thnStore == null) {
- return "They're not in this world.";
- }
- int oldLevel = thnStore.privs;
- thnStore.privs = level;
- thnStore.isSaveNeeded = true;
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":Changed " + thnStore.name + "'s priveledges from " + oldLevel + " to " + level + ".");
- return thnStore.name + "'s priveledges have been set to " + level + ".";
- }
- case "reloadprefs": {
- if (lt.privs <= 4)
- return "Huh?";
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- game.loadPrefs();
- return "Preferences reloaded";
- }
- case "resizemap":
- if (lt.privs <= 4)
- return "Huh?";
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- game.resizeMap(lt.map, lt.x + 1, lt.y + 1);
- return "Map resized";
- case "shutdown":
- if (lt.privs <= 4)
- return "Huh?";
- game.log.printMessage(Log.ALWAYS, lt.name + " has shut down the server.");
- game.chatMessage("The server is going down.", "default");
- game.blnShuttingDown = true;
- for (LivingThing thnStore : game.playersByName.values()) {
- try {
- if (thnStore != lt) {
- thnStore.close();
- }
- } catch (Exception e) {
- if (thnStore != null) {
- game.log.printError("parseCommand():While trying to close " + thnStore.name + " for " + lt.name + "'s shutdown request", e);
- } else {
- game.log.printError("parseCommand():While trying to close a null player for " + lt.name + "'s shutdown request", e);
- }
- }
- }
- lt.isSaveNeeded = true;
- lt.savePlayer();
- System.gc();
- System.exit(0);
- return null;
- case "stop":
- if (lt.privs <= 4)
- return "Huh?";
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- game.blnShuttingDown = true;
- return "Stopped accepting incoming socket connections.";
- case "start":
- if (lt.privs <= 4)
- return "Huh?";
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- game.blnShuttingDown = false;
- return "Started accepting incoming connections";
- case "filteron":
- if (lt.privs <= 4)
- return "Huh?";
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- game.blnIPF = true;
- return "Started filtering duplicate IP addressess of socket connections.";
- case "filteroff":
- if (lt.privs <= 4)
- return "Huh?";
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- game.blnIPF = false;
- return "Stopped filtering duplicate IP addressess of socket connections.";
- case "floodlimit":
- if (lt.privs <= 4)
- return "Huh?";
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- if (args == null) {
- return "What value do you want the floodlimit to have?";
- }
- try {
- game.floodLimit = (long) Integer.parseInt(args);
- return "Set floodlimit to " + args + " milliseconds.";
- } catch (Exception e) {
- game.log.printError("parseCommand():Invalid value \"" + args + "\" for floodlimit.", e);
- return "Invalid value \"" + args + "\" for floodlimit.";
- }
- case "ipban": {
- if (lt.privs <= 4)
- return "Huh?";
- String strBlockedIP;
- if (args == null) {
- return "Whos IP address do you wish to ban?";
- }
- LivingThing thnStore = game.getPlayer(args);
- if (thnStore == null) {
- return "They're not in this world.";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- String strIP = thnStore.getAddress();
- int i = strIP.indexOf("/");
- strIP = strIP.substring(i + 1, strIP.length());
- // FIXME: better i/o
- try (RandomAccessFile rafBannedIP = new RandomAccessFile("conf/blockedIP", "rw")) {
- strBlockedIP = rafBannedIP.readLine();
- while (strBlockedIP != null) {
- if (strIP.indexOf(strBlockedIP) != -1) {
- //rafBannedIP.close();
- return "Already blocked.";
- }
- strBlockedIP = rafBannedIP.readLine();
- }
- rafBannedIP.seek(rafBannedIP.length());
- rafBannedIP.writeBytes(strIP + "\n");
- } catch (IOException ex) {
- game.log.printError("parseCommand():When " + lt.name + " tried to ban " + thnStore + "'s IP address", ex);
- }
- return thnStore.name + "'s IP address has been blocked.";
- }
- case "loglevel":
- if (lt.privs <= 4)
- return "Huh?";
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- if (args == null) {
- return "Logging level is currently " + game.log.getLogLevel();
- }
- try {
- int level = Integer.parseInt(args);
- game.log.setLogLevel(level);
- return "Logging level is now " + game.log.getLogLevel();
- } catch (Exception e) {
- game.log.printError("parseCommand():Invalid value \"" + args + "\" for loglevel.", e);
- return "Invalid value \"" + args + "\" for loglevel.";
- }
- case "gc":
- if (lt.privs <= 4)
- return "Huh?";
- game.log.printMessage(Log.INFO, "Starting garbage collection.");
- System.gc();
- game.log.printMessage(Log.INFO, "Finished garbage collection.");
- return "Finished garbage collection.";
- case "finalize":
- if (lt.privs <= 4)
- return "Huh?";
- game.log.printMessage(Log.INFO, "Starting finalization.");
- System.runFinalization();
- game.log.printMessage(Log.INFO, "Finished finalization.");
- return "Finished finalization.";
- case "cleanup":
- if (lt.privs <= 4)
- return "Huh?";
- game.cleanup();
- return "Finished cleanup.";
- case "save":
- if (lt.privs <= 2)
- return "Huh?";
- if (game.blnSavingGame) {
- return "Game already being saved, please wait.";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- game.saveMap();
- return "Game settings saved";
- case "backup":
- if (lt.privs <= 2)
- return "Huh?";
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- game.backupMap();
- return "Game settings backed up";
- case "list": {
- if (lt.privs <= 2)
- return "Huh?";
- if (args == null) {
- return "What do you want to list?";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- cmdline = cmdline.substring(5);
- String filename = null;
- String title = null;
- if (args.equals("items")) {
- filename = "defItems";
- title = "Items:\n";
- } else if (args.equals("conf")) {
- filename = "conf";
- title = "Conf files:\n";
- } else if (args.equals("mobs")) {
- filename = "defMobs";
- title = "Mobiles:\n";
- } else if (args.equals("commands")) {
- filename = "commands";
- title = "Custom commands:\n";
- } else if (args.equals("races")) {
- filename = "defRaces";
- title = "Races:\n";
- } else if (args.equals("pets")) {
- filename = "defPets";
- title = "Pets:\n";
- } else if (args.equals("factions")) {
- filename = "factions";
- title = "Factions:\n";
- } else if (args.equals("conditions")) {
- filename = "defConditions";
- title = "Conditions:\n";
- } else if (args.equals("help")) {
- filename = "helpFiles";
- title = "Help Files:\n";
- } else if (args.equals("scripts")) {
- filename = "scripts";
- title = "Scripts:\n";
- } else if (args.equals("spell groups")) {
- filename = "defSpellGroups";
- title = "Spell Groups:\n";
- } else if (args.equals("spells")) {
- filename = "defSpells";
- title = "Spells:\n";
- } else if (args.equals("props")) {
- filename = "defProps";
- title = "Props:\n";
- } else if (args.equals("move actions")) {
- filename = "defMoveActions";
- title = "Move Action Scripts:\n";
- } else if (args.equals("can move")) {
- filename = "defCanMoveScripts";
- title = "Can Move Scripts:\n";
- } else if (args.equals("can see")) {
- filename = "defCanSeeScripts";
- title = "Can See Scripts:\n";
- } else if (args.equals("tile actions")) {
- filename = "defTileActions";
- title = "Tile Action Scripts:\n";
- } else if (args.equals("tile move")) {
- filename = "defTileScripts";
- title = "Can Move Tile Scripts:\n";
- } else if (args.equals("tile see")) {
- filename = "defTileSeeScripts";
- title = "Tile See Scripts:\n";
- }
- if (filename != null) {
- File filList = new File(filename);
- String strResult[] = filList.list();
- StringBuilder sb = new StringBuilder();
- //strBuff.append("").append((char) 20).append(strTitle).append("\n");
- for (int i = 0; i < strResult.length; i++) {
- // Only output files that do not end in .dsko
- if (strResult[i].indexOf(".dsko") == -1) {
- sb.append(strResult[i]).append("\n");
- }
- }
- //strBuff.append("--EOF--\n");
- //lt.send(strBuff.toString());
- lt.viewText(title, false, sb.toString());
- return null;
- }
- return "You can't list that.";
- }
- case "view": {
- if (lt.privs <= 2)
- return "Huh?";
-
- if (args == null) {
- return "What do you want to view?";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- if (args.indexOf("..") != -1) {
- return "You don't have permission to access that file.";
- }
- String filename = null;
- boolean blnUser = false;
- boolean blnPet = false;
- if (args.startsWith("item ")) {
- args = args.toLowerCase();
- filename = "defItems/" + args.substring(5);
- } else if (args.startsWith("conf ")) {
- filename = "conf/" + args.substring(5);
- } else if (args.startsWith("mob ")) {
- filename = "defMobs/" + args.substring(4);
- } else if (args.startsWith("command ")) {
- filename = "commands/" + args.substring(8);
- } else if (args.startsWith("race ")) {
- filename = "defRaces/" + args.substring(5);
- } else if (args.startsWith("pet ")) {
- filename = "defPets/" + args.substring(5);
- } else if (args.startsWith("faction")) {
- return "You cannot view faction files.";
- } else if (args.startsWith("condition ")) {
- filename = "defConditions/" + args.substring(10);
- } else if (args.startsWith("help ")) {
- filename = "helpFiles/" + args.substring(5);
- } else if (args.startsWith("script ")) {
- filename = "scripts/" + args.substring(7);
- } else if (args.startsWith("spell group ")) {
- filename = "defSpellGroups/" + args.substring(12);
- } else if (args.startsWith("spell ")) {
- filename = "defSpells/" + args.substring(6);
- } else if (args.startsWith("prop ")) {
- filename = "defProps/" + args.substring(5);
- } else if (args.startsWith("move action ")) {
- filename = "defMoveActions/" + args.substring(12);
- } else if (args.startsWith("can move ")) {
- filename = "defCanMoveScripts/" + args.substring(9);
- } else if (args.startsWith("can see ")) {
- filename = "defCanSeeScripts/" + args.substring(8);
- } else if (args.startsWith("tile action ")) {
- filename = "defTileActions/" + args.substring(12);
- } else if (args.startsWith("tile move ")) {
- filename = "defTileScripts/" + args.substring(10);
- } else if (args.startsWith("tile see ")) {
- filename = "defTileSeeScripts/" + args.substring(9);
- } else if (args.startsWith("user ")) {
- if (lt.privs < 5) {
- return "You don't have enough privelages to edit a user's file.";
- }
- blnUser = true;
- filename = "users/" + args.substring(5);
- } else if (args.startsWith("pet ")) {
- if (lt.privs < 5) {
- return "You don't have enough privelages to edit a user's pet file.";
- }
- blnPet = true;
- filename = "pets/" + args.substring(4);
- }
- File filView = new File(filename);
- if (!filView.exists()) {
- if (blnUser) {
- return "There is no player named \"" + filView.getName() + "\".";
- }
- if (blnPet) {
- return "The player named \"" + filView.getName() + "\" does not have a pet.";
- }
- //lt.send((char) 18 + args + "\n--EOF--\n");
- lt.viewText(args, true, null);
- return null;
- }
- RandomAccessFile rafView = null;
- StringBuilder sb = new StringBuilder();
- try {
- rafView = new RandomAccessFile(filView, "rw");
- if (blnUser) {
- rafView.readLine(); //Skip over users' password
- }
- String strStore2 = rafView.readLine();
- //sb.append((char) 18 + args + "\n");
- while (strStore2 != null) {
- sb.append(strStore2 + "\n");
- strStore2 = rafView.readLine();
- }
- //sb.append("--EOF--\n");
- lt.viewText(args, true, sb.toString());
- } catch (Exception e) {
- game.log.printError("parseCommand():Reading file for " + filView.getName(), e);
- }
- try {
- rafView.close();
- } catch (Exception e) {
- game.log.printError("parseCommand():Closing file after " + filView.getName(), e);
- }
- return null;
- }
- case "submit": {
- if (lt.privs <= 2)
- return "Huh?";
- if (args == null) {
- return "What do you want to submit?";
- }
- if ((lt.privs < 4) && (!args.startsWith("mob "))) {
- return "You are not allowed to submit files.";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- if (args.indexOf("..") != -1) {
- return "You don't have permission to access that file.";
- }
-
- if (true)
- return "Developer hasn't implemented submit yet";
-
- // FIXME: implement submit, just use some submit message protocol
-
- boolean compile = false;
- boolean blnUser = false;
- boolean blnPet = false;
- String strFileName = null;
- if (args.startsWith("item ") && (lt.privs > 3)) {
- args = args.toLowerCase();
- strFileName = "defItems/" + args.substring(5);
- } else if (args.startsWith("conf ") && (lt.privs > 3)) {
- strFileName = "conf/" + args.substring(5);
- } else if (args.startsWith("mob ")) {
- strFileName = "defMobs/" + args.substring(4);
- } else if (args.startsWith("command ") && (lt.privs > 3)) {
- strFileName = "commands/" + args.substring(8);
- compile = true;
- } else if (args.startsWith("race ") && (lt.privs > 3)) {
- strFileName = "defRaces/" + args.substring(5);
- } else if (args.startsWith("pet ") && (lt.privs > 3)) {
- strFileName = "defPets/" + args.substring(4);
- } else if (args.startsWith("faction") && (lt.privs > 3)) {
- return "You cannot submit faction files.";
- } else if (args.startsWith("condition ") && (lt.privs > 3)) {
- strFileName = "defConditions/" + args.substring(10);
- } else if (args.startsWith("help ") && (lt.privs > 3)) {
- strFileName = "helpFiles/" + args.substring(5);
- } else if (args.startsWith("script ") && (lt.privs > 3)) {
- strFileName = "scripts/" + args.substring(7);
- compile = true;
- } else if (args.startsWith("spell group ") && (lt.privs > 3)) {
- strFileName = "defSpellGroups/" + args.substring(12);
- compile = true;
- } else if (args.startsWith("spell ") && (lt.privs > 3)) {
- strFileName = "defSpells/" + args.substring(6);
- } else if (args.startsWith("prop ")) {
- strFileName = "defProps/" + args.substring(5);
- } else if (args.startsWith("move action ") && (lt.privs > 3)) {
- strFileName = "defMoveActions/" + args.substring(12);
- compile = true;
- } else if (args.startsWith("can move ") && (lt.privs > 3)) {
- strFileName = "defCanMoveScripts/" + args.substring(9);
- compile = true;
- } else if (args.startsWith("can see ") && (lt.privs > 3)) {
- strFileName = "defCanSeeScripts/" + args.substring(8);
- compile = true;
- } else if (args.startsWith("tile action ") && (lt.privs > 3)) {
- strFileName = "defTileActions/" + args.substring(12);
- compile = true;
- } else if (args.startsWith("tile move ") && (lt.privs > 3)) {
- strFileName = "defTileScripts/" + args.substring(10);
- compile = true;
- } else if (args.startsWith("tile see ") && (lt.privs > 3)) {
- strFileName = "defTileSeeScripts/" + args.substring(9);
- compile = true;
- } else if (args.startsWith("user ")) {
- if (lt.privs < 5) {
- return "You don't have enough privelages to submit a user's file.";
- }
- if (game.getPlayer(args.substring(5)) != null) {
- return "You cannot submit a file for an active user.";
- }
- blnUser = true;
- strFileName = "users/" + args.substring(5);
- } else if (args.startsWith("pet ")) {
- if (lt.privs < 5) {
- return "You don't have enough privelages to submit a user's pet file.";
- }
- if (game.getPlayer(args.substring(4)) != null) {
- return "You cannot submit a pet file for an active user.";
- }
- blnPet = true;
- strFileName = "pets/" + args.substring(4);
- }
- if (strFileName == null) {
- return "Cannot submit " + args;
- }
- File filView = null;
- try {
- filView = new File(strFileName);
- } catch (Exception e) {
- return "Cannot submit " + args + " (" + strFileName + ")";
- }
- RandomAccessFile rafView = null;
- try {
- if (blnUser) {
- /*
- Read in the user's password before deleting the file
- */
- rafView = new RandomAccessFile(filView, "r");
- cmdline = rafView.readLine();
- }
- if (filView.exists()) {
- filView.delete();
- }
- rafView = new RandomAccessFile(filView, "rw");
- if (blnUser) {
- /*
- Write out the password for user files
- */
- rafView.writeBytes(cmdline + "\n");
- }
- /**
- * FIXME: from message
- */
- /*
- cmdline = lt.instream.readLine();
- while (!cmdline.equals("--EOF--")) {
- rafView.writeBytes(cmdline + "\n");
- cmdline = lt.instream.readLine();
- }*/
- rafView.close();
- if (compile) {
- Script scrStore = new Script(filView.getPath(), game, true);
- scrStore.close();
- }
- if (blnUser || blnPet) {
- /*
- Delete the .backup file for users and pets
- */
- filView = new File(strFileName + ".backup");
- if (filView.exists()) {
- filView.delete();
- }
- }
- } catch (Exception e) {
- game.log.printError("parseCommand():While submitting file " + args + " (" + filView.getName() + ")", e);
- try {
- rafView.close();
- } catch (Exception e2) {
- game.log.printError("parseCommand():While closing file " + args + " (" + filView.getName() + ") after failed submit", e);
- }
- return "Error while trying to submit " + args + " (" + filView.getName() + ").";
- }
- return "Submit of " + args + " was successful.";
- }
- case "delete": {
- if (lt.privs <= 2)
- return "Huh?";
- if (args == null) {
- return "What do you want to delete?";
- }
- if (lt.privs < 4) {
- return "You are not allowed to delete files.";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- if (args.indexOf("..") != -1) {
- return "You don't have permission to access that file.";
- }
- String filename = null;
- String strReturn = null;
- if (args.startsWith("item ")) {
- filename = "defItems/" + args.substring(5);
- strReturn = "item " + args.substring(5);
- } else if (args.startsWith("conf ")) {
- filename = "conf/" + args.substring(5);
- strReturn = "conf " + args.substring(5);
- } else if (args.startsWith("mob ")) {
- filename = "defMobs/" + args.substring(4);
- strReturn = "mob " + args.substring(4);
- } else if (args.startsWith("command ")) {
- filename = "commands/" + args.substring(8);
- strReturn = "command " + args.substring(8);
- } else if (args.startsWith("race ")) {
- filename = "defRaces/" + args.substring(5);
- strReturn = "race " + args.substring(5);
- } else if (args.startsWith("pet ")) {
- filename = "defPets/" + args.substring(4);
- strReturn = "pet " + args.substring(4);
- } else if (args.startsWith("faction")) {
- return "You cannot delete faction files.";
- } else if (args.startsWith("condition ")) {
- filename = "defConditions/" + args.substring(8);
- strReturn = "condition " + args.substring(8);
- } else if (args.startsWith("help ")) {
- filename = "helpFiles/" + args.substring(5);
- strReturn = "help " + args.substring(5);
- } else if (args.startsWith("script ")) {
- filename = "scripts/" + args.substring(7);
- strReturn = "script " + args.substring(7);
- } else if (args.startsWith("spell group ")) {
- filename = "defSpellGroups/" + args.substring(12);
- strReturn = "spell group " + args.substring(12);
- } else if (args.startsWith("spell ")) {
- filename = "defSpells/" + args.substring(6);
- strReturn = "spell " + args.substring(6);
- } else if (args.startsWith("prop ")) {
- filename = "defProps/" + args.substring(5);
- strReturn = "prop " + args.substring(5);
- } else if (args.startsWith("move action ")) {
- filename = "defMoveActions/" + args.substring(12);
- strReturn = "move action " + args.substring(12);
- } else if (args.startsWith("can move ")) {
- filename = "defCanMoveScripts/" + args.substring(9);
- strReturn = "can move " + args.substring(9);
- } else if (args.startsWith("can see ")) {
- filename = "defCanSeeScripts/" + args.substring(8);
- strReturn = "can see " + args.substring(8);
- } else if (args.startsWith("tile action ")) {
- filename = "defTileActions/" + args.substring(12);
- strReturn = "tile action " + args.substring(12);
- } else if (args.startsWith("tile move ")) {
- filename = "defTileScripts/" + args.substring(10);
- strReturn = "tile move " + args.substring(10);
- } else if (args.startsWith("tile see ")) {
- filename = "defTileSeeScripts/" + args.substring(9);
- strReturn = "tile see " + args.substring(9);
- }
- File filDelete = null;
- if (filename != null) {
- filDelete = new File(filename);
- if (filDelete.exists()) {
- filDelete.delete();
- filDelete = new File(filename + ".dsko");
- if (filDelete.exists()) {
- filDelete.delete();
- strReturn += " and the associated .dsko file.";
- }
- } else {
- return strReturn + " does not exist.";
- }
- return "Deleted " + strReturn;
- }
- return "You cannot delete that.";
- }
- case "clanleader": {
- if (lt.privs <= 2)
- return "Huh?";
-
- if (args == null) {
- return "Clanleader who?";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- LivingThing thnStore = game.getPlayer(args.substring(0, args.indexOf(' ')));
- if (thnStore == null) {
- return "They're not in this world";
- }
- if (args.length() < thnStore.name.length() + 2) {
- return "What clan?";
- }
- if (thnStore.privs > 1) {
- return "You can't clanleader them.";
- }
- args = args.substring(thnStore.name.length() + 1);
- thnStore.clan = args;
- if (args.equals("none")) {
- thnStore.privs = 0;
- thnStore.chatMessage("You are now clanless.");
- } else {
- thnStore.privs = 1;
- thnStore.chatMessage("You are now a member of the " + args + " clan.");
- }
- game.removeDuskObject(thnStore);
- game.addDuskObject(thnStore.map, thnStore);
- return thnStore.name + " is now a leader of the " + args + " clan.";
- }
- case "boot": {
- if (lt.privs <= 2)
- return "Huh?";
- if (args == null) {
- return "Boot who?";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- LivingThing thnStore = game.getPlayer(args);
- if (thnStore == null) {
- return "They're not in this world.";
- }
- if (thnStore.privs >= lt.privs) {
- thnStore.chatMessage(lt.name + " attempted to boot you.");
- return "You do not have high enough privelages to boot them.";
- }
- thnStore.chatMessage("You have been booted.");
- thnStore.close();
- return null;
- }
- case "hardkill": {
- if (lt.privs <= 2)
- return "Huh?";
- if (args == null) {
- return "HardKill who?";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- LivingThing thnStore = game.getPlayer(args);
- if (thnStore == null) {
- return "They're not in this world.";
- }
- if (thnStore.privs >= lt.privs) {
- thnStore.chatMessage(lt.name + " attempted to HardKill you.");
- return "You do not have high enough privelages to HardKill them.";
- }
- thnStore.closeNoMsgPlayer();
- return null;
- }
- case "nochannel": {
- if (lt.privs <= 2)
- return "Huh?";
- if (args == null) {
- return "nochannel who for how long?";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- LivingThing thnStore;
- int duration;
- try {
- thnStore = game.getPlayer(args.substring(0, args.indexOf(" ")));
- duration = Integer.parseInt(args.substring(args.indexOf(" ") + 1));
- } catch (Exception e) {
- game.log.printError("parseCommand():When " + lt.name + " tried to nochannel " + args, e);
- return "nochannel who for how long?";
- }
- if (thnStore == null) {
- return "They're not in this world.";
- }
- if (thnStore.privs >= lt.privs) {
- thnStore.chatMessage(lt.name + " attempted to nochannel you.");
- return "You do not have high enough privelages to nochannel them.";
- }
- if (duration > game.noChannelMax) {
- duration = game.noChannelMax;
- }
- thnStore.chatMessage("You have been nochanneled for " + duration + " seconds.");
- thnStore.noChannel = duration;
- return "You have nochanneled " + thnStore.name + " for " + duration + " seconds";
- }
- case "allowchannel": {
- if (lt.privs <= 2)
- return "Huh?";
- if (args == null) {
- return "allowchannel who?";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- LivingThing thnStore = game.getPlayer(args);
- if (thnStore == null) {
- return "They're not in this world.";
- }
- thnStore.chatMessage("Your nochannel status has been removed.");
- thnStore.noChannel = 0;
- return thnStore.name + "'s nochannel status has been removed.";
- }
- case "gecho": {
- if (lt.privs <= 2)
- return "Huh?";
- if (args == null) {
- return "G-Echo what?";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- game.chatMessage(args, "default");
- return null;
- }
- case "teleport": {
- if (lt.privs <= 2)
- return "Huh?";
- if (args == null) {
- return "Teleport to where?";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- int index = args.lastIndexOf('_');
- char charSep = ' ';
- if (index != -1) {
- charSep = '_';
- }
- try {
- String[] params = args.split(" ");
- TileMap map;
- int destX, destY;
- if (params.length == 3) {
- map = game.maps.get(params[0]);
- destX = Integer.parseInt(params[1]);
- destY = Integer.parseInt(params[2]);
- } else {
- map = lt.map;
- destX = Integer.parseInt(params[0]);
- destY = Integer.parseInt(params[1]);
- }
- if (lt.privs < 5 && destX >= map.getCols()) {
- destX = map.getCols() - 1;
- }
- if (lt.privs < 5 && destY >= map.getRows()) {
- destY = map.getRows() - 1;
- }
- if (destX < 0) {
- destX = 0;
- }
- if (destY < 0) {
- destY = 0;
- }
- lt.changeLocBypass(map, destX, destY);
- } catch (Exception e) {
- LivingThing thnStore = game.getPlayer(args);
- if (thnStore == null) {
- return "Teleport to where?";
- } else {
- // Hmm, i'm not sure what this does, teleport to another player?
- // Whats with the weird range checking?
- int destX = thnStore.x;
- int destY = thnStore.y;
- if (lt.privs < 5 && destX > 349) {
- destX = 349;
- }
- if (lt.privs < 5 && destY > 349) {
- destY = 349;
- }
- if (destX < 0) {
- destX = 0;
- }
- if (destY < 0) {
- destY = 0;
- }
- lt.changeLocBypass(thnStore.map, destX, destY);
- }
- }
- return null;
- }
- case "remove": {
- if (lt.privs <= 2)
- return "Huh?";
- if (args == null) {
- return "remove what?";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- DuskObject objStore = lt.getLocalObject(args);
- if (objStore != null) {
- if (objStore.isLivingThing()) {
- LivingThing thnStore = (LivingThing) objStore;
- if (thnStore.isMob()) {
- thnStore.close();
- game.blnMobListChanged = true;
- return "Object removed.";
- } else {
- return "You can't remove players/pets.";
- }
- } else if (objStore.isItem()) {
- //game.vctItems.remove(objStore);
- game.removeDuskObject(objStore);
- return "Object removed.";
- } else if (objStore.isSign()) {
- //game.vctSigns.remove(objStore);
- //game.blnSignListChanged = true;
- game.removeDuskObject(objStore);
- return "Object removed.";
- } else if (objStore.isProp()) {
- //game.vctProps.removeElement(objStore);
- //game.blnPropListChanged = true;
- game.removeDuskObject(objStore);
- return "Object removed.";
- } else if (objStore.isMerchant()) {
- //game.vctMerchants.remove(objStore);
- //game.blnMerchantListChanged = true;
- game.removeDuskObject(objStore);
- return "Object removed.";
- }
- }
- return "You don't see that here.";
- }
- case "changeclan": {
- if (lt.privs <= 2)
- return "Huh?";
- if (args == null) {
- return "ChangeClan who?";
- }
- LivingThing thnStore = game.getPlayer(args.substring(0, args.indexOf(' ')));
- if (thnStore == null) {
- return "They're not in this world";
- }
- if (cmdline.length() < thnStore.name.length() + 2) {
- return "What clan?";
- }
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- args = args.substring(thnStore.name.length() + 1);
- thnStore.clan = args;
- if (thnStore.privs == 1) {
- thnStore.privs = 0;
- }
- if (args.equals("none")) {
- thnStore.chatMessage("You are now a member of no clan.");
- } else {
- thnStore.chatMessage("You are now a member of the " + args + " clan.");
- }
- return thnStore.name + " has been added to the " + args + " clan";
- }
- case "madd": {
- if (lt.privs <= 2)
- return "Huh?";
- if (args == null) {
- return "Madd what?";
- }
- Merchant mrcStore = lt.overMerchant();
- if (mrcStore != null) {
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- mrcStore.items.add(args);
- game.refreshEntities(lt);
- } else {
- if (lt.overPlayerMerchant() != null) {
- return "You cannot add items to a player's merchant this way.";
- }
- return "You are not on a merchant.";
- }
- return null;
- }
- case "mremove": {
- if (lt.privs <= 2)
- return "Huh?";
- if (args == null) {
- return "Mremove what?";
- }
- Merchant mrcStore = lt.overMerchant();
- if (mrcStore != null) {
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
- mrcStore.items.remove(args);
- game.refreshEntities(lt);
- } else {
- if (lt.overPlayerMerchant() != null) {
- return "You cannot remove items from a player's merchant this way.";
- }
- return "You are not on a merchant.";
- }
- return null;
- }
- case "whoip": {
- if (lt.privs <= 2)
- return "Huh?";
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y);
-
- int nPlayers = game.playersByName.size();
- StringBuilder sb = new StringBuilder();
-
- // TODO: this used to be atomic, does it need to be?
-
- for (LivingThing thnStore : game.playersByName.values()) {
- boolean hidden = false;
- if (thnStore.privs > 2) {
- if (thnStore.hasCondition("invis")) {
- hidden = true;
- }
- }
- if (hidden && (lt.privs < thnStore.privs)) {
- nPlayers--;
- }
- }
-
- lt.chatMessage("\tThere are " + nPlayers + " players online:");
-
- for (LivingThing thnStore : game.playersByName.values()) {
- boolean hidden = false;
- boolean skip = false;
- if (thnStore.privs > 2) {
- if (thnStore.hasCondition("invis")) {
- hidden = true;
- }
- }
- if (hidden && (lt.privs < thnStore.privs)) {
- skip = true;
- }
- if (!skip) {
- String ip = thnStore.getAddress().toString();
- while (ip.length() < 34) {
- ip += " ";
- }
- sb.setLength(0);
- sb.append(" ").append(ip);
- sb.append(thnStore.getCharacterPoints()).append("cp ");
- if (thnStore.privs == 1) {
- sb.append("{Clan Leader}");
- } else if (thnStore.privs == 3) {
- sb.append("{God}");
- } else if (thnStore.privs == 4) {
- sb.append("{High God}");
- } else if (thnStore.privs > 4) {
- sb.append("{Master God}");
- }
- if (hidden) {
- sb.append("{hidden}");
- }
- if (thnStore.noChannel != 0) {
- sb.append("{nochanneled}");
- }
- if (!thnStore.clan.equals("none")) {
- sb.append("<" + thnStore.clan + "> ");
- }
- sb.append(thnStore.name + "\n");
- lt.chatMessage(sb.toString());
- }
- }
-
- return null;
- }
- case "change": {
- if (lt.battle != null) {
- return "Not while you're fighting!";
- }
- if (args == null) {
- return "Change what?";
- }
-
- if (true)
- return "Race changing unimplemented";
-
- if (args.equals("race")) {
- if (lt.getCharacterPoints() > game.changeRaceCpLimit) {
- return "You can no longer change your race.";
- }
- lt.unloadRace();
-
- // FIXME: I'm not sure why this needs to clear messages here.
-/*
- if (lt.isPet()) {
-
- lt.getMaster().halt();
- // lt.getMaster().stillThere(); // This puts something in the buffer
- // lt.getMaster().thrConnection.sleep(750); // wait for it...
- try {
- // Empty out the BufferedReader for the answer
- // while (lt.getMaster().instream.ready()) {
- // lt.getMaster().instream.readLine();
- // }
- } catch (Exception e) {
- game.log.printError("parseCommand():Trying to empty ready buffer of pet's master for change race.", e);
- }
- } else {
- lt.halt();
- // lt.stillThere(); // This puts something in the buffer
- // lt.thrConnection.sleep(750); // wait for it...
- try {
- // Empty out the BufferedReader for the answer
- // while (lt.instream.ready()) {
- // lt.instream.readLine();
- // }
- } catch (Exception e) {
- game.log.printError("parseCommand():Trying to empty ready buffer of player for change race.", e);
- }
- }
- lt.loadRace();
- if (lt.isPet()) {
- lt.getMaster().proceed();
- lt.getMaster().updateStats();
- } else {
- lt.proceed();
- }
- */
- game.removeDuskObject(lt);
- game.addDuskObject(lt.map, lt);
- lt.updateStats();
- return "Your race has been changed.";
- }
- }
-
- I am here!
-
- case "clan": {
- if (!lt.isPlayer() && !lt.isMob()) {
- return "Only players can use the gossip/clan/tell channels.";
- }
- if (lt.clan.equals("none")) {
- return "You're not in a clan. Use gossip instead";
- }
- if (lt.noChannel != 0) {
- return "You can't do that when nochanneled.";
- }
- if (args == null) {
- return "Clan what?";
- }
- if (args.length() > game.messagecap) {
- return "That message was too long.";
- }
- if (!args.equals("")) {
- long lTemp = lt.lastMessageStamp;
- lt.lastMessageStamp = System.currentTimeMillis();
- if ((System.currentTimeMillis() - lTemp) < game.floodLimit) {
- return "No flooding.";
- }
- game.chatMessage(lt.name + " clans: " + args, lt.clan, lt.name);
- }
- return null;
- }
-
- case "emote": {
- if (args == null) {
- return "Emote what?";
- }
- if (lt.noChannel != 0) {
- return "You can't do that when nochanneled.";
- }
- if (args.length() > game.messagecap) {
- return "That message was too long.";
- }
- if (!args.equals("")) {
- long lTemp = lt.lastMessageStamp;
- lt.lastMessageStamp = System.currentTimeMillis();
- if ((System.currentTimeMillis() - lTemp) < game.floodLimit) {
- return "No flooding.";
- }
- String strPerson = lt.name;
- if (lt.privs > 2
- && lt.hasCondition("invis")
- && lt.hasCondition("invis2")) {
- strPerson = "A god";
- }
- game.chatMessage(lt.map, strPerson + " " + args, lt.x, lt.y, lt.name);
- }
- return null;
- }
- case "tell": {
- if (!lt.isPlayer()) {
- return "Only players can use the gossip/clan/tell channels.";
- }
- if (args == null) {
- return "Tell who what?";
- }
- if (lt.noChannel != 0) {
- return "You can't do that when nochanneled.";
- }
- StringTokenizer tknStore = new StringTokenizer(args, " ");
- String strStore2 = null;
- try {
- strStore2 = tknStore.nextToken();
- } catch (Exception e) {
- return "Tell who?";
- }
- LivingThing thnStore = game.getPlayer(strStore2);
- if (thnStore == null) {
- return "They're not in this world.";
- }
- if (thnStore.privs > 2
- && thnStore.hasCondition("invis")
- && thnStore.hasCondition("invis2")) {
- return "They're not in this world.";
- }
- if (thnStore.name.equalsIgnoreCase(lt.name)) {
- return "Talking to yourself is not a good sign.";
- }
- String strIgnoreName = thnStore.name.toLowerCase();
- if (lt.ignoreList.contains(strIgnoreName)) {
- return "You can't do that while you are ignoring them.";
- }
- strIgnoreName = lt.name.toLowerCase();
- if (thnStore.ignoreList.contains(strIgnoreName)) {
- return "They did not get the message, they are ignoring you.";
- }
- args = args.substring(strStore2.length(), args.length()).trim();
- if (args.length() > game.messagecap) {
- return "That message was too long.";
- }
- if (args.length() == 0) {
- return "Tell them what?";
- }
- long lTemp = lt.lastMessageStamp;
- lt.lastMessageStamp = System.currentTimeMillis();
- if ((System.currentTimeMillis() - lTemp) < game.floodLimit) {
- return "No flooding.";
- }
- String strPerson = lt.name;
- if (lt.privs > 2
- && lt.hasCondition("invis")
- && lt.hasCondition("invis2")) {
- strPerson = "A god";
- }
- game.log.printMessage(Log.ALWAYS, lt.name + " tells " + thnStore.name + " : " + args);
- thnStore.chatMessage(strPerson + " tells you: " + args);
- return "You tell " + strStore2 + ": " + args;
- }
- case "who": {
- int nPlayers = game.playersByName.size();
- StringBuilder sb = new StringBuilder();
-
- // TOOD: originally this was atomic on stream
- // although 'atomic' is wrong since nobody else was atomic on stream
-
- for (LivingThing thnStore : game.playersByName.values()) {
- boolean hidden = false;
- if (thnStore.privs > 2) {
- if (thnStore.hasCondition("invis")) {
- hidden = true;
- }
- }
- if (hidden && (lt.privs < thnStore.privs)) {
- nPlayers--;
- }
- if (lt.privs < 3 && !thnStore.isWorking) {
- nPlayers--;
- }
- if (lt.privs < 3 && !thnStore.isReady) {
- nPlayers--;
- }
- }
-
- lt.chatMessage("\tThere are " + nPlayers + " players online:");
-
- for (LivingThing thnStore : game.playersByName.values()) {
- boolean hidden = false;
- boolean skip = false;
- if (thnStore.privs > 2) {
- if (thnStore.hasCondition("invis")) {
- hidden = true;
- }
- }
- if (hidden && (lt.privs < thnStore.privs)) {
- skip = true;
- }
- if (lt.privs < 3 && !thnStore.isWorking) {
- skip = true;
- }
- if (lt.privs < 3 && !thnStore.isReady) {
- skip = true;
- }
- System.out.println(" user " + thnStore.name + " skip " + skip);
- if (!skip) {
- sb.setLength(0);
- sb.append("\t");
- sb.append(thnStore.getCharacterPoints());
- sb.append("cp ");
- if (lt.privs > 2 && !thnStore.isWorking) {
- sb.append("{* Not Working *}");
- }
- if (lt.privs > 2 && !thnStore.isReady) {
- sb.append("{Entering the world}");
- }
- if (lt.privs > 2 && !thnStore.isSaveable) {
- sb.append("{Loading/Saving}");
- }
- if (thnStore.privs == 1) {
- sb.append("{Clan Leader}");
- } else if (thnStore.privs == 3) {
- sb.append("{God}");
- } else if (thnStore.privs == 4) {
- sb.append("{High God}");
- } else if (thnStore.privs > 4) {
- sb.append("{Master God}");
- }
- if (hidden) {
- sb.append("{hidden}");
- }
- if (thnStore.noChannel != 0) {
- sb.append("{nochanneled}");
- }
- if (thnStore.ignoreList.contains(lt.name.toLowerCase())) {
- sb.append("{Ignoring you}");
- }
- if (lt.ignoreList.contains(thnStore.name.toLowerCase())) {
- sb.append("{Ignored}");
- }
- if (!thnStore.clan.equals("none")) {
- sb.append("<");
- sb.append(thnStore.clan);
- sb.append("> ");
- }
- if (thnStore.title == null
- || thnStore.title.equals("none")) {
- sb.append(thnStore.name);
- //sb.append("\n");
- } else {
- sb.append(thnStore.name);
- sb.append(" ");
- sb.append(thnStore.title);
- //sb.append("\n");
- }
- lt.chatMessage(sb.toString());
- }
- }
- return "Who complete.";
- }
- //kill
- case "order": {
- if (args == null) {
- return "Order who to do what?";
- }
- int intStore = args.indexOf(" ");
- if (intStore == -1) {
- return "Order them to do what?";
- }
- DuskObject objStore = lt.getLocalObject(args.substring(0, intStore));
- if (objStore == null) {
- return "You don't see that here.";
- }
- if (!objStore.isLivingThing()) {
- return "You can't order that.";
- }
- LivingThing thnStore = (LivingThing) objStore;
- if (thnStore.getCharmer() != lt) {
- return "They don't take orders from you.";
- }
- args = args.substring(intStore + 1);
- try {
- thnStore.chatMessage(Commands.parseCommand(thnStore, game, args));
-// lt.chatMessage(Commands.parseCommand(thnStore, engGame, strArgs));
- } catch (Exception e) {
- game.log.printError("parseCommand():" + thnStore.name + ", while trying to follow the following order: \"" + args + "\"", e);
- }
- return null;
- }
-
- case "inv":
- case "inventory": {
- final String[] formats = {
- "Wielded: %s",
- "Arms: %s",
- "Legs: %s",
- "Torso: %s",
- "Waist: %s",
- "Neck: %s",
- "Skull: %s",
- "Eyes: %s",
- "Hands: %s"};
- lt.chatMessage("-Worn-");
- for (int i = 0; i < formats.length; i++) {
- Item item = lt.wornItems.getWorn(i);
- if (item != null)
- lt.chatMessage(String.format(formats[i], item.description));
- }
- lt.chatMessage("-Inventory-:");
- for (LinkedList<Item> list : lt.itemList.values()) {
- if (!list.isEmpty()) {
- Item item = (Item) list.element();
- lt.chatMessage(list.size() + " " + item.name);
- }
- }
- return null;
- }
-
- case "help": {
- File file;
- String title;
-
- // FIXME: was atomic
- if (args == null) {
- file = new File("help");
- title = "Help";
- } else {
- if (args.indexOf("..") != -1) {
- return "There is no help on that subject";
- }
- file = new File("helpFiles/" + args);
- title = "Help on " + args;
- }
-
- try (RandomAccessFile helpFile = new RandomAccessFile(file, "r")) {
- lt.chatMessage(title);
- while ((cmdline = helpFile.readLine()) != null) {
- lt.chatMessage(cmdline);
- }
- } catch (IOException e) {
- game.log.printError("parseCommand():When " + lt.name + " tried to get help on " + args, e);
- return "There is no help on that subject";
- }
- return null;
- }
-
- case "get": {
- if (args == null) {
- return "Get what?";
- }
- DuskObject objStore = lt.getLocalObject(args);
- if (objStore == null) {
- return "You don't see that here.";
- }
- if (!objStore.isItem()) {
- return "You can't get that.";
- }
- Item itmStore = (Item) objStore;
- if (Math.abs(lt.x - itmStore.x) + Math.abs(lt.y - itmStore.y) < 2) {
- if (lt.privs > 2) {
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":gets " + args + ":" + lt.x + "," + lt.y);
- }
- lt.itemList.addElement(itmStore);
- lt.updateItems();
- game.removeDuskObject(itmStore);
- } else {
- return "That's too far away.";
- }
- itmStore.onGetItem(game, lt);
- return null;
- }
-
- case "drop": {
- if (args == null) {
- return "Drop what?";
- }
- int intDot = args.indexOf(".");
- int intNumToDrop = 1;
- if (intDot != -1) {
- try {
- intNumToDrop = Integer.parseInt(args.substring(0, intDot));
- } catch (NumberFormatException e) {
- intNumToDrop = 1;
- }
- }
- Item itmStore = lt.getItem(args);
- if (itmStore != null) {
- String strMessage = "You drop " + itmStore.name + ".";
- if (intNumToDrop > 1) {
- strMessage = "You drop " + intNumToDrop + " " + itmStore.name + ".";
- }
- if (itmStore.intCost == 0) {
- strMessage = "A " + itmStore.name + " vanishes into thin air.";
- if (intNumToDrop > 1) {
- strMessage = intNumToDrop + " " + itmStore.name + " vanish into thin air.";
- }
- }
- if (lt.privs > 2) {
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":drops " + args + ":" + lt.x + "," + lt.y);
- }
- for (int i = 0; i < intNumToDrop; i++) {
- itmStore = lt.getItemAndRemove(itmStore.name);
- itmStore.x = lt.x;
- itmStore.y = lt.y;
- if (itmStore.intCost != 0) {
- //game.vctItems.add(itmStore);
- game.addDuskObject(lt.map, itmStore);
- lt.updateItems();
- }
- itmStore.onDropItem(game, lt);
- }
- return strMessage;
- }
- return "You don't have that.";
- }
-
- case "use": {
- if (args == null) {
- return "Use what?";
- }
- if (lt.battle == null) {
- lt.useItem(args, -1);
- } else {
- lt.battle.addCommand(lt, "use " + args);
- }
- return null;
- }
- case "eat": {
- if (args == null) {
- return "Eat what?";
- }
- if (lt.battle == null) {
- lt.useItem(args, Item.FOOD);
- } else {
- lt.battle.addCommand(lt, "eat " + args);
- }
- return null;
- }
- case "drink": {
- if (args == null) {
- return "Drink what?";
- }
- if (lt.battle == null) {
- lt.useItem(args, Item.DRINK);
- } else {
- lt.battle.addCommand(lt, "drink " + args);
- }
- return null;
- }
-
- case "give": {
- if (args == null) {
- return "Give who what?";
- }
- StringTokenizer tknStore = new StringTokenizer(args, " ");
- String strStore2 = null;
- try {
- strStore2 = tknStore.nextToken();
- } catch (Exception e) {
- return "Give who what?";
- }
- DuskObject objStore = lt.getLocalObject(strStore2);
- if (objStore == null) {
- return "You don't see them here.";
- }
- if (!objStore.isLivingThing()) {
- return "You can't give to that.";
- }
- LivingThing thnStore = (LivingThing) objStore;
- if ((lt.privs < 3) && (Math.abs(thnStore.x - lt.x) + Math.abs(thnStore.y - lt.y) > 1)) {
- return "They're too far away.";
- }
- args = args.substring(strStore2.length() + 1);
- if (lt.privs > 2) {
- game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":gives " + args + " to " + strStore2 + ":" + lt.x + "," + lt.y);
- }
- if (args.startsWith("gp")) {
- args = args.substring(3);
- try {
- int intStore = Integer.parseInt(args);
- if (intStore < 0) {
- return "You can't give negative money!";
- }
- if (intStore <= lt.cash) {
- lt.cash -= intStore;
- thnStore.cash += intStore;
- lt.updateStats();
- thnStore.updateStats();
- thnStore.chatMessage(lt.name + " gives you " + intStore + "gp.");
- return "You give " + thnStore.name + " " + intStore + "gp.";
- } else {
- lt.chatMessage("You don't have that much gp");
- }
- } catch (Exception e) {
- return "That is not a valid amount of gp to give.";
- }
- }
- int intDot = args.indexOf(".");
- int intNumToGive = 1;
- if (intDot != -1) {
- try {
- intNumToGive = Integer.parseInt(args.substring(0, intDot));
- } catch (NumberFormatException e) {
- intNumToGive = 1;
- }
- }
- Item itmStore = lt.getItem(args);
- if (itmStore != null) {
- String strMessage = lt.name + " gives you ";
- String strMessage2 = "You give " + thnStore.name + " ";
- if (intNumToGive > 1) {
- strMessage += intNumToGive + " ";
- strMessage2 += intNumToGive + " ";
- }
- strMessage += itmStore.name + ".";
- strMessage2 += itmStore.name + ".";
- cmdline = itmStore.name;
-
- while (intNumToGive > 0) {
- itmStore = lt.getItemAndRemove(cmdline);
- thnStore.itemList.addElement(itmStore);
- intNumToGive--;
-
- itmStore.onDropItem(game, lt);
- itmStore.onGetItem(game, thnStore);
- }
-
- thnStore.chatMessage(strMessage);
- thnStore.updateItems();
- lt.updateItems();
- return strMessage2;
- }
- return "You don't have that.";
- }
-
- case "buy": {
- if (args == null) {
- return "Buy what?";
- }
- int quantity;
- try {
- int i = args.indexOf(" ");
- quantity = Integer.parseInt(args.substring(0, i));
- args = args.substring(i + 1);
- } catch (Exception e) {
- return "How many of what do you want to buy?";
- }
- if (quantity > 100) {
- quantity = 100;
- } else if (quantity < 1) {
- return "You can't buy less than one of something.";
- }
- PlayerMerchant pmrStore = lt.overPlayerMerchant();
- if (pmrStore != null) {
- long numItem = pmrStore.contains(args);
- if (numItem > 0) {
- Item itmStore = game.getItem(args);
- if (itmStore != null) {
- if (quantity > numItem) {
- return "This merchant does not have that many.";
- }
- int intCost = (itmStore.intCost * 3) / 4;
- if (lt.name.equalsIgnoreCase(pmrStore.strOwner)) {
- intCost = 0;
- }
- if (intCost * quantity > lt.cash) {
- return "You can't afford that";
- } else {
- lt.cash -= intCost * quantity;
- pmrStore.cash += intCost * quantity;
- itmStore = pmrStore.remove(args);
- lt.itemList.addElement(itmStore);
- for (int i = 1; i < quantity; i++) {
- itmStore = pmrStore.remove(args);
- lt.itemList.addElement(itmStore);
- }
- lt.updateItems();
- lt.updateStats();
- }
- }
- }
- }
-
- Merchant mrcStore = lt.overMerchant();
- if (mrcStore == null) {
- return "Buy from whom?";
- }
- if (lt.getFollowing() != null && lt.getFollowing().isPet()) {
- if (args.startsWith(lt.getFollowing().name + ":")) {
- args = args.substring(lt.getFollowing().name.length() + 1);
- if (mrcStore.contains(args)) {
- if (args.startsWith("train:")) {
- args = args.substring(6);
- mrcStore.train(args, quantity, lt.getFollowing());
- lt.updateStats();
- }
- }
- return null;
- }
- }
- if (mrcStore.contains(args)) {
- if (args.startsWith("train:")) {
- args = args.substring(6);
- mrcStore.train(args, quantity, lt);
- lt.updateStats();
- } else {
- if (args.startsWith("pet")) {
- mrcStore.pet(lt);
- lt.updateStats();
- } else {
- Item itmStore = game.getItem(args);
- if (itmStore != null) {
- if (itmStore.intCost * quantity > lt.cash) {
- return "You can't afford that";
- } else {
- lt.cash -= itmStore.intCost * quantity;
- lt.itemList.addElement(itmStore);
- for (int i = 1; i < quantity; i++) {
- lt.itemList.addElement(game.getItem(args));
- }
- lt.updateItems();
- lt.updateStats();
- }
- }
- }
- }
- }
- return null;
- }
-
- case "sell": {
- if (args == null) {
- return "Sell what?";
- }
-
- PlayerMerchant pmrStore = lt.overPlayerMerchant();
- if (pmrStore != null) {
- if (lt.name.equalsIgnoreCase(pmrStore.strOwner)) {
- int quantity = 1;
- try {
- int i = args.indexOf(" ");
- quantity = Integer.parseInt(args.substring(0, i));
- args = args.substring(i + 1);
- } catch (Exception e) {
- return "How many of what do you want to sell?";
- }
- Item itmStore = lt.getItem(args);
- for (int i = 0; i < quantity; i++) {
- itmStore = lt.getItemAndRemove(args);
- if (itmStore != null) {
- itmStore.onDropItem(game, lt);
- pmrStore.add(itmStore);
- lt.isSaveNeeded = true;
- } else {
- i = quantity;
- }
- }
- lt.updateItems();
- lt.updateStats();
- return null;
- }
- return "You cannot sell items to this merchant.";
- }
-
- Merchant mrcStore = lt.overMerchant();
- if (mrcStore == null) {
- return "Sell that to whom?";
- }
- int quantity = 1;
- try {
- int i = args.indexOf(" ");
- quantity = Integer.parseInt(args.substring(0, i));
- args = args.substring(i + 1);
- } catch (Exception e) {
- return "How many of what do you want to sell?";
- }
- if (quantity > 100) {
- quantity = 100;
- }
- Item itmStore = lt.getItem(args);
- for (int i = 0; i < quantity; i++) {
- itmStore = lt.getItemAndRemove(args);
- if (itmStore != null) {
- itmStore.onDropItem(game, lt);
- lt.cash += (itmStore.intCost / 2);
- lt.isSaveNeeded = true;
- } else {
- i = quantity;
- }
- }
- lt.updateItems();
- lt.updateStats();
- return null;
- }
-
- case "cast": {
- if (args == null) {
- return "Cast what?";
- }
- if (lt.battle == null) {
- lt.castSpell(args);
- } else {
- lt.battle.addCommand(lt, "cast " + args);;
- }
- return null;
- }
-
- case "follow": {
- if (args == null) {
- return "Follow who?";
- }
- if (lt.isSleeping) {
- return "You can't do that while you're sleeping";
- }
- DuskObject objStore = lt.getLocalObject(args);
- if (objStore == null) {
- return "You don't see that here.";
- }
- if (objStore.isLivingThing()) {
- LivingThing thnStore = (LivingThing) objStore;
- if (lt.getMaster() != null && thnStore != lt.getMaster()) {
- if (lt.isPet()) {
- return "You can only follow your owner.";
- }
- return "You're already following someone. Leave them first.";
- }
- if (Math.abs(lt.x - thnStore.x) + Math.abs(lt.y - thnStore.y) > 1) {
- return "They're too far away.";
- }
- if (thnStore == lt) {
- return "You can't follow yourself.";
- }
- if (!thnStore.isPlayer() && !lt.isMob()) {
- return "You can only follow players.";
- }
- if (thnStore.noFollow || (thnStore.isPet() && thnStore.getMaster().noFollow)) {
- return "They won't let you follow them.";
- }
- if (lt.isPet()) {
- thnStore.setFollowing(lt);
- lt.setMaster(thnStore);
- thnStore.updateStats();
- lt.updateStats();
- return "You are now following " + lt.getMaster().name + ".";
- }
- LivingThing thnStore2 = thnStore;
- while (thnStore2 != null) {
- if (lt == thnStore2) {
- return "You're already in that group.";
- }
- thnStore2 = thnStore2.getMaster();
- }
- thnStore.chatMessage("You are now being followed by " + lt.name + ".");
- while (thnStore.getFollowing() != null) {
- thnStore = thnStore.getFollowing();
- if (thnStore.isPlayer()) {
- thnStore.chatMessage("You are now being followed by " + lt.name + ".");
- }
- }
- thnStore.setFollowing(lt);
- lt.setMaster(thnStore);
- thnStore.updateStats();
- lt.updateStats();
- return "You are now following " + lt.getMaster().name + ".";
- }
- return "That's not something you can follow.";
- }
-
- case "unfollow": {
- if (args == null) {
- return "Unfollow who?";
- }
-
- // FIXME: implemente unfollow
- if (true)
- return "unfollow is not yet implemented";
-
-
- LivingThing thnStore = lt.getFollowing();
- if (thnStore != null && thnStore.isPet()) {
- if (thnStore.name.equalsIgnoreCase(args)) {
- /*
- lt.halt();
- lt.chatMessage("Do you really want to permanently erase your pet?");
- try {
- if (lt.instream.readLine().equalsIgnoreCase("yes")) {
- lt.getFollowing().close();
- File deleteme = new File("pets/" + lt.name.toLowerCase());
- deleteme.delete();
- deleteme = new File("pets/" + lt.name.toLowerCase() + ".backup");
- deleteme.delete();
- lt.getFollowing().close();
- lt.setFollowing(lt.getFollowing().getFollowing());
- lt.proceed();
- return "Your pet has been erased.";
- }
- } catch (Exception e) {
- game.log.printError("parseCommand():While unfollowing pet for " + lt.name, e);
- }
- lt.proceed();
- * */
- return null;
- }
- thnStore = thnStore.getFollowing();
- }
- while (thnStore != null) {
- if (thnStore.name.equalsIgnoreCase(args)) {
- if (thnStore.isPet()) {
- thnStore = thnStore.getMaster();
- }
- thnStore.removeFromGroup();
- return null;
- }
- thnStore = thnStore.getFollowing();
- }
- return "They're not following you.";
- }
-
- case "stay": {
- if (lt.isPet()) {
- lt.removeFromGroup();
- return Commands.parseCommand(lt, game, "emote sits down to await " + lt.getMaster().name + "'s return.");
- }
- return (Commands.parseCommand(lt, game, "emote stays like a good little puppy."));
- }
-
- case "leave": {
- if (lt.isPet()) {
- return "You cannot leave your master unless he unfollows you.";
- }
- lt.removeFromGroup();
- return "You are now on your own.";
- }
-
- case "unclan": {
- if (lt.clan.equals("none")) {
- return "You're not in a clan.";
- }
- if (lt.battle != null) {
- return "Wait until you're done battling.";
- }
- // FIXME: reimplement unclan
- if (true)
- return "unclan not implemented yet";
- try {
- /*
- lt.halt();
- lt.chatMessage("Are you sure you want to drop out of your clan? If so type yes.");
- if (lt.instream.readLine().equalsIgnoreCase("yes")) {
- lt.clan = "none";
- if (lt.privs == 1) {
- lt.privs = 0;
- }
- lt.proceed();
- game.removeDuskObject(lt);
- game.addDuskObject(lt);
- return "You have been removed from your clan.";
- }*/
- } catch (Exception e) {
- game.log.printError("parseCommand():While " + lt.name + " was trying to dropout of their clan", e);
- }
- //lt.proceed();
- return null;
- }
-
- case "description": {
- if (args == null) {
- lt.description = null;
- return "Your description has been removed.";
- }
- lt.description = args;
- return "Your description has been set to:" + lt.description;
- }
-
- case "title": {
- if (!lt.isPlayer()) {
- return "Only players may have titles.";
- }
- if (args == null) {
- lt.title = null;
- return "Your title has been removed.";
- }
- lt.title = args;
- if (lt.title.length() > game.titlecap) {
- lt.title = lt.title.substring(0, game.titlecap);
- }
- return "Your title has been set to:" + lt.title;
- }
-
- case "password": {
- if (!lt.isPlayer()) {
- return "Only players can change their password.";
- }
- return "password changing not re-implemented yet";
- /*
- try {
- lt.halt();
- lt.chatMessage("Enter your current password.");
- String strOldPass = lt.instream.readLine();
- if (!strOldPass.equals(lt.password)) {
- lt.proceed();
- return "Sorry, that is not your password.";
- }
- lt.chatMessage("Enter a new password.");
- String strNewPass = lt.instream.readLine();
- lt.chatMessage("Repeat that password.");
- String strNewPassRepeat = lt.instream.readLine();
- if (strNewPass == null) {
- lt.proceed();
- return "Not a valid password.";
- }
- if (!strNewPass.equals(strNewPassRepeat)) {
- lt.proceed();
- return "Sorry, those passwords do not match.";
- }
- lt.password = strNewPass;
- lt.proceed();
- return "Your password has now been changed.";
- } catch (Exception e) {
- game.log.printError("parseCommand():While " + lt.name + " was changing their password", e);
- }
- lt.proceed();
- */
- }
-
- case "wear": {
- if (args == null) {
- return "Wear what?";
- }
- // FIXME: this should go on livingthing, but the interaction flow is messy
- LinkedList<Item> qStore = lt.itemList.get(args);
- if (qStore != null) {
- Item itmStore = (Item) qStore.element();
- int where = -1;
-
- switch (itmStore.intType) {
- case (1): {
- where = Equipment.WIELD;
- break;
- }
- case (2):
- where = itmStore.intKind + Equipment.ARMS;
- break;
- default:
- return "You can't wear that";
- }
-
- Item old = lt.wornItems.wear(where, itmStore);
- if (old != null) {
- lt.itemList.addElement(old);
- lt.onUnwear(old);
- }
- lt.onWear(itmStore);
-
- lt.itemList.removeElement(itmStore.name);
- if (lt.isPet()) {
- lt.getMaster().updateStats();
- }
- if (lt.isPlayer()) {
- lt.updateStats();
- }
- lt.updateEquipment();
- lt.updateItems();
- return null;
- }
- return "You don't have that";
- }
- case "unwear": {
- if (args == null) {
- return "Unwear what?";
- }
- lt.unWear(args);
- return null;
- }
- case "rement": {
- if (args == null) {
- return null;
- }
- long lngID = Long.parseLong(args);
- lt.removeEntity(lngID);
- return null;
- }
- case "audio": {
- if (args == null) {
- if (lt.audioon) {
- return "Your audio is turned on.";
- }
- return "Your audio is turned off.";
- } else if (args.equalsIgnoreCase("off")) {
- lt.audioon = false;
- return "Your audio has been turned off.";
- } else if (args.equalsIgnoreCase("on")) {
- lt.audioon = true;
- return "Your audio has been turned on.";
- }
- }
- case "color": {
- if (args == null) {
- if (lt.coloron) {
- return "Your color is turned on.";
- }
- return "Your color is turned off.";
- } else if (args.equalsIgnoreCase("off")) {
- lt.coloron = false;
- return "Your color has been turned off.";
- } else if (args.equalsIgnoreCase("on")) {
- lt.coloron = true;
- return "Your color has been turned on.";
- }
- }
- case "highlight": {
- if (args == null) {
- if (lt.highlight) {
- return "Highlighting of enemies in battle is turned on.";
- }
- return "Highlighting of enemies in battle is turned off.";
- } else if (args.equalsIgnoreCase("off")) {
- lt.highlight = false;
- lt.clearFlags();
- return "Highlighting of enemies in battle has been turned off.";
- } else if (args.equalsIgnoreCase("on")) {
- lt.highlight = true;
- return "Highlighting of enemies in battle has been turned on.";
- }
- }
- case "popup": {
- // FIXME: TBD
- if (args == null) {
- if (lt.popup) {
- return "You have popup windows turned on.";
- }
- return "You have popup windows turned off.";
- } else if (args.equalsIgnoreCase("off")) {
- lt.popup = false;
- return "You have turned popup windows off.";
- } else if (args.equalsIgnoreCase("on")) {
- lt.popup = true;
- return "You have turned popup windows on.";
- }
- }
- case "nofollow": {
- if (args == null) {
- if (lt.noFollow) {
- return "You are not allowed to be followed.";
- }
- return "You can be followed.";
- } else if (args.equalsIgnoreCase("off")) {
- lt.noFollow = false;
- return "You can now be followed.";
- } else if (args.equalsIgnoreCase("on")) {
- lt.noFollow = true;
- return "You can no longer be followed.";
- }
- }
- case "ignore": {
- if (args == null) {
- return "Ignore who?";
- }
- LivingThing thnStore = game.getPlayer(args);
- if (thnStore == null) {
- return "They're not in this world.";
- }
- String strIgnoreName = thnStore.name.toLowerCase();
- if (lt.name.equalsIgnoreCase(strIgnoreName)) {
- return "Trying to ignore yourself is not a good sign.";
- }
- if (thnStore.privs > 2) {
- return "You cannot ignore a god.";
- }
- if (!lt.ignoreList.contains(strIgnoreName)) {
- lt.ignoreList.add(strIgnoreName);
- } else {
- return "You are already ignoring them.";
- }
- return "You are now ignoring " + strIgnoreName;
- }
- case "unignore": {
- if (args == null) {
- return "UnIgnore who?";
- }
- String strIgnoreName = args.toLowerCase();
- if (strIgnoreName == "all") {
- lt.ignoreList.clear();
- return "You are no longer ignoring anyone.";
- }
- if (lt.ignoreList.contains(strIgnoreName)) {
- lt.ignoreList.remove(strIgnoreName);
- } else {
- return "You are not ignoring them.";
- }
- return "You are no longer ignoring " + strIgnoreName;
- }
- case "appletimages": {
- //lt.updateAppletImages();
- return "obsolete command";
- }
- case "applicationimages": {
- //lt.updateApplicationImages();
- return "obsolete command";
- }
- case "notdead": {
- return null;
- }
- case "quit":
- case "logout": {
- if (lt.battle == null) {
- lt.close();
- return null;
- }
- return "You cannot quit in the middle of a fight.";
- }
- }
- if (!blnFoundScriptedCommand) {
- return "huh?";
- }
- return null;
- }
-}
+++ /dev/null
-
-CODE STATUS September 2013
---------------------------
-
-After a very active development period the work simply stopped - so it
-is in a bit of a half-way state as you'd imagine. Other time
-pressures and interests meant I haven't had time to work on this for
-months but I hope to again one day in some shape or form.
-
-Essentially the code in duskz/server and duskz/server/entity is the
-original Dusk code which has been refactored a bit (badly), updated to
-newer Java and a new protocol (I think), but more or less shares the
-original features and data format. It's basically a dead branch.
-
-The code in dusk/server/entityz is mostly a complete re-write of the
-object class hierarchy, data i/o, map handling and a few other things.
-Unfortunately as it was in active development when it stopped it too
-isn't entirely in a good state either.
-
-I think the object heirarchy is pretty good, and the script system was
-"upgraded" to javascript but there is a ton of work left to make it
-usable. In hindsight i should've gone straight to a database
-(berkeleydb) backend as too much of the entity code is dealing with
-i/o.
-
-The original readme follows ...
-
-README
-------
-
-This is the server implementation of DuskZ. A client is required
-to access the game.
-
-It is a fork and major overhaul of the Dusk 2.7.3 source code, released
-circa 2000.
-
-This is currently in an alpha state.
-
- ... to be completed ...
-
-INSTALLATION
-------------
- ... to be completed ...
-
-RUNNING
--------
- ... to be completed ...
-
-LICENSE
--------
- DuskZ is free software, see COPYING for your rights.
-
- Some files are under other compatible licenses.
-
- Copyright (C) 2000 Tom Weingarten <captaint@home.com>
- Copyright (C) 2013 Michael Zucchi <notzed@gmail.com>
-
- DuskZ is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.
-
- DuskZ is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with DuskZ; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
\ No newline at end of file
+++ /dev/null
-<?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. -->
-<!-- Commands such as Run, Debug, and Test only use this build script if -->
-<!-- the Compile on Save feature is turned off for the project. -->
-<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
-<!-- in the project's Project Properties dialog box.-->
-<project name="DuskServer" default="default" basedir=".">
- <description>Builds, tests, and runs the project DuskServer.</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. They 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-single: called before javac compilation of single file
- -post-compile-single: called after javac compilation of single file
- -pre-compile-test: called before javac compilation of JUnit tests
- -post-compile-test: called after javac compilation of JUnit tests
- -pre-compile-test-single: called before javac compilation of single JUnit test
- -post-compile-test-single: called after javac compilation of single JUunit test
- -pre-jar: called before JAR building
- -post-jar: called after JAR building
- -post-clean: called after cleaning build products
-
- (Targets beginning with '-' are not intended to be called on their own.)
-
- Example of inserting an obfuscator after compilation could look like this:
-
- <target name="-post-compile">
- <obfuscate>
- <fileset dir="${build.classes.dir}"/>
- </obfuscate>
- </target>
-
- For list of available properties check the imported
- nbproject/build-impl.xml file.
-
-
- Another way to customize the build is by overriding existing main targets.
- The targets of interest are:
-
- -init-macrodef-javac: defines macro for javac compilation
- -init-macrodef-junit: defines macro for junit execution
- -init-macrodef-debug: defines macro for class debugging
- -init-macrodef-java: defines macro for class execution
- -do-jar-with-manifest: JAR building (if you are using a manifest)
- -do-jar-without-manifest: JAR building (if you are not using a manifest)
- run: execution of project
- -javadoc-build: Javadoc generation
- test-report: JUnit report generation
-
- An example of overriding the target for project execution could look like this:
-
- <target name="run" depends="DuskServer-impl.jar">
- <exec dir="bin" executable="launcher.exe">
- <arg file="${dist.jar}"/>
- </exec>
- </target>
-
- Notice that the overridden target depends on the jar target and not only on
- the compile target as the regular run target does. Again, for a list of available
- properties which you can use, check the target you are overriding in the
- nbproject/build-impl.xml file.
-
- -->
-</project>
+++ /dev/null
-Manifest-Version: 1.0
-X-COMMENT: Main-Class will be added automatically by build
-
+++ /dev/null
-<?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="DuskServer-impl">
- <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">
- <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>
- <condition else="false" property="jdkBug6558476">
- <and>
- <matches pattern="1\.[56]" string="${java.specification.version}"/>
- <not>
- <os family="unix"/>
- </not>
- </and>
- </condition>
- <property name="javac.fork" value="${jdkBug6558476}"/>
- <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" 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}" fork="${javac.fork}" 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}" fork="${javac.fork}" 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="<nothing>"/>
- <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}" 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}" 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" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="DuskServer" 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}" 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}" 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 DuskServer -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>
- </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">
- <property name="version-output" value="java version "${ant.java.version}"/>
- <condition property="have-jdk-older-than-1.4">
- <or>
- <contains string="${version-output}" substring="java version "1.0"/>
- <contains string="${version-output}" substring="java version "1.1"/>
- <contains string="${version-output}" substring="java version "1.2"/>
- <contains string="${version-output}" substring="java version "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">
- <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">
- <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: DuskServer 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>
- <antcall target="-maybe-call-dep">
- <param name="call.built.properties" value="${built-jar.properties}"/>
- <param location="${project.DuskCommon}" name="call.subproject"/>
- <param location="${project.DuskCommon}/build.xml" name="call.script"/>
- <param name="call.target" value="jar"/>
- <param name="transfer.built-jar.properties" value="${built-jar.properties}"/>
- </antcall>
- </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">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">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 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" description="Build JAR." name="jar"/>
- <!--
- =================
- EXECUTION SECTION
- =================
- -->
- <target depends="init,compile" 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" 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" 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}" 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: DuskServer 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>
- <antcall target="-maybe-call-dep">
- <param name="call.built.properties" value="${built-clean.properties}"/>
- <param location="${project.DuskCommon}" name="call.subproject"/>
- <param location="${project.DuskCommon}/build.xml" name="call.script"/>
- <param name="call.target" value="clean"/>
- <param name="transfer.built-clean.properties" value="${built-clean.properties}"/>
- </antcall>
- </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>
+++ /dev/null
-build.xml.data.CRC32=d4396c02
-build.xml.script.CRC32=b70baa11
-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=d4396c02
-nbproject/build-impl.xml.script.CRC32=6bdc7120
-nbproject/build-impl.xml.stylesheet.CRC32=c6d2a60f@1.56.1.46
+++ /dev/null
-application.title=DuskServer
-application.vendor=Michael Zucchi
-endorsed.classpath=
-project.license=dusk
-annotation.processing.enabled=true
-annotation.processing.enabled.in.editor=false
-annotation.processing.processors.list=
-annotation.processing.run.all.processors=true
-annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
-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
-# 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}/DuskServer.jar
-dist.javadoc.dir=${dist.dir}/javadoc
-excludes=
-includes=**
-jar.compress=false
-javac.classpath=\
- ${reference.DuskCommon.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}
-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=
-main.class=duskz.server.DuskServer
-manifest.file=manifest.mf
-meta.inf.dir=${src.dir}/META-INF
-mkdist.disabled=false
-platform.active=default_platform
-project.DuskCommon=../DuskCommon
-reference.DuskCommon.jar=${project.DuskCommon}/dist/DuskCommon.jar
-run.classpath=\
- ${javac.classpath}:\
- ${build.classes.dir}
-# Space-separated list of JVM arguments used when running the project.
-# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
-# To set system properties for unit tests define test-sys-prop.name=value:
-run.jvmargs=
-run.test.classpath=\
- ${javac.test.classpath}:\
- ${build.test.classes.dir}
-source.encoding=UTF-8
-src.dir=src
-test.src.dir=test
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://www.netbeans.org/ns/project/1">
- <type>org.netbeans.modules.java.j2seproject</type>
- <configuration>
- <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
- <name>DuskServer</name>
- <source-roots>
- <root id="src.dir"/>
- </source-roots>
- <test-roots>
- <root id="test.src.dir"/>
- </test-roots>
- </data>
- <references xmlns="http://www.netbeans.org/ns/ant-project-references/1">
- <reference>
- <foreign-project>DuskCommon</foreign-project>
- <artifact-type>jar</artifact-type>
- <script>build.xml</script>
- <target>jar</target>
- <clean-target>clean</clean-target>
- <id>jar</id>
- </reference>
- </references>
- </configuration>
-</project>
+++ /dev/null
-
-CODE STATUS September 2013
---------------------------
-
-As most of the 'smarts' in Dusk happens in the server the client is
-fairly simple - it basically handles some local input and rendering
-the tiles.
-
-This should be feature complete against the latest DuskServer, but
-needs some aesthetic and usability work.
-
-Original README follows.
-
-README
-------
-This is the client frontend to DuskZ, it uses JavaFX. It connects
-to the DuskServer togehter and requires some local data installed.
-
-It is a fork and major overhaul of the Dusk 2.7.3 source code, released
-circa 2000.
-
-Currently a recent Oracle JRE is required to execute this application.
-
-This is currently in an alpha state.
-
- ... to be completed ...
-
-INSTALLATION
-------------
- ... to be completed ...
-
-RUNNING
--------
- ... to be completed ...
-
-LICENSE
--------
- DuskZ is free software, see COPYING for your rights.
-
- Some files are under other compatible licenses.
-
- Copyright (C) 2000 Tom Weingarten <captaint@home.com>
- Copyright (C) 2013 Michael Zucchi <notzed@gmail.com>
-
- DuskZ is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- DuskZ is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with DuskZ. If not, see <http://www.gnu.org/licenses/>.
-
-
- DuskZ also uses the ListSpinner widget from JFXExtras.
-
-/**
- * Copyright (c) 2011, JFXtras
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the <organization> nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
\ No newline at end of file
+++ /dev/null
-<?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="DuskZ" default="default" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant">
- <description>Builds, tests, and runs the project DuskZ.</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>
+++ /dev/null
-Manifest-Version: 1.0
-X-COMMENT: Main-Class will be added automatically by build
-
+++ /dev/null
-<?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="DuskZ-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=<path_to_property_file> jar (where you put the property "platforms.${platform.active}.home" in a .properties file)
- or ant -Dplatforms.${platform.active}.home=<path_to_JDK_home> 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="<nothing>"/>
- <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="DuskZ" 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 DuskZ -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 "1.0"/>
- <contains string="${version-output}" substring="java version "1.1"/>
- <contains string="${version-output}" substring="java version "1.2"/>
- <contains string="${version-output}" substring="java version "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: DuskZ 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>
- <antcall target="-maybe-call-dep">
- <param name="call.built.properties" value="${built-jar.properties}"/>
- <param location="${project.DuskCommon}" name="call.subproject"/>
- <param location="${project.DuskCommon}/build.xml" name="call.script"/>
- <param name="call.target" value="jar"/>
- <param name="transfer.built-jar.properties" value="${built-jar.properties}"/>
- </antcall>
- </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: DuskZ 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>
- <antcall target="-maybe-call-dep">
- <param name="call.built.properties" value="${built-clean.properties}"/>
- <param location="${project.DuskCommon}" name="call.subproject"/>
- <param location="${project.DuskCommon}/build.xml" name="call.script"/>
- <param name="call.target" value="clean"/>
- <param name="transfer.built-clean.properties" value="${built-clean.properties}"/>
- </antcall>
- </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>
+++ /dev/null
-# Do not modify this property in this configuration. It can be re-generated.
-$label=Run as WebStart
+++ /dev/null
-# Do not modify this property in this configuration. It can be re-generated.
-$label=Run in Browser
+++ /dev/null
-build.xml.data.CRC32=be5f771c
-build.xml.script.CRC32=d9af4be0
-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=46d0094e
-nbproject/build-impl.xml.script.CRC32=21080c51
-nbproject/build-impl.xml.stylesheet.CRC32=c6d2a60f@1.56.1.46
+++ /dev/null
-<?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 "1.0"/>
- <contains string="${version-output}" substring="java version "1.1"/>
- <contains string="${version-output}" substring="java version "1.2"/>
- <contains string="${version-output}" substring="java version "1.3"/>
- <contains string="${version-output}" substring="java version "1.4"/>
- <contains string="${version-output}" substring="java version "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 "1.7.0_04"/>
- <contains string="${version-output}" substring="java version "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 "1.6"/>
- <contains string="${version-output}" substring="java version "1.7.0""/>
- <contains string="${version-output}" substring="java version "1.7.0_01"/>
- <contains string="${version-output}" substring="java version "1.7.0_02"/>
- <contains string="${version-output}" substring="java version "1.7.0_03"/>
- <contains string="${version-output}" substring="java version "1.7.0_04"/>
- <contains string="${version-output}" substring="java version "1.7.0_05"/>
- </or>
- </condition>
- <condition property="have-jdk7-css2bin-bug">
- <or>
- <contains string="${version-output}" substring="java version "1.7.0_04"/>
- <contains string="${version-output}" substring="java version "1.7.0_05"/>
- <contains string="${version-output}" substring="java version "1.7.0_06"/>
- <contains string="${version-output}" substring="java version "1.7.0_07"/>
- <contains string="${version-output}" substring="java version "1.7.0_08"/>
- <contains string="${version-output}" substring="java version "1.7.0_09"/>
- <contains string="${version-output}" substring="java version "1.7.0_10"/>
- <contains string="${version-output}" substring="java version "1.7.0_11"/>
- </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 "1.0"/>
- <contains string="${version-output}" substring="java version "1.1"/>
- <contains string="${version-output}" substring="java version "1.2"/>
- <contains string="${version-output}" substring="java version "1.3"/>
- <contains string="${version-output}" substring="java version "1.4"/>
- <contains string="${version-output}" substring="java version "1.5"/>
- <contains string="${version-output}" substring="java version "1.6"/>
- <contains string="${version-output}" substring="java version "1.7.0""/>
- <contains string="${version-output}" substring="java version "1.7.0_01"/>
- <contains string="${version-output}" substring="java version "1.7.0_02"/>
- <contains string="${version-output}" substring="java version "1.7.0_03"/>
- <contains string="${version-output}" substring="java version "1.7.0_04"/>
- <contains string="${version-output}" substring="java version "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="<default config>"/>
- </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 <fx:csstobin> 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 <fx:jar> 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 <fx:deploy> 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} <security>${line.separator} <all-permissions/>${line.separator} </security>" else="">
- <isset property="permissions-elevated"/>
- </condition>
- <local name="offline-allowed-token"/>
- <condition property="offline-allowed-token" value="${line.separator} <offline-allowed/>" 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} <icon href="${javafx.deploy.icon.basename}" kind="default"/>">
- <isset property="local-icon-filename-available"/>
- </condition>
- <condition property="icon-token" value="${line.separator} <icon href="${javafx.deploy.icon}" kind="default"/>" 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="${run.jvmargs}" " 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 <fx:application> 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 <fx:application> 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 <fx:application> 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 <fx:deploy> 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 <fx:deploy> 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 "${ant.java.version}"/>
- <condition property="have-jdk-older-than-1.4">
- <or>
- <contains string="${version-output}" substring="java version "1.0"/>
- <contains string="${version-output}" substring="java version "1.1"/>
- <contains string="${version-output}" substring="java version "1.2"/>
- <contains string="${version-output}" substring="java version "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>
+++ /dev/null
-project.license=dusk3
-annotation.processing.enabled=true
-annotation.processing.enabled.in.editor=false
-annotation.processing.processors.list=
-annotation.processing.run.all.processors=true
-annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
-application.title=DuskZ
-application.vendor=notzed
-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}/DuskZ.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:\
- ${reference.DuskCommon.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}
-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.adddesktopshortcut=false
-javafx.deploy.addstartmenushortcut=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
-javafx.deploy.installpermanently=false
-javafx.deploy.permissionselevated=false
-# 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=duskz.client.fx.DuskFX
-javafx.native.bundling.enabled=false
-javafx.native.bundling.type=none
-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}
-javafx.signing.enabled=false
-javafx.signing.type=notsigned
-# 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
-mkdist.disabled=false
-platform.active=Default_JavaFX_Platform
-project.DuskCommon=../DuskCommon
-reference.DuskCommon.jar=${project.DuskCommon}/dist/DuskCommon.jar
-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
+++ /dev/null
-<?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>DuskZ</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>
- <references xmlns="http://www.netbeans.org/ns/ant-project-references/1">
- <reference>
- <foreign-project>DuskCommon</foreign-project>
- <artifact-type>jar</artifact-type>
- <script>build.xml</script>
- <target>jar</target>
- <clean-target>clean</clean-target>
- <id>jar</id>
- </reference>
- </references>
- </configuration>
-</project>
-# Temporary makefile
+dist_VERSION=0.1.99
+dist_NAME=duskz
+dist_EXTRA=
-SUBDIRS=DuskCommon DuskServer DuskZ
-JAVA_HOME=/usr/local/jdk
-JAVAFX_HOME=/usr/local/javafx-sdk
-ANT=/usr/local/netbeans/extide/ant/bin/ant
+include config.make
-JAVAC=$(JAVA_HOME)/bin/javac
-JAVA=$(JAVA_HOME)/bin/java
+java_MODULES = duskz.common duskz.client duskz.server
-maven_central_JARS = \
- jakarta.xml.bind:jakarta.xml.bind-api:4.0.0 \
- jakarta.activation:jakarta.activation-api:2.1.1 \
- com.sun.xml.bind:jaxb-impl:4.0.1 \
- com.sun.xml.bind:jaxb-core:4.0.2
+duskz.client_JDEPMOD = duskz.common
+duskz.server_JDEPMOD = duskz.common
+
+include java.make
+
+maven_central_JARS = \
+ jakarta.xml.bind:jakarta.xml.bind-api:4.0.0 \
+ jakarta.activation:jakarta.activation-api:2.1.1 \
+ com.sun.xml.bind:jaxb-impl:4.0.1 \
+ com.sun.xml.bind:jaxb-core:4.0.2
# two possible javascript engines
maven_central_JARS += \
# org.mozilla:rhino:1.7.14 \
# org.mozilla:rhino-engine:1.7.14
-javafx_LIBS=$(patsubst %,$(JAVAFX_HOME)/lib/%.jar,javafx.base javafx.controls javafx.graphics)
-server_LIBS=$(strip $(foreach lib,$(maven_central_JARS),\
- .lib/$(word 2,$(subst :, ,$(lib)))-$(word 3,$(subst :, ,$(lib))).jar))
-
-client_LIBS=$(javafx_LIBS)
-tilez_LIBS=$(strip $(foreach lib,$(maven_central_JARS),\
- .lib/$(word 2,$(subst :, ,$(lib)))-$(word 3,$(subst :, ,$(lib))).jar) \
- DuskServer/build/classes \
- DuskZ/build/classes \
- $(javafx_LIBS))
-
-E:=
-S:=$(E) $(E)
-
-all:
- $(JAVAC) -g -d DuskCommon/build/classes \
- $$(find DuskCommon/src -name '*.java')
- $(JAVAC) -g -d DuskServer/build/classes \
- -cp $(subst $(S),:,$(server_LIBS) DuskCommon/build/classes) \
- $$(find DuskServer/src -name '*.java')
- $(JAVAC) -g -d DuskZ/build/classes \
- -cp $(subst $(S),:,$(client_LIBS) DuskCommon/build/classes) \
- $$(find DuskZ/src -name '*.java')
-
-tilez:
- $(JAVAC) -g -d TileZ/build/classes \
- -cp $(subst $(S),:,$(tilez_LIBS)) \
- $$(find TileZ/src -name '*.java')
-
-clean:
- set -e ; for d in $(SUBDIRS); do \
- rm -rf "$$d/build" ; \
- done
+include maven.make
-run-server:
+run-server-old: duskz.server
+ cd game-2.7.3 && \
$(JAVA) \
- -cp $(subst $(S),:,$(server_LIBS) DuskServer/build/classes DuskCommon/build/classes) \
- duskz.server.entityz.GameServer game
+ --module-path $(JAVAFX_HOME)/lib:../.lib:../bin/$(TARGET)/lib \
+ -m duskz.server/duskz.server.DuskServer
-run-client:
+run-server: duskz.server
$(JAVA) \
- --module-path $(JAVAFX_HOME)/lib \
- --add-modules javafx.graphics,javafx.controls \
- -cp $(subst $(S),:,DuskZ/build/classes DuskCommon/build/classes DuskZ/src) \
- duskz.client.fx.DuskFX
-
+ --module-path $(JAVAFX_HOME)/lib:../.lib:../bin/$(TARGET)/lib \
+ -m duskz.server/duskz.server.entityz.GameServer game
-include maven.make
+run-client: duskz.client
+ $(JAVA) \
+ $(if $(JAVAMODPATH),--module-path $(subst $(S),:,$(JAVAMODPATH))) \
+ -m duskz.client/duskz.client.fx.DuskFX
-DuskRPG with JavaFX client
+CODE STATUS Feburary 2023
+-------------------------
+
+Well I can't believe it's been 10 years ... but Xyphoid asked me if i
+still had the source around so i dug it out and did a bit of work to
+make it build with the latest OpenJDK and JavaFX. I also decided to
+modularise it, it wasn't much work and it simplifies building,
+particulalry inside Netbeans.
+
+This version builds with OpenJDK 19, JavaFX 19, and Netbeans 17,
+although it should work with earlier versions (OpenJDK 11 or 17
+perhaps).
+
+This branch is before the berkeleydb work although that was never
+implemented anyway and isn't hard to merge in.
+
+CODE STATUS September 2013
--------------------------
-This updates the code to build and run with OpenJDK 19 and JavaFX 19
-using the existing file structure. This is a placeholder before
-converting to a modularised project.
+After a very active development period the work simply stopped - so it
+is in a bit of a half-way state as you'd imagine. Other time
+pressures and interests meant I haven't had time to work on this for
+months but I hope to again one day in some shape or form.
+
+Essentially the code in duskz/server and duskz/server/entity is the
+original Dusk code which has been refactored a bit (badly), updated to
+newer Java and a new protocol (I think), but more or less shares the
+original features and data format. It's basically a dead branch.
+
+The code in dusk/server/entityz is mostly a complete re-write of the
+object class hierarchy, data i/o, map handling and a few other things.
+Unfortunately as it was in active development when it stopped it too
+isn't entirely in a good state either.
+
+I think the object heirarchy is pretty good, and the script system was
+"upgraded" to javascript but there is a ton of work left to make it
+usable. In hindsight i should've gone straight to a database
+(berkeleydb) backend as too much of the entity code is dealing with
+i/o.
+
+INTRODUCTION
+------------
+
+This is a fork and major overhaul of the Dusk 2.7.3 source code,
+released circa 2000. The main changes are updating for 20 years of
+Java progress, a new binary network protocol, and a (rudimentary)
+JavaFX client.
+
+A compatible game is required - each server implementation uses
+slightly different game formats.
-Info
-----
+This is currently in an alpha state.
-Only a rudimentary makefile is provided.
+ ... to be completed ...
-First:
+BUIDING
+-------
+
+First get the 3rd party libraries from maven:
$ make maven-init
-$ make all
-This downloads maven artifacts required and then compiles everything,
-maven-init only needs to be run once.
+Then build everything:
+
+$ make
+
+TODO: make a jlink target
+TODO: Netbeans
+
+INSTALLATION
+------------
+
+TODO: depends on jlink thing
+TODO: where to put game files
+
+RUNNING
+-------
+
+See the Makefile targets run-server, run-server-old, and run-client.
+
+LICENSE
+-------
+ DuskZ is free software, see COPYING for your rights.
+
+ Some files are under other compatible licenses.
-$ make run-server
+ Copyright (C) 2000 Tom Weingarten <captaint@home.com>
+ Copyright (C) 2013 Michael Zucchi <notzed@gmail.com>
-Start the server. A compatible game must be installed in './game'.
+ DuskZ is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
-$ make run-client
+ DuskZ is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-Run the client. Requires client data files.
+ You should have received a copy of the GNU General Public License
+ along with DuskZ; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+++ /dev/null
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- <program> Copyright (C) <year> <name of author>
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+++ /dev/null
-
-README
-------
-
-This is pre-alpha work-in-progress map editor for DuskZ using JavaFX.
-
-In it's present state it allows for loading of a Tiled map and cross
-referencing the content of an 'old' Dusk game with a 'new' DuskZ game
-(i.e. scripts so on).
-
-At the moment it is hardcoded to data I only have locally so isn't
-much use to anyone else.
-
-I can't even remember if i had intented to keep working on or or just
-use it as a transition tool. There is very little code here at any
-rate and most of it was a JavaFX learning exercise.
+++ /dev/null
-<?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="TileZ" default="default" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant">
- <description>Builds, tests, and runs the project TileZ.</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>
+++ /dev/null
-Manifest-Version: 1.0
-X-COMMENT: Main-Class will be added automatically by build
-
+++ /dev/null
-<?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="TileZ-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=<path_to_property_file> jar (where you put the property "platforms.${platform.active}.home" in a .properties file)
- or ant -Dplatforms.${platform.active}.home=<path_to_JDK_home> 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="<nothing>"/>
- <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="TileZ" 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 TileZ -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 "1.0"/>
- <contains string="${version-output}" substring="java version "1.1"/>
- <contains string="${version-output}" substring="java version "1.2"/>
- <contains string="${version-output}" substring="java version "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: TileZ 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>
- <antcall target="-maybe-call-dep">
- <param name="call.built.properties" value="${built-jar.properties}"/>
- <param location="${project.DuskServer}" name="call.subproject"/>
- <param location="${project.DuskServer}/build.xml" name="call.script"/>
- <param name="call.target" value="jar"/>
- <param name="transfer.built-jar.properties" value="${built-jar.properties}"/>
- </antcall>
- <antcall target="-maybe-call-dep">
- <param name="call.built.properties" value="${built-jar.properties}"/>
- <param location="${project.DuskZ}" name="call.subproject"/>
- <param location="${project.DuskZ}/build.xml" name="call.script"/>
- <param name="call.target" value="jar"/>
- <param name="transfer.built-jar.properties" value="${built-jar.properties}"/>
- </antcall>
- </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: TileZ 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>
- <antcall target="-maybe-call-dep">
- <param name="call.built.properties" value="${built-clean.properties}"/>
- <param location="${project.DuskServer}" name="call.subproject"/>
- <param location="${project.DuskServer}/build.xml" name="call.script"/>
- <param name="call.target" value="clean"/>
- <param name="transfer.built-clean.properties" value="${built-clean.properties}"/>
- </antcall>
- <antcall target="-maybe-call-dep">
- <param name="call.built.properties" value="${built-clean.properties}"/>
- <param location="${project.DuskZ}" name="call.subproject"/>
- <param location="${project.DuskZ}/build.xml" name="call.script"/>
- <param name="call.target" value="clean"/>
- <param name="transfer.built-clean.properties" value="${built-clean.properties}"/>
- </antcall>
- </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>
+++ /dev/null
-# Do not modify this property in this configuration. It can be re-generated.
-$label=Run as WebStart
+++ /dev/null
-# Do not modify this property in this configuration. It can be re-generated.
-$label=Run in Browser
+++ /dev/null
-build.xml.data.CRC32=79945bc4
-build.xml.script.CRC32=80e8c13b
-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=75566cc4
-nbproject/build-impl.xml.script.CRC32=fd7d9148
-nbproject/build-impl.xml.stylesheet.CRC32=c6d2a60f@1.56.1.46
+++ /dev/null
-<?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 "1.0"/>
- <contains string="${version-output}" substring="java version "1.1"/>
- <contains string="${version-output}" substring="java version "1.2"/>
- <contains string="${version-output}" substring="java version "1.3"/>
- <contains string="${version-output}" substring="java version "1.4"/>
- <contains string="${version-output}" substring="java version "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 "1.7.0_04"/>
- <contains string="${version-output}" substring="java version "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 "1.6"/>
- <contains string="${version-output}" substring="java version "1.7.0""/>
- <contains string="${version-output}" substring="java version "1.7.0_01"/>
- <contains string="${version-output}" substring="java version "1.7.0_02"/>
- <contains string="${version-output}" substring="java version "1.7.0_03"/>
- <contains string="${version-output}" substring="java version "1.7.0_04"/>
- <contains string="${version-output}" substring="java version "1.7.0_05"/>
- </or>
- </condition>
- <condition property="have-jdk7-css2bin-bug">
- <or>
- <contains string="${version-output}" substring="java version "1.7.0_04"/>
- <contains string="${version-output}" substring="java version "1.7.0_05"/>
- <contains string="${version-output}" substring="java version "1.7.0_06"/>
- <contains string="${version-output}" substring="java version "1.7.0_07"/>
- <contains string="${version-output}" substring="java version "1.7.0_08"/>
- <contains string="${version-output}" substring="java version "1.7.0_09"/>
- <contains string="${version-output}" substring="java version "1.7.0_10"/>
- <contains string="${version-output}" substring="java version "1.7.0_11"/>
- </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 "1.0"/>
- <contains string="${version-output}" substring="java version "1.1"/>
- <contains string="${version-output}" substring="java version "1.2"/>
- <contains string="${version-output}" substring="java version "1.3"/>
- <contains string="${version-output}" substring="java version "1.4"/>
- <contains string="${version-output}" substring="java version "1.5"/>
- <contains string="${version-output}" substring="java version "1.6"/>
- <contains string="${version-output}" substring="java version "1.7.0""/>
- <contains string="${version-output}" substring="java version "1.7.0_01"/>
- <contains string="${version-output}" substring="java version "1.7.0_02"/>
- <contains string="${version-output}" substring="java version "1.7.0_03"/>
- <contains string="${version-output}" substring="java version "1.7.0_04"/>
- <contains string="${version-output}" substring="java version "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="<default config>"/>
- </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 <fx:csstobin> 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 <fx:jar> 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 <fx:deploy> 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} <security>${line.separator} <all-permissions/>${line.separator} </security>" else="">
- <isset property="permissions-elevated"/>
- </condition>
- <local name="offline-allowed-token"/>
- <condition property="offline-allowed-token" value="${line.separator} <offline-allowed/>" 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} <icon href="${javafx.deploy.icon.basename}" kind="default"/>">
- <isset property="local-icon-filename-available"/>
- </condition>
- <condition property="icon-token" value="${line.separator} <icon href="${javafx.deploy.icon}" kind="default"/>" 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="${run.jvmargs}" " 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 <fx:application> 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 <fx:application> 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 <fx:application> 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 <fx:deploy> 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 <fx:deploy> 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 "${ant.java.version}"/>
- <condition property="have-jdk-older-than-1.4">
- <or>
- <contains string="${version-output}" substring="java version "1.0"/>
- <contains string="${version-output}" substring="java version "1.1"/>
- <contains string="${version-output}" substring="java version "1.2"/>
- <contains string="${version-output}" substring="java version "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>
+++ /dev/null
-project.DuskServer=../DuskServer
-project.DuskZ=../DuskZ
-project.license=gpl30
-annotation.processing.enabled=true
-annotation.processing.enabled.in.editor=false
-annotation.processing.processors.list=
-annotation.processing.run.all.processors=true
-annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
-application.title=TileZ
-application.vendor=Michael Zucchi
-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}/TileZ.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:\
- ${reference.DuskServer.jar}:\
- ${reference.DuskZ.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}
-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.adddesktopshortcut=false
-javafx.deploy.addstartmenushortcut=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
-javafx.deploy.installpermanently=false
-javafx.deploy.permissionselevated=false
-# 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=au.notzed.tilez.TileZ
-javafx.native.bundling.enabled=false
-javafx.native.bundling.type=none
-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}
-javafx.signing.enabled=false
-javafx.signing.type=notsigned
-# 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
-mkdist.disabled=false
-platform.active=Default_JavaFX_Platform
-reference.DuskServer.jar=${project.DuskServer}/dist/DuskServer.jar
-reference.DuskZ.jar=${project.DuskZ}/dist/DuskZ.jar
-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
+++ /dev/null
-<?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>TileZ</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>
- <references xmlns="http://www.netbeans.org/ns/ant-project-references/1">
- <reference>
- <foreign-project>DuskServer</foreign-project>
- <artifact-type>jar</artifact-type>
- <script>build.xml</script>
- <target>jar</target>
- <clean-target>clean</clean-target>
- <id>jar</id>
- </reference>
- <reference>
- <foreign-project>DuskZ</foreign-project>
- <artifact-type>jar</artifact-type>
- <script>build.xml</script>
- <target>jar</target>
- <clean-target>clean</clean-target>
- <id>jar</id>
- </reference>
- </references>
- </configuration>
-</project>
--- /dev/null
+
+TARGET ?= linux-amd64
+
+JAVA_HOME ?= /usr/local/jdk
+JAVAFX_HOME ?= /usr/local/javafx-sdk
+
+JAVAMODPATH = $(JAVAFX_HOME)/lib .lib bin/$(TARGET)/lib
+JAVACFLAGS = --source 19
+
+JAVA ?= $(JAVA_HOME)/bin/java
+JAVAC ?= $(JAVA_HOME)/bin/javac
+JAR ?= $(JAVA_HOME)/bin/jar
+JMOD ?= $(JAVA_HOME)/bin/jmod
+
--- /dev/null
+#
+# Copyright (C) 2019,2022 Michael Zucchi
+#
+# This is the copyright for java.make
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+# General purpose modular java makefile that supports native library
+# compilation directly. Non-recrusve implementation.
+#
+# Uses metamake programming with some file conventions to implement
+# auto-make-like features.
+
+# Define modules
+# --------------
+# java_MODULES list of java modules to compile. The sources must
+# exist in src/<module>/classes. Resource files are
+# stored in src/<module>/classes. Source-code
+# generators must exist in src/<module>/gen. Native
+# libraries must exist in src/<module>/jni.
+
+# native_MODULES list of native-only "modules".
+
+
+# Global variables
+
+# JAVA_HOME location of jdk.
+# JAVAC java compiler to use. Default is 'javac' on the path.
+# JAVACFLAGS javac flags applied to all invocations.
+# JAR jar command.
+# JARFLAGS jar flags
+# JMOD jmod command.
+# JMODFLAGS jmod flags.
+# JAVAFLAGS java flags for run targets
+
+# Module specific variables
+
+# <module>_JDEPMOD Lists modules which this one depends on.
+
+# <module>_JAVACFLAGS Extra module-specific flags for each command.
+# <module>_JARFLAGS
+# <module>_JMODFLAGS
+
+# all paths are relative to the root package name
+
+# <module>_JAVA Java sources. If not set it is found from src/<module>/classes/(*.java)
+# <module>_RESOURCES .jar resources. If not set it is found from src/<module>/classes/(not *.java)
+# <module>_JAVA_GENERATED Java generated sources.
+# <module>_RESOURCES_GENERATED Java generated sources.
+
+# Variables for use in fragments
+
+# gen.make and jni.make can additionally make use of these variables
+
+# <module>_gendir Location for files used in Java generation process (per project).
+# <module>_genjavadir Location where _JAVA_GENERATED .java files will be created (per project).
+# <module>_objdir Location for c objects (per target).
+# <module>_incdir Location for output includes, .jmod staging.
+# <module>_libdir Location for output libraries, .jmod staging. May point to _bindir.
+# <module>_bindir Location for output commands, .jmod staging.
+
+# Define libraries
+# ----------------
+
+# Each module can define one or more native libraries.
+
+# These are compiled after the java sources have been compiled as that
+# process also generates any native binding headers.
+
+# <module>_NATIVE_LIBRARIES list of libraries to build.
+# library names match System.loadLibrary().
+
+# Global variables
+
+# <target>_LDFLAGS
+# <target>_LDLIBS
+# <target>_CPPFLAGS
+# <target>_CFLAGS
+# <target>_CC
+# <target>_CXXFLAGS
+# <target>_CXX
+# SO shared library suffix
+# LIB shared library prefix
+
+# Utility functions
+#
+# $(call library-path,<module>,<libname>) will resolve to the library file name.
+
+# Per library variables.
+
+# <library>_SOURCES .c source files for library. Paths are relative to src/<module>/native.
+# <library>_CXXSOURCES .c source files for library. Paths are relative to src/<module>/native.
+# <library>_HEADERS header files for install/jmod
+# <library>_COMMANDS commands/bin/scripts for install/jmod
+
+# <library>_LDFLAGS link flags
+# <library>_LIBADD extra objects to add to link line
+# <library>_LDLIBS link libraries
+# <library>_CPPFLAGS c and c++ pre-processor flags. "-Isrc/<module>/jni -Ibin/include/<module>" is implicit.
+# <library>_CCFLAGS c compiler flags
+# <library>_CXXFLAGS c++ compiler flags
+
+# <library>_DEPENDENCIES A list of other objects on which this library depends before linking.
+
+# .c and .cc files have dependencies automatically generated
+
+# Targets
+# -------
+
+# make gen only generate java sources
+# make clean rm -rf bin
+# make dist create dist tar in bin/
+# make | make jar make all jars and jmods
+
+# Outputs
+# -------
+
+# All intermediate and output files are written to bin/
+
+# This layout is enforced by javac
+# bin/include/<module>/ .h files from javac -h
+# bin/modules/<module>/ .class files from javac
+
+# This layout is convenient for netbeans
+# bin/gen/<module>/gen/ .c, exe files for generator free use
+# bin/gen/<module>/classes/ .java files from generator <module>_JAVA_GENERATED
+
+# Working files
+# bin/status/ marker files for makefile
+
+# bin/<module>/<target>/lib .so librareies for jmod <module>_LIBRARIES = libname
+# bin/<module>/<target>/obj .o, .d files for library <libname>_SOURCES
+# bin/<module>/<target>/include .h files for jmod <libname>_HEADERS
+# bin/<module>/<target>/<module>.jmod .jmod module
+
+# Output files
+# bin/<target>/lib/ modular jar files and shared libraries for GNU/linux dev
+# bin/<target>/include/ header files for exported shared libraries
+# bin/<target>/bin/ shared libraries for microsoft dev
+# bin/<target>/jmods/ jmod files for 'jlink' use.
+
+# ######################################################################
+
+all_MODULES = $(java_MODULES) $(native_MODULES)
+
+E:=
+S:=$(E) $(E)
+SO=$($(TARGET)_SO)
+LIB=$($(TARGET)_LIB)
+
+# Define some useful variables before including fragments
+define common_variables=
+$1_gendir:=bin/gen/$1/gen
+$1_genjavadir:=bin/gen/$1/classes
+$1_objdir:=bin/$1/$(TARGET)/obj
+$1_incdir:=bin/$1/$(TARGET)/include
+$1_libdir:=$$(if $$(filter windows-%,$(TARGET)),bin/$1/$(TARGET)/bin,bin/$1/$(TARGET)/lib)
+$1_bindir:=bin/$1/$(TARGET)/bin
+endef
+
+define java_variables=
+ifndef $1_JAVA
+$1_JAVA := $$(shell cd src/$1/classes && find * -type f -name '*.java')
+endif
+ifndef $1_RESOURCES
+$1_RESOURCES := $$(shell cd src/$1/classes && find * -type f \! -name '*.java')
+endif
+endef
+
+java_libdir:=$(if $(filter windows-%,$(TARGET)),bin/$(TARGET)/bin,bin/$(TARGET)/lib)
+java_bindir:=bin/$(TARGET)/bin
+java_jardir:=bin/$(TARGET)/lib
+java_incdir:=bin/$(TARGET)/include
+java_jmoddir:=bin/$(TARGET)/jmods
+
+$(foreach module,$(java_MODULES) $(native_MODULES),$(eval $(call common_variables,$(module))))
+$(foreach module,$(java_MODULES),$(eval $(call java_variables,$(module))))
+
+# ######################################################################
+
+all:
+jar:
+gen:
+
+.PHONY: all clean jar gen $(java_MODULES) dist
+clean:
+ rm -rf bin
+
+# dist things
+dist_TAR = bin/$(dist_NAME)-$(dist_VERSION).tar.gz
+dist_FILES = config.make.in java.make Makefile src $(dist_EXTRA)
+
+# Gen is things that go into the jar (sources and resources)
+include $(wildcard $(all_MODULES:%=src/%/gen/gen.make))
+# Native is things that go into the sdk/jmod
+include $(wildcard $(all_MODULES:%=src/%/native/native.make))
+
+# ######################################################################
+
+# create module depencies
+# variables:
+# <module>_sdk is the target location of an expanded 'sdk' for this module
+# it resides in a common location bin/<target>/
+# <module>_jmod is the target location of a staging area for jmod files
+# is resides in a per-module lcoation bin/<module>/<target>/
+# <module>_java is all the targets that will cause the invocation of javac
+# it includes the module source, generated sources, and sentinals for generated sources
+
+# targets:
+# bin/status/<module>.depjava marks all source/generated sources are ready/updated
+# bin/status/<module>.depjar all compiled class files and resources are ready/updated
+# bin/status/<module>.sdk all files are available in bin/<target> as if it was an installed image
+
+define module_vars=
+$1_sdk := $(addprefix $(java_bindir)/,$($1_COMMANDS)) $(addprefix $(java_libdir)/,$($1_LIBRARIES)) $($1_NATIVE_LIBRARIES:%=$(java_libdir)/lib%.so)
+$1_jmod := $(addprefix $($1_bindir)/,$($1_COMMANDS)) $(addprefix $($1_libdir)/,$($1_LIBRARIES)) $($1_NATIVE_LIBRARIES:%=$($1_libdir)/lib%.so)
+$1_java :=$($1_JAVA:%=src/$1/classes/%) $($1_JAVA_GENERATED:%=$($1_genjavadir)/%)
+$1_resources:= $($1_RESOURCES:%=src/$1/classes/%) $($1_RESOURCES_GENERATED:%=$($1_genjavadir)/%)
+$1_depjava := $($1_API:%=bin/status/$1-%.export) $(patsubst %,bin/status/%.classes, $(filter $($1_JDEPMOD),$(java_MODULES)))
+
+ifneq ("$$(strip $$($1_java) $$($1_depjava))", "")
+bin/status/$1.depjava: $$($1_java) $$($1_depjava)
+ @install -d $$(@D)
+ touch $$@
+bin/status/$1.depjar: bin/status/$1.classes $$($1_resources)
+ @install -d $$(@D)
+ touch $$@
+bin/status/$1.depmod: bin/status/$1.classes $$($1_resources) $$($1_jmod)
+ @install -d $$(@D)
+ touch $$@
+bin/status/$1.sdk: $(java_jardir)/$1.jar
+jar: $(java_jardir)/$1.jar
+gen: bin/status/$1.depjava
+$1 all: $(java_jardir)/$1.jar $(java_jmoddir)/$1.jmod
+else
+# acutally not sure here?
+$1 all: bin/status/$1.sdk
+endif
+
+$1-sdk sdk: bin/status/$1.sdk
+
+bin/status/$1.sdk: $$($1_sdk) $$($1_jmod)
+ @install -d $$(@D)
+ touch $$@
+
+endef
+
+#$(foreach m,$(all_MODULES),$(info $(call module_vars,$m)))
+$(foreach m,$(all_MODULES),$(eval $(call module_vars,$m)))
+
+# ######################################################################
+# notzed.nativez export-api
+# ######################################################################
+
+define api_targets=
+bin/status/$1-$2.export: src/$1/gen/$2.api src/$1/gen/$2.h
+bin/status/$1-$2.export:
+ mkdir -p bin/gen/$1/gen bin/status
+ $(NATIVEZ_HOME)/bin/export-api \
+ -w bin/gen/$1/gen -d bin/gen/$1/classes $($1_APIFLAGS) $($1_$2_APIFLAGS) src/$1/gen/$2.api
+ touch $$@
+
+bin/status/$1-$2.export.d:
+ @$(NATIVEZ_HOME)/bin/export-api -M -MT "$$(@:.d=) $$@" -MF $$@ \
+ -w bin/gen/$1/gen -d bin/gen/$1/classes $($1_APIFLAGS) $($1_$2_APIFLAGS) src/$1/gen/$2.api 2>/dev/null
+
+$(if $(filter clean dist gen,$(MAKECMDGOALS)),,-include bin/status/$1-$2.export.d)
+endef
+
+$(foreach m,$(all_MODULES),$(foreach a,$($m_API),$(eval $(call api_targets,$m,$a))))
+
+# ######################################################################
+# Java
+# ######################################################################
+
+# Build targets for java modules
+
+define java_targets=
+
+# Create (modular) jar
+$(java_jardir)/$1.jar: bin/status/$1.depjar
+ @install -d $$(@D)
+ $(JAR) cf $$@ \
+ $(JARFLAGS) $$($(1)_JARFLAGS) \
+ -C bin/modules/$(1) . \
+ $(if $($1_RESOURCES),$($1_RESOURCES:%=-C src/$1/classes %)) \
+ $(if $($1_RESOURCES_GENERATED),$($1_RESOURCES_GENERATED:%=-C bin/gen/$1/classes %))
+
+# Create a jmod
+$(java_jmoddir)/$1.jmod: bin/status/$1.depmod
+ rm -f $$@
+ @install -d $$(@D)
+ $$(JMOD) create \
+ $$(JMODFLAGS) $$($(1)_JMODFLAGS) \
+ --target-platform $(TARGET) \
+ --class-path bin/modules/$(1) \
+ $$(if $$(wildcard bin/$(1)/$(TARGET)/include),--header-files bin/$(1)/$(TARGET)/include) \
+ $$(if $$(wildcard src/$(1)/legal),--legal-notices src/$(1)/legal) \
+ $$(if $$(wildcard bin/$(1)/$(TARGET)/bin),--cmds bin/$(1)/$(TARGET)/bin) \
+ $$(if $$(wildcard bin/$(1)/$(TARGET)/lib),--libs bin/$(1)/$(TARGET)/lib) \
+ $$@
+
+# Create an IDE source zip, paths have to match --module-source-path
+$(java_jardir)/$1-sources.zip: bin/status/$1.depjar
+ @install -d $$(@D)
+ $(JAR) -c -f $$@ -M \
+ $$($1_JAVA:%=-C src/$1/classes %) \
+ $$($1_JAVA_GENERATED:%=-C bin/gen/$1/classes %)
+
+# resources
+bin/modules/$1/%: src/$1/classes/%
+ install -vD $$< $$@
+
+# Compile module.
+bin/status/$1.classes: bin/status/$1.depjava
+ @install -d $$(@D)
+ $(JAVAC) \
+ --module-source-path "src/*/classes:bin/gen/*/classes" \
+ $(if $(JAVAMODPATH),--module-path $(subst $(S),:,$(JAVAMODPATH))) \
+ $(JAVACFLAGS) $($1_JAVACFLAGS) \
+ -d bin/modules \
+ -m $1 \
+ $$($1_JAVA:%=src/$1/classes/%) \
+ $$($1_JAVA_GENERATED:%=bin/gen/$1/classes/%)
+ touch $$@
+endef
+
+#$(foreach module,$(java_MODULES),$(info $(call java_targets,$(module))))
+$(foreach module,$(java_MODULES),$(eval $(call java_targets,$(module))))
+
+# ######################################################################
+
+# setup run-* targets
+define run_targets=
+run-$1/$2: bin/status/$1.sdk $($1_JDEPMOD:%=bin/status/%.sdk)
+ LD_LIBRARY_PATH=$(FFMPEG_HOME)/lib \
+ $(JAVA) \
+ $(if $(strip $(JAVAMODPATH) $($1_JAVAMODPATH)),--module-path $(subst $(S),:,$(strip $(JAVAMODPATH) $($1_JAVAMODPATH)))) \
+ $(JMAINFLAGS) $($1_JMAINFLAGS) \
+ -m $1/$2 \
+ $(ARGV)
+.PHONY: run-$1/$2
+endef
+
+#$(foreach module,$(java_MODULES),$(foreach main,$($(module)_JMAIN),$(info $(call run_targets,$(module),$(main)))))
+$(foreach module,$(java_MODULES),$(foreach main,$($(module)_JMAIN),$(eval $(call run_targets,$(module),$(main)))))
+
+# ######################################################################
+# C and c++ native library support
+# ######################################################################
+
+define native_library=
+# Rule for library $$2 in module $$1
+$2_OBJS = $(patsubst %.c, $($1_objdir)/%.o, $($2_SOURCES)) \
+ $(patsubst %.cc, $($1_objdir)/%.o, $($2_CXXSOURCES))
+$2_SRCS = $(addprefix src/$1/native/,$($2_SOURCES))
+$2_SO = $($1_libdir)/$(LIB)$2$(SO)
+
+# Copy anything from staging area for jmods bin/module/<target>/* to sdk area bin/<target>/*
+$(java_libdir)/%: $($(1)_libdir)/%
+ @install -d $$(@D)
+ ln -fs $$(abspath $$<) $$@
+$(java_bindir)/%: $($(1)_bindir)/%
+ @install -d $$(@D)
+ ln -fs $$(abspath $$<) $$@
+$(java_incdir)/%: $($(1)_incdir)/%
+ @install -d $$(@D)
+ ln -fs $$(abspath $$<) $$@
+
+$($1_libdir)/$(LIB)$2$(SO): $$($2_OBJS) $($2_LIBADD) $($2_DEPENDENCIES)
+ @install -d $$(@D)
+ $($(TARGET)_CC) -o $$@ -shared \
+ $($(TARGET)_LDFLAGS) $($2_LDFLAGS) $$($2_OBJS) $($2_LIBADD) $($(TARGET)_LDLIBS) $($2_LDLIBS)
+
+$($1_objdir)/%.o: src/$1/native/%.c
+ @install -d $$(@D)
+ $($(TARGET)_CC) -Isrc/$1/native -Ibin/include/$1 \
+ $($(TARGET)_CPPFLAGS) $($2_CPPFLAGS) \
+ $($(TARGET)_CFLAGS) $($2_CFLAGS) -c -o $$@ $$<
+
+$($1_objdir)/%.o: src/$1/native/%.cc
+ @install -d $$(@D)
+ $($(TARGET)_CXX) -Isrc/$1/native -Ibin/include/$1 \
+ $($(TARGET)_CPPFLAGS) $($2_CPPFLAGS) \
+ $($(TARGET)_CXXFLAGS) $($2_CXXFLAGS) -c -o $$@ $$<
+
+# auto-dependencies for c files
+$($1_objdir)/%.d: src/$1/native/%.c
+ @install -d $$(@D)
+ @rm -f $$@
+ @$($(TARGET)_CC) -MM -MT "$$(@:.d=.o) $$@" -Isrc/$1/jni -Ibin/include/$1 \
+ $($(TARGET)_CPPFLAGS) $($2_CPPFLAGS) $$< -o $$@ 2>/dev/null
+
+# auto-dependencies for c++ files
+$($1_objdir)/%.d: src/$1/native/%.cc
+ @install -d $$(@D)
+ @rm -f $$@
+ @$($(TARGET)_CXX) -MM -MT "$$(@:.d=.o) $$@" -Isrc/$1/jni -Ibin/include/$1 \
+ $($(TARGET)_CPPFLAGS) $($2_CPPFLAGS) $$< -o $$@ 2>/dev/null
+
+$(if $(filter clean dist gen,$(MAKECMDGOALS)),,-include $$($2_OBJS:.o=.d))
+endef
+
+#$(foreach module,$(all_MODULES),$(foreach library,$($(module)_NATIVE_LIBRARIES),$(info $(call native_library,$(module),$(library)))))
+$(foreach module,$(all_MODULES),$(foreach library,$($(module)_NATIVE_LIBRARIES),$(eval $(call native_library,$(module),$(library)))))
+
+# ######################################################################
+
+dist:
+ @install -d bin
+ tar cfz bin/$(dist_NAME)-$(dist_VERSION).tar.gz \
+ --transform=s,^,$(dist_NAME)-$(dist_VERSION)/, \
+ $(dist_FILES)
--- /dev/null
+<?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:if="ant:if" xmlns:unless="ant:unless" basedir=".." default="default" name="DuskZ-impl">
+ <fail message="Please build using Ant 1.9.7 or higher.">
+ <condition>
+ <not>
+ <antversion atleast="1.9.7"/>
+ </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="9"/>
+ <property name="default.javac.target" value="9"/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user" name="-init-pre-project">
+ <property file="nbproject/configs/${config}.properties"/>
+ <property file="nbproject/project.properties"/>
+ <property name="netbeans.modular.tasks.version" value="1"/>
+ <property location="${build.dir}/tasks/${netbeans.modular.tasks.version}" name="netbeans.modular.tasks.dir"/>
+ </target>
+ <target depends="-init-pre-project" name="-check-netbeans-tasks">
+ <condition property="netbeans.tasks.compiled">
+ <available file="${netbeans.modular.tasks.dir}/out/netbeans/ModuleInfoSelector.class"/>
+ </condition>
+ </target>
+ <target depends="-init-pre-project,-check-netbeans-tasks" name="-init-compile-netbeans-tasks" unless="netbeans.tasks.compiled">
+ <echo file="${netbeans.modular.tasks.dir}/src/netbeans/CoalesceKeyvalue.java">
+
+package netbeans;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+public class CoalesceKeyvalue extends Task {
+ private String property;
+
+ public void setProperty(String property) {
+ this.property = property;
+ }
+
+ private String value;
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ private String valueSep;
+
+ public void setValueSep(String valueSep) {
+ this.valueSep = valueSep;
+ }
+
+ private String entrySep;
+
+ public void setEntrySep(String entrySep) {
+ this.entrySep = entrySep;
+ }
+
+ private String multiSep;
+
+ public void setMultiSep(String multiSep) {
+ this.multiSep = multiSep;
+ }
+
+ private String outSep;
+
+ public void setOutSep(String outSep) {
+ this.outSep = outSep;
+ }
+
+ @Override
+ public void execute() throws BuildException {
+ List<String> result = new ArrayList<>();
+ Map<String, List<String>> module2Paths = new HashMap<>();
+
+ for (String entry : value.split(Pattern.quote(entrySep))) {
+ String[] keyValue = entry.split(Pattern.quote(valueSep), 2);
+ if (keyValue.length == 1) {
+ result.add(keyValue[0]);
+ } else {
+ module2Paths.computeIfAbsent(keyValue[0], s -> new ArrayList<>())
+ .add(keyValue[1].trim());
+ }
+ }
+ module2Paths.entrySet()
+ .stream()
+ .forEach(e -> result.add(e.getKey() + valueSep + e.getValue().stream().collect(Collectors.joining(multiSep))));
+ getProject().setProperty(property, result.stream().collect(Collectors.joining(" " + entrySep)));
+ }
+
+}
+
+ </echo>
+ <echo file="${netbeans.modular.tasks.dir}/src/netbeans/ModsourceRegexp.java">
+
+package netbeans;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+public class ModsourceRegexp extends Task {
+ private String property;
+
+ public void setProperty(String property) {
+ this.property = property;
+ }
+
+ private String filePattern;
+
+ public void setFilePattern(String filePattern) {
+ this.filePattern = filePattern;
+ }
+
+ private String modsource;
+
+ public void setModsource(String modsource) {
+ this.modsource = modsource;
+ }
+
+ private List<String> expandGroup(String grp) {
+ List<String> exp = new ArrayList<>();
+ String item = "";
+ int depth = 0;
+
+ for (int i = 0; i < grp.length(); i++) {
+ char c = grp.charAt(i);
+ switch (c) {
+ case '{':
+ if (depth++ == 0) {
+ continue;
+ }
+ break;
+ case '}':
+ if (--depth == 0) {
+ exp.add(item);
+ continue;
+ }
+ break;
+ case ',':
+ if (depth == 1) {
+ exp.add(item);
+ item = "";
+ continue;
+ }
+ default:
+ break;
+ }
+ item = item + c;
+ }
+ return exp;
+ }
+
+ private List<String> pathVariants(String spec) {
+ return pathVariants(spec, new ArrayList<>());
+ }
+
+ private List<String> pathVariants(String spec, List<String> res) {
+ int start = spec.indexOf('{');
+ if (start == -1) {
+ res.add(spec);
+ return res;
+ }
+ int depth = 1;
+ int end;
+ for (end = start + 1; end < spec.length() && depth > 0; end++) {
+ char c = spec.charAt(end);
+ switch (c) {
+ case '{': depth++; break;
+ case '}': depth--; break;
+ }
+ }
+ String prefix = spec.substring(0, start);
+ String suffix = spec.substring(end);
+ expandGroup(spec.substring(start, end)).stream().forEach(item -> {
+ pathVariants(prefix + item + suffix, res);
+ });
+ return res;
+ }
+
+ private String toRegexp2(String spec, String filepattern, String separator) {
+ List<String> prefixes = new ArrayList<>();
+ List<String> suffixes = new ArrayList<>();
+ pathVariants(spec).forEach(item -> {
+ suffixes.add(item);
+ });
+ String tail = "";
+ String separatorString = separator;
+ if ("\\".equals(separatorString)) {
+ separatorString = "\\\\";
+ }
+ if (filepattern != null && !Objects.equals(filepattern, tail)) {
+ tail = separatorString + filepattern;
+ }
+ return "([^" + separatorString +"]+)\\Q" + separator + "\\E(" + suffixes.stream().collect(Collectors.joining("|")) + ")" + tail;
+ }
+
+ @Override
+ public void execute() throws BuildException {
+ getProject().setProperty(property, toRegexp2(modsource, filePattern, getProject().getProperty("file.separator")));
+ }
+
+}
+
+ </echo>
+ <echo file="${netbeans.modular.tasks.dir}/src/netbeans/ModuleInfoSelector.java">
+
+package netbeans;
+
+import java.io.File;
+import java.util.Arrays;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.types.selectors.BaseExtendSelector;
+
+public class ModuleInfoSelector extends BaseExtendSelector {
+
+ @Override
+ public boolean isSelected(File basedir, String filename, File file) throws BuildException {
+ String extension = Arrays.stream(getParameters())
+ .filter(p -> "extension".equals(p.getName()))
+ .map(p -> p.getValue())
+ .findAny()
+ .get();
+ return !new File(file, "module-info." + extension).exists();
+ }
+
+}
+
+ </echo>
+ <mkdir dir="${netbeans.modular.tasks.dir}/out"/>
+ <javac classpath="${ant.core.lib}" destdir="${netbeans.modular.tasks.dir}/out" srcdir="${netbeans.modular.tasks.dir}/src"/>
+ </target>
+ <target depends="-init-pre-project,-init-compile-netbeans-tasks" name="-init-project">
+ <taskdef classname="netbeans.CoalesceKeyvalue" classpath="${netbeans.modular.tasks.dir}/out" name="coalesce_keyvalue" uri="http://www.netbeans.org/ns/j2se-modular-project/1"/>
+ <taskdef classname="netbeans.ModsourceRegexp" classpath="${netbeans.modular.tasks.dir}/out" name="modsource_regexp" uri="http://www.netbeans.org/ns/j2se-modular-project/1"/>
+ </target>
+ <target name="-init-source-module-properties">
+ <property name="javac.modulepath" value=""/>
+ <property name="run.modulepath" value="${javac.modulepath}:${build.modules.dir}"/>
+ <property name="debug.modulepath" value="${run.modulepath}"/>
+ <property name="javac.upgrademodulepath" value=""/>
+ <property name="run.upgrademodulepath" value="${javac.upgrademodulepath}"/>
+ <condition else="" property="javac.systemmodulepath.cmd.line.arg" value="-system '${javac.systemmodulepath}'">
+ <and>
+ <isset property="javac.systemmodulepath"/>
+ <length length="0" string="${javac.systemmodulepath}" when="greater"/>
+ </and>
+ </condition>
+ <property name="dist.jlink.dir" value="${dist.dir}/jlink"/>
+ <property name="dist.jlink.output" value="${dist.jlink.dir}/${application.title}"/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
+ <property name="platform.java" value="${java.home}/bin/java"/>
+ <j2semodularproject1:modsource_regexp xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" modsource="${test.src.dir.path}" property="have.tests.test.src.dir.regexp"/>
+ <dirset dir="${basedir}/${test.src.dir}" id="have.tests.test.src.dir.set" includes="*/*">
+ <filename regex="${have.tests.test.src.dir.regexp}"/>
+ </dirset>
+ <union id="have.tests.set">
+ <dirset refid="have.tests.test.src.dir.set"/>
+ </union>
+ <condition property="have.tests">
+ <or>
+ <resourcecount count="0" when="greater">
+ <union refid="have.tests.set"/>
+ </resourcecount>
+ </or>
+ </condition>
+ <j2semodularproject1:modsource_regexp xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" modsource="${test.src.dir.path}" property="have.tests.test.src.dir.regexp"/>
+ <dirset dir="${basedir}/${test.src.dir}" id="have.tests.test.src.dir.patchset" includes="*/*">
+ <filename regex="${have.tests.test.src.dir.regexp}"/>
+ </dirset>
+ <union id="have.tests.patchset">
+ <dirset refid="have.tests.test.src.dir.patchset"/>
+ </union>
+ <j2semodularproject1:modsource_regexp xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" modsource="${src.dir.path}" property="have.sources.src.dir.regexp"/>
+ <dirset dir="${basedir}/${src.dir}" id="have.sources.src.dir.set" includes="*/*">
+ <filename regex="${have.sources.src.dir.regexp}"/>
+ </dirset>
+ <union id="have.sources.set">
+ <dirset refid="have.sources.src.dir.set"/>
+ </union>
+ <condition property="have.sources">
+ <or>
+ <resourcecount count="0" when="greater">
+ <union refid="have.sources.set"/>
+ </resourcecount>
+ </or>
+ </condition>
+ <condition property="main.class.available">
+ <and>
+ <isset property="main.class"/>
+ <not>
+ <equals arg1="${main.class}" arg2="" trim="true"/>
+ </not>
+ </and>
+ </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>
+ <condition property="do.archive">
+ <or>
+ <not>
+ <istrue value="${jar.archive.disabled}"/>
+ </not>
+ <istrue value="${not.archive.disabled}"/>
+ </or>
+ </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}'">
+ <and>
+ <isset property="endorsed.classpath"/>
+ <not>
+ <equals arg1="${endorsed.classpath}" arg2="" trim="true"/>
+ </not>
+ </and>
+ </condition>
+ <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}">
+ <isset property="profile.available"/>
+ </condition>
+ <condition else="false" property="jdkBug6558476">
+ <and>
+ <matches pattern="1\.[56]" string="${java.specification.version}"/>
+ <not>
+ <os family="unix"/>
+ </not>
+ </and>
+ </condition>
+ <condition else="false" property="javac.fork">
+ <or>
+ <istrue value="${jdkBug6558476}"/>
+ <istrue value="${javac.external.vm}"/>
+ </or>
+ </condition>
+ <condition property="main.class.check.available">
+ <and>
+ <isset property="libs.CopyLibs.classpath"/>
+ <available classname="org.netbeans.modules.java.j2seproject.moduletask.ModuleMainClass" classpath="${libs.CopyLibs.classpath}"/>
+ </and>
+ </condition>
+ <property name="jar.index" value="false"/>
+ <property name="jar.index.metainf" value="${jar.index}"/>
+ <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>
+ <property name="java.failonerror" value="true"/>
+ <macrodef name="for-paths" uri="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <attribute name="paths"/>
+ <attribute default="${path.separator}" name="separator"/>
+ <element implicit="yes" name="call"/>
+ <sequential>
+ <local name="entry"/>
+ <local name="tail"/>
+ <local name="moreElements"/>
+ <loadresource property="entry" quiet="true" unless:blank="@{paths}">
+ <concat>@{paths}</concat>
+ <filterchain>
+ <replaceregex pattern="([^@{separator}]*)\Q@{separator}\E.*" replace="\1"/>
+ </filterchain>
+ </loadresource>
+ <sequential if:set="entry">
+ <call/>
+ </sequential>
+ <condition else="false" property="moreElements" value="true">
+ <contains string="@{paths}" substring="@{separator}"/>
+ </condition>
+ <loadresource if:true="${moreElements}" property="tail" quiet="true">
+ <concat>@{paths}</concat>
+ <filterchain>
+ <replaceregex pattern="[^@{separator}]*\Q@{separator}\E(.*)" replace="\1"/>
+ </filterchain>
+ </loadresource>
+ <j2semodularproject1:for-paths xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" if:true="${moreElements}" paths="${tail}">
+ <call/>
+ </j2semodularproject1:for-paths>
+ </sequential>
+ </macrodef>
+ <property name="modules.supported.internal" value="true"/>
+ <condition else="${file.separator}" property="file.separator.string" value="\${file.separator}">
+ <equals arg1="${file.separator}" arg2="\"/>
+ </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" 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.modules.dir">Must set build.modules.dir</fail>
+ <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
+ <fail unless="build.test.modules.dir">Must set build.test.modules.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 message="Java 9 support requires Ant 1.10.0 or higher.">
+ <condition>
+ <not>
+ <antversion atleast="1.10.0"/>
+ </not>
+ </condition>
+ </fail>
+ </target>
+ <target name="-init-macrodef-property">
+ <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <attribute name="name"/>
+ <attribute name="value"/>
+ <sequential>
+ <property name="@{name}" value="${@{value}}"/>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-ap-cmdline-properties,-init-source-module-properties" name="-init-macrodef-javac">
+ <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <attribute default="${build.modules.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}" name="classpath"/>
+ <attribute default="${javac.modulepath}" name="modulepath"/>
+ <attribute default="${src.dir}/*/${src.dir.path}" name="modulesourcepath"/>
+ <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/>
+ <attribute default="${javac.processorpath}" name="processorpath"/>
+ <attribute default="${javac.processormodulepath}" name="processormodulepath"/>
+ <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="gensrcdir"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property location="${build.dir}/empty" name="empty.dir"/>
+ <mkdir dir="${empty.dir}"/>
+ <mkdir dir="@{apgeneratedsrcdir}"/>
+ <condition property="processormodulepath.set">
+ <resourcecount count="0" when="greater">
+ <path>
+ <pathelement path="@{processormodulepath}"/>
+ </path>
+ </resourcecount>
+ </condition>
+ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" target="${javac.target}" tempdir="${java.io.tmpdir}">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <modulepath>
+ <path path="@{modulepath}"/>
+ </modulepath>
+ <modulesourcepath>
+ <path path="@{modulesourcepath}"/>
+ </modulesourcepath>
+ <upgrademodulepath>
+ <path path="@{upgrademodulepath}"/>
+ </upgrademodulepath>
+ <compilerarg line="${javac.systemmodulepath.cmd.line.arg}"/>
+ <compilerarg line="${javac.profile.cmd.line.arg}"/>
+ <compilerarg line="${javac.compilerargs}"/>
+ <compilerarg if:set="processormodulepath.set" value="--processor-module-path"/>
+ <compilerarg if:set="processormodulepath.set" path="@{processormodulepath}"/>
+ <compilerarg unless:set="processormodulepath.set" value="-processorpath"/>
+ <compilerarg path="@{processorpath}:${empty.dir}" unless:set="processormodulepath.set"/>
+ <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-macrodef-javac" name="-init-macrodef-javac-depend">
+ <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <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-modular-project/1">
+ <attribute default="${build.modules.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="<nothing>"/>
+ <property name="test.binarytestincludes" value=""/>
+ <property name="test.binaryexcludes" value=""/>
+ </target>
+ <target name="-init-macrodef-junit-prototype">
+ <macrodef name="junit-prototype" uri="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <element name="customizePrototype" optional="true"/>
+ <sequential>
+ <property location="${build.dir}/empty" name="empty.dir"/>
+ <property name="junit.forkmode" value="perTest"/>
+ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ </classpath>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg value="-ea"/>
+ <jvmarg value="--module-path"/>
+ <jvmarg path="${run.modulepath}${path.separator}${run.test.modulepath}${path.separator}${empty.dir}"/>
+ <jvmarg line="${run.test.jvmargs}"/>
+ <customizePrototype/>
+ </junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-test-properties,-init-macrodef-junit-prototype" if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
+ <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <j2semodularproject1:junit-prototype xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <customizePrototype>
+ <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
+ <customize/>
+ </customizePrototype>
+ </j2semodularproject1:junit-prototype>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-test-properties,-init-macrodef-junit-prototype" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
+ <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <j2semodularproject1:junit-prototype xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <customizePrototype>
+ <batchtest todir="${build.test.results.dir}">
+ <mappedresources>
+ <union>
+ <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="**/@{includes}">
+ <filename name="**/@{testincludes}"/>
+ <filename regex="${have.tests.test.src.dir.regexp}"/>
+ </fileset>
+ </union>
+ <regexpmapper from="${have.tests.test.src.dir.regexp}\Q${file.separator}\E(.*)$" to="\3"/>
+ </mappedresources>
+ <fileset dir="${build.test.modules.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+ <filename name="${test.binarytestincludes}"/>
+ </fileset>
+ </batchtest>
+ <customize/>
+ </customizePrototype>
+ </j2semodularproject1:junit-prototype>
+ </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-modular-project/1">
+ <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" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="DuskZ" 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>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ </classpath>
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <customize/>
+ </testng>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-test-impl">
+ <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <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-modular-project/1">
+ <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>
+ <j2semodularproject1:junit xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize/>
+ </j2semodularproject1: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-modular-project/1">
+ <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>
+ <j2semodularproject1:testng xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize/>
+ </j2semodularproject1: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-modular-project/1">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <sequential>
+ <j2semodularproject1:test-impl xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize>
+ <jvmarg line="${run.jvmargs}"/>
+ <jvmarg line="${run.jvmargs.ide}"/>
+ </customize>
+ </j2semodularproject1:test-impl>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-debug-impl">
+ <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customizeDebuggee" optional="true"/>
+ <sequential>
+ <j2semodularproject1:junit xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize>
+ <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/>
+ <customizeDebuggee/>
+ </customize>
+ </j2semodularproject1:junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target if="${testng.available}" name="-init-macrodef-testng-debug">
+ <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <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 DuskZ -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}"/>
+ <j2semodularproject1:debug xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" classname="org.testng.TestNG" classpath="${debug.test.classpath}">
+ <customizeDebuggee>
+ <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}"/>
+ </customizeDebuggee>
+ </j2semodularproject1: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-modular-project/1">
+ <attribute default="${main.class}" name="testClass"/>
+ <attribute default="" name="testMethod"/>
+ <element implicit="true" name="customize2" optional="true"/>
+ <sequential>
+ <j2semodularproject1:testng-debug xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" testClass="@{testClass}" testMethod="@{testMethod}">
+ <customize2/>
+ </j2semodularproject1: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-modular-project/1">
+ <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>
+ <j2semodularproject1:test-debug-impl xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customizeDebuggee>
+ <jvmarg line="${run.jvmargs}"/>
+ <jvmarg line="${run.jvmargs.ide}"/>
+ </customizeDebuggee>
+ </j2semodularproject1: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-modular-project/1">
+ <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>
+ <j2semodularproject1:testng-debug-impl xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" testClass="@{testClass}" testMethod="@{testMethod}">
+ <customize2>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ </customize2>
+ </j2semodularproject1: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}" failonerror="${java.failonerror}" 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-modular-project/1">
+ <attribute default="${main.class}" name="name"/>
+ <attribute default="${debug.modulepath}" name="modulepath"/>
+ <attribute default="${debug.classpath}" name="classpath"/>
+ <attribute default="" name="stopclassname"/>
+ <sequential>
+ <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
+ <modulepath>
+ <path path="@{modulepath}"/>
+ </modulepath>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ </nbjpdastart>
+ </sequential>
+ </macrodef>
+ <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <attribute default="${debug.modules.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">
+ <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-modular-project/1">
+ <attribute default="${module.name}" name="modulename"/>
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${debug.modulepath}" name="modulepath"/>
+ <attribute default="${debug.classpath}" name="classpath"/>
+ <element name="customizeDebuggee" optional="true"/>
+ <sequential>
+ <j2semodularproject1:java xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" classname="@{classname}" classpath="@{classpath}" modulename="@{modulename}" modulepath="@{modulepath}">
+ <customize>
+ <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/>
+ <customizeDebuggee/>
+ </customize>
+ </j2semodularproject1:java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-source-module-properties" name="-init-macrodef-java">
+ <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <attribute default="${module.name}" name="modulename"/>
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${run.modulepath}" name="modulepath"/>
+ <attribute default="${run.upgrademodulepath}" name="upgrademodulepath"/>
+ <attribute default="${run.classpath}" name="classpath"/>
+ <attribute default="jvm" name="jvm"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true" module="@{modulename}">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <modulepath>
+ <path path="@{modulepath}"/>
+ </modulepath>
+ <upgrademodulepath>
+ <path path="@{upgrademodulepath}"/>
+ </upgrademodulepath>
+ <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}"/>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-presetdef-jar">
+ <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}" manifestencoding="UTF-8">
+ <j2semodularproject1:fileset xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
+ </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}"/>
+ </target>
+ <target depends="-init-ap-cmdline-properties" 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-depend,-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: DuskZ 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.modules.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
+ </target>
+ <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
+ <antcall target="clean">
+ <param name="no.dependencies" value="true"/>
+ </antcall>
+ </target>
+ <target name="-pre-pre-compile">
+ <mkdir dir="${build.modules.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>
+ <j2semodularproject1:depend xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" srcdir="${src.dir}:${build.generated.subdirs}"/>
+ </target>
+ <target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile">
+ <j2semodularproject1:javac xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" gensrcdir="${build.generated.sources.dir}"/>
+ <j2semodularproject1:modsource_regexp xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" filePattern="(.*$)" modsource="${src.dir.path}" property="src.dir.path.regexp"/>
+ <echo message="Copying resources from ${src.dir}"/>
+ <copy todir="${build.modules.dir}">
+ <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <regexpmapper from="${src.dir.path.regexp}" to="\1/\3"/>
+ </copy>
+ </target>
+ <target if="has.persistence.xml" name="-copy-persistence-xml">
+ <fail message="XXX: Not supported on MM projects"/>
+ <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" name="-do-compile-single">
+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+ <j2semodularproject1:force-recompile xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1"/>
+ <j2semodularproject1:javac xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}, module-info.java"/>
+ </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,compile" name="-check-module-main-class">
+ <condition property="do.module.main.class">
+ <and>
+ <available file="${module.dir}/module-info.class"/>
+ <isset property="main.class.check.available"/>
+ </and>
+ </condition>
+ </target>
+ <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 name="-pre-single-jar"/>
+ <target depends="-pre-single-jar" if="module.jar.filename" name="-make-single-jar">
+ <jar basedir="${module.dir}" compress="${jar.compress}" destfile="${dist.dir}/${module.jar.filename}" excludes="${dist.archive.excludes}" manifestencoding="UTF-8"/>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar,-main-module-check-condition" if="do.archive" name="-do-jar-jar" unless="do.mkdist">
+ <property location="${build.modules.dir}" name="build.modules.dir.resolved"/>
+ <dirset dir="${build.modules.dir.resolved}" id="do.jar.dirs" includes="*"/>
+ <pathconvert property="do.jar.dir.list" refid="do.jar.dirs">
+ <identitymapper/>
+ </pathconvert>
+ <j2semodularproject1:for-paths xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" paths="${do.jar.dir.list}">
+ <local name="module.jar.filename"/>
+ <local name="module.jar.name.tmp"/>
+ <basename file="${entry}" property="module.jar.name.tmp"/>
+ <property name="module.jar.filename" value="${module.jar.name.tmp}.jar"/>
+ <antcall inheritRefs="true" target="-make-single-jar">
+ <param name="module.jar.filename" value="${module.jar.filename}"/>
+ <param location="${entry}" name="module.dir"/>
+ </antcall>
+ </j2semodularproject1:for-paths>
+ <condition property="named.module.internal">
+ <and>
+ <isset property="module.name"/>
+ <length length="0" string="${module.name}" when="greater"/>
+ </and>
+ </condition>
+ <condition property="unnamed.module.internal">
+ <not>
+ <isset property="named.module.internal"/>
+ </not>
+ </condition>
+ <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>
+ <pathconvert property="run.modulepath.with.dist.jar">
+ <path path="${run.modulepath}"/>
+ <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
+ </pathconvert>
+ <condition else="" property="jar.usage.message.module.path" value=" --module-path ${run.modulepath.with.dist.jar}">
+ <and>
+ <isset property="modules.supported.internal"/>
+ <length length="0" string="${run.modulepath.with.dist.jar}" when="greater"/>
+ </and>
+ </condition>
+ <condition else="" property="jar.usage.message.class.path" value=" -cp ${run.classpath.with.dist.jar}">
+ <length length="0" string="${run.classpath.with.dist.jar}" when="greater"/>
+ </condition>
+ <condition else=" ${main.class}" property="jar.usage.message.main.class" value=" -m ${module.name}/${main.class}">
+ <isset property="named.module.internal"/>
+ </condition>
+ <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java}${jar.usage.message.module.path}${jar.usage.message.class.path}${jar.usage.message.main.class}">
+ <isset property="main.class.available"/>
+ </condition>
+ <condition else="debug" property="jar.usage.level" value="info">
+ <isset property="main.class.available"/>
+ </condition>
+ <echo level="${jar.usage.level}" message="${jar.usage.message}"/>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-jar" name="-do-jar-without-libraries"/>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" name="-do-jar-with-libraries"/>
+ <target 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-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/>
+ <target depends="init,compile,-pre-jar,-do-jar,-post-jar,deploy" description="Build JAR." name="jar"/>
+ <!--
+ =================
+ DEPLOY SECTION
+ =================
+ -->
+ <target name="-pre-deploy">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init" name="-check-jlink">
+ <condition property="do.jlink.internal">
+ <and>
+ <istrue value="${do.jlink}"/>
+ <isset property="do.archive"/>
+ </and>
+ </condition>
+ </target>
+ <target depends="init,-do-jar,-post-jar,-pre-deploy,-check-jlink,-main-module-set" if="do.jlink.internal" name="-do-deploy">
+ <delete dir="${dist.jlink.dir}" failonerror="false" quiet="true"/>
+ <property name="jlink.launcher.name" value="${application.title}"/>
+ <pathconvert pathsep="," property="jlink.modulelist.internal">
+ <fileset dir="${dist.dir}" includes="*.jar"/>
+ <mapper>
+ <chainedmapper>
+ <flattenmapper/>
+ <globmapper from="*.jar" to="*"/>
+ </chainedmapper>
+ </mapper>
+ </pathconvert>
+ <condition else="${jlink.modulelist.internal}" property="jlink.add.modules" value="${jlink.modulelist.internal},${jlink.additionalmodules}">
+ <and>
+ <isset property="jlink.additionalmodules"/>
+ <length length="0" string="${jlink.additionalmodules}" when="greater"/>
+ </and>
+ </condition>
+ <condition property="jlink.do.strip.internal">
+ <and>
+ <isset property="jlink.strip"/>
+ <istrue value="${jlink.strip}"/>
+ </and>
+ </condition>
+ <condition property="jlink.do.additionalparam.internal">
+ <and>
+ <isset property="jlink.additionalparam"/>
+ <length length="0" string="${jlink.additionalparam}" when="greater"/>
+ </and>
+ </condition>
+ <condition property="jlink.do.launcher.internal">
+ <and>
+ <istrue value="${jlink.launcher}"/>
+ <isset property="module.name"/>
+ <length length="0" string="${module.name}" when="greater"/>
+ <isset property="main.class.available"/>
+ </and>
+ </condition>
+ <property name="platform.jlink" value="${jdk.home}/bin/jlink"/>
+ <property name="jlink.systemmodules.internal" value="${jdk.home}/jmods"/>
+ <exec executable="${platform.jlink}">
+ <arg value="--module-path"/>
+ <arg path="${jlink.systemmodules.internal}:${run.modulepath}:${dist.dir}"/>
+ <arg value="--add-modules"/>
+ <arg value="${jlink.add.modules}"/>
+ <arg if:set="jlink.do.strip.internal" value="--strip-debug"/>
+ <arg if:set="jlink.do.launcher.internal" value="--launcher"/>
+ <arg if:set="jlink.do.launcher.internal" value="${jlink.launcher.name}=${module.name}/${main.class}"/>
+ <arg if:set="jlink.do.additionalparam.internal" line="${jlink.additionalparam}"/>
+ <arg value="--output"/>
+ <arg value="${dist.jlink.output}"/>
+ </exec>
+ </target>
+ <target name="-post-deploy">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-do-jar,-post-jar,-pre-deploy,-do-deploy,-post-deploy" name="deploy"/>
+ <!--
+ =================
+ EXECUTION SECTION
+ =================
+ -->
+ <target name="-check-main-class">
+ <fail unless="main.class">No main class specified</fail>
+ </target>
+ <target depends="init,compile,-check-main-class,-main-module-check" description="Run a main class." name="run">
+ <property name="main.class.relativepath" refid="main.class.relativepath"/>
+ <pathconvert pathsep="," property="src.dir.list" refid="have.sources.set"/>
+ <j2semodularproject1:modsource_regexp xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" filePattern="(.*$)" modsource="${src.dir.path}" property="run.src.dir.path.regexp"/>
+ <j2semodularproject1:java xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <customize>
+ <arg line="${application.args}"/>
+ </customize>
+ </j2semodularproject1:java>
+ </target>
+ <target name="-main-module-set" unless="module.name">
+ <condition else="${main.class}" property="check.class.name" value="${run.class}">
+ <isset property="run.class"/>
+ </condition>
+ <condition property="run.modules.dir" value="${build.modules.dir}">
+ <not>
+ <isset property="run.modules.dir"/>
+ </not>
+ </condition>
+ <resources id="main.class.relativepath">
+ <mappedresources>
+ <string value="${check.class.name}"/>
+ <unpackagemapper from="*" to="*.class"/>
+ </mappedresources>
+ </resources>
+ <property location="${run.modules.dir}" name="run.modules.dir.location"/>
+ <pathconvert property="module.name">
+ <fileset dir="${run.modules.dir}" includes="**/${toString:main.class.relativepath}"/>
+ <regexpmapper from="\Q${run.modules.dir.location}${file.separator}\E([^${file.separator.string}]+)\Q${file.separator}\E.*\.class" to="\1"/>
+ </pathconvert>
+ </target>
+ <target depends="-main-module-set" name="-main-module-check">
+ <fail message="Could not determine module of the main class and module.name is not set">
+ <condition>
+ <or>
+ <not>
+ <isset property="module.name"/>
+ </not>
+ <length length="0" string="${module.name}" when="equal"/>
+ </or>
+ </condition>
+ </fail>
+ </target>
+ <target depends="-main-module-set" if="main.class.available" name="-main-module-check-condition">
+ <fail message="Could not determine module of the main class and module.name is not set">
+ <condition>
+ <or>
+ <not>
+ <isset property="module.name"/>
+ </not>
+ <length length="0" string="${module.name}" when="equal"/>
+ </or>
+ </condition>
+ </fail>
+ </target>
+ <target name="-do-not-recompile">
+ <property name="javac.includes.binary" value=""/>
+ </target>
+ <target depends="init,compile-single,-main-module-check" name="run-single">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <j2semodularproject1:java xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" classname="${run.class}"/>
+ </target>
+ <target depends="init,compile-test-single,-init-test-run-module-properties,-main-module-check" name="run-test-with-main">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <j2semodularproject1:java xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" classname="${run.class}" classpath="${run.test.classpath}" modulepath="${run.test.modulepath}">
+ <customize>
+ <jvmarg line="${run.test.jvmargs}"/>
+ </customize>
+ </j2semodularproject1:java>
+ </target>
+ <!--
+ =================
+ DEBUGGING SECTION
+ =================
+ -->
+ <target name="-debug-init">
+ <condition else="${main.class}" property="run.class" value="${debug.class}">
+ <isset property="debug.class"/>
+ </condition>
+ <fail message="debug.class or main.class property is not set" unless="run.class"/>
+ </target>
+ <target depends="init,-debug-init,-main-module-check" if="netbeans.home" name="-debug-start-debugger">
+ <j2semodularproject1:nbjpdastart xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" name="${debug.class}"/>
+ </target>
+ <target depends="init,-debug-init,-main-module-check" if="netbeans.home" name="-debug-start-debugger-main-test">
+ <j2semodularproject1:nbjpdastart xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" classpath="${debug.test.classpath}" name="${debug.class}"/>
+ </target>
+ <target depends="init,compile,-debug-init,-main-module-check" name="-debug-start-debuggee">
+ <j2semodularproject1:debug xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" classname="${run.class}">
+ <customizeDebuggee>
+ <arg line="${application.args}"/>
+ </customizeDebuggee>
+ </j2semodularproject1:debug>
+ </target>
+ <target depends="init,compile,-debug-init,-main-module-check,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
+ <target depends="init,-debug-init,-main-module-check" if="netbeans.home" name="-debug-start-debugger-stepinto">
+ <j2semodularproject1:nbjpdastart xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" stopclassname="${debug.class}"/>
+ </target>
+ <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
+ <target depends="init,compile-single,-debug-init,-main-module-check" if="netbeans.home" name="-debug-start-debuggee-single">
+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+ <j2semodularproject1:debug xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" 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,-debug-init,-main-module-check" 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>
+ <j2semodularproject1:debug xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" 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">
+ <property location="${build.modules.dir}" name="debug.modules.dir"/>
+ <j2semodularproject1:nbjpdareload xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1"/>
+ </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="-init-macrodef-junit,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>
+ <j2semodularproject1:junit xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" excludes="${excludes}" includes="${includes}" testincludes="${profile.class}" testmethods="">
+ <customize>
+ <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/>
+ <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
+ <jvmarg value="${profiler.info.jvmargs.agent}"/>
+ <jvmarg line="${profiler.info.jvmargs}"/>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ </classpath>
+ </customize>
+ </j2semodularproject1: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" 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/>
+ <antcall 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>
+ <condition else="" property="bug5101868workaround" value="*.java">
+ <matches pattern="1\.[56](\..*)?" string="${java.version}"/>
+ </condition>
+ <condition else="" property="javadoc.html5.cmd.line.arg" value="-html5">
+ <and>
+ <isset property="javadoc.html5"/>
+ <available file="${jdk.home}${file.separator}lib${file.separator}jrt-fs.jar"/>
+ </and>
+ </condition>
+ <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
+ <classpath>
+ <path path="${javac.classpath}"/>
+ </classpath>
+ <fileset dir="${src.dir}" excludes="${bug5101868workaround},${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}"/>
+ <arg line="${javadoc.html5.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.modules.dir}"/>
+ </target>
+ <target name="-pre-compile-test">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-init-source-module-properties" name="-init-test-run-module-properties">
+ <fileset dir="${build.test.modules.dir}" id="run.test.packages.internal" includes="**/*.class"/>
+ <property location="${build.test.modules.dir}" name="build.test.modules.dir.abs.internal"/>
+ <pathconvert pathsep=" " property="run.test.addexports.internal" refid="run.test.packages.internal">
+ <chainedmapper>
+ <filtermapper>
+ <replacestring from="${build.test.modules.dir.abs.internal}${file.separator}" to=""/>
+ </filtermapper>
+ <regexpmapper from="^([^${file.separator.string}]*)\Q${file.separator}\E(.*)\Q${file.separator}\E.*\.class$$" to="\1${path.separator}\2"/>
+ <filtermapper>
+ <uniqfilter/>
+ <replacestring from="${file.separator}" to="."/>
+ </filtermapper>
+ <regexpmapper from="([^${file.separator.string}]+)${path.separator}(.*)" to="--add-exports \1/\2=ALL-UNNAMED"/>
+ </chainedmapper>
+ </pathconvert>
+ <property location="${build.test.modules.dir}" name="build.test.modules.location"/>
+ <pathconvert pathsep="," property="run.test.addmodules.list">
+ <map from="${build.test.modules.location}${file.separator}" to=""/>
+ <dirset dir="${build.test.modules.dir}" includes="*"/>
+ <chainedmapper>
+ <filtermapper>
+ <uniqfilter/>
+ </filtermapper>
+ </chainedmapper>
+ </pathconvert>
+ <pathconvert pathsep=" " property="run.test.patchmodules.list">
+ <dirset dir="${build.test.modules.dir}" includes="*">
+ <custom classname="netbeans.ModuleInfoSelector" classpath="${netbeans.modular.tasks.dir}/out">
+ <param name="extension" value="class"/>
+ </custom>
+ </dirset>
+ <chainedmapper>
+ <filtermapper>
+ <uniqfilter/>
+ </filtermapper>
+ <regexpmapper from=".*\Q${file.separator}\E([^${file.separator.string}]+)$" to="--patch-module \1=\0"/>
+ </chainedmapper>
+ </pathconvert>
+ <j2semodularproject1:coalesce_keyvalue xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" entrySep="--patch-module " multiSep="${path.separator}" property="run.test.patchmodules" value="${run.test.patchmodules.list}" valueSep="="/>
+ <condition else="" property="run.test.addmodules.internal" value="--add-modules ${run.test.addmodules.list}">
+ <isset property="run.test.addmodules.list"/>
+ </condition>
+ <pathconvert pathsep=" " property="run.test.addreads.internal">
+ <map from="${build.test.modules.location}" to=""/>
+ <dirset dir="${build.test.modules.dir}" includes="*"/>
+ <chainedmapper>
+ <regexpmapper from="^\Q${build.test.modules.location}${file.separator}\E(.*)" to="\1"/>
+ <regexpmapper from="(.*)" to="--add-reads \1=ALL-UNNAMED"/>
+ <filtermapper>
+ <uniqfilter/>
+ </filtermapper>
+ </chainedmapper>
+ </pathconvert>
+ <property name="run.test.jvmargs" value="${run.test.addmodules.internal} ${run.test.addreads.internal} ${run.test.addexports.internal} ${run.test.patchmodules}"/>
+ </target>
+ <target depends="-init-source-module-properties" name="-init-test-javac-module-properties">
+ <pathconvert pathsep=" " property="compile.test.patchmodule.internal" refid="have.tests.patchset">
+ <regexpmapper from="(.*\Q${file.separator}\E)([^${file.separator.string}]+)\Q${file.separator}\E(.*)$$" to="--patch-module \2=\1\2${file.separator.string}\3"/>
+ </pathconvert>
+ <pathconvert pathsep=" " property="compile.test.addreads">
+ <union refid="have.tests.set"/>
+ <chainedmapper>
+ <firstmatchmapper>
+ <regexpmapper from="${have.tests.test.src.dir.regexp}" to="\1"/>
+ </firstmatchmapper>
+ <regexpmapper from="(.*)" to="--add-reads \1=ALL-UNNAMED"/>
+ <filtermapper>
+ <uniqfilter/>
+ </filtermapper>
+ </chainedmapper>
+ </pathconvert>
+ <j2semodularproject1:coalesce_keyvalue xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" entrySep="--patch-module " multiSep="${path.separator}" property="compile.test.patchmodules" value="${compile.test.patchmodule.internal}" valueSep="="/>
+ <property name="javac.test.moduleargs" value="${compile.test.patchmodules} ${compile.test.addreads}"/>
+ </target>
+ <target depends="-init-test-javac-module-properties" name="-init-test-module-properties">
+ <property location="${build.modules.dir}" name="test.module.build.location"/>
+ <property name="test.source.modulepath" value="${test.src.dir}/*/${test.src.dir.path}"/>
+ <property name="test.compile.modulepath" value="${javac.test.modulepath}:${build.modules.dir}"/>
+ <macrodef name="test-javac" uri="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <element implicit="true" name="additionalargs" optional="true"/>
+ <sequential>
+ <j2semodularproject1:javac xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" apgeneratedsrcdir="${build.test.modules.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.modules.dir}" excludes="@{excludes}" includes="@{includes}" modulepath="${test.compile.modulepath}" modulesourcepath="${test.source.modulepath}" processorpath="${javac.test.processorpath}">
+ <customize>
+ <compilerarg line="${javac.test.moduleargs}"/>
+ <additionalargs/>
+ </customize>
+ </j2semodularproject1:javac>
+ </sequential>
+ </macrodef>
+ </target>
+ <target if="do.depend.true" name="-compile-test-depend">
+ <j2semodularproject1:depend xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
+ </target>
+ <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
+ <j2semodularproject1:test-javac xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1"/>
+ <j2semodularproject1:modsource_regexp xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" filePattern="(.*$)" modsource="${test.src.dir.path}" property="test.src.dir.path.regexp"/>
+ <echo message="Copying resources from ${test.src.dir}"/>
+ <copy todir="${build.test.modules.dir}">
+ <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <regexpmapper from="${test.src.dir.path.regexp}" to="\1/\3"/>
+ </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,-init-test-module-properties,-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>
+ <j2semodularproject1:force-recompile xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" destdir="${build.test.modules.dir}"/>
+ <j2semodularproject1:test-javac xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" includes="${javac.includes}"/>
+ <j2semodularproject1:modsource_regexp xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" filePattern="(.*$)" modsource="${test.src.dir.path}" property="test.src.dir.path.regexp"/>
+ <echo message="Copying resources from ${test.src.dir}"/>
+ <copy todir="${build.test.modules.dir}">
+ <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <regexpmapper from="${test.src.dir.path.regexp}" to="\1/\3"/>
+ </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 name="-init-test-run">
+ <property name="run.modules.dir" value="${build.test.modules.dir}"/>
+ </target>
+ <target depends="init,compile-test,-init-test-run-module-properties,-pre-test-run" if="have.tests" name="-do-test-run">
+ <j2semodularproject1:test xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" includes="${includes}" 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,-init-test-run-module-properties,-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>
+ <j2semodularproject1:test xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" 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,-init-test-run-module-properties,-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>
+ <j2semodularproject1:test xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" 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,-init-test-run-module-properties,-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,-init-test-run-module-properties,-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>
+ <j2semodularproject1:test-debug xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/>
+ </target>
+ <target depends="init,compile-test-single,-init-test-run-module-properties,-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>
+ <j2semodularproject1:test-debug xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" 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">
+ <j2semodularproject1:nbjpdastart xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1" classpath="${debug.test.classpath}" name="${test.class}"/>
+ </target>
+ <target depends="init,compile-test-single,-init-test-run-module-properties,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
+ <target depends="init,compile-test-single,-init-test-run-module-properties,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/>
+ <target depends="debug-test-method" name="debug-single-method"/>
+ <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
+ <property name="debug.modules.dir" value="${build.test.modules.dir}"/>
+ <j2semodularproject1:nbjpdareload xmlns:j2semodularproject1="http://www.netbeans.org/ns/j2se-modular-project/1"/>
+ </target>
+ <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
+ <!--
+ =========================
+ APPLET EXECUTION SECTION
+ =========================
+ -->
+ <target name="run-applet">
+ <fail message="Applets are no longer supported by JDK 9"/>
+ </target>
+ <!--
+ =========================
+ APPLET DEBUGGING SECTION
+ =========================
+ -->
+ <target name="-debug-start-debuggee-applet">
+ <fail message="Applets are no longer supported by JDK 9"/>
+ </target>
+ <target name="debug-applet">
+ <fail message="Applets are no longer supported by JDK 9"/>
+ </target>
+ <!--
+ ===============
+ 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: DuskZ 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.jlink.output}"/>
+ <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 name="-recompile-netbeans-tasks-after-clean">
+ <antcall inheritall="false" target="-init-compile-netbeans-tasks"/>
+ </target>
+ <target depends="init,deps-clean,-do-clean,-recompile-netbeans-tasks-after-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>
--- /dev/null
+build.xml.data.CRC32=e72b4646
+build.xml.script.CRC32=76b9a1f6
+build.xml.stylesheet.CRC32=32069288@1.21
+# 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=e72b4646
+nbproject/build-impl.xml.script.CRC32=09983720
+nbproject/build-impl.xml.stylesheet.CRC32=d1ebcf0f@1.21
--- /dev/null
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=false
+annotation.processing.processors.list=
+annotation.processing.run.all.processors=true
+annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
+application.title=DuskZ
+application.vendor=notzed
+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
+build.modules.dir=${build.dir}/modules
+# Only compile against the classpath explicitly listed here:
+build.sysclasspath=ignore
+build.test.classes.dir=${build.dir}/test/classes
+build.test.modules.dir=${build.dir}/test/modules
+build.test.results.dir=${build.dir}/test/results
+# Uncomment to specify the preferred debugger connection transport:
+#debug.transport=dt_socket
+debug.classpath=\
+ ${run.classpath}
+debug.modulepath=\
+ ${run.modulepath}
+debug.test.classpath=\
+ ${run.test.classpath}
+debug.test.modulepath=\
+ ${run.test.modulepath}
+# Files in build.classes.dir which should be excluded from distribution jar
+dist.archive.excludes=
+# This directory is removed when the project is cleaned:
+dist.dir=dist
+dist.javadoc.dir=${dist.dir}/javadoc
+dist.jlink.dir=${dist.dir}/jlink
+dist.jlink.output=${dist.jlink.dir}/DuskZ
+endorsed.classpath=
+excludes=
+file.reference.DuskZ-.lib=.lib
+file.reference.javafx.base.jar=/usr/local/javafx-sdk/lib/javafx.base.jar
+file.reference.javafx.controls.jar=/usr/local/javafx-sdk/lib/javafx.controls.jar
+file.reference.javafx.graphics.jar=/usr/local/javafx-sdk/lib/javafx.graphics.jar
+includes=**
+jar.compress=false
+javac.classpath=
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.deprecation=false
+javac.external.vm=false
+javac.modulepath=\
+ ${file.reference.javafx.base.jar}:\
+ ${file.reference.javafx.controls.jar}:\
+ ${file.reference.javafx.graphics.jar}:\
+ ${file.reference.DuskZ-.lib}
+javac.processormodulepath=
+javac.processorpath=\
+ ${javac.classpath}
+javac.source=19
+javac.target=19
+javac.test.classpath=\
+ ${javac.classpath}
+javac.test.modulepath=\
+ ${javac.modulepath}:\
+ ${build.modules.dir}
+javac.test.processorpath=\
+ ${javac.test.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=${source.encoding}
+javadoc.html5=false
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.private=false
+javadoc.reference.javafx.base.jar=/usr/local/javafx-sdk/javadoc/javafx-base-19.0.2.1-javadoc.jar
+javadoc.reference.javafx.controls.jar=/usr/local/javafx-sdk/javadoc/javafx-controls-19.0.2.1-javadoc.jar
+javadoc.reference.javafx.graphics.jar=/usr/local/javafx-sdk/javadoc/javafx-graphics-19.0.2.1-javadoc.jar
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+# The jlink additional root modules to resolve
+jlink.additionalmodules=
+# The jlink additional command line parameters
+jlink.additionalparam=
+jlink.launcher=true
+jlink.launcher.name=DuskZ
+main.class=duskz.client.fx.DuskFX
+platform.active=default_platform
+project.license=gpl20_notzed
+run.classpath=
+# Space-separated list of JVM arguments used when running the project.
+# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
+# To set system properties for unit tests define test-sys-prop.name=value:
+run.jvmargs=
+run.modulepath=\
+ ${javac.modulepath}:\
+ ${build.modules.dir}
+run.test.classpath=\
+ ${javac.test.classpath}
+run.test.modulepath=\
+ ${javac.test.modulepath}:\
+ ${build.test.modules.dir}
+source.encoding=UTF-8
+source.reference.javafx.base.jar=/usr/local/javafx-sdk/sources/javafx-base-19.0.2.1-sources.jar
+source.reference.javafx.controls.jar=/usr/local/javafx-sdk/sources/javafx-controls-19.0.2.1-sources.jar
+source.reference.javafx.graphics.jar=/usr/local/javafx-sdk/sources/javafx-graphics-19.0.2.1-sources.jar
+src.dir=src
+src.dir.path=classes
+test.src.dir=src
+test.src.dir.path=tests
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+ <type>org.netbeans.modules.java.j2semodule</type>
+ <configuration>
+ <data xmlns="http://www.netbeans.org/ns/j2se-modular-project/1">
+ <name>DuskZ</name>
+ <source-roots>
+ <root id="src.dir" pathref="src.dir.path"/>
+ </source-roots>
+ <test-roots>
+ <root id="test.src.dir" pathref="test.src.dir.path"/>
+ </test-roots>
+ </data>
+ </configuration>
+</project>
--- /dev/null
+/*
+ * Copyright (C) 2023 Michael Zucchi
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+module duskz.client {
+
+ requires java.logging;
+ requires duskz.common;
+
+ requires javafx.graphics;
+ requires javafx.controls;
+
+ exports duskz.client.fx;
+
+
+}
--- /dev/null
+
+module duskz.common {
+
+ exports duskz.protocol;
+ exports duskz.util;
+}
--- /dev/null
+/*
+ * Copyright (C) 2023 Michael Zucchi
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+module duskz.server {
+ requires duskz.common;
+ requires java.scripting;
+
+ requires java.desktop;
+ requires java.logging;
+
+ requires jakarta.xml.bind;
+}