Hi Geronimo dev-tool team,
When I was developing a web module using Geronimo Eclipse Plugin, I was
unable to have Eclipse to load the source code for the libraries that my web
module depends on. To outline the steps to reproduce my problem:
1. Create a Dynamic Web Project in Eclipse
2. Enable Maven by click "Maven" -> "Enable Dependency Management"
3. Add a library (dependency in Maven) to my web project, for example,
Freemarker, using Maven plugin
4. Attach source code by clicking "Maven" -> "Download Sources"
5. Launch a Geronimo server to debug my web project
6. Add a break point in one of Freemarker's class.
7. When the breakpoint is hit, Eclipse will complain that Freemarker source
code is not found.
When I digged deeper, I found out that my problem seems to be relatd with
the way how the class
"org.apache.geronimo.st.core/src/main/java/org/apache/geronimo/st/core/GeronimoSourcePathComputerDelegate.java"
is implemented. Below is a code snippet from its method
"computeSourceContainers"
...
// populate list of java projects and their source folders
processModules(modules, javaProjectList, server, monitor);
// create a ProjectRuntime classpath entry for each
JavaProject
IRuntimeClasspathEntry[] projectEntries = new
IRuntimeClasspathEntry[javaProjectList.size()];
for (int i = 0; i < javaProjectList.size(); i++) {
projectEntries[i] =
JavaRuntime.newProjectRuntimeClasspathEntry((IJavaProject)
javaProjectList.get(i));
}
...
IRuntimeClasspathEntry[] resolved =
JavaRuntime.resolveSourceLoo
kupPath(entries, configuration);
ISourceContainer[] defaultContainers =
JavaRuntime.getSourceCont
ainers(resolved);
...
It seems to make Eclipse add only the web project to sourcepath lookup,
rather than the libraries it depends on.
I feel it is a useful feature to make source code of all depending libraries
available to Eclipse when debugging, and it seems to be a very intuitive way
to integrate with Maven.
Did I miss anything here? Please let me what your solution was.
Thanks,
Kenneth