Bug 559797 - Include reference libraries in the debug classpath
With this fix MavenRuntimeClasspathProvider will add jar and class
folder reference libraries into debug classpath.
Change-Id: Iaf3eeab784ef05ef3ca1cdc782f414d51111ce7c
Signed-off-by: gayanper <gayanper@gmail.com>
diff --git a/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/launch/MavenRuntimeClasspathProvider.java b/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/launch/MavenRuntimeClasspathProvider.java
index c58d828..ef2ae53 100644
--- a/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/launch/MavenRuntimeClasspathProvider.java
+++ b/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/launch/MavenRuntimeClasspathProvider.java
@@ -20,6 +20,7 @@
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -124,11 +125,17 @@
IRuntimeClasspathEntry mavenEntry = JavaRuntime.newRuntimeContainerClasspathEntry(
new Path(IClasspathManager.CONTAINER_ID), IRuntimeClasspathEntry.USER_CLASSES);
- if(jreEntry == null) {
- return new IRuntimeClasspathEntry[] {projectEntry, mavenEntry};
+ final List<IRuntimeClasspathEntry> entries = new ArrayList<IRuntimeClasspathEntry>();
+ if(jreEntry != null) {
+ entries.add(jreEntry);
}
+ entries.add(projectEntry);
+ entries.add(mavenEntry);
- return new IRuntimeClasspathEntry[] {jreEntry, projectEntry, mavenEntry};
+ entries.addAll(Arrays.stream(JavaRuntime.computeUnresolvedRuntimeDependencies(javaProject, true))
+ .filter(e -> e.getType() == IRuntimeClasspathEntry.ARCHIVE).collect(Collectors.toList()));
+
+ return entries.toArray(new IRuntimeClasspathEntry[0]);
}
// recover persisted classpath
if(isModular) {