Основные идеи модульной системы NetBeans:
- NetBeans позволяет (частично) вставлять или удалять пакеты модулей во время выполнения.
- Он автоматически управляет зависимостями и старается избежать циклических зависимостей.
- Текущая версия позволяет загружать модули только по требованию.
- NetBeans позволяет использовать метаданные для таких модулей, как номер версии, описание ...
- Модуль может быть почти любым, включая такие ресурсы, как изображения и т. Д.
- NetBeans позволяет различать API-интерфейсы служб и реализации служб (которые могут быть в разных модулях).
Список возможностей OSGi:
- OSGi позволяет устанавливать, удалять, останавливать, запускать или заменять пакеты (то, что они называют модулями в OSGi ... просто JAR-файлы со специальной информацией в манифесте) во время выполнения приложения.
- Зависимости автоматически обрабатываются на уровне пакета. Пакет может объявить, что он экспортирует один или несколько пакетов (по умолчанию все остальные будут частными для этого пакета), а другой пакет может объявить, что он импортирует эти пакеты. Если доступно более одной версии данного пакета, пакет может объявить, какую версию он использует.
- OSGi использует файл META-INF / MANIFEST.MF, найденный в каждом файле JAR, для своих метаданных. Эти метаданные могут включать, помимо прочего, номера версий, описания, импортированные / экспортированные пакеты и т. Д.
- Модули в OSGi являются файлами JAR. Изображение (например) не может быть модулем. Но пакет может содержать изображение, доступное для других пакетов.
- Так же, как NetBeans, интерфейсы служб и реализации представляют собой разные концепции и могут быть в разных пакетах.
Итак, сравнивая вышеупомянутые возможности для обоих, я могу сказать, что модули OSGi и NetBeans имеют много общего. Надеюсь, что это поможет.