OK, if I understand you correctly, and I think I do since my test seems to bear 
that out, the bundle was going into GRACEPERIOD because there wasn't a service 
defined that implemented the exported service interface, hence the service 
injection can't work (which is what's happening, well sort of).  That explains 
why it used to work but began not working, since I simply wasn't deploying 
everything.

What confuses me a bit is that in this case, the lines in the blueprint.xml 
that seems to be causing the issue is the following:

<bean id="service-controller-impl"
       class="com.medline.bam.MyTestServiceController">

       <!-- Service constructor args -->
<argument ref="service-list"/>
</bean>

<reference-list id="service-list"
              member-type="service-object"
              interface="com.medline.bam.MyTestService"/>

It confuses me since the injection is of type List<MyTestService>.  Since this 
list is "live" in the sense that entries can come and go at any time, shouldn't 
the injection of the list still succeed, but the list is empty, wouldn't that 
have made sense?  Perhaps there's a good reason why Blueprint isn't defined 
this way, I'd be curious as to what that reason is.

Thanks,

Scott

From: Benjamin Debeerst [mailto:[email protected]]
Sent: Thursday, February 12, 2015 1:06 PM
To: [email protected]
Subject: RE: Blueprint GracePeriod issue

Hi Scott,

I find that kind of diagnosis from Blueprint quite confusing as well, because 
Blueprint tends to mix up dependencies on the bundle layer and dependencies on 
the service layer.

The bundle is resolved and started, but the blueprint container/component is 
missing service dependencies, in particular it cannot find a service with the 
given interface in the OSGi service registry. This is why it cannot start the 
blueprint component/container and is in the grace period state.

Do you have some component exposing the interface in question as a service in 
the OSGi service registry?

Regards,
Benjamin

From: Leschke, Scott [mailto:[email protected]]
Sent: Donnerstag, 12. Februar 2015 19:14
To: [email protected]<mailto:[email protected]>
Subject: Blueprint GracePeriod issue

I have a bundle going into GracePeriod state.  The bundle:diag command says 
Missing Dependencies and gives me the name of an interface that exists in the 
bundle itself.  Is this indicative of a particular type of condition? I find it 
odd that it's complaining about not finding an interface that exists locally.

Reply via email to