6795365: NetBeans projects in langtools repository are not NB6.5-friendly

Reviewed-by: mcimadamore
This commit is contained in:
Jonathan Gibbons 2009-01-23 11:23:10 -08:00
parent 72a1863490
commit cf1252d823
28 changed files with 621 additions and 1432 deletions

View File

@ -15,7 +15,7 @@ that expect to be able to build this workspace with GNU Make.
System Requirements:
Ant: version 1.6.5 or later
NetBeans: version 5.0 or later (optional)
NetBeans: version 6.0 or later (optional)
JDK: currently version 1.5.0, although 1.6.0 is recommended
OS: any system supporting the above tools

View File

@ -660,7 +660,7 @@
<!-- the next two properties are for convenience, when only
a single instance of jtreg will be invoked. -->
<condition property="jtreg.passed">
<equals arg1="${jtreg.javac.result}" arg2="0"/>
<equals arg1="${jtreg.@{name}.result}" arg2="0"/>
</condition>
<property name="jtreg.report" value="${build.jtreg.dir}/@{name}/report"/>
</sequential>

View File

@ -1,28 +1,39 @@
Working on the "langtools" workspace using NetBeans.
Using NetBeans to work on the langtools repository.
This directory (make/netbeans) contains NetBeans projects that
allow you to work on the various tools using the NetBeans IDE.
Netbeans 6.0 or later is recommended.
NetBeans 5.0 or later is required and sufficient to use these
projects. This is different from other projects in OpenJDK,
which requires version 6.0 or later.
The "langtools" project in this directory allows you to
edit, run, test and debug the tools in the OpenJDK langtools
repository.
The following projects are provided:
The repository contains a number of tools:
apt, javac, javadoc and its doclets, javah and javap.
compiler: for working on the compiler, javac
javadoc: for working on the documentation tool, javadoc
doclets: for working on the standard doclets used by the
documentation tool, javadoc
javah: for working on the C header tool, javah
javap: for working on the disassembler, javap
apt: for working on the annotation processing tool, apt.
Note that this is just provided for completeness;
the tool has been superceded by new features in javac,
and work on apt itself is discouraged.
Build Properties.
However, any tool can be worked on from any project; the only difference
between these projects is the behavior of the standard NetBeans actions,
so that "Build" in the compiler project will build the compiler, etc.
To build this repository, you must set some properties for Ant.
You can set these properties in a number of ways:
- Set the properties in the Properties panel under Tool> Options> Ant.
Properties set this way will apply globally to all the langtools
repositories you may be working on.
- Create a file build.properties in the root directory of a
langtools repository, and set the properties in that file.
These properties will be specific to that repository.
To build the repository, at a minimum you must set the "boot.java.home"
property. To run the tools, you must also set "target.java.home". To
run the regression tests, you must set "jtreg.home".
By default, the build and test targets will build and test all
of these tools. The run and debug targets will prompt you for the
name of a tool to execute.
As an alternative, you can focus on a single tool. When you do
this, you will still see all the source code for all the tools,
but the various Ant targets will now be focussed on the selected tool.
To focus on a tool, bring up the context menu on the "langtools"
project (i.e. right-click on the project) and select "Select Tool".
This brings up a dialog which allows you to specify which tool you
wish to work on, and the arguments to use if and when you run it.

View File

@ -1,15 +0,0 @@
"apt" project README.
This project is for working on the annotation processing tool (apt)
in the OpenJDK langtools component.
The tool was provided in Java 1.5, but has been superceded by new
features in the compiler (javac) in Java 6. apt itself is now
deprecated, and any further devlopment on it is strongly discouraged.
The main class for the tool is com.sun.tools.apt.Main.
NetBeans 5.0 or later is required and sufficient to use this
project, and others in the OpenJDK langtools component.
This is different from other projects in OpenJDK, which
require version 6.0 or later.

View File

@ -1,62 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<!--
Build file for the annotation processing tool, apt.
- The basic functionality of the build is imported from make/build.xml.
- Additional support for NetBeans actions is imported from
make/netbeans/common/shared.xml.
- This file gives the final customizations.
This tool is now deprecated, and any further development is strongly
discouraged.
-->
<project name="apt" default="build" basedir="../../..">
<property name="tool.name" value="apt"/>
<import file="../common/shared.xml"/>
<!--
Alias the following imported targets, giving descriptions as appropriate.
NetBeans will emphasize targets with descriptions in the Ant Targets list,
and will display the targets in the context menu (under Run Target) for
this file in the Projects viewer.
-->
<target name="build" depends="build-apt" description="Build the annotation processing tool, apt."/>
<target name="debug" depends="-debug-nb" description="Debug the annotation processing tool, apt."/>
<target name="-jtreg" depends="jtreg-apt"/>
<target name="jtreg" depends="-jtreg-nb" description="Run the jtreg tests for the annotation processing tool, apt."/>
</project>

View File

@ -1,108 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<!DOCTYPE project [
<!ENTITY standard-ide-actions-no-javadoc SYSTEM "../../common/standard-ide-actions-no-javadoc.ent">
<!ENTITY standard-context-menu-items-no-javadoc SYSTEM "../../common/standard-context-menu-items-no-javadoc.ent">
]>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.ant.freeform</type>
<configuration>
<general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
<!-- Do not use Project Properties customizer when editing this file manually. -->
<name>apt</name>
<properties>
<property name="root">../../..</property>
</properties>
<folders>
<source-folder>
<label>langtools</label>
<location>${root}</location>
</source-folder>
<source-folder>
<label>Source files</label>
<type>java</type>
<location>${root}/src/share/classes</location>
</source-folder>
<source-folder>
<label>Test files</label>
<type>tests</type>
<location>${root}/test</location>
</source-folder>
<source-folder>
<label>Build files</label>
<type>build</type>
<location>${root}/make</location>
</source-folder>
</folders>
<ide-actions>
&standard-ide-actions-no-javadoc;
</ide-actions>
<export>
<type>folder</type>
<location>${root}/build/classes</location>
<build-target>build</build-target>
</export>
<view>
<items>
<source-folder style="tree">
<label>Source files</label>
<location>${root}/src/share/classes</location>
</source-folder>
<source-folder style="tree">
<label>Test files</label>
<location>${root}/test</location>
</source-folder>
<source-folder style="tree">
<label>Build files</label>
<location>${root}/make</location>
</source-folder>
<source-file>
<label>README</label>
<location>README</location>
</source-file>
</items>
<context-menu>
&standard-context-menu-items-no-javadoc;
</context-menu>
</view>
<subprojects/>
</general-data>
<java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/2">
<compilation-unit>
<package-root>${root}/src/share/classes</package-root>
<built-to>${root}/build/classes</built-to>
<source-level>1.5</source-level> <!-- FIXME -->
</compilation-unit>
</java-data>
</configuration>
</project>

View File

@ -1,186 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<!--
The file contains targets for NetBeans action that are shared across
all langtools projects.
-->
<project name="shared" default="build" basedir="../../..">
<!--
Instead of importing the main build file, we could call it when needed.
That would reduce the list of Ant targets that get displayed for this
file, but it also complicates the interface between the project build
file and the main build file. For example, some imported targets
would have to be reclared, properties would have to be restructured,
and it would be harder to run results (e.g. in properties) from nested
targets.
-->
<import file="../../build.xml"/>
<property name="tool.mainclass" value="com.sun.tools.${tool.name}.Main"/>
<property name="tool.default.args" value="-version"/>
<!-- compile a single file -->
<!-- for compile-single, etc, we might want different targets for
javac and not javac, because of bootstrap issues -->
<target name="compile-single" depends="build-bootstrap-javac">
<fail unless="includes">Must set property 'includes'</fail>
<javac fork="true" executable="${build.bootstrap.dir}/bin/javac"
srcdir="${src.classes.dir}"
destdir="${build.classes.dir}"
includes="${includes}"
sourcepath=""
includeAntRuntime="no"
target="${target}"
debug="${javac.debug}"
debuglevel="${javac.debuglevel}"/>
</target>
<!-- run tool -->
<target name="run" depends="build,-def-run" description="run ${tool.description}">
<run/>
</target>
<!-- run a selected class -->
<target name="run-single" depends="-def-run">
<fail unless="run.classname">Must set property 'run.classname'</fail>
<run name="${run.classname}" mainclass="${run.classname}" default.args=""/>
</target>
<!-- run jtreg tests, and display results in NetBeans -->
<target name="-jtreg-nb" depends="-jtreg" if="netbeans.home" unless="jtreg.passed">
<nbbrowse file="${jtreg.report}/report.html"/>
<fail>Some tests failed; see report for details.</fail>
</target>
<!-- debug tool in NetBeans -->
<target name="-debug-nb" depends="build,-def-run,-def-start-debugger" if="netbeans.home">
<start-debugger/>
<run jpda.jvmargs="${jpda.jvmargs}"/>
</target>
<!-- debug a selected class -->
<target name="debug-single-nb" depends="-def-start-debugger,-def-run">
<fail unless="debug.classname">Must set property 'debug.classname'</fail>
<start-debugger/>
<run name="${debug.classname}" mainclass="${debug.classname}" default.args=""
jpda.jvmargs="${jpda.jvmargs}"/>
</target>
<!-- debug a jtreg test -->
<target name="debug-jtreg-nb" depends="-def-start-debugger,-def-jtreg">
<fail unless="jtreg.tests">Must set property 'jtreg.tests'</fail>
<start-debugger/>
<jtreg-tool name="${tool.name}" samevm="false" tests="${jtreg.tests}"
jpda.jvmargs="${jpda.jvmargs}"/>
</target>
<!-- update a class being debugged -->
<target name="debug-fix">
<fail unless="class">Must set property 'class'</fail>
<antcall target="compile-single">
<param name="includes" value="${class}.java"/>
</antcall>
<nbjpdareload>
<fileset dir="${build.classes.dir}">
<include name="${class}.class"/>
</fileset>
</nbjpdareload>
</target>
<!-- create javadoc documentation -->
<target name="-javadoc-nb" depends="-javadoc" if="netbeans.home">
<nbbrowse file="${build.javadoc.dir}/${tool.name}/index.html"/>
</target>
<!-- default target for those projects that don't have public API docs;
override as needed for projects with public API docs.-->
<target name="-javadoc"/>
<!-- macro to run a tool or selected class - used by run* and debug* tasks -->
<target name="-def-run">
<macrodef name="run">
<attribute name="name" default="${tool.name}"/>
<attribute name="mainclass" default="${tool.mainclass}"/>
<attribute name="default.args" default="${tool.default.args}"/>
<attribute name="jpda.jvmargs" default=""/>
<sequential>
<input addproperty="run.args" message="Run @{name} with options" defaultvalue="@{default.args}"/>
<java fork="true" jvm="${target.java}" classname="@{mainclass}">
<bootclasspath>
<pathelement location="${build.classes.dir}"/>
<pathelement location="${target.java.home}/jre/lib/rt.jar"/>
</bootclasspath>
<jvmarg line="@{jpda.jvmargs}"/>
<arg line="${run.args}"/>
</java>
</sequential>
</macrodef>
</target>
<!-- macro to start the debugger and set a property containg the args needed by the run task -->
<target name="-def-start-debugger" if="netbeans.home">
<macrodef name="start-debugger">
<attribute name="jpda.jvmargs.property" default="jpda.jvmargs"/>
<sequential>
<nbjpdastart name="${ant.project.name}" addressproperty="jpda.address" transport="dt_socket">
<bootclasspath>
<pathelement location="${build.classes.dir}"/>
<pathelement location="${target.java.home}/jre/lib/rt.jar"/>
</bootclasspath>
<sourcepath>
<pathelement location="${src.classes.dir}"/>
</sourcepath>
</nbjpdastart>
<property
name="@{jpda.jvmargs.property}"
value="-Xdebug -Xnoagent -Djava.compiler=none -Xrunjdwp:transport=dt_socket,address=${jpda.address}"
/>
</sequential>
</macrodef>
</target>
</project>

View File

@ -1,56 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<!--
This file defines the actions that will appear on the project's context
menu, in the Projects viewer.
It is normally included as an entity into a project's project.xml file.
For information on these actions, see
- NetBeans: Setting Up Projects
at http://www.netbeans.org/kb/55/using-netbeans/project_setup.html
- NetBeans: Advanced Freeform Project Configuration
at http://www.netbeans.org/kb/41/freeform-config.html
-->
<ide-action name="build"/>
<ide-action name="rebuild"/>
<ide-action name="clean"/>
<separator/>
<ide-action name="run"/>
<ide-action name="debug"/>
<separator/>
<ide-action name="test"/>

View File

@ -1,161 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007-2008 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<!--
This file defines the standard actions accepted by langtools projects.
It is normally included as an entity into a project's project.xml file.
For information on these actions, see
- NetBeans: Setting Up Projects
at http://www.netbeans.org/kb/55/using-netbeans/project_setup.html
- NetBeans: Advanced Freeform Project Configuration
at http://www.netbeans.org/kb/41/freeform-config.html
-->
<action name="build">
<target>build</target>
</action>
<action name="clean">
<target>clean</target>
</action>
<action name="rebuild">
<target>clean</target>
<target>build</target>
</action>
<action name="compile.single">
<target>compile-single</target>
<property name="srcdir">${root}/src/share/classes</property>
<context>
<property>includes</property>
<folder>${root}/src/share/classes</folder>
<pattern>\.java$</pattern>
<format>relative-path</format>
<arity>
<separated-files>,</separated-files>
</arity>
</context>
</action>
<action name="run">
<target>run</target>
</action>
<action name="run.single">
<target>run-single</target>
<context>
<property>run.classname</property>
<folder>${root}/src/share/classes</folder>
<pattern>\.java$</pattern>
<format>java-name</format>
<arity>
<one-file-only/>
</arity>
</context>
</action>
<!--
Note: NetBeans does not appear to support context menu items
on shell scripts :-(
-->
<action name="run.single">
<target>jtreg</target>
<context>
<property>jtreg.tests</property>
<folder>${root}/test</folder>
<pattern>\.(java|sh)$</pattern>
<format>relative-path</format>
<arity>
<separated-files>,</separated-files>
</arity>
</context>
</action>
<action name="test">
<target>jtreg</target>
</action>
<action name="debug">
<target>debug-nb</target>
</action>
<action name="debug.single">
<target>debug-single-nb</target>
<context>
<property>debug.classname</property>
<folder>${root}/src/share/classes</folder>
<pattern>\.java$</pattern>
<format>java-name</format>
<arity>
<one-file-only/>
</arity>
</context>
</action>
<!--
Note: NetBeans does not appear to support context menu items
on shell scripts :-(
-->
<action name="debug.single">
<target>debug-jtreg-nb</target>
<context>
<property>jtreg.tests</property>
<folder>${root}/test</folder>
<pattern>\.(java|sh)$</pattern>
<format>relative-path</format>
<arity>
<one-file-only/>
</arity>
</context>
</action>
<action name="debug.fix">
<target>debug-fix</target>
<property name="srcdir">${root}/src/share/classes</property>
<context>
<property>class</property>
<folder>${root}/src/share/classes</folder>
<pattern>\.java$</pattern>
<format>relative-path-noext</format>
<arity>
<one-file-only/>
</arity>
</context>
</action>
<action name="javadoc">
<target>-javadoc-nb</target>
</action>

View File

@ -1,11 +0,0 @@
"compiler" project README.
This project is for working on the compiler tool (javac)
in the OpenJDK langtools component.
The main class for the tool is com.sun.tools.javac.Main.
NetBeans 5.0 or later is required and sufficient to use this
project, and others in the OpenJDK langtools component.
This is different from other projects in OpenJDK, which
require version 6.0 or later.

View File

@ -1,63 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<!--
Build file for the compiler.
- The basic functionality of the build is imported from make/build.xml.
- Additional support for NetBeans actions is imported from
make/netbeans/common/shared.xml.
- This file gives the final customizations.
-->
<project name="compiler" default="build" basedir="../../..">
<property name="tool.name" value="javac"/>
<import file="../common/shared.xml"/>
<!--
Alias the following imported targets, giving descriptions as appropriate.
NetBeans will emphasize targets with descriptions in the Ant Targets list,
and will display the targets in the context menu (under Run Target) for
this file in the Projects viewer.
-->
<target name="build" depends="build-javac" description="Build the compiler."/>
<target name="debug" depends="-debug-nb" description="Debug the compiler."/>
<target name="-javadoc" depends="javadoc-javac"/>
<target name="javadoc" depends="-javadoc-nb" description="Generate javadoc documentation for the compiler."/>
<target name="-jtreg" depends="jtreg-javac"/>
<target name="jtreg" depends="-jtreg-nb" description="Run the jtreg tests for the compiler."/>
</project>

View File

@ -1,108 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<!DOCTYPE project [
<!ENTITY standard-ide-actions SYSTEM "../../common/standard-ide-actions.ent">
<!ENTITY standard-context-menu-items SYSTEM "../../common/standard-context-menu-items.ent">
]>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.ant.freeform</type>
<configuration>
<general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
<!-- Do not use Project Properties customizer when editing this file manually. -->
<name>compiler</name>
<properties>
<property name="root">../../..</property>
</properties>
<folders>
<source-folder>
<label>langtools</label>
<location>${root}</location>
</source-folder>
<source-folder>
<label>Source files</label>
<type>java</type>
<location>${root}/src/share/classes</location>
</source-folder>
<source-folder>
<label>Test files</label>
<type>tests</type>
<location>${root}/test</location>
</source-folder>
<source-folder>
<label>Build files</label>
<type>build</type>
<location>${root}/make</location>
</source-folder>
</folders>
<ide-actions>
&standard-ide-actions;
</ide-actions>
<export>
<type>folder</type>
<location>${root}/build/classes</location>
<build-target>build</build-target>
</export>
<view>
<items>
<source-folder style="tree">
<label>Source files</label>
<location>${root}/src/share/classes</location>
</source-folder>
<source-folder style="tree">
<label>Test files</label>
<location>${root}/test</location>
</source-folder>
<source-folder style="tree">
<label>Build files</label>
<location>${root}/make</location>
</source-folder>
<source-file>
<label>README</label>
<location>README</location>
</source-file>
</items>
<context-menu>
&standard-context-menu-items;
</context-menu>
</view>
<subprojects/>
</general-data>
<java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/2">
<compilation-unit>
<package-root>${root}/src/share/classes</package-root>
<built-to>${root}/build/classes</built-to>
<source-level>1.5</source-level> <!-- FIXME -->
</compilation-unit>
</java-data>
</configuration>
</project>

View File

@ -1,16 +0,0 @@
"doclets" project README.
This project is for working on the standard doclets used by
the documentation tool (javadoc) in the OpenJDK langtools component.
The doclets are invoked as part of the documentation tool (javadoc).
Using this project, you can also browse javadoc and any tools in langtools.
If you build the doclets, javadoc will be built automatically as well,
if necessary.
The doclets are found in com.sun.tools.doclets.
NetBeans 5.0 or later is required and sufficient to use this
project, and others in the OpenJDK langtools component.
This is different from other projects in OpenJDK, which
require version 6.0 or later.

View File

@ -1,60 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<!--
Build file for the standard doclets used by documentation tool, javadoc.
- The basic functionality of the build is imported from make/build.xml.
- Additional support for NetBeans actions is imported from
make/netbeans/common/shared.xml.
- This file gives the final customizations.
-->
<project name="doclets" default="build" basedir="../../..">
<property name="tool.name" value="doclets"/>
<import file="../common/shared.xml"/>
<!--
Alias the following imported targets, giving descriptions as appropriate.
NetBeans will emphasize targets with descriptions in the Ant Targets list,
and will display the targets in the context menu (under Run Target) for
this file in the Projects viewer.
-->
<target name="build" depends="build-doclets" description="Build the standard doclets for the documentation tool, javadoc."/>
<target name="debug" depends="-debug-nb" description="Debug the standard doclets for the documentation tool, javadoc."/>
<target name="-jtreg" depends="jtreg-doclets"/>
<target name="jtreg" depends="-jtreg-nb" description="Run the jtreg tests for the standard doclets used by the documentation tool, javadoc."/>
</project>

View File

@ -1,108 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<!DOCTYPE project [
<!ENTITY standard-ide-actions-no-javadoc SYSTEM "../../common/standard-ide-actions-no-javadoc.ent">
<!ENTITY standard-context-menu-items-no-javadoc SYSTEM "../../common/standard-context-menu-items-no-javadoc.ent">
]>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.ant.freeform</type>
<configuration>
<general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
<!-- Do not use Project Properties customizer when editing this file manually. -->
<name>doclets</name>
<properties>
<property name="root">../../..</property>
</properties>
<folders>
<source-folder>
<label>langtools</label>
<location>${root}</location>
</source-folder>
<source-folder>
<label>Source files</label>
<type>java</type>
<location>${root}/src/share/classes</location>
</source-folder>
<source-folder>
<label>Test files</label>
<type>tests</type>
<location>${root}/test</location>
</source-folder>
<source-folder>
<label>Build files</label>
<type>build</type>
<location>${root}/make</location>
</source-folder>
</folders>
<ide-actions>
&standard-ide-actions-no-javadoc;
</ide-actions>
<export>
<type>folder</type>
<location>${root}/build/classes</location>
<build-target>build</build-target>
</export>
<view>
<items>
<source-folder style="tree">
<label>Source files</label>
<location>${root}/src/share/classes</location>
</source-folder>
<source-folder style="tree">
<label>Test files</label>
<location>${root}/test</location>
</source-folder>
<source-folder style="tree">
<label>Build files</label>
<location>${root}/make</location>
</source-folder>
<source-file>
<label>README</label>
<location>README</location>
</source-file>
</items>
<context-menu>
&standard-context-menu-items-no-javadoc;
</context-menu>
</view>
<subprojects/>
</general-data>
<java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/2">
<compilation-unit>
<package-root>${root}/src/share/classes</package-root>
<built-to>${root}/build/classes</built-to>
<source-level>1.5</source-level> <!-- FIXME -->
</compilation-unit>
</java-data>
</configuration>
</project>

View File

@ -1,16 +0,0 @@
"javadoc" project README.
This project is for working on the documentation tool (javadoc)
in the OpenJDK langtools component.
javadoc is built on top of the compiler (javac). Using this
project, you can also browse javac and any tools in langtools.
If you build javadoc, javac will be built automatically as well,
if necessary.
The main class for the tool is com.sun.tools.javadoc.Main.
NetBeans 5.0 or later is required and sufficient to use this
project, and others in the OpenJDK langtools component.
This is different from other projects in OpenJDK, which
require version 6.0 or later.

View File

@ -1,63 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<!--
Build file for the documentation tool, javadoc.
- The basic functionality of the build is imported from make/build.xml.
- Additional support for NetBeans actions is imported from
make/netbeans/common/shared.xml.
- This file gives the final customizations.
-->
<project name="javadoc" default="build" basedir="../../..">
<property name="tool.name" value="javadoc"/>
<import file="../common/shared.xml"/>
<!--
Alias the following imported targets, giving descriptions as appropriate.
NetBeans will emphasize targets with descriptions in the Ant Targets list,
and will display the targets in the context menu (under Run Target) for
this file in the Projects viewer.
-->
<target name="build" depends="build-javadoc" description="Build the documentation tool, javadoc."/>
<target name="debug" depends="-debug-nb" description="Debug the documentation tool, javadoc."/>
<target name="-javadoc" depends="javadoc-javadoc"/>
<target name="javadoc" depends="-javadoc-nb" description="Generate javadoc documentation for the Doclet API."/>
<target name="-jtreg" depends="jtreg-javadoc"/>
<target name="jtreg" depends="-jtreg-nb" description="Run the jtreg tests for the documentation tool, javadoc."/>
</project>

View File

@ -1,21 +0,0 @@
"javah" project README.
This project is for working on the native header tool (javah)
in the OpenJDK langtools component.
javah is built on top of the documentation tool (javadoc). Using this
project, you can also browse javadoc and any other tools in langtools.
If you build javah, javadoc will be built automatically as well,
if necessary.
javah is in the process of being converted so that it runs directly on
top of the compiler, javac, using the annotation processing API,
instead of on top of the documentation tool, javadoc, using the
Doclet API.
The main class for the tool is com.sun.tools.javah.Main.
NetBeans 5.0 or later is required and sufficient to use this
project, and others in the OpenJDK langtools component.
This is different from other projects in OpenJDK, which
require version 6.0 or later.

View File

@ -1,60 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<!--
Build file for the native header tool, javah.
- The basic functionality of the build is imported from make/build.xml.
- Additional support for NetBeans actions is imported from
make/netbeans/common/shared.xml.
- This file gives the final customizations.
-->
<project name="javah" default="build" basedir="../../..">
<property name="tool.name" value="javah"/>
<import file="../common/shared.xml"/>
<!--
Alias the following imported targets, giving descriptions as appropriate.
NetBeans will emphasize targets with descriptions in the Ant Targets list,
and will display the targets in the context menu (under Run Target) for
this file in the Projects viewer.
-->
<target name="build" depends="build-javah" description="Build the native header tool, javah."/>
<target name="debug" depends="-debug-nb" description="Debug the native header tool, javah."/>
<target name="-jtreg" depends="jtreg-javah"/>
<target name="jtreg" depends="-jtreg-nb" description="Run the jtreg tests for the native header tool, javah."/>
</project>

View File

@ -1,108 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<!DOCTYPE project [
<!ENTITY standard-ide-actions-no-javadoc SYSTEM "../../common/standard-ide-actions-no-javadoc.ent">
<!ENTITY standard-context-menu-items-no-javadoc SYSTEM "../../common/standard-context-menu-items-no-javadoc.ent">
]>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.ant.freeform</type>
<configuration>
<general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
<!-- Do not use Project Properties customizer when editing this file manually. -->
<name>javah</name>
<properties>
<property name="root">../../..</property>
</properties>
<folders>
<source-folder>
<label>langtools</label>
<location>${root}</location>
</source-folder>
<source-folder>
<label>Source files</label>
<type>java</type>
<location>${root}/src/share/classes</location>
</source-folder>
<source-folder>
<label>Test files</label>
<type>tests</type>
<location>${root}/test</location>
</source-folder>
<source-folder>
<label>Build files</label>
<type>build</type>
<location>${root}/make</location>
</source-folder>
</folders>
<ide-actions>
&standard-ide-actions-no-javadoc;
</ide-actions>
<export>
<type>folder</type>
<location>${root}/build/classes</location>
<build-target>build</build-target>
</export>
<view>
<items>
<source-folder style="tree">
<label>Source files</label>
<location>${root}/src/share/classes</location>
</source-folder>
<source-folder style="tree">
<label>Test files</label>
<location>${root}/test</location>
</source-folder>
<source-folder style="tree">
<label>Build files</label>
<location>${root}/make</location>
</source-folder>
<source-file>
<label>README</label>
<location>README</location>
</source-file>
</items>
<context-menu>
&standard-context-menu-items-no-javadoc;
</context-menu>
</view>
<subprojects/>
</general-data>
<java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/2">
<compilation-unit>
<package-root>${root}/src/share/classes</package-root>
<built-to>${root}/build/classes</built-to>
<source-level>1.5</source-level> <!-- FIXME -->
</compilation-unit>
</java-data>
</configuration>
</project>

View File

@ -1,11 +0,0 @@
"javap" project README.
This project is for working on the disassembler tool (javap)
in the OpenJDK langtools component.
The main class for the tool is sun.tools.javap.Main.
NetBeans 5.0 or later is required and sufficient to use this
project, and others in the OpenJDK langtools component.
This is different from other projects in OpenJDK, which
require version 6.0 or later.

View File

@ -1,60 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<!--
Build file for the disassembler tool, javap.
- The basic functionality of the build is imported from make/build.xml.
- Additional support for NetBeans actions is imported from
make/netbeans/common/shared.xml.
- This file gives the final customizations.
-->
<project name="javap" default="build" basedir="../../..">
<property name="tool.name" value="javap"/>
<import file="../common/shared.xml"/>
<!--
Alias the following imported targets, giving descriptions as appropriate.
NetBeans will emphasize targets with descriptions in the Ant Targets list,
and will display the targets in the context menu (under Run Target) for
this file in the Projects viewer.
-->
<target name="build" depends="build-javap" description="Build the disassembler tool, javap."/>
<target name="debug" depends="-debug-nb" description="Debug the disassembler tool, javap."/>
<target name="-jtreg" depends="jtreg-javap"/>
<target name="jtreg" depends="-jtreg-nb" description="Run the jtreg tests for the disassembler tool, javap."/>
</project>

View File

@ -1,108 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<!DOCTYPE project [
<!ENTITY standard-ide-actions-no-javadoc SYSTEM "../../common/standard-ide-actions-no-javadoc.ent">
<!ENTITY standard-context-menu-items-no-javadoc SYSTEM "../../common/standard-context-menu-items-no-javadoc.ent">
]>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.ant.freeform</type>
<configuration>
<general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
<!-- Do not use Project Properties customizer when editing this file manually. -->
<name>javap</name>
<properties>
<property name="root">../../..</property>
</properties>
<folders>
<source-folder>
<label>langtools</label>
<location>${root}</location>
</source-folder>
<source-folder>
<label>Source files</label>
<type>java</type>
<location>${root}/src/share/classes</location>
</source-folder>
<source-folder>
<label>Test files</label>
<type>tests</type>
<location>${root}/test</location>
</source-folder>
<source-folder>
<label>Build files</label>
<type>build</type>
<location>${root}/make</location>
</source-folder>
</folders>
<ide-actions>
&standard-ide-actions-no-javadoc;
</ide-actions>
<export>
<type>folder</type>
<location>${root}/build/classes</location>
<build-target>build</build-target>
</export>
<view>
<items>
<source-folder style="tree">
<label>Source files</label>
<location>${root}/src/share/classes</location>
</source-folder>
<source-folder style="tree">
<label>Test files</label>
<location>${root}/test</location>
</source-folder>
<source-folder style="tree">
<label>Build files</label>
<location>${root}/make</location>
</source-folder>
<source-file>
<label>README</label>
<location>README</location>
</source-file>
</items>
<context-menu>
&standard-context-menu-items-no-javadoc;
</context-menu>
</view>
<subprojects/>
</general-data>
<java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/2">
<compilation-unit>
<package-root>${root}/src/share/classes</package-root>
<built-to>${root}/build/classes</built-to>
<source-level>1.5</source-level> <!-- FIXME -->
</compilation-unit>
</java-data>
</configuration>
</project>

View File

@ -0,0 +1,279 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007-2008 Sun Microsystems, Inc. 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 Sun Microsystems 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 THE COPYRIGHT OWNER OR
CONTRIBUTORS 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.
-->
<project name="langtools-netbeans" default="build" basedir="../../..">
<property name="langtools.properties"
location="make/netbeans/langtools/nbproject/private/langtools.properties"/>
<!--
Instead of importing the main build file, we could call it when needed.
That would reduce the list of Ant targets that get displayed for this
file, but it also complicates the interface between the project build
file and the main build file. For example, some imported targets
would have to be reclared, properties would have to be restructured,
and it would be harder to run results (e.g. in properties) from nested
targets.
-->
<import file="../../build.xml"/>
<!-- Build project. (action: build; F11)
If langtools.tool.name is set, then just build that tool; otherwise
build all tools.
-->
<target name="build" depends="-get-tool-if-set,-build-tool,-build-all"
description="Build one or all langtools tools"
/>
<target name="-build-tool" if="langtools.tool.name">
<echo level="info" message="Building ${langtools.tool.name}"/>
<echo level="verbose" message="(Unset langtools.tool.name to build all tools)"/>
<antcall target="build-${langtools.tool.name}"/>
</target>
<target name="-build-all" unless="langtools.tool.name">
<echo level="info" message="Building all tools"/>
<echo level="verbose" message="(Set langtools.tool.name to build a single tool)"/>
<antcall target="build-all-tools"/>
</target>
<!-- Compile a single file. (action: compile.single; F9) -->
<target name="compile-single" depends="build-bootstrap-javac">
<fail unless="includes">Must set property 'includes'</fail>
<javac fork="true" executable="${build.bootstrap.dir}/bin/javac"
srcdir="${src.classes.dir}"
destdir="${build.classes.dir}"
includes="${includes}"
sourcepath=""
includeAntRuntime="no"
target="${javac.target}"
debug="${javac.debug}"
debuglevel="${javac.debuglevel}"/>
</target>
<!-- Run tool. (action: run; F6)
Use langtools.tool.name and langtools.tool.args properties if set; otherwise prompt
the user.
-->
<target name="run" depends="-check-target.java.home,build,-def-run,-get-tool-and-args"
description="run tool">
<echo level="info" message="Run ${langtools.tool.name} with args ${langtools.tool.args}"/>
<run mainclass="com.sun.tools.${langtools.tool.name}.Main" args="${langtools.tool.args}"/>
</target>
<!-- Run a selected class. (action: run.single; shift-F6) -->
<target name="run-single" depends="-check-target.java.home,-def-run">
<fail unless="run.classname">Must set property 'run.classname' </fail>
<echo level="info" message="run ${run.classname}"/>
<run mainclass="${run.classname}" args=""/>
</target>
<!-- Test project, and display results if tests failed. (action: test; Alt-F6)
If langtools.tool.name is set, then just test that tool; otherwise
test all tools.
-->
<target name="jtreg" depends="-get-tool-if-set,-jtreg-tool,-jtreg-all"
description="Test one or all langtools tools"
/>
<target name="-jtreg-tool" if="langtools.tool.name">
<echo level="info" message="Testing ${langtools.tool.name}"/>
<echo level="verbose" message="(Unset langtools.tool.name to test all tools)"/>
<antcall>
<target name="jtreg-${langtools.tool.name}"/>
<target name="-show-jtreg"/>
</antcall>
</target>
<target name="-jtreg-all" unless="langtools.tool.name">
<echo level="info" message="Testing all tools"/>
<echo level="verbose" message="(Set langtools.tool.name to test a single tool)"/>
<antcall>
<target name="langtools.jtreg"/>
<target name="-show-jtreg"/>
</antcall>
</target>
<target name="-show-jtreg" if="netbeans.home" unless="jtreg.passed">
<nbbrowse file="${jtreg.report}/report.html"/>
<fail>Some tests failed; see report for details.</fail>
</target>
<!-- Debug tool in NetBeans. -->
<target name="debug" depends="-check-target.java.home,-def-run,-def-start-debugger,-get-tool-and-args,build" if="netbeans.home">
<echo level="info" message="Debug ${langtools.tool.name} with args ${langtools.tool.args}"/>
<start-debugger/>
<run mainclass="com.sun.tools.${langtools.tool.name}.Main" args="${langtools.tool.args}" jpda.jvmargs="${jpda.jvmargs}"/>
</target>
<!-- Debug a selected class . -->
<target name="debug-single" depends="-check-target.java.home,-def-start-debugger,-def-run">
<fail unless="debug.classname">Must set property 'debug.classname'</fail>
<start-debugger/>
<run mainclass="${debug.classname}" default.args="" jpda.jvmargs="${jpda.jvmargs}"/>
</target>
<!-- Debug a jtreg test. -->
<target name="debug-jtreg" depends="-check-target.java.home,-def-start-debugger,-def-jtreg">
<fail unless="jtreg.tests">Must set property 'jtreg.tests'</fail>
<start-debugger/>
<jtreg-tool name="debug" samevm="false" tests="${jtreg.tests}" jpda.jvmargs="${jpda.jvmargs}"/>
</target>
<!-- Update a class being debugged. -->
<target name="debug-fix" if="langtools.tool.name">
<fail unless="class">Must set property 'class'
</fail>
<antcall target="compile-single">
<param name="includes" value="${class}.java"/>
</antcall>
<nbjpdareload>
<fileset dir="${build.classes.dir}">
<include name="${class}.class"/>
</fileset>
</nbjpdareload>
</target>
<!-- Generate javadoc for one or all tools. (action: javadoc; Alt-F6)
If langtools.tool.name is set, then just test that tool; otherwise
test all tools.
-->
<target name="javadoc" depends="-javadoc-tool,-javadoc-all"
description="Generate javadoc for one or all langtools tools"
/>
<target name="-javadoc-tool" if="langtools.tool.name">
<echo level="info" message="Generate javadoc for ${langtools.tool.name}"/>
<echo level="verbose" message="(Unset langtools.tool.name to generate javadoc for all tools)"/>
<antcall>
<target name="javadoc-${langtools.tool.name}"/>
<target name="-show-javadoc"/>
</antcall>
</target>
<target name="-javadoc-all" unless="langtools.tool.name">
<echo level="info" message="Generate javadoc for all tools"/>
<echo level="verbose" message="(Set langtools.tool.name to generate javadoc for a single tool)"/>
<antcall>
<target name="langtools.javadoc"/>
<target name="-show-javadoc"/>
</antcall>
</target>
<target name="-show-javadoc" if="netbeans.home">
<!-- what if doing javadoc for all? -->
<nbbrowse file="${build.javadoc.dir}/${langtools.tool.name}/index.html"/>
</target>
<!-- Prompt for values. -->
<target name="-get-tool-if-set" depends="-def-select-tool">
<select-tool
toolproperty="langtools.tool.name"
propertyfile="${langtools.properties}"
askIfUnset="false"
/>
</target>
<target name="-get-tool-and-args" depends="-def-select-tool">
<select-tool
toolproperty="langtools.tool.name"
argsproperty="langtools.tool.args"
propertyfile="${langtools.properties}"
askIfUnset="true"
/>
</target>
<!-- Macro to run a tool or selected class - used by run* and debug* tasks -->
<target name="-def-run">
<macrodef name="run">
<attribute name="mainclass"/>
<attribute name="args" default=""/>
<attribute name="jpda.jvmargs" default=""/>
<sequential>
<java fork="true" jvm="${target.java}" classname="@{mainclass}">
<jvmarg line="-Xbootclasspath/p:${build.classes.dir}"/>
<jvmarg line="@{jpda.jvmargs}"/>
<arg line="@{args}"/>
</java>
</sequential>
</macrodef>
</target>
<!-- Macro to start the debugger and set a property containg the args needed by the run task -->
<target name="-def-start-debugger" if="netbeans.home">
<macrodef name="start-debugger">
<attribute name="jpda.jvmargs.property" default="jpda.jvmargs"/>
<sequential>
<nbjpdastart name="${ant.project.name}" addressproperty="jpda.address" transport="dt_socket">
<bootclasspath>
<pathelement location="${build.classes.dir}"/>
<pathelement location="${target.java.home}/jre/lib/rt.jar"/>
</bootclasspath>
<sourcepath>
<pathelement location="${src.classes.dir}"/>
</sourcepath>
</nbjpdastart>
<property
name="@{jpda.jvmargs.property}"
value="-Xdebug -Xnoagent -Djava.compiler=none -Xrunjdwp:transport=dt_socket,address=${jpda.address}"
/>
</sequential>
</macrodef>
</target>
<target name="-def-select-tool">
<mkdir dir="${build.toolclasses.dir}"/>
<javac srcdir="${make.tools.dir}/SelectTool"
destdir="${build.toolclasses.dir}/"
classpath="${ant.home}/lib/ant.jar"
debug="${javac.debug}"
debuglevel="${javac.debuglevel}">
<compilerarg line="-Xlint"/>
</javac>
<taskdef name="select-tool"
classname="SelectToolTask"
classpath="${build.toolclasses.dir}/"/>
</target>
<target name="select-tool" depends="-def-select-tool">
<select-tool propertyfile="${langtools.properties}"/>
</target>
</project>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@ -31,15 +31,15 @@
-->
<!DOCTYPE project [
<!ENTITY standard-ide-actions SYSTEM "../../common/standard-ide-actions.ent">
<!ENTITY standard-context-menu-items SYSTEM "../../common/standard-context-menu-items.ent">
<!ENTITY standard-ide-actions SYSTEM "standard-ide-actions.ent">
<!ENTITY standard-context-menu-items SYSTEM "standard-context-menu-items.ent">
]>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.ant.freeform</type>
<configuration>
<general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
<!-- Do not use Project Properties customizer when editing this file manually. -->
<name>javadoc</name>
<name>langtools</name>
<properties>
<property name="root">../../..</property>
</properties>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@ -41,6 +41,10 @@
- NetBeans: Advanced Freeform Project Configuration
at http://www.netbeans.org/kb/41/freeform-config.html
-->
<ide-action name="select-tool"/>
<separator/>
<ide-action name="build"/>
<ide-action name="rebuild"/>

View File

@ -108,11 +108,11 @@
</action>
<action name="debug">
<target>debug-nb</target>
<target>debug</target>
</action>
<action name="debug.single">
<target>debug-single-nb</target>
<target>debug-single</target>
<context>
<property>debug.classname</property>
<folder>${root}/src/share/classes</folder>
@ -130,7 +130,7 @@
-->
<action name="debug.single">
<target>debug-jtreg-nb</target>
<target>debug-jtreg</target>
<context>
<property>jtreg.tests</property>
<folder>${root}/test</folder>
@ -157,5 +157,17 @@
</action>
<action name="javadoc">
<target>-javadoc-nb</target>
<target>javadoc</target>
</action>
<action name="select-tool">
<target>select-tool</target>
</action>
<action name="test-select-tool-1">
<target>test-select-tool-1</target>
</action>
<action name="test-select-tool-2">
<target>test-select-tool-2</target>
</action>

View File

@ -0,0 +1,284 @@
/*
* Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* This code 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
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
/**
* Task to allow the user to control langtools tools built when using NetBeans.
*
* There are two primary modes.
* 1) Property mode. In this mode, property names are provided to get values
* that may be specified by the user, either directly in a GUI dialog, or
* read from a properties file. If the GUI dialog is invoked, values may
* optionally be set for future use.
* 2) Setup mode. In this mode, no property names are provided, and the GUI
* is invoked to allow the user to set or reset values for use in property mode.
*/
public class SelectToolTask extends Task {
/**
* Set the location of the private properties file used to keep the retain
* user preferences for this repository.
*/
public void setPropertyFile(File propertyFile) {
this.propertyFile = propertyFile;
}
/**
* Set the name of the property which will be set to the name of the
* selected tool, if any. If no tool is selected, the property will
* remain unset.
*/
public void setToolProperty(String toolProperty) {
this.toolProperty = toolProperty;
}
/**
* Set the name of the property which will be set to the execution args of the
* selected tool, if any. The args default to an empty string.
*/
public void setArgsProperty(String argsProperty) {
this.argsProperty = argsProperty;
}
/**
* Specify whether or not to pop up a dialog if the user has not specified
* a default value for a property.
*/
public void setAskIfUnset(boolean askIfUnset) {
this.askIfUnset = askIfUnset;
}
@Override
public void execute() {
Project p = getProject();
Properties props = readProperties(propertyFile);
toolName = props.getProperty("tool.name");
if (toolName != null) {
toolArgs = props.getProperty(toolName + ".args", "");
}
if (toolProperty == null ||
askIfUnset && (toolName == null
|| (argsProperty != null && toolArgs == null))) {
showGUI(props);
}
// finally, return required values, if any
if (toolProperty != null && !(toolName == null || toolName.equals(""))) {
p.setProperty(toolProperty, toolName);
if (argsProperty != null && toolArgs != null)
p.setProperty(argsProperty, toolArgs);
}
}
void showGUI(Properties fileProps) {
Properties guiProps = new Properties(fileProps);
JOptionPane p = createPane(guiProps);
p.createDialog("Select Tool").setVisible(true);
toolName = (String) toolChoice.getSelectedItem();
toolArgs = argsField.getText();
if (defaultCheck.isSelected()) {
if (toolName.equals("")) {
fileProps.remove("tool.name");
} else {
fileProps.put("tool.name", toolName);
fileProps.put(toolName + ".args", toolArgs);
}
writeProperties(propertyFile, fileProps);
}
}
JOptionPane createPane(final Properties props) {
JPanel body = new JPanel(new GridBagLayout());
GridBagConstraints lc = new GridBagConstraints();
lc.insets.right = 10;
lc.insets.bottom = 3;
GridBagConstraints fc = new GridBagConstraints();
fc.anchor = GridBagConstraints.WEST;
fc.gridx = 1;
fc.gridwidth = GridBagConstraints.REMAINDER;
fc.insets.bottom = 3;
JLabel toolLabel = new JLabel("Tool:");
body.add(toolLabel, lc);
String[] toolChoices = { "apt", "javac", "javadoc", "javah", "javap" };
if (true || toolProperty == null) {
// include empty value in setup mode
List<String> l = new ArrayList<String>(Arrays.asList(toolChoices));
l.add(0, "");
toolChoices = l.toArray(new String[l.size()]);
}
toolChoice = new JComboBox(toolChoices);
if (toolName != null)
toolChoice.setSelectedItem(toolName);
toolChoice.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
String tn = (String) e.getItem();
argsField.setText(getDefaultArgsForTool(props, tn));
if (toolProperty != null)
okButton.setEnabled(!tn.equals(""));
}
});
body.add(toolChoice, fc);
argsField = new JTextField(getDefaultArgsForTool(props, toolName), 40);
if (toolProperty == null || argsProperty != null) {
JLabel argsLabel = new JLabel("Args:");
body.add(argsLabel, lc);
body.add(argsField, fc);
argsField.addFocusListener(new FocusListener() {
public void focusGained(FocusEvent e) {
}
public void focusLost(FocusEvent e) {
String toolName = (String) toolChoice.getSelectedItem();
if (toolName.length() > 0)
props.put(toolName + ".args", argsField.getText());
}
});
}
defaultCheck = new JCheckBox("Set as default");
if (toolProperty == null)
defaultCheck.setSelected(true);
else
body.add(defaultCheck, fc);
final JOptionPane p = new JOptionPane(body);
okButton = new JButton("OK");
okButton.setEnabled(toolProperty == null || (toolName != null && !toolName.equals("")));
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JDialog d = (JDialog) SwingUtilities.getAncestorOfClass(JDialog.class, p);
d.setVisible(false);
}
});
p.setOptions(new Object[] { okButton });
return p;
}
Properties readProperties(File file) {
Properties p = new Properties();
if (file != null && file.exists()) {
Reader in = null;
try {
in = new BufferedReader(new FileReader(file));
p.load(in);
in.close();
} catch (IOException e) {
throw new BuildException("error reading property file", e);
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
throw new BuildException("cannot close property file", e);
}
}
}
}
return p;
}
void writeProperties(File file, Properties p) {
if (file != null) {
Writer out = null;
try {
File dir = file.getParentFile();
if (dir != null && !dir.exists())
dir.mkdirs();
out = new BufferedWriter(new FileWriter(file));
p.store(out, "langtools properties");
out.close();
} catch (IOException e) {
throw new BuildException("error writing property file", e);
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
throw new BuildException("cannot close property file", e);
}
}
}
}
}
String getDefaultArgsForTool(Properties props, String tn) {
return (tn == null || tn.equals("")) ? "" : props.getProperty(tn + ".args", "");
}
// Ant task parameters
private boolean askIfUnset;
private String toolProperty;
private String argsProperty;
private File propertyFile;
// GUI components
private JComboBox toolChoice;
private JTextField argsField;
private JCheckBox defaultCheck;
private JButton okButton;
// Result values for the client
private String toolName;
private String toolArgs;
}