组件存在多个实例时的OSGi控制台命令

组件存在多个实例时的OSGi控制台命令,osgi,Osgi,我使用的是Bndtools,我创建了一个添加OSGi控制台命令的组件。我需要运行这个组件的多个实例(数字将是个位数,每个实例都是手动配置的),并且我希望组件的每个实例都公开自己的命令集和自己的作用域。要用于作用域的名称在实例的配置中可用 问题是,范围是使用注释定义的,当然,它是在OSGI-INF的XML中硬编码的。我想我可以让组件使用config admin来更改它自己的配置,但这看起来真的很难看。是否有其他方法在运行时设置范围?我没有看到的另一种方法?任何帮助都将不胜感激。您可以使用一个允许您

我使用的是Bndtools,我创建了一个添加OSGi控制台命令的组件。我需要运行这个组件的多个实例(数字将是个位数,每个实例都是手动配置的),并且我希望组件的每个实例都公开自己的命令集和自己的作用域。要用于作用域的名称在实例的配置中可用


问题是,范围是使用注释定义的,当然,它是在OSGI-INF的XML中硬编码的。我想我可以让组件使用config admin来更改它自己的配置,但这看起来真的很难看。是否有其他方法在运行时设置范围?我没有看到的另一种方法?任何帮助都将不胜感激。

您可以使用一个允许您这样做的组件。

我想另一个选项是使用一个组件,该组件获取所有实例的配置,然后使用正确的属性手动注册每个服务。这比试图让一个组件修改自己的配置要简单得多,但如果不得不跳出DS直接使用OSGi API,那就太不幸了。谢谢你的提示,我认为这会很好地工作。在等待这个问题的答案时,我想到了一个更好的设计,它不需要这个。然而,你给了我一些东西作为我的心理工具箱!再次感谢。