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