]> git.pld-linux.org Git - packages/ant.git/commitdiff
- patch against jdk 1.4.2
authorpascalek <pascalek@pld-linux.org>
Wed, 2 Jul 2003 12:03:29 +0000 (12:03 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    jakarta-ant-jdk1.4.2.patch -> 1.1

jakarta-ant-jdk1.4.2.patch [new file with mode: 0644]

diff --git a/jakarta-ant-jdk1.4.2.patch b/jakarta-ant-jdk1.4.2.patch
new file mode 100644 (file)
index 0000000..c7844eb
--- /dev/null
@@ -0,0 +1,151 @@
+diff -Nur apache-ant-1.5.3.orig/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java apache-ant-1.5.3.chng/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java
+--- apache-ant-1.5.3.orig/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java   Tue Apr  8 17:24:05 2003
++++ apache-ant-1.5.3.chng/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java   Tue Jul  1 11:54:09 2003
+@@ -54,22 +54,20 @@
+ package org.apache.tools.ant.taskdefs.optional;
++import java.io.File;
++import java.lang.reflect.Constructor;
++import java.lang.reflect.Method;
++import java.util.Enumeration;
++import java.util.StringTokenizer;
++import java.util.Vector;
+ import org.apache.tools.ant.BuildException;
+-
+ import org.apache.tools.ant.Project;
+ import org.apache.tools.ant.Task;
+-
++import org.apache.tools.ant.types.Commandline;
+ import org.apache.tools.ant.types.Path;
+ import org.apache.tools.ant.types.Reference;
+-import org.apache.tools.ant.types.Commandline;
+-
+ import org.apache.tools.ant.util.JavaEnvUtils;
+-import java.io.File;
+-import java.util.Vector;
+-import java.util.StringTokenizer;
+-import java.util.Enumeration;
+-
+ /**
+  * Generates JNI header files using javah.
+  *
+@@ -104,8 +102,6 @@
+ public class Javah extends Task {
+-    private static final String FAIL_MSG = "Compile failed, messages should have been provided.";
+-
+     private Vector classes = new Vector(2);
+     private String cls;
+     private File destDir;
+@@ -175,7 +171,7 @@
+      */
+     public Path createClasspath() {
+         if (classpath == null) {
+-            classpath = new Path(project);
++            classpath = new Path(getProject());
+         }
+         return classpath.createPath();
+     }
+@@ -204,7 +200,7 @@
+      */
+     public Path createBootclasspath() {
+         if (bootclasspath == null) {
+-            bootclasspath = new Path(project);
++            bootclasspath = new Path(getProject());
+         }
+         return bootclasspath.createPath();
+     }
+@@ -285,19 +281,19 @@
+         // first off, make sure that we've got a srcdir
+         if ((cls == null) && (classes.size() == 0)) {
+-            throw new BuildException("class attribute must be set!", location);
++            throw new BuildException("class attribute must be set!", getLocation());
+         }
+         if ((cls != null) && (classes.size() > 0)) {
+-            throw new BuildException("set class attribute or class element, not both.", location);
++            throw new BuildException("set class attribute or class element, not both.", getLocation());
+         }
+         if (destDir != null) {
+             if (!destDir.isDirectory()) {
+-                throw new BuildException("destination directory \"" + destDir + "\" does not exist or is not a directory", location);
++                throw new BuildException("destination directory \"" + destDir + "\" does not exist or is not a directory", getLocation());
+             }
+             if (outputFile != null) {
+-                throw new BuildException("destdir and outputFile are mutually exclusive", location);
++                throw new BuildException("destdir and outputFile are mutually exclusive", getLocation());
+             }
+         }
+@@ -307,7 +303,7 @@
+             classpath = classpath.concatSystemClasspath("ignore");
+         }
+-        String compiler = project.getProperty("build.compiler");
++        String compiler = getProject().getProperty("build.compiler");
+         if (compiler == null) {
+             if (!JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1) &&
+                 !JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_2)) {
+@@ -341,24 +337,38 @@
+             throw new BuildException("Compile failed");
+         }
+         */
++        
++            
+         try {
+-            // Javac uses logstr to change the output stream and calls
+-            // the constructor's invoke method to create a compiler instance
+-            // dynamically. However, javah has a different interface and this
+-            // makes it harder, so here's a simple alternative.
+-            //------------------------------------------------------------------
+-            com.sun.tools.javah.Main main 
+-                = new com.sun.tools.javah.Main(cmd.getArguments());
+-            main.run();
++            Class javahMainClass = null;
++            try {
++                // first search for the "old" javah class in 1.4.2 tools.jar
++                javahMainClass = Class.forName("com.sun.tools.javah.oldjavah.Main");
++            } catch(ClassNotFoundException cnfe) {
++                // assume older than 1.4.2 tools.jar
++                javahMainClass = Class.forName("com.sun.tools.javah.Main");
++            }
++            
++            // now search for the constructor that takes in String[] arguments.
++            Class[] strings = new Class[] {String[].class};
++            Constructor constructor = javahMainClass.getConstructor(strings);
++            
++            // construct the javah Main instance
++            Object javahMain = constructor.newInstance(new Object[] {cmd.getArguments()});
++            
++            // find the run method
++            Method runMethod = javahMainClass.getMethod("run",new Class[0]);
++            
++            runMethod.invoke(javahMain,new Object[0]);
+         } catch (Exception ex) {
+             if (ex instanceof BuildException) {
+                 throw (BuildException) ex;
+             } else {
+-                throw new BuildException("Error starting javah: " + ex, ex, location);
++                throw new BuildException("Error starting javah: " + ex, ex, getLocation());
+             }
+         }
+     }
+-
++        
+     /**
+      * Does the command line argument processing common to classic and
+      * modern.
+@@ -400,7 +410,7 @@
+         if (stubs) {
+             if (!old) {
+-                throw new BuildException("stubs only available in old mode.", location);
++                throw new BuildException("stubs only available in old mode.", getLocation());
+             }
+             cmd.createArgument().setValue("-stubs");
+         }
This page took 0.111846 seconds and 4 git commands to generate.