Bug 529334 - [9][testsources][launching] Add --add-reads m=ALL-UNNAMED
if launching with test code and non-empty build classpath
Change-Id: I425a4cbc240925e870ae8905eb61c0e8736d83ee
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
index f2c5655..583cc55 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
@@ -51,6 +51,7 @@
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IModuleDescription;
import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.provisional.JavaModelAccess;
import org.eclipse.jdt.debug.core.IJavaDebugTarget;
import org.eclipse.jdt.debug.core.IJavaMethodBreakpoint;
import org.eclipse.jdt.debug.core.JDIDebugModel;
@@ -1182,6 +1183,23 @@
sb.append(entry.getValue());
}
+ boolean excludeTestCode = configuration.getAttribute(IJavaLaunchConfigurationConstants.ATTR_EXCLUDE_TEST_CODE, false);
+ if (!excludeTestCode) {
+ // TODO: revisit to examine other possible solutions
+ IJavaProject project = getJavaProject(configuration);
+ if (project != null) {
+ for (String moduleName : JavaModelAccess.determineModulesOfProjectsWithNonEmptyClasspath(project)) {
+ if (sb.length() > 0) {
+ sb.append(' ');
+ }
+ sb.append("--add-reads"); //$NON-NLS-1$
+ sb.append(' ');
+ sb.append(moduleName);
+ sb.append('=');
+ sb.append("ALL-UNNAMED"); //$NON-NLS-1$
+ }
+ }
+ }
return sb.toString();
}
}