如何在声明式服务的组件定义中设置不同的ECF分发提供程序?

时间:2011-12-20 18:29:14

标签: soap osgi declarative-services eclipse-ecf

我必须测试ECF中存在的所有远程服务提供商的性能(或者至少是常见的:通用,r-osgi,SOAP和REST),因此以简单的方式从一个提供商转换到另一个提供商帮助很多。

我知道如何在component.xml文件中设置某些提供程序的端点描述,例如,对于Generic是:

<property name="service.exported.interfaces" type="String" value="*"/>
<property name="service.exported.configs" type="String" value="ecf.generic.server"/>
<property name="ecf.exported.containerfactoryargs" type="String" value="ecftcp://localhost:3787/server"/>

将“service.exported.configs”修改为其他名称,例如“ecf.r_osgi.peer”,可以毫无问题地更改提供程序,而无需重新编译代码。

此外,“containerfactoryargs”属性存在一些差异(例如,在上一个示例中将 ecftcp:// 更改为 r-osgi:// 。但是,在the providers list中,我没有看到其他提供程序中有关这种差异的示例(例如,我将如何使用SOAP?这个提供程序的服务属性是什么?)

此外,使用Restlet(例如)意味着修改服务的源代码以添加@Get(“text”)注释as explained here。那么,您是否有义务在服务代码中添加注释以将其公开为Restful或SOAP服务?我不希望在我的服务中添加“侵入式”代码,或者尽可能避免从其他方法(例如ConfigurationLoader)激活它们。

那么,是否有任何信息页面包含所有(或至少是最常见的)分发提供商的组件定义文件示例?或者,哪种更改提供程序而不重新编译源代码的最优雅方法?也许,如前所述,使用ConfigurationLoader服务来更改属性?

提前致谢!

0 个答案:

没有答案