如何读取我的 OSGI 实例的出厂配置
How can I read factory configurations for my OSGI instance
我有一个由 sling 实例化的 OSGi Transformer 组件。在我的 OSGi 组件中,我有以下注释:
@Component(configurationFactory = true, metatype = true, policy = ConfigurationPolicy.REQUIRE, label = "CDN Link Rewriter", description = "Rewrites links to all static files to use configurable CDN")
@Service(value = TransformerFactory.class)
public class StaticLinkTransformer implements Transformer,
TransformerFactory
我有一些属性被注释为@属性
@Property(label = "CDN Url prefix", description = "CDN URL prefix", value = "")
private static final String CDN_URL_PREFIX = "cdn_url_prefix";
现在我可以在 felix 控制台中使用“+”符号为此 class 提供多种配置。如果我有 "N" 个配置,sling 正在实例化我的 StaticLinkRewriter class.
的 N 个对象
问题:如何获得实例化对象的正确配置?我的意思是,当 sling 实例化我的对象时,我如何获得实例化对象的配置?
我认为这个组件不是由 Sling 实例化的,而是由 Declarative Services.
实例化的
实现activate方法即可获取配置。例如:
@Activate
void activate(ComponentContext ctx) {
Dictionary configuration = ctx.getProperties();
// use your configuration
}
有关详细信息,请参阅 OSGi Compendium 规范的 112 声明性服务规范 一章。
我有一个由 sling 实例化的 OSGi Transformer 组件。在我的 OSGi 组件中,我有以下注释:
@Component(configurationFactory = true, metatype = true, policy = ConfigurationPolicy.REQUIRE, label = "CDN Link Rewriter", description = "Rewrites links to all static files to use configurable CDN")
@Service(value = TransformerFactory.class)
public class StaticLinkTransformer implements Transformer,
TransformerFactory
我有一些属性被注释为@属性
@Property(label = "CDN Url prefix", description = "CDN URL prefix", value = "")
private static final String CDN_URL_PREFIX = "cdn_url_prefix";
现在我可以在 felix 控制台中使用“+”符号为此 class 提供多种配置。如果我有 "N" 个配置,sling 正在实例化我的 StaticLinkRewriter class.
的 N 个对象问题:如何获得实例化对象的正确配置?我的意思是,当 sling 实例化我的对象时,我如何获得实例化对象的配置?
我认为这个组件不是由 Sling 实例化的,而是由 Declarative Services.
实例化的实现activate方法即可获取配置。例如:
@Activate
void activate(ComponentContext ctx) {
Dictionary configuration = ctx.getProperties();
// use your configuration
}
有关详细信息,请参阅 OSGi Compendium 规范的 112 声明性服务规范 一章。