在Eclipse中公开服务器的类路径/调试源查找

时间:2016-02-16 14:53:11

标签: eclipse eclipse-plugin eclipse-wtp

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

实际的服务器是一个Java应用程序,所以它有一个类路径。我有兴趣将该类路径暴露给Eclipse,以便

  • 用户可以查看该服务器上部署的内容
  • 我可以在调试时填充源查找路径

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

1 个答案:

答案 0 :(得分:0)

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