在 Eclipse 中公开服务器的 classpath/debug 源查找

Exposing a server's classpath/debug source lookup in Eclipse

我正在开发一个提供 WST 服务器适配器(如 Tomcat、Jetty 等)的 Eclipse 插件 - Sling IDE Tooling.

实际服务器是一个 Java 应用程序,因此它确实有一个类路径。我有兴趣将该类路径公开给 Eclipse,以便

我知道如何找出服务器上部署的内容,但如何将其公开给 Eclipse?

IVMConnector.connect 接受一个 ILaunch 参数,该参数又包含一个 ISourceLocator。源定位器有一个 ISourceContainer 个实例的列表。

源容器实例是根据已解析的 IRuntimeClasspathEntry 列表构建的。一些例子:

List<IRuntimeClasspathEntry> classpathEntries = new ArrayList<>();

// 1. Adding a IJavaProject as a classpath entry
classpathEntries.add(JavaRuntime.newProjectRuntimeClasspathEntry(javaProject));

// 2. Adding external jar files
classpathEntries.add(JavaRuntime.newArchiveRuntimeClasspathEntry(jarPath));

// 3. Adding a JRE entry
classpathEntries.add(JavaRuntime.computeJREEntry(launch.getLaunchConfiguration()));

然后需要解析类路径条目并将其转换为源容器

// 4. resolve the classpath entries
IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveSourceLookupPath(classpathEntries.toArray(new IRuntimeClasspathEntry[0]), launch.getLaunchConfiguration());

// 5. convert them to source references
ISourceContainer[] containers = JavaRuntime.getSourceContainers(resolved));

此时源c