Как остановить определенный пакет Apache Felix с помощью java

Я хотел бы знать, как остановить определенный пакет в веб-консоли Apache Felix, работающий только с кодом Java.

Например: я хочу получить пакет, скажем, по имени, и остановить его.


person jason    schedule 22.08.2011    source источник


Ответы (1)


Из консоли:

  1. find 'bundle-name' //отображаем пакеты, получаем идентификатор отсюда.
  2. stop 'id'

Из кода:

  1. Сначала получите объект пакета, используя PackageAdmin.getBundles(имя)
  2. Вызовите Bundle.stop в тот пучок.

РЕДАКТИРОВАТЬ: Чтобы получить объект PackageAdmin:

ServiceReference ref = context.getServiceReference(PackageAdmin.class.getName());
PackageAdmin pa = (ref == null) ? null : (PackageAdmin) context.getService(ref);
person Suraj Chandran    schedule 22.08.2011
comment
Спасибо за быстрый ответ! Извините, я действительно новичок в этом, но как мне создать объект PackageAdmin, чтобы он имел доступ ко всем пакетам, размещенным на моем сервере? - person jason; 22.08.2011
comment
я обновил ответ с образцом кода, чтобы получить ссылку на пакет-администратора - person Suraj Chandran; 22.08.2011
comment
также см. это для получения подробной информации: -top" title="как обнаружить типы, экспортированные пакетом osgi, без установки активации"> stackoverflow.com/questions/785588/ - person Suraj Chandran; 22.08.2011
comment
так на что ссылается объект контекста? БандлКонтекст? - person jason; 24.08.2011
comment
Можно ли получить BundleContext из-за пределов среды Felix OSGI? - person jason; 25.08.2011