You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Jean-Baptiste Onofré (Jira)" <ji...@apache.org> on 2020/10/08 14:20:00 UTC

[jira] [Assigned] (KARAF-6152) Provide Require Capability Between Composite Subsystem and Bundle

     [ https://issues.apache.org/jira/browse/KARAF-6152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jean-Baptiste Onofré reassigned KARAF-6152:
-------------------------------------------

    Assignee:     (was: Jean-Baptiste Onofré)

> Provide Require Capability Between Composite Subsystem and Bundle 
> ------------------------------------------------------------------
>
>                 Key: KARAF-6152
>                 URL: https://issues.apache.org/jira/browse/KARAF-6152
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf
>            Reporter: Sameer Gupta
>            Priority: Critical
>              Labels: aries, aries,require-bundle, capabilities, felix, karaf, osgi
>         Attachments: messagedisplay.esa, msgdispconsumer.jar
>
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> 1 - I have a composite subsystem  *"messagedisplay.esa"* which has a bundle with a provide 
>  capability, the provide capability is mentioned in both the bundle manifest 
>  which is inside the bundle manifest and the subsystem manifest as well.
> 2. I have a stand alone bundle *"msgdispconsumer"* which requires this capability and mentions this in standalone bundle manifest.mf file
> In case of system migrations, if the Bundle gets deployed before the ESA 
>  subsystem, the bundle does not start as expected and has to be manually 
>  started once the provide capability is deployed.
> However, if I mark the subsystem as feature, then, as soon as the subsystem 
>  is deployed, the standalone bundle also goes to active state, thus removing 
>  need for manual intervention.
> Provide Require capability does not seem to have the same effect for Composite Subsystem as it has for feature subsystem.
> Test Case 1: Deploy the Composite Subsystem i.e the attached *messagedisplay.esa* file and then start it and then deploy the *msgdispconsumer* bundle, the bundle auto-wires and starts.
> Test Case 2: Deploy the *msgdispconsumer* bundle, try and start it, it fails stating a required capability is missing, deploy the subsystem i.e. the *messagedisplay.esa* file now, the Subsystem installs but does not auto wire the bundle *msgdispconsumer*  is still in installed state, start the *msgdispconsumer* bundle, it starts and does not throw the capability missing error.
> Test Case 3: Open the .ESA file in winrar like tool, change the subsytem type from Subsystem-Type: "osgi.subsystem.composite" to "osgi.subsystem.feature".
> Exit the karaf console and restart to clear the cache.
> Deploy the *msgdispconsumer* bundle, try and start it, it fails stating a required capability is missing, deploy the subsystem i.e. the *messagedisplay.esa* file now, the consumer bundle *msgdispconsumer* also starts automatically even when the ESA subsytem is only in installed state. 
> Why does behavior in Test case 3 not work for test case 2 scenario, i.e. autowiring happens for feature subsystem  but  not for composite subsystem.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)