Bug 268104 - Launch config: JRE tab should show project's EE
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaJRETab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaJRETab.java
index 2e05bee..8a7a18d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaJRETab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaJRETab.java
@@ -24,6 +24,7 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
@@ -55,6 +56,7 @@
import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
import org.eclipse.jdt.launching.IVMInstall;
import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jdt.launching.environments.IExecutionEnvironment;
import org.eclipse.jdt.ui.ISharedImages;
import org.eclipse.jdt.ui.JavaUI;
@@ -512,10 +514,30 @@
return MessageFormat.format(LauncherMessages.JavaJRETab_8, new String[]{name});
}
try {
+ String eeName = null;
+ IClasspathEntry[] classpath = project.getRawClasspath();
+ for (int i = 0; i < classpath.length; i++) {
+ IClasspathEntry entry = classpath[i];
+ if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
+ if (JavaRuntime.JRE_CONTAINER.equals(entry.getPath().segment(0))) {
+ String id = JavaRuntime.getExecutionEnvironmentId(entry.getPath());
+ if (id != null) {
+ IExecutionEnvironment env = JavaRuntime.getExecutionEnvironmentsManager().getEnvironment(id);
+ if (env != null) {
+ eeName = env.getId();
+ break;
+ }
+ }
+ }
+ }
+ }
IVMInstall vm = JavaRuntime.getVMInstall(project);
if (vm != null) {
name = vm.getName();
}
+ if (eeName != null) {
+ return MessageFormat.format(LauncherMessages.JavaJRETab_5, new String[]{eeName, name});
+ }
} catch (CoreException e) {
}
return MessageFormat.format(LauncherMessages.JavaJRETab_9, new String[]{name});
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LauncherMessages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LauncherMessages.java
index 4bb636e..f2b9c00 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LauncherMessages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LauncherMessages.java
@@ -50,6 +50,8 @@
public static String JavaConnectTab__is_invalid__5;
public static String JavaJRETab__JRE_1;
+
+ public static String JavaJRETab_5;
public static String JavaJRETab_7;
public static String JavaJRETab_8;
public static String JavaJRETab_9;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LauncherMessages.properties b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LauncherMessages.properties
index 7ff9917..e97f7f9 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LauncherMessages.properties
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LauncherMessages.properties
@@ -37,6 +37,7 @@
JavaJRETab_2=JRE
JavaJRETab_1=Execution environment
JavaJRETab_0={0} not compatible with {1} .class file compatibility: {2}
+JavaJRETab_5=&Project execution environment ''{0}'' ({1})
JavaMainTab_Choose_a_main__type_to_launch__12=Select &type (? = any character, * = any String, TZ = TimeZone):
JavaMainTab_Choose_Main_Type_11=Select Main Type
JavaApplicationLaunchShortcut_0=Select Java Application