From a7870b167d35566a8ed101467825a406aa61fa13 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Wed, 31 Oct 2001 11:01:24 +0000 Subject: [PATCH] factor out runtime library detection. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269845 13f79535-47bb-0310-9956-ffa450edef68 --- .../compilers/DefaultCompilerAdapter.java | 44 +--------------- .../ant/taskdefs/rmic/DefaultRmicAdapter.java | 50 +------------------ src/main/org/apache/tools/ant/types/Path.java | 47 ++++++++++++++++- 3 files changed, 49 insertions(+), 92 deletions(-) diff --git a/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java b/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java index a1d22c29d..7c7b7e0c1 100644 --- a/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java +++ b/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java @@ -68,6 +68,7 @@ import java.io.File; import java.io.PrintWriter; import java.io.FileWriter; import java.io.IOException; +import java.util.Locale; import java.util.Random; /** @@ -165,48 +166,7 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter { } if (includeJavaRuntime) { - // XXX move this stuff to a separate class, code is identical to - // code in ../rmic/DefaultRmicAdapter - - if (System.getProperty("java.vendor").toLowerCase().indexOf("microsoft") >= 0) { - // Pull in *.zip from packages directory - FileSet msZipFiles = new FileSet(); - msZipFiles.setDir(new File(System.getProperty("java.home") + File.separator + "Packages")); - msZipFiles.setIncludes("*.ZIP"); - classpath.addFileset(msZipFiles); - } - else if (Project.getJavaVersion() == Project.JAVA_1_1) { - classpath.addExisting(new Path(null, - System.getProperty("java.home") - + File.separator + "lib" - + File.separator - + "classes.zip")); - } else { - // JDK > 1.1 seems to set java.home to the JRE directory. - classpath.addExisting(new Path(null, - System.getProperty("java.home") - + File.separator + "lib" - + File.separator + "rt.jar")); - // Just keep the old version as well and let addExistingToPath - // sort it out. - classpath.addExisting(new Path(null, - System.getProperty("java.home") - + File.separator +"jre" - + File.separator + "lib" - + File.separator + "rt.jar")); - - // Added for MacOS X - classpath.addExisting(new Path(null, - System.getProperty("java.home") - + File.separator + ".." - + File.separator + "Classes" - + File.separator + "classes.jar")); - classpath.addExisting(new Path(null, - System.getProperty("java.home") - + File.separator + ".." - + File.separator + "Classes" - + File.separator + "ui.jar")); - } + classpath.addJavaRuntime(); } return classpath; diff --git a/src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java b/src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java index 8c6dc8c1d..0037a8524 100644 --- a/src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java +++ b/src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java @@ -145,55 +145,7 @@ public abstract class DefaultRmicAdapter implements RmicAdapter { } if (attributes.getIncludejavaruntime()) { - // XXX move this stuff to a separate class, code is identical to - // code in ../compiler/DefaultCompilerAdapter - - if (System.getProperty("java.vendor").toLowerCase().indexOf("microsoft") >= 0) { - // Pull in *.zip from packages directory - FileSet msZipFiles = new FileSet(); - msZipFiles.setDir(new File(System.getProperty("java.home") + File.separator + "Packages")); - msZipFiles.setIncludes("*.ZIP"); - classpath.addFileset(msZipFiles); - } else if (Project.getJavaVersion() == Project.JAVA_1_1) { - classpath.addExisting(new Path(null, - System.getProperty("java.home") - + File.separator + "lib" - + File.separator - + "classes.zip")); - } else if(System.getProperty("java.vm.name").equals("Kaffe")) { - FileSet kaffeJarFiles = new FileSet(); - kaffeJarFiles.setDir(new File(System.getProperty("java.home") - + File.separator + "share" - + File.separator + "kaffe")); - - kaffeJarFiles.setIncludes("*.jar"); - classpath.addFileset(kaffeJarFiles); - } else { - // JDK > 1.1 seems to set java.home to the JRE directory. - classpath.addExisting(new Path(null, - System.getProperty("java.home") - + File.separator + "lib" - + File.separator + "rt.jar")); - // Just keep the old version as well and let addExistingToPath - // sort it out. - classpath.addExisting(new Path(null, - System.getProperty("java.home") - + File.separator +"jre" - + File.separator + "lib" - + File.separator + "rt.jar")); - - // Added for MacOS X - classpath.addExisting(new Path(null, - System.getProperty("java.home") - + File.separator + ".." - + File.separator + "Classes" - + File.separator + "classes.jar")); - classpath.addExisting(new Path(null, - System.getProperty("java.home") - + File.separator + ".." - + File.separator + "Classes" - + File.separator + "ui.jar")); - } + classpath.addJavaRuntime(); } return classpath; } diff --git a/src/main/org/apache/tools/ant/types/Path.java b/src/main/org/apache/tools/ant/types/Path.java index ed0106b8b..05a301fe5 100644 --- a/src/main/org/apache/tools/ant/types/Path.java +++ b/src/main/org/apache/tools/ant/types/Path.java @@ -62,7 +62,7 @@ import org.apache.tools.ant.PathTokenizer; import java.io.File; import java.util.Enumeration; - +import java.util.Locale; import java.util.Stack; import java.util.Vector; @@ -518,4 +518,49 @@ public class Path extends DataType implements Cloneable { } + /** + * Add the Java Runtime classes to this Path instance. + */ + public void addJavaRuntime() { + if (System.getProperty("java.vendor").toLowerCase(Locale.US).indexOf("microsoft") >= 0) { + // Pull in *.zip from packages directory + FileSet msZipFiles = new FileSet(); + msZipFiles.setDir(new File(System.getProperty("java.home") + File.separator + "Packages")); + msZipFiles.setIncludes("*.ZIP"); + addFileset(msZipFiles); + } + else if (Project.getJavaVersion() == Project.JAVA_1_1) { + addExisting(new Path(null, + System.getProperty("java.home") + + File.separator + "lib" + + File.separator + + "classes.zip")); + } else { + // JDK > 1.1 seems to set java.home to the JRE directory. + addExisting(new Path(null, + System.getProperty("java.home") + + File.separator + "lib" + + File.separator + "rt.jar")); + // Just keep the old version as well and let addExistingToPath + // sort it out. + addExisting(new Path(null, + System.getProperty("java.home") + + File.separator +"jre" + + File.separator + "lib" + + File.separator + "rt.jar")); + + // Added for MacOS X + addExisting(new Path(null, + System.getProperty("java.home") + + File.separator + ".." + + File.separator + "Classes" + + File.separator + "classes.jar")); + addExisting(new Path(null, + System.getProperty("java.home") + + File.separator + ".." + + File.separator + "Classes" + + File.separator + "ui.jar")); + } + } + }