Предоставление поиска по пути к классам / отладочным серверам в Eclipse
Я разрабатываю плагин Eclipse, который предоставляет адаптер сервера WST (например, Tomcat, Jetty и т. Д.) - Sling IDE Tooling.
Фактический сервер - это приложение Java, поэтому у него есть путь к классам. Я заинтересован в том, чтобы разоблачить этот путь к Eclipse, чтобы
- пользователи могут видеть, что развернуто на этом сервере
- Я могу заполнить исходный путь поиска при отладке
Я знаю, как узнать, что развернуто на сервере, но как я могу предоставить его Eclipse?
1 ответ
Решение
IVMConnector.connect
занимает ILaunch
аргумент, который в свою очередь содержит ISourceLocator
, Локатор источника имеет список ISourceContainer
экземпляров.
Экземпляры исходного контейнера создаются из списка разрешенных IRuntimeClasspathEntry
s. Некоторые примеры:
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