Hello,

I'm quite confused about feature dependencies.  The documentation about 
provisioning doesn't explain much how the dependency="true" is expected to 
work. I've tried adding or removing it, but I experience unexpected behavior...

I have a core feature and other features that depend on it. The system is 
modular, and there are many production endpoints with diverse feature sets.

I'll try to present oversimplified example, which hopefully will give a clue 
what could get wrong.

I have <core>, that is used by any other actor.
I have <service1-core> (API) that has 2 implementations, defined as features 
<service1-impl1> and <service1-impl2>.
I have <endpoint1> that uses only <core>
I have <endpoint2> that uses <core> and <service1-core>.

You can have only 1 implementation of service1. You can have one of 2 
endpoints, or both.

The problem is, that when I install everything, I see in logs, many bundles 
defined in <core> or <service1-core> are started many times. As would the 
installation of another 'consumer' of that feature cause feature to be 
reinstalled. What is worse, I've expected once infinite loop of triggered 
restarts.

What I need is a stable way to define the dependency from B to A, telling that 
if B is going to be installed, and A is not present, A should be installed, but 
if A is already installed, it should be not re-installed neither re-started.

So if I say, install service1-impl, the service1-core will be installed and 
started. If I later say, install endpoint2, the service1-core will not be 
touched, because it is already installed and running.

Shoudn't the dependency="true" work that way? What can cause the common feature 
to be reinstalled many times by installing dependent features?

Best regards,
Lukasz Lech

Reply via email to