Теоретически OSGi лучше подходит для такого рода задач, поскольку позволяет устанавливать новые компоненты во время выполнения, не требуя перезагрузки.OSGi также обеспечивает более совершенные механизмы для инкапсуляции функциональности в независимых компонентах.
Но, тем не менее, я не уверен, что это правильный подход в целом.Что произойдет, если клиент больше не будет платить за ваш компонент?Что произойдет, если клиент заплатил за компонент, а вы хотите продать обновление, а он не хочет платить, и теперь вам нужно поддерживать более чем одну версию и т. Д.
Существует множество способов придумать сценарии.это усложнит все это.
Насколько я могу судить, большинство продуктов отгружают все, и тогда вы платите лицензионный сбор.В зависимости от лицензий, которые вы купили, различные функции затем разблокируются.
В большинстве случаев эти лицензии являются неким «криптографическим» ключом, который может проверить только эмитент.Подумайте о механизмах открытых / закрытых ключей.Могу поспорить, что есть и другие варианты.
Совсем недавно команда разработчиков Gitlab опубликовала интересное сообщение на эту тему: GitLab может перейти на одну кодовую базу Rails
Если вы действительно хотите пойти по этому пути, возможно, вы захотите взглянуть на новую систему модулей Java , которая была представлена в Java 9. Хотя кажется, что это еще не 100% поддерживается Spring Boot .
Лично , проработав с OSGi последние 9 лет, я, вероятно, рекомендовал бы сделать это с Spring Boot.Это основано на субъективном ощущении , что Spring Boot немного более современен и имеет большее сообщество.Не существует фреймворка OSGi (такого как Spring Boot), который бы вдохновил меня в данный момент делать проект, хотя общая идея OSGi все еще великолепна.Но, как я уже сказал, это мое мнение, которое не обязательно "правильно".