[ 
https://issues.apache.org/jira/browse/FELIX-5383?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15586579#comment-15586579
 ] 

Matt Magoffin commented on FELIX-5383:
--------------------------------------

Upon closer investigation, Gemini Blueprint itself is probably not the issue, 
it is the Gemini Web extender that is starting a WebApplication bundle that 
makes use of (Gemini) Blueprint services that is blocking until the Blueprint 
service timeout occurs. The entry point from plan OSGi into Gemini Web looks 
like

{noformat}
        at 
org.eclipse.gemini.web.extender.WebContainerBundleCustomizer.addingBundle(WebContainerBundleCustomizer.java:49)
        at 
org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:467)
        at 
org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:1)
        at 
org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
        at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
        at 
org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:443)
        ...
{noformat}

Perhaps the Gemini Web extender should be handling the deployment 
asynchronously, as you say. I can inquire on that project to see what they 
think.

Adding parallel starting to File Install is solving my use case right now at 
least.

> Support parallel bundle starting
> --------------------------------
>
>                 Key: FELIX-5383
>                 URL: https://issues.apache.org/jira/browse/FELIX-5383
>             Project: Felix
>          Issue Type: Improvement
>          Components: File Install
>    Affects Versions: fileinstall-3.5.4
>            Reporter: Matt Magoffin
>            Assignee: Guillaume Nodet
>
> I have an application that uses Felix File Install to start a set of bundles 
> that use Blueprint configuration extensively, but with the poll time disabled 
> ({{felix.fileinstall.poll = 0}}) because I only want the bundles started at 
> application startup time. Sometimes one bundle might have a Blueprint service 
> dependency provided by another bundle such that when started and that other 
> bundle has not been started yet causes a service timeout. The ordering File 
> Install uses to start bundles is indeterminate (a {{HashSet}} is passed to 
> {{startBundles(Collection<Bundle> bundles)}}) so I thought a good solution 
> would be to start bundles in parallel, so if one bundle gets stuck when 
> starting, waiting for a Blueprint service to become available, other bundles 
> can continue to be started under the assumption one of them will be providing 
> that service "soon".



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to