Java osgi组件工厂的动态过滤器

Java osgi组件工厂的动态过滤器,java,osgi,osgi-bundle,karaf,Java,Osgi,Osgi Bundle,Karaf,我正在尝试实现一个与服务工厂类似的带有动态过滤器的组件工厂 工厂级 @Component(name = "ExampleComponentFactoryServiceProvider1", factory = "example.factory.provider") public class ExampleComponentFactoryServiceProvider1 implements ExampleFactoryService { 在检索工厂时,我可以使用引用检索 @Reference(

我正在尝试实现一个与服务工厂类似的带有动态过滤器的组件工厂

工厂级

@Component(name = "ExampleComponentFactoryServiceProvider1", factory = "example.factory.provider")
public class ExampleComponentFactoryServiceProvider1 implements ExampleFactoryService {
在检索工厂时,我可以使用引用检索

@Reference(target="component.factory=example.factory.provider" bind="setXXX" unbind="unsetXXX")
以上工作正常,这是一种静态方式。有谁能告诉我们,通过动态方式检索是可能的吗

Dictionary<String, String> hashMap = new Hashtable<String, String>();
        hashMap.put("component.name", "ExampleComponentFactoryServiceProvider");
        instance = factory.newInstance(hashMap);
        service = (ExampleFactoryService) instance.getInstance(); 
Dictionary hashMap=new Hashtable();
put(“component.name”,“ExampleComponentFactoryServiceProvider”);
instance=factory.newInstance(hashMap);
服务=(ExampleFactoryService)实例。getInstance();
是否可以以动态方式检索? 如果是,有人能告诉我如何按组件名称/工厂检索吗?

您所说的“动态方式”是什么意思?使用
factory.newInstance
的代码片段正在使用ComponentFactory创建组件的实例。即)如何通过提供筛选器创建ComponentFactory实例。在上面的代码中,我必须通过引用给出,我不能在编译时更改引用。动态意味着我已经动态地给了过滤器组件名,这样就应该创建componentfactory实例,如最后一个代码段所示。通过字典提供值。你所说的“动态方式”是什么意思?使用
factory.newInstance
的代码片段正在使用ComponentFactory创建组件的实例。即)如何通过提供筛选器创建ComponentFactory实例。在上面的代码中,我必须通过引用给出,我不能在编译时更改引用。动态意味着我已经动态地给了过滤器组件名,这样就应该创建componentfactory实例,如最后一个代码段所示。通过字典提供值。