1

I have to test the performance of all the remote service providers present in ECF (or at least, the common ones: generic, r-osgi, SOAP and REST), so changing from one provider to another in an easy way would help a lot.

I know how to set the Endpoint Description of some providers in the component.xml file, for example, for Generic is:

<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"/>

Modifying the "service.exported.configs" to other names, like "ecf.r_osgi.peer" would change the provider without problem, and without re-compiling the code.

Also, there are some differences in the "containerfactoryargs" property (for example, changing ecftcp:// to r-osgi:// in the previous example. However, in the providers list I don't see examples about this differences in other providers (how I would use SOAP, for example? Which are the service properties for this provider?)

Moreover, using Restlet (for example) implies modify the source code of the service to add the @Get("text") annotation as explained here. Then, are you obligated to add annotations in your service's code to expose them as Restful or SOAP services? I would like to not add "intrusive" code in my services, or avoid their activation from another method (such as ConfigurationLoader) as far as possible.

So, there are any information page with examples of component definition files for all (or at least, the most common) distribution providers? Or, which is the most elegant way to change the provider without re-compiling source? Maybe, as stated before, using the ConfigurationLoader service to change the properties?

Thanks in advance!

Pablo García
  • 237
  • 1
  • 10

0 Answers0