I have a case where I have two services that each depend on one another - e.g.
Service A depends on Service B
Service B depends on Service A
I understand from reading the OSGi specification (section 121.2.6 Cyclic Dependencies that this can be resolved making sure there is a "breaking" member - i.e. one of the services has the other as a property (and not a constructor argument). Both Service-beans also need to be declared as singletons (doing that too).
However, even when setting it up this way I still see the container waiting for the dependency on the other service to get satisfied and eventually timing out.
Is this a known issue or am could I be doing something wrong here ?
That's a known limitation in Blueprint - see section 121.3 of the spec which shows that all the (mandatory) service dependencies of a given bundle are waited for before any services are published by the bundle. I suspect 121.2.6 is talking about cyclic dependencies within a bundle rather than between bundles.
I wonder if you could break the cycle by making one of the service references optional or using a set which could initially be empty? I haven't much experience of this, but it might give you a direction to explore.