felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matt Magoffin (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-5383) Support parallel bundle starting
Date Tue, 18 Oct 2016 20:26:59 GMT

    [ 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

	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)

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

View raw message