我正在将Eclipse 3.7与Eclipse Gemini JPA / DBAccess一起使用。我实现了一个声明式ServiceComponent,它引用了EntityManagerBuilderFactory。 bind方法看起来像这样:
public void bindEntityManagerFactoryBuilder(EntityManagerFactoryBuilder emfBuilder) {
emfFactoryBuilders.add(emfBuilder);
}
但是,我需要ServiceReference来获取此服务的属性,例如:
ServiceReference ref = ...
String unitName = (String)ref.getProperty(EntityManagerFactoryBuilder.JPA_UNIT_NAME);
我是否需要在ServiceRegistry中搜索此ServiceReference,还是有一个更优雅的方法?
干杯,
木木
最佳答案
如果您使用的是Declarative Services 1.1(最新的规范版本),则可以将bind方法的签名更改为:
public void bindEntityManagerFactoryBuilder(EntityManagerFactoryBuilder emfBuilder, Map properties)
该映射将包含绑定服务的服务属性。