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

OSGi console commands when there are multiple instances of a component

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

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

您可以使用 Factory Component which allows you to create component instances on demand and specify configuration properties.