changeset 48:8d4143a1a4fa

rebase to jdk7-b118 in bsd-port
author jrose
date Wed, 17 Nov 2010 19:31:06 -0800
parents 4436cde7337c
children d99854a91f8d
files netbeans/indy-demo/build.xml netbeans/indy-demo/nbproject/project.properties netbeans/indy-demo/src/FidgetDemo.java netbeans/indy-demo/src/JavaDocExamples.java netbeans/indy-demo/src/VMILDemos.java netbeans/indy-demo/src/recipes/Curry.java netbeans/indy-demo/src/recipes/FastAndSlow.java netbeans/meth/build.xml netbeans/meth/nbproject/build-impl.xml netbeans/meth/nbproject/genfiles.properties netbeans/meth/nbproject/project.properties netbeans/meth/test/sun/dyn/util/ValueConversionsTest.java
diffstat 12 files changed, 417 insertions(+), 176 deletions(-) [+]
line wrap: on
line diff
--- a/netbeans/indy-demo/build.xml	Fri Oct 01 12:26:08 2010 -0700
+++ b/netbeans/indy-demo/build.xml	Wed Nov 17 19:31:06 2010 -0800
@@ -26,6 +26,7 @@
     target=         ${javac.target}
     tempdir=        ${java.io.tmpdir}
     other attrs:    fork=yes includeantruntime=false
+    java.home=      ${java.home}
         </echo>
     </target>
 
--- a/netbeans/indy-demo/nbproject/project.properties	Fri Oct 01 12:26:08 2010 -0700
+++ b/netbeans/indy-demo/nbproject/project.properties	Wed Nov 17 19:31:06 2010 -0800
@@ -26,7 +26,7 @@
 javac.classpath=\
     ${reference.meth.jar}
 # Space-separated list of extra javac options
-javac.compilerargs=-XDinvokedynamic -Xlint:none -XDallowTransitionalJSR292=${allowTransitionalJSR292} ${javac.standalone.bcp}
+javac.compilerargs=-XDinvokedynamic -Xlint:none -XDallowTransitionalJSR292=${allowTransitionalJSR292} ${javac.standalone.bcp} -Xbootclasspath/p:${reference.meth.jar}
 # choices: yes, no, only
 allowTransitionalJSR292=only
 # assuming full JDK_7X:
--- a/netbeans/indy-demo/src/FidgetDemo.java	Fri Oct 01 12:26:08 2010 -0700
+++ b/netbeans/indy-demo/src/FidgetDemo.java	Wed Nov 17 19:31:06 2010 -0800
@@ -57,7 +57,7 @@
     }
 
     // It is easy to build hybrid closure-like method handles out of classes.
-    private static class Guard implements MethodHandleProvider {
+    private static class Guard {
         MethodHandle target;  // wrapped target
         CSite        site;    // included site
         // constructor folds a sneaky site reference into a direct target
--- a/netbeans/indy-demo/src/JavaDocExamples.java	Fri Oct 01 12:26:08 2010 -0700
+++ b/netbeans/indy-demo/src/JavaDocExamples.java	Wed Nov 17 19:31:06 2010 -0800
@@ -50,7 +50,7 @@
 s = (String) mh.<String>invokeExact("daddy",'d','n');
 assert(s.equals("nanny"));
 // weakly typed invocation (using MHs.invoke)
-s = (String) mh.<String>invokeVarargs("sappy", 'p', 'v');
+s = (String) mh.<String>invokeGeneric("sappy", 'p', 'v');
 assert(s.equals("savvy"));
 // mt is {Object[] => List}
 mt = MethodType.methodType(java.util.List.class, Object[].class);
@@ -97,18 +97,18 @@
         MethodHandle mh = greeter.asMethodHandle();
         mh.<void>invokeExact();  // also prints "hello, world"
         // Dynamically typed method handle invocation:
-        greeter.asMethodHandle().invokeVarargs(new Object[0]);  // also prints "hello, world"
+        greeter.asMethodHandle().invokeWithArguments(new Object[0]);  // also prints "hello, world"
     /*!!!
         // We can also do this with symbolic names and/or inner classes:
         new JavaMethodHandle("yow") {
             void yow() { System.out.println("yow, world"); }
-        }.invokeVarargs(new Object[0]);
+        }.invokeWithArguments(new Object[0]);
     */
         assert(successful("forJavaMethodHandle"));
     }
 
     static
-    class Greeter implements MethodHandleProvider {
+    class Greeter {
         public void run() { System.out.println("hello, "+greetee); }
         private final String greetee;
         Greeter(String greetee) {
--- a/netbeans/indy-demo/src/VMILDemos.java	Fri Oct 01 12:26:08 2010 -0700
+++ b/netbeans/indy-demo/src/VMILDemos.java	Wed Nov 17 19:31:06 2010 -0800
@@ -120,8 +120,7 @@
         figure_10();
     }
 {;;;} static
-abstract class AbstractSettableMethodHandle
-    implements MethodHandleProvider {
+abstract class AbstractSettableMethodHandle {
   private final MethodHandle getter, setter;
   public MethodHandle getter()
     { return getter; }
--- a/netbeans/indy-demo/src/recipes/Curry.java	Fri Oct 01 12:26:08 2010 -0700
+++ b/netbeans/indy-demo/src/recipes/Curry.java	Wed Nov 17 19:31:06 2010 -0800
@@ -34,13 +34,13 @@
 
         MethodHandle list2 = Utensil.list(2);
         println(list2);  // list2 = {(x,y) => Arrays.asList(x,y)}
-        println(list2.invokeVarargs("chicken", "rice"));  // [chicken, rice]
+        println(list2.invokeGeneric("chicken", "rice"));  // [chicken, rice]
 
         // curry with chicken or rice:
         MethodHandle partialApp = insertArguments(list2, 0, "curry");
         println(partialApp); // partialApp = {x => list2("curry", x)}
-        println(partialApp.invokeVarargs("chicken"));  // [curry, chicken]
-        println(partialApp.invokeVarargs("rice"));     // [curry, rice]
+        println(partialApp.invokeGeneric("chicken"));  // [curry, chicken]
+        println(partialApp.invokeGeneric("rice"));     // [curry, rice]
 
         // ----
 
@@ -50,7 +50,7 @@
         MethodHandle partialApp2 = insertArguments(list3, 0, "curry");
         // partialApp2 = {(x, y) => list3("curry", x, y)}
         println(partialApp2);
-        println(partialApp2.invokeVarargs("chicken", "rice"));
+        println(partialApp2.invokeGeneric("chicken", "rice"));
                                             // [curry, chicken, rice]
 
         // ----
@@ -59,13 +59,13 @@
         MethodHandle pa3 = insertArguments(list3, 0, "curry", "chutney");
         // pa3 = {x => list3("curry", "chutney", x)}
         println(pa3);
-        println(pa3.invokeVarargs("tofu")); //[curry, chutney, tofu]
+        println(pa3.invokeGeneric("tofu")); //[curry, chutney, tofu]
 
         // triple curry:
         MethodHandle pa4 = insertArguments(pa3, 0, "yak");
         // pa4 = { => list3("curry", "chutney", "yak")}
         println(pa4);
-        println(pa4.invokeVarargs());  // [curry, chutney, yak]
+        println(pa4.invokeGeneric());  // [curry, chutney, yak]
     }
 
     static void stronglyTyped() throws Throwable {
--- a/netbeans/indy-demo/src/recipes/FastAndSlow.java	Fri Oct 01 12:26:08 2010 -0700
+++ b/netbeans/indy-demo/src/recipes/FastAndSlow.java	Wed Nov 17 19:31:06 2010 -0800
@@ -79,9 +79,9 @@
 
     public static void main(String... av) throws Throwable {
         MethodHandle combo = makeCheckedFastAdd();
-        println(combo.invokeVarargs(2, 3));
-        println(combo.invokeVarargs(2.1, 3.1));
-        println(combo.invokeVarargs(Integer.MAX_VALUE, -1));
-        println(combo.invokeVarargs(Integer.MAX_VALUE, 1));
+        println(combo.invokeWithArguments(2, 3));
+        println(combo.invokeWithArguments(2.1, 3.1));
+        println(combo.invokeWithArguments(Integer.MAX_VALUE, -1));
+        println(combo.invokeWithArguments(Integer.MAX_VALUE, 1));
     }
 }
--- a/netbeans/meth/build.xml	Fri Oct 01 12:26:08 2010 -0700
+++ b/netbeans/meth/build.xml	Wed Nov 17 19:31:06 2010 -0800
@@ -10,6 +10,29 @@
 
     <import file="nbproject/build-impl.xml"/>
 
+    <target name="-pre-compile">
+        <echo>Relevant attributes and properties to javac:
+    srcdir:         ${src.dir}
+    destdir:        ${build.classes.dir}
+    compilerarg:    ${javac.compilerargs}
+    compilerarg:    ${endorsed.classpath.cmd.line.arg}
+    classpath:      ${javac.classpath}
+    includes:       ${includes}
+    excludes:       ${excludes}
+    debug=          ${javac.debug}
+    sourcepath:     ${empty.dir}
+    gensrcdir:      ${empty.dir}
+    deprecation=    ${javac.deprecation}
+    encoding=       ${source.encoding}
+    executable=     ${platform.javac}
+    source=         ${javac.source}
+    target=         ${javac.target}
+    tempdir=        ${java.io.tmpdir}
+    other attrs:    fork=yes includeantruntime=false
+    java.home=      ${java.home}
+        </echo>
+    </target>
+
     <!-- build a bundle of the tests -->
     <target name="-post-compile-test">
         <echo message="make build/test-classes.jar from ${build.test.classes.dir}"/>
--- a/netbeans/meth/nbproject/build-impl.xml	Fri Oct 01 12:26:08 2010 -0700
+++ b/netbeans/meth/nbproject/build-impl.xml	Wed Nov 17 19:31:06 2010 -0800
@@ -92,6 +92,14 @@
   or ant -Dplatforms.${platform.active}.home=&lt;path_to_JDK_home&gt; jar (where no properties file is used) 
   </fail>
         <available file="${manifest.file}" property="manifest.available"/>
+        <condition property="splashscreen.available">
+            <and>
+                <not>
+                    <equals arg1="${application.splash}" arg2="" trim="true"/>
+                </not>
+                <available file="${application.splash}"/>
+            </and>
+        </condition>
         <condition property="main.class.available">
             <and>
                 <isset property="main.class"/>
@@ -120,23 +128,40 @@
                 <isset property="do.mkdist"/>
             </and>
         </condition>
-        <condition property="manifest.available+mkdist.available">
+        <condition property="manifest.available+main.class+mkdist.available+splashscreen.available">
             <and>
-                <istrue value="${manifest.available}"/>
-                <isset property="do.mkdist"/>
+                <istrue value="${manifest.available+main.class+mkdist.available}"/>
+                <istrue value="${splashscreen.available}"/>
             </and>
         </condition>
-        <condition property="manifest.available-mkdist.available">
-            <or>
-                <istrue value="${manifest.available}"/>
-                <isset property="do.mkdist"/>
-            </or>
+        <condition property="do.archive">
+            <not>
+                <istrue value="${jar.archive.disabled}"/>
+            </not>
         </condition>
-        <condition property="manifest.available+main.class-mkdist.available">
-            <or>
+        <condition property="do.archive+manifest.available">
+            <and>
+                <isset property="manifest.available"/>
+                <istrue value="${do.archive}"/>
+            </and>
+        </condition>
+        <condition property="do.archive+manifest.available+main.class">
+            <and>
                 <istrue value="${manifest.available+main.class}"/>
-                <isset property="do.mkdist"/>
-            </or>
+                <istrue value="${do.archive}"/>
+            </and>
+        </condition>
+        <condition property="do.archive+manifest.available+main.class+mkdist.available">
+            <and>
+                <istrue value="${manifest.available+main.class+mkdist.available}"/>
+                <istrue value="${do.archive}"/>
+            </and>
+        </condition>
+        <condition property="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available">
+            <and>
+                <istrue value="${manifest.available+main.class+mkdist.available+splashscreen.available}"/>
+                <istrue value="${do.archive}"/>
+            </and>
         </condition>
         <condition property="have.tests">
             <or>
@@ -193,6 +218,8 @@
         <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"/>
+        <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
     </target>
     <target name="-post-init">
         <!-- Empty placeholder for easier customization. -->
@@ -220,11 +247,53 @@
             </sequential>
         </macrodef>
     </target>
-    <target name="-init-macrodef-javac">
+    <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.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.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"/>
@@ -249,6 +318,8 @@
                 </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.src.dir}" name="srcdir"/>
             <attribute default="${build.classes.dir}" name="destdir"/>
@@ -265,15 +336,18 @@
             <attribute default="${build.classes.dir}" name="destdir"/>
             <sequential>
                 <fail unless="javac.includes">Must set javac.includes</fail>
-                <pathconvert pathsep="," property="javac.includes.binary">
+                <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 includes="${javac.includes.binary}"/>
+                    <files includesfile="${javac.includesfile.binary}"/>
                 </delete>
+                <delete file="${javac.includesfile.binary}"/>
             </sequential>
         </macrodef>
     </target>
@@ -283,7 +357,8 @@
             <attribute default="${excludes}" name="excludes"/>
             <attribute default="**" name="testincludes"/>
             <sequential>
-                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}">
+                <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}"/>
@@ -307,6 +382,50 @@
             </sequential>
         </macrodef>
     </target>
+    <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" name="profile-init"/>
+    <target name="-profile-pre-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="-profile-post-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target 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 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" 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>
     <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"/>
@@ -404,14 +523,65 @@
             </sequential>
         </macrodef>
     </target>
+    <target name="-init-macrodef-copylibs">
+        <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <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/>
+                        <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}" jarfile="${dist.jar}" manifest="${manifest.file}" 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}" jarfile="${dist.jar}">
+            <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
                 <j2seproject1:fileset dir="${build.classes.dir}"/>
             </jar>
         </presetdef>
     </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-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar" name="init"/>
+    <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-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
     <!--
                 ===================
                 COMPILATION SECTION
@@ -455,12 +625,18 @@
         </pathconvert>
         <j2seproject3:depend srcdir="${src.src.dir}:${build.generated.subdirs}"/>
     </target>
-    <target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile">
+    <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.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"/>
+        </copy>
+    </target>
     <target name="-post-compile">
         <!-- Empty placeholder for easier customization. -->
         <!-- You can override this target in the ../build.xml file. -->
@@ -493,13 +669,13 @@
         <!-- 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" name="-do-jar-without-manifest" unless="manifest.available-mkdist.available">
+    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available">
         <j2seproject1:jar/>
     </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class-mkdist.available">
+    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class">
         <j2seproject1:jar manifest="${manifest.file}"/>
     </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
+    <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}"/>
@@ -514,78 +690,35 @@
         </pathconvert>
         <echo>${platform.java} -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
     </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries">
-        <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/>
-                <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}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
-            <fileset dir="${build.classes.dir}"/>
-            <manifest>
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available" name="-do-jar-with-libraries-and-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"/>
+        <j2seproject3:copylibs>
+            <customize>
                 <attribute name="Main-Class" value="${main.class}"/>
-                <attribute name="Class-Path" value="${jar.classpath}"/>
-            </manifest>
-        </copylibs>
+                <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
+            </customize>
+        </j2seproject3:copylibs>
         <echo>To run this application from the command line without Ant, try:</echo>
         <property location="${dist.jar}" name="dist.jar.resolved"/>
         <echo>${platform.java} -jar "${dist.jar.resolved}"</echo>
     </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+mkdist.available" name="-do-jar-with-libraries-without-mainclass" unless="main.class.available">
-        <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/>
-                <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}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
-            <fileset dir="${build.classes.dir}"/>
-            <manifest>
-                <attribute name="Class-Path" value="${jar.classpath}"/>
-            </manifest>
-        </copylibs>
-    </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.mkdist" name="-do-jar-with-libraries-without-manifest" unless="manifest.available">
-        <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/>
-                <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}" jarfile="${dist.jar}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
-            <fileset dir="${build.classes.dir}"/>
-            <manifest>
-                <attribute name="Class-Path" value="${jar.classpath}"/>
-            </manifest>
-        </copylibs>
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries" unless="splashscreen.available">
+        <j2seproject3:copylibs>
+            <customize>
+                <attribute name="Main-Class" value="${main.class}"/>
+            </customize>
+        </j2seproject3:copylibs>
+        <echo>To run this application from the command line without Ant, try:</echo>
+        <property location="${dist.jar}" name="dist.jar.resolved"/>
+        <echo>${platform.java} -jar "${dist.jar.resolved}"</echo>
     </target>
     <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,-do-jar-with-libraries-without-mainclass,-do-jar-with-libraries-without-manifest,-post-jar" description="Build JAR." name="jar"/>
+    <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries-and-splashscreen,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
     <!--
                 =================
                 EXECUTION SECTION
@@ -651,11 +784,77 @@
     </target>
     <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
     <!--
+                =================
+                PROFILING SECTION
+                =================
+            -->
+    <target depends="profile-init,compile" description="Profile a project in the IDE." if="netbeans.home" name="profile">
+        <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="netbeans.home" name="profile-single">
+        <fail unless="profile.class">Must select one file in the IDE or set profile.class</fail>
+        <nbprofiledirect>
+            <classpath>
+                <path path="${run.classpath}"/>
+            </classpath>
+        </nbprofiledirect>
+        <profile classname="${profile.class}"/>
+    </target>
+    <!--
+                =========================
+                APPLET PROFILING  SECTION
+                =========================
+            -->
+    <target depends="profile-init,compile-single" if="netbeans.home" name="profile-applet">
+        <nbprofiledirect>
+            <classpath>
+                <path path="${run.classpath}"/>
+            </classpath>
+        </nbprofiledirect>
+        <profile classname="sun.applet.AppletViewer">
+            <customize>
+                <arg value="${applet.url}"/>
+            </customize>
+        </profile>
+    </target>
+    <!--
+                =========================
+                TESTS PROFILING  SECTION
+                =========================
+            -->
+    <target depends="profile-init,compile-test-single" if="netbeans.home" name="profile-test-single">
+        <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>
+    <!--
                 ===============
                 JAVADOC SECTION
                 ===============
             -->
-    <target depends="init" name="-javadoc-build">
+    <target depends="init" if="have.sources" name="-javadoc-build">
         <mkdir dir="${dist.javadoc.dir}"/>
         <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>
@@ -668,6 +867,14 @@
                 <include name="**/*.java"/>
             </fileset>
         </javadoc>
+        <copy todir="${dist.javadoc.dir}">
+            <fileset dir="${src.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"/>
@@ -689,7 +896,7 @@
         <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}:${test.tests-from-jdk.dir}"/>
     </target>
     <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
-        <j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}:${test.tests-from-jdk.dir}"/>
+        <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}:${test.tests-from-jdk.dir}"/>
         <copy todir="${build.test.classes.dir}">
             <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
             <fileset dir="${test.tests-from-jdk.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
@@ -707,7 +914,7 @@
     <target depends="init,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 classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" sourcepath="${test.src.dir}:${test.tests-from-jdk.dir}" srcdir="${test.src.dir}:${test.tests-from-jdk.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}:${test.tests-from-jdk.dir}" srcdir="${test.src.dir}:${test.tests-from-jdk.dir}"/>
         <copy todir="${build.test.classes.dir}">
             <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
             <fileset dir="${test.tests-from-jdk.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
--- a/netbeans/meth/nbproject/genfiles.properties	Fri Oct 01 12:26:08 2010 -0700
+++ b/netbeans/meth/nbproject/genfiles.properties	Wed Nov 17 19:31:06 2010 -0800
@@ -1,5 +1,5 @@
 # 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=a09bc78f
-nbproject/build-impl.xml.script.CRC32=222725db
-nbproject/build-impl.xml.stylesheet.CRC32=576378a2@1.32.1.45
+nbproject/build-impl.xml.script.CRC32=27e568d3
+nbproject/build-impl.xml.stylesheet.CRC32=fce8b508@1.40.0.45
--- a/netbeans/meth/nbproject/project.properties	Fri Oct 01 12:26:08 2010 -0700
+++ b/netbeans/meth/nbproject/project.properties	Wed Nov 17 19:31:06 2010 -0800
@@ -1,6 +1,24 @@
+#
+# Some of these probably need to be pre-defined, in ../build.properties:
+#
+file.reference.projects-folder=${user.home}/Projects
+  file.reference.openjdk-jdk7-folder=${file.reference.projects-folder}/hotspot/jdk7-integration
+  file.reference.davinci-project-folder=${file.reference.projects-folder}/davinci
+
+# e.g., ln -s ...davinci/sources/build/bsd-i586/j2sdk-image ~/env/JAVA7X_HOME
+file.reference.env-folder=${user.home}/env
+  libs.junit_4.classpath=${file.reference.env-folder}/JUNIT4_JAR
+  platforms.JDK_7X.home=${file.reference.env-folder}/JAVA7X_HOME
+
+# Possible overrides:
+#file.reference.davinci-project-folder.sources.jdk=${file.reference.openjdk-jdk7-folder}/jdk/src/share/classes
+#config.run.jvmargs=-XX:+UnlockExperimentalVMOptions -XX:+EnableInvokeDynamic
+#allowTransitionalJSR292=yes
+
+# The mosh pit:
 application.args=
 application.title=MethodHandle
-application.vendor=jrose
+application.vendor=Oracle
 auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.tab-size=8
 auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width=80
 auxiliary.org-netbeans-modules-editor-indent.CodeStyle.usedProfile=default
@@ -23,13 +41,12 @@
 dist.jar=${dist.dir}/meth.jar
 dist.javadoc.dir=${dist.dir}/javadoc
 endorsed.classpath=
-####config.run.jvmargs=-XX:+EnableInvokeDynamic
-####excludes=
-excludes=jdk/java/dyn/*Dynamic*
+excludes=
+#excludes=jdk/java/dyn/*Dynamic*
 #excludes=java/dyn/Anonymous*.java,java/dyn/*ConstantPool*.java,jdk/java/dyn/Anonymous*.java,links/**
 #file.reference.bsd-i586-classes=../davinci/sources/build/bsd-i586/classes
 file.reference.test-classes=build/test/classes
-file.reference.jdk-tests=${file.reference.davinci.sources.jdk}/test
+file.reference.jdk-tests=${file.reference.davinci-project-folder.sources.jdk}/test
 includes=java/dyn/**,jdk/java/dyn/**,sun/dyn/**,test/java/dyn/**
 #includes=**
 jar.compress=true
@@ -37,8 +54,8 @@
 #    ${file.reference.bsd-i586-classes}
 # Space-separated list of extra javac options
 javac.compilerargs= -Xbootclasspath/p:${build.classes.dir} -Xlint:none -XDallowTransitionalJSR292=${allowTransitionalJSR292} ${javac.standalone.bcp}
-# choices: yes, no, only
-allowTransitionalJSR292=only
+# choices: yes, no
+allowTransitionalJSR292=no
 # assuming full JDK_7X:
 #javac.standalone.bcp =
 # pulling from a standalone langtools build:
@@ -65,7 +82,7 @@
 javadoc.windowtitle=
 jaxbwiz.endorsed.dirs="${netbeans.home}/../ide12/modules/ext/jaxb/api"
 jnlp.codebase.type=local
-jnlp.codebase.url=file:/Users/jrose/Projects/meth/dist/
+jnlp.codebase.url=file:${dist.dir}
 jnlp.descriptor=application
 jnlp.enabled=false
 jnlp.offline-allowed=false
@@ -89,12 +106,13 @@
     ${javac.test.classpath}:\
     ${build.test.classes.dir}
 source.encoding=UTF-8
-# One or more refs probably need fixing:
-file.reference.davinci.sources.jdk=${file.reference.davinci}/sources/jdk
-file.reference.davinci.sources.langtools=${file.reference.davinci}/sources/langtools
-#was: reference.langtools-javac.jar=${platforms.JDK_7X.home}/lib/tools.jar
-reference.langtools-javac.jar=${file.reference.davinci.sources.langtools}/dist/lib/javac.jar
-src.src.dir=${file.reference.davinci.sources.jdk}/src/share/classes
+# One or more refs might still need fixing:
+file.reference.davinci-project-folder.sources.jdk=${file.reference.davinci-project-folder}/sources/jdk
+file.reference.davinci-project-folder.sources.langtools=${file.reference.davinci-project-folder}/sources/langtools
+reference.langtools-javac.jar=${platforms.JDK_7X.home}/lib/tools.jar
+#reference.langtools-javac.jar=${file.reference.openjdk-jdk7-folder}/langtools/dist/lib/javac.jar
+#reference.langtools-javac.jar=${file.reference.davinci-project-folder.sources.langtools}/dist/lib/javac.jar
+src.src.dir=${file.reference.davinci-project-folder.sources.jdk}/src/share/classes
 test.src.dir=test
 project.license=openjdk
 davinci.patch.name=meth
@@ -103,11 +121,4 @@
 platforms.JDK_7X.bootclasspath=${platforms.JDK_7X.home}/jre/lib/resources.jar:${platforms.JDK_7X.home}/jre/lib/rt.jar:${platforms.JDK_7X.home}/jre/lib/sunrsasign.jar:${platforms.JDK_7X.home}/jre/lib/jsse.jar:${platforms.JDK_7X.home}/jre/lib/jce.jar:${platforms.JDK_7X.home}/jre/lib/charsets.jar:${platforms.JDK_7X.home}/jre/classes:${platforms.JDK_7X.home}/jre/lib/ext/dnsns.jar:${platforms.JDK_7X.home}/jre/lib/ext/localedata.jar:${platforms.JDK_7X.home}/jre/lib/ext/sunjce_provider.jar:${platforms.JDK_7X.home}/jre/lib/ext/sunpkcs11.jar
 platforms.JDK_7X.compiler=modern
 platform.java=${platforms.JDK_7X.home}/bin/java
-test.tests-from-jdk.dir=${file.reference.davinci.sources.jdk}
-#
-# These probably need to be pre-defined, in ../build.properties:
-#
-file.reference.davinci=${user.home}/Projects/davinci
-libs.junit_4.classpath=${user.home}/env/jars/junit-4.5.jar
-# e.g., ln -s ...davinci/sources/build/bsd-i586/j2sdk-image ~/env/JAVA7X_HOME
-platforms.JDK_7X.home=${user.home}/env/JAVA7X_HOME
+test.tests-from-jdk.dir=${file.reference.davinci-project-folder.sources.jdk}
--- a/netbeans/meth/test/sun/dyn/util/ValueConversionsTest.java	Fri Oct 01 12:26:08 2010 -0700
+++ b/netbeans/meth/test/sun/dyn/util/ValueConversionsTest.java	Wed Nov 17 19:31:06 2010 -0800
@@ -55,16 +55,16 @@
                 Object expResult = box;
                 Object result = null;
                 switch (w) {
-                    case INT:     result = (int)     unboxer.<int     >invokeExact(box); break;
-                    case LONG:    result = (long)    unboxer.<long    >invokeExact(box); break;
-                    case FLOAT:   result = (float)   unboxer.<float   >invokeExact(box); break;
-                    case DOUBLE:  result = (double)  unboxer.<double  >invokeExact(box); break;
-                    case CHAR:    result = (char)    unboxer.<char    >invokeExact(box); break;
-                    case BYTE:    result = (byte)    unboxer.<byte    >invokeExact(box); break;
-                    case SHORT:   result = (short)   unboxer.<short   >invokeExact((Short)box); break;
-                    case OBJECT:  result = (Object)  unboxer.<Object  >invokeExact(box); break;
-                    case BOOLEAN: result = (boolean) unboxer.<boolean >invokeExact(box); break;
-                    case VOID:    result = null;     unboxer.<void    >invokeExact(box); break;
+                    case INT:     result = (int)     unboxer.invokeExact(box); break;
+                    case LONG:    result = (long)    unboxer.invokeExact(box); break;
+                    case FLOAT:   result = (float)   unboxer.invokeExact(box); break;
+                    case DOUBLE:  result = (double)  unboxer.invokeExact(box); break;
+                    case CHAR:    result = (char)    unboxer.invokeExact(box); break;
+                    case BYTE:    result = (byte)    unboxer.invokeExact(box); break;
+                    case SHORT:   result = (short)   unboxer.invokeExact((Short)box); break;
+                    case OBJECT:  result = (Object)  unboxer.invokeExact(box); break;
+                    case BOOLEAN: result = (boolean) unboxer.invokeExact(box); break;
+                    case VOID:    result = null;     unboxer.invokeExact(box); break;
                 }
                 assertEquals("w="+w+" n="+n+" box="+box, expResult, result);
             }
@@ -86,15 +86,15 @@
                 MethodHandle unboxer = ValueConversions.unboxRaw(w.primitiveType(), exact);
                 long result = -1;
                 switch (w) {
-                    case INT:     result = (int)  unboxer.<int  >invokeExact(box); break;
-                    case LONG:    result = (long) unboxer.<long >invokeExact(box); break;
-                    case FLOAT:   result = (int)  unboxer.<int  >invokeExact(box); break;
-                    case DOUBLE:  result = (long) unboxer.<long >invokeExact(box); break;
-                    case CHAR:    result = (int)  unboxer.<int  >invokeExact(box); break;
-                    case BYTE:    result = (int)  unboxer.<int  >invokeExact(box); break;
-                    case SHORT:   result = (int)  unboxer.<int  >invokeExact((Short)box); break;
-                    case BOOLEAN: result = (int)  unboxer.<int  >invokeExact(box); break;
-                    case VOID:    result = (int)  unboxer.<int  >invokeExact(box); break;
+                    case INT:     result = (int)  unboxer.invokeExact(box); break;
+                    case LONG:    result = (long) unboxer.invokeExact(box); break;
+                    case FLOAT:   result = (int)  unboxer.invokeExact(box); break;
+                    case DOUBLE:  result = (long) unboxer.invokeExact(box); break;
+                    case CHAR:    result = (int)  unboxer.invokeExact(box); break;
+                    case BYTE:    result = (int)  unboxer.invokeExact(box); break;
+                    case SHORT:   result = (int)  unboxer.invokeExact((Short)box); break;
+                    case BOOLEAN: result = (int)  unboxer.invokeExact(box); break;
+                    case VOID:    result = (int)  unboxer.invokeExact(box); break;
                 }
                 assertEquals("w="+w+" n="+n+" box="+box, expResult, result);
             }
@@ -114,15 +114,15 @@
                 Object expResult = box;
                 Object result = null;
                 switch (w) {
-                    case INT:     result = (Integer)   boxer.<Integer   >invokeExact((int)n); break;
-                    case LONG:    result = (Long)      boxer.<Long      >invokeExact((long)n); break;
-                    case FLOAT:   result = (Float)     boxer.<Float     >invokeExact((float)n); break;
-                    case DOUBLE:  result = (Double)    boxer.<Double    >invokeExact((double)n); break;
-                    case CHAR:    result = (Character) boxer.<Character >invokeExact((char)n); break;
-                    case BYTE:    result = (Byte)      boxer.<Byte      >invokeExact((byte)n); break;
-                    case SHORT:   result = (Object)    boxer.<Object    >invokeExact((short)n); break;
-                    case OBJECT:  result = (Object)    boxer.<Object    >invokeExact((Object)n); break;
-                    case BOOLEAN: result = (Boolean)   boxer.<Boolean   >invokeExact(n != 0); break;
+                    case INT:     result = (Integer)   boxer.invokeExact((int)n); break;
+                    case LONG:    result = (Long)      boxer.invokeExact((long)n); break;
+                    case FLOAT:   result = (Float)     boxer.invokeExact((float)n); break;
+                    case DOUBLE:  result = (Double)    boxer.invokeExact((double)n); break;
+                    case CHAR:    result = (Character) boxer.invokeExact((char)n); break;
+                    case BYTE:    result = (Byte)      boxer.invokeExact((byte)n); break;
+                    case SHORT:   result = (Object)    boxer.invokeExact((short)n); break;
+                    case OBJECT:  result = (Object)    boxer.invokeExact((Object)n); break;
+                    case BOOLEAN: result = (Boolean)   boxer.invokeExact(n != 0); break;
                 }
                 assertEquals("w="+w+" n="+n+" box="+box, expResult, result);
             }
@@ -144,14 +144,14 @@
                 MethodHandle boxer = ValueConversions.boxRaw(w.primitiveType(), exact);
                 Object result = null;
                 switch (w) {
-                case INT:     result = (Integer)   boxer.<Integer   >invokeExact((int)raw); break;
-                case LONG:    result = (Long)      boxer.<Long      >invokeExact(raw); break;
-                case FLOAT:   result = (Float)     boxer.<Float     >invokeExact((int)raw); break;
-                case DOUBLE:  result = (Double)    boxer.<Double    >invokeExact(raw); break;
-                case CHAR:    result = (Character) boxer.<Character >invokeExact((int)raw); break;
-                case BYTE:    result = (Byte)      boxer.<Byte      >invokeExact((int)raw); break;
-                case SHORT:   result = (Object)    boxer.<Object    >invokeExact((int)raw); break;
-                case BOOLEAN: result = (Boolean)   boxer.<Boolean   >invokeExact((int)raw); break;
+                case INT:     result = (Integer)   boxer.invokeExact((int)raw); break;
+                case LONG:    result = (Long)      boxer.invokeExact(raw); break;
+                case FLOAT:   result = (Float)     boxer.invokeExact((int)raw); break;
+                case DOUBLE:  result = (Double)    boxer.invokeExact(raw); break;
+                case CHAR:    result = (Character) boxer.invokeExact((int)raw); break;
+                case BYTE:    result = (Byte)      boxer.invokeExact((int)raw); break;
+                case SHORT:   result = (Object)    boxer.invokeExact((int)raw); break;
+                case BOOLEAN: result = (Boolean)   boxer.invokeExact((int)raw); break;
                 }
                 assertEquals("w="+w+" n="+n+" box="+box, expResult, result);
             }
@@ -174,14 +174,14 @@
                 MethodHandle boxer = ValueConversions.rebox(w.primitiveType(), exact);
                 Object result = null;
                 switch (w) {
-                case INT:     result = (Integer)   boxer.<Integer   >invokeExact(raw); break;
-                case LONG:    result = (Long)      boxer.<Long      >invokeExact(raw); break;
-                case FLOAT:   result = (Float)     boxer.<Float     >invokeExact(raw); break;
-                case DOUBLE:  result = (Double)    boxer.<Double    >invokeExact(raw); break;
-                case CHAR:    result = (Character) boxer.<Character >invokeExact(raw); break;
-                case BYTE:    result = (Byte)      boxer.<Byte      >invokeExact(raw); break;
-                case SHORT:   result = (Object)    boxer.<Object    >invokeExact(raw); break;
-                case BOOLEAN: result = (Boolean)   boxer.<Boolean   >invokeExact(raw); break;
+                case INT:     result = (Integer)   boxer.invokeExact(raw); break;
+                case LONG:    result = (Long)      boxer.invokeExact(raw); break;
+                case FLOAT:   result = (Float)     boxer.invokeExact(raw); break;
+                case DOUBLE:  result = (Double)    boxer.invokeExact(raw); break;
+                case CHAR:    result = (Character) boxer.invokeExact(raw); break;
+                case BYTE:    result = (Byte)      boxer.invokeExact(raw); break;
+                case SHORT:   result = (Object)    boxer.invokeExact(raw); break;
+                case BOOLEAN: result = (Boolean)   boxer.invokeExact(raw); break;
                 }
                 assertEquals("w="+w+" n="+n+" box="+box, expResult, result);
             }
@@ -211,7 +211,7 @@
                     if (!exactInt)
                         result = caster.invokeExact(obj);
                     else
-                        result = (Integer) caster.<Integer>invokeExact(obj);
+                        result = (Integer) caster.invokeExact(obj);
                     if (canCast)
                         assertEquals(obj, result);
                     else
@@ -242,7 +242,7 @@
             Object[] args = new Object[nargs];
             for (int i = 0; i < nargs; i++)
                 args[i] = "#"+i;
-            Object res = target.invokeVarargs(args);
+            Object res = target.invokeWithArguments(args);
             assertArrayEquals(args, (Object[])res);
         }
     }
@@ -255,7 +255,7 @@
             Object[] args = new Object[nargs];
             for (int i = 0; i < nargs; i++)
                 args[i] = "#"+i;
-            Object res = target.invokeVarargs(args);
+            Object res = target.invokeWithArguments(args);
             assertEquals(Arrays.asList(args), res);
         }
     }