Есть ли что-то в оболочке OSGi api, которая инкапсулирует пакет, не установленный в контейнере? В принципе, что-то, что возьмет файл и сгенерирует объект с getSymbolicName(), getExportedPackages(), getBundleVersion() и т. Д. Для пакета в файловой системе.Класс/Интерфейс для инкапсуляции пакета OSGi в файловой системе
Bundle Я вижу, но док говорит в первом предложении:
Установленный пакет в Framework.
Таким образом, этот интерфейс имеет методы, которые не имеют смысла для комплекта, который не установлен, просто сидит там в файловой системе, и это то, что мне нужно. Например, он имеет метод start()
, который не имеет смысла за пределами контейнера. То же самый с getBundleId()
мне нужно, и я хочу знать, если есть стандартная один, прежде чем я создаю мой собственный
Спасибо, Балаз. Я знаю, как извлечь все это, кроме интерфейса Constants, о котором я не знал, и что теперь буду использовать. Спасибо за это. Но ответ на мой вопрос тогда, нет, согласен? Просто, если я создаю свою собственную инкапсуляцию, мне могут не хватать вещи, которые я просто не использую, например getFragmentsHost. Поэтому мне было интересно, есть ли в стандарте полнофункциональная api. Что-то более OO, чем просто строки из манифестных записей, например. класс ExportedPackage с getVersion(), getUses() и т. д. вместо меня разбор строки – Hilikus
В API нет парсера. API больше связан с интерфейсами и константами, чем с классами с реализациями. Насколько я помню, я проверил, как равноденствие и как феликс анализирует MANIFEST.MF, и оба имеют свои собственные простые решения. Это было много лет назад, поэтому я не помню названия классов, но его было непросто найти. Просто нажмите «ctrl + alt + h» в eclipse на любом из постоянных значений, когда felix или equinox находится в пути к классам. Не будет мест, где, например, Используется константа фрагмента-хозяина. –
Помните, что пакеты не обязательно присутствуют в файловой системе вообще. Они загружаются из InputStream, который может прибывать откуда угодно. –