Вызвать мой плагин Eclipse методом в приложении Java - PullRequest
2 голосов
/ 09 декабря 2011

Я работаю над проектом для графической визуализации объектов Java во время выполнения статическим методом, таким как D.raw(anyObject);. Сейчас я пытаюсь преобразовать его в плагин Eclipse, чтобы вывод был показан внутри Eclipse. Но я не знаю, как предоставить статический метод из плагина для использования в проектах рабочей области. Я думаю, что было бы возможно предоставить некоторую библиотеку .jar в рабочую область, но я все еще не знаю, как управлять шагом в моем плагине ...

Я нашел решение аналогичной проблемы здесь: вызов собственного метода плагина eclipse из любого Java-приложения Но с этим я не смог зафиксировать свой объект в качестве параметра ...

Заранее спасибо

Cedric

Ответы [ 2 ]

2 голосов
/ 10 декабря 2011

Реальная проблема, с которой вы сталкиваетесь, заключается в том, что плагин и ваш класс будут работать в отдельных JVM.

Одно из решений:

  1. Вызовите ваш проверочный код (я полагаю, что он должен использовать отражение во время выполнения) из кода, который вы хотите проверить (то есть, вызовите вашу D.raw функцию)
  2. Сериализация контрольных данных в файл журнала
  3. Плагин контролирует файл и десериализует его при изменении и обновляет визуализацию

Это похоже на работу многих плагин-адаптеров Eclipse.

Конечно, «реальный» способ сделать это - не вызывать D.raw, а напрямую общаться с JVM через сокет, используя тот же API, что и такой инструмент, как jvisiualvm.

0 голосов
/ 09 декабря 2011

Вы можете создать плагин-обертку, который будет экспортировать все пакеты в вашем банке. (Новый подключаемый проект из существующего jar-файла).

Чтобы создать новый плагин, отредактируйте файл MANIFEST.MF -> runtime -> export. MANIFEST.MF должен выглядеть так:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Myplugin
Bundle-SymbolicName: com.mycompany.myplugin
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: com.mycompany.myplugin.Activator
Bundle-Vendor: MYCOMPANY
Require-Bundle: org.eclipse.ui,
 org.eclipse.core.runtime
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Export-Package: com.mycompany.myplugin.mypackage1,
 com.mycompany.myplugin.mypackage2,
 com.mycompany.myplugin.mypackagexxx

Затем, чтобы использовать его в другом плагине, вы должны добавить плагин-оболочку к своим зависимостям.

...