Thanks for the clarification. I already broke the cycle, but I was working
on the wrong impression in regards to factory components.

Alain


On Fri, Nov 23, 2018 at 11:02 AM Tim Ward <tim.w...@paremus.com> wrote:

> The critical part of the spec is available at
> https://osgi.org/specification/osgi.cmpn/7.0.0/service.component.html#service.component-factorycomponent
>  -
> the key words are
>
> *"SCR must register a Component Factory service on behalf of the component
> as soon as the component factory is satisfied." *
>
>
> The Component Factory can’t be satisfied until its reference Y is
> satisfied, which in turn can’t be registered until its mandatory dependency
> X is satisfied. As we can see X won’t be registered until the
> ComponentFactory reference is satisfied. This prevents the whole thing from
> starting.
>
> You need to break the cycle for this to work. Either you need to change
> the composition of your services, or you need to use Dynamic/Optional for
> one of the references.
>
> I hope this helps,
>
> Tim
>
>
>
> On 23 Nov 2018, at 07:52, Alain Picard via osgi-dev <
> osgi-dev@mail.osgi.org> wrote:
>
> Been running into an issue with circular references dealing with
> ComponentFactory and I'm a bit confused.
>
> I have:
> @Component
> class A implements X {
>     @Reference(target = CoreDeleteEObjects.CONFIG_TARGET)
>     private ComponentFactory coreDeleteFactory;
> ....
> }
>
> and the factory component matching my target has a reference to Y which
> itself has a reference to X. Granted this fails with "standard" references.
> But here I was under the impression that the referenced service was the
> ComponentFactory and that the service would get resolved at startup.
> Testing indicates that I'm wrong.
>
> What part of the puzzle am I missing?
>
> Thanks
> Alain
> _______________________________________________
> OSGi Developer Mail List
> osgi-dev@mail.osgi.org
> https://mail.osgi.org/mailman/listinfo/osgi-dev
>
>
>
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to