diff -r -N -u eut_old_eclipse172820/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java eut_new_eclipse172820/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java --- eut_old_eclipse172820/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java 2007-05-16 19:22:46.000000000 +0700 +++ eut_new_eclipse172820/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java 2007-05-16 16:12:59.768460540 +0700 @@ -11,6 +11,7 @@ package org.eclipse.jdt.core.tests.compiler.regression; import java.io.File; +import java.io.FilenameFilter; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; @@ -43,11 +44,30 @@ public static Test suite() { return buildUniqueComplianceTestSuite(testClass(), COMPLIANCE_1_5); } - + private String getHYClasses() { + String jre = System.getProperty("java.home"); + FilenameFilter jarFilter = new FilenameFilter() { + public boolean accept(File dir, String name) { + return (name.endsWith(".jar") && !name.endsWith("-src.jar")); + } + }; + String libraryClasses = ""; + String path_separator = System.getProperty("path.separator"); + String[] jars = new File(jre + "/lib/boot/").list(jarFilter); + for (int i = 0; i < jars.length; i++) { + libraryClasses = libraryClasses + jre + "/lib/boot/" + jars[i] + path_separator; + } + return libraryClasses; + } + private String getLibraryClasses() { if (Util.isMacOS()) { return JRE_HOME_DIR + "/../Classes/classes.jar"; } + final String vmName = System.getProperty("java.vm.name"); + if ("DRLVM".equals(vmName)) { + return getHYClasses(); + } return JRE_HOME_DIR + "/lib/rt.jar"; } diff -r -N -u eut_old_eclipse172820/org/eclipse/jdt/core/tests/runtime/LocalVMLauncher.java eut_new_eclipse172820/org/eclipse/jdt/core/tests/runtime/LocalVMLauncher.java --- eut_old_eclipse172820/org/eclipse/jdt/core/tests/runtime/LocalVMLauncher.java 2007-05-16 19:22:46.000000000 +0700 +++ eut_new_eclipse172820/org/eclipse/jdt/core/tests/runtime/LocalVMLauncher.java 2007-05-16 16:12:59.767460689 +0700 @@ -66,6 +66,10 @@ if ("IBM J9SE VM".equals(vmName)) { return new SideCarJ9VMLauncher(); } + // DRLVM works ok when launching in the same way as SideCarVM + if ("DRLVM".equals(vmName)) { + return new SideCarVMLauncher(); + } return new SideCarVMLauncher(); } /** diff -r -N -u eut_old_eclipse172820/org/eclipse/jdt/core/tests/util/Util.java eut_new_eclipse172820/org/eclipse/jdt/core/tests/util/Util.java --- eut_old_eclipse172820/org/eclipse/jdt/core/tests/util/Util.java 2007-05-16 19:22:46.000000000 +0700 +++ eut_new_eclipse172820/org/eclipse/jdt/core/tests/util/Util.java 2007-05-16 16:12:59.767460689 +0700 @@ -12,6 +12,7 @@ import java.io.File; import java.io.FileInputStream; +import java.io.FilenameFilter; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; @@ -505,6 +506,18 @@ toNativePath(jreDir + "/lib/rt.jar") }; } + if ("DRLVM".equals(vmName)) { + FilenameFilter jarFilter = new FilenameFilter() { + public boolean accept(File dir, String name) { + return name.endsWith(".jar") & !name.endsWith("-src.jar"); + } + }; + String[] jars = new File(jreDir + "/lib/boot/").list(jarFilter); + for (int i = 0; i < jars.length; i++) { + jars[i] = toNativePath(jreDir + "/lib/boot/" + jars[i]); + } + return jars; + } return new String[] { toNativePath(jreDir + "/lib/core.jar"), toNativePath(jreDir + "/lib/security.jar"),