Хорошо, у меня все еще есть еще один вопрос. ;) В настоящее время я регистрирую фабрику сервисов, используя BundleContext.registerService. Есть ли возможность позволить инфраструктуре внедрять другие сервисы в экземплярах, созданных моей собственной фабрикой?

час думаю о«Как спроектировать компонент OSGi, чтобы было легко писать для него тесты с такими фреймворками, как jUnit и Mockito».

Пересмешивать зависимости между пакетами довольно легко, так как OSGi усиливает DIP(Принцип обращения зависимостей) и инжекторные методы (например, сеттер) обычно существуют.
Но как насчет внутренних зависимостей пакета?

Например, посмотрите наэтот случай, Теперь я хочу привести его в контекст OSGi ... Изображение, которое мы хотим предоставить в качестве декларативного сервиса на платформе OSGi для любого сетевого протокола, и хотим написать модульные тесты для тестирования нижнего сетевого кода, который напрямую взаимодействует с объект сокета.

Если бы мы реорганизовали создание сокета в отдельный, но все еще связывающий внутренний POJO(Обычный старый Java-объект) класс, как мы должны внедрить его в реализацию протокола?

В модульном тесте мы могли бы просто использовать метод установки, но кто сделает это в контейнере OSGi?Подклассы тестируемого класса и перезапись метода-создателя будут работать только в том случае, если тестируемый класс не объявлен как final.

Ответы на вопрос(1)

Ваш ответ на вопрос