Eric Blanchard wrote:
Hello community,
I'm looking for some advises to organize the project
layout/split in order to be able to provide the best
environment for developing/deploying a set of N consumers
and P providers OSGi services (I will use Declarative
Services technique for that).
Each Service is represented by a Java Interface. I plan to
package each classes with associated documentation in a
separate jar to make the java interfaces available for
developers (service providers and services consumers).
Service providers and service consumers projects will depend
on the provided jar. They will build bundles that will have
the package of the service interface in their Import-Package:
directive.
At deployment, what is the best way to make the Service
interface available in the OSGi framework ?
- Should I package each interface class in a separate bundle
and install them in the framework before consumers and providers
are resolved ? The risk is to end up with a great number
of bundles (may be not very efficient to have one class loader
per service interface).
This would be okay.
- Should I put each interface in a fragment ? If yes, should I
attach this fragment to the System bundle ? (may need to extend
the Export-Package list each time I want to add a new services).
I would not recommend this approach, since it is not really the intended
use case of fragments.
- Should I let each service consumer bundle to embed a copy of
the interface ? (I possibly loose coherency).
Well, you wouldn't lose coherency, but usually consumers do not embed
the interface, rather the service providers embed the interface and then
they import AND export the service interface package so that they can
either use their own copy or share with another bundle that is already
providing the package.
- Any other solutions ?
I, personally, would have each service provider embed the service
interface package and then import/export it. If your service interface
packages are small, then this should not add much overhead.
-> richard
For the moment I prefer the first solution, but I'm afraid that
the order and the number of bundles will be difficult to manage.
Thanks in advance for your help.
--
Eric
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]