У меня есть куча разных репозиториев p2, которые я хочу запрашивать программно.Какие типы пакетов / функций они предоставляют?Какие типы лицензий (если таковые имеются) связаны с пакетами?И я хотел бы просто скачать банки.
Другими словами, я хочу программно запрашивать и загружать практически любую общедоступную информацию, содержащуюся в репозитории p2, но мне не нужно ничего делать с OSGi, связанной с этой информацией.
Есть ли относительно простой способ сделать это?
Я уже попробовал несколько вещей и нашел их неадекватными:
Решение 1: директор p2 :
Я знаю о директоре p2,однако я хочу запросить информацию из приложения, не являющегося затмением, и добавление затмения для последующего запуска команд через командную строку кажется чем-то странным.Кроме того, это ограничило бы меня довольно ограниченным интерфейсом директора p2 (например, я думаю, что я не могу просто загрузить jar, я могу просто установить его, который также распаковывает его и, возможно, делает другие вещи, которых я не знаюof).
Решение 2. Создание контейнера OSGi вручную :
Просматривая API-интерфейсы Eclipse, я подумал, что этого должно быть достаточно, чтобы иметь экземпляры IArtifactRepository / IMetadataRepository (см.например: https://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fequinox%2Fp2%2Frepository%2Fartifact%2Fclass-use%2FIArtifactRepository.html). Однако получить артефакты, кажется, не совсем тривиально. Если я начну с нуля, используя информацию, представленную здесь: Программный запуск OSGi (Equinox)? Iзатем нужно создать и инициализировать IProvisioningAgentProvider, затем IProvisioningEventBus, затем мне нужен реестр и т. д. Довольно сложно понять, что именно нужно, и многие вещи - внутренние равноденствия, так что на самом деле это тоже не кажетсяпуть.
Может ли любой из множества связанных с равноденствием пучков дать "легкий" г?Чтобы сделать это?