Где найти и установить пакет org.osgi.framework? - PullRequest
2 голосов
/ 24 апреля 2019

Я пытаюсь следовать этому руководству:

Учебник Apache Felix # 1

Но я не понимаю структуру каталогов.Где я могу разместить файл Activator.java?Где, по отношению к файлу Activator.java, я помещаю файл MANIFEST.MF?

В этом руководстве при попытке скомпилировать файл Activator.java я получаю сообщения об ошибках, что org.osgi.framework не существует.Где я могу получить пакет org.osgi.framework и где его следует установить?Как команда сборки javac знает, как найти пакет org.osgi.framework?

Я ищу учебник, который объясняет, что такое платформа Karaf / Felix и как заставить работать простые примеры.

Я также пытался следовать этому руководству: http://kevinboone.net/osgitest.html

, но оно устарело и сборка шага Tick Bund не удалась.В частности, команда:

javac -d target/tick/classes -classpath /path/to/karaf/lib/karaf.jar src/net/kevinboone/osgitest/tick/*.java

не имеет смысла, потому что в моей установке karaf нет файла "karaf.jar", который я скачал с сайта загрузки karaf .

В файле манифеста есть строка:

Import-Package: org.osgi.framework

но этот пакет, по-видимому, не существует в установке karaf?

1 Ответ

4 голосов
/ 24 апреля 2019

Учебник Феликса ужасно устарел.

Если вы хотите изучать OSGi, я могу порекомендовать учебники Apache Karaf и , а также примеры enroute .

еще ответить на вопрос.Вы найдете пакет org.osgi.framework в основной банке ОСГИ, а также в банке Феликса.Поэтому один из этих jar-файлов должен находиться на пути к классам во время компиляции.

Вы не должны создавать манифест вручную.Вместо этого используйте плагин как maven-bundle-plugin для его создания.Затем вы можете разместить Активатор там, где вам нужно, и просто дать подсказку инструменту, где он находится.

Не тратьте слишком много времени на Активатор и другие низкоуровневые API OSGi.Они не так, как вы должны писать код.Вместо этого взгляните на декларативные услуги.Это позволяет связывать ваши классы с помощью аннотаций и заботится о сложных задачах низкого уровня.

Проблема с учебником заключается в том, что они используют команды действительно низкого уровня, такие как javac.В настоящее время вы всегда должны использовать инструмент сборки, такой как Maven или Gradle, и объявлять зависимости там.Все учебники и примеры, которые я привел, предоставляют хорошие сборки, которые вы также можете использовать для своего более позднего производственного кода.

...