BlueprintContainer.getComponentInstance() выполняет именно то, что вы ищете.
osgi documentation:
копирку Контейнер представляет собой управляемое состояние Blueprint расслоения. Контейнер Blueprint обеспечивает доступ ко всем управляемым компонентам . Это бобы, услуги и ссылки на службы. A Контейнер Blueprint можно получить, вставив предопределенный идентификатор компонента «blueprintContainer» .
Пример
blueprint.xml:
<!-- blueprintContainer is predefined component here -->
<bean id="myService" class="myPackage.MyService">
<property name="container" ref="blueprintContainer"/>
</bean>
<!-- prototype which can be created from myService -->
<bean id="myPrototype" class="myPackage.MyPrototype" scope="prototype"/>
MyService.java:
// ...
// create new instance
MyPrototype myPrototype =
(MyPrototype) container.getComponentInstance("myPrototype");
pom.xml:
<!-- BlueprintContainer from Apache Aries-->
<dependency>
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>org.apache.aries.blueprint.core</artifactId>
<version>1.3.0</version>
</dependency>
Боб не будет вводиться нигде. Боб был бы объектом с объектами с сохранением состояния, который имел бы ссылки на другие синглтоны. Поэтому фабрика должна будет создать эту полностью проводную связь со своими зависимостями. Самому объекту будет локальная переменная в методе службы - то есть экземпляр делегата, который реализует задание. – StripLight