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) {