Получение Bundle [] в Eclipse всех пакетов - PullRequest
0 голосов
/ 26 марта 2009

Я пишу приложение, которое использует Equinox в качестве моей платформы OSGi. Я пытаюсь обнаружить все пакеты, известные на момент регистрации пакета. Я попытался использовать следующую строку, чтобы получить все доступные пакеты. Тем не менее,

.

EclipseStarter.getSystemBundleContext () getBundles ();

дает мне предупреждение ...

Недопустимый доступ: метод getSystemBundleContext () из типа EclipseStarter недоступен из-за ограничения на необходимую библиотеку D: \ java \ eclipse \ plugins \ org.eclipse.osgi_3.4.0.v20080605-1900.jar

Как правильно использовать, чтобы получить список всех доступных пакетов в рамках?

1 Ответ

2 голосов
/ 26 марта 2009

Вы можете использовать свой собственный контекст пакета в качестве точки входа вместо EclipseStarter - в активаторе вашего плагина:

start(BundleContext context)
{
  context.getBundles();  // what you want
}

Посмотрите на классы Plugin cans AbstractUIPlugin, если вы не знаете о них. Если вам действительно нужен одиночный доступ, ваш плагин, вероятно, один - не стесняйтесь выставить YourPlugin.getInstance().getBundleContext().

(Отказ от ответственности: я не пробовал - но это будет соответствовать OSGi / Eclipse)

...