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

Richard S. Hall commented on FELIX-1531:
----------------------------------------

Looking at the patch for this, I was wondering why the following was necessary:

     public synchronized boolean isSatisfied(Capability capability)
     {
-        return m_name.equals(capability.getName()) && 
m_filter.matchCase(capability.getProperties());
+        return m_name.equals(capability.getName()) && 
m_filter.matchCase(capability.getProperties())
+                && (m_filter.toString().indexOf("(mandatory:<*") >= 0 || 
capability.getProperties().get("mandatory:") == null);
     }

I have actually solved this differently in the new resolver, but I was having a 
debate with Peter Kriens about this and I think this might be related. Could 
you explain the need for the above (i.e., why was the original code 
sufficient)? Thanks.

> Mandatory directive is ignored on the Export-Package when it comes to resolve 
> the bundles
> -----------------------------------------------------------------------------------------
>
>                 Key: FELIX-1531
>                 URL: https://issues.apache.org/jira/browse/FELIX-1531
>             Project: Felix
>          Issue Type: Bug
>          Components: Bundle Repository (OBR)
>    Affects Versions: bundlerepository-1.4.3
>         Environment: not applicable
>            Reporter: hehe ji
>            Assignee: Guillaume Nodet
>             Fix For: bundlerepository-1.6.0
>
>
> When I try to resolve a bundle (bundleFooImport.jar) with the following 
> manifest:
> Import-Package: a.b.c;company=foo
> In the bundle repository, I have a bundle (bundleFoo.jar) with the following 
> manifest:
> Export-Package:a.b.c;version=3;company=foo;security=true;mandatory:="company,security"
> The repository.xml for the bundleFoo.jar 
> <capability name='package'>
>       <p n='company' v='foo'/>
>         <p n='mandatory:' t='set' v='company,security'/>
>       <p n='package' v='a.b.c'/>
>       <p n='security' v='true'/>
>       <p n='version' t='version' v='3.0.0'/>
>     </capability>
> For some reason, the felix resolve resolves the bundleFooImport.jar with 
> bundle bundleFoo.jar, which is wrong. According to the osgi specification, 
> bundleFoo.jar bundle insists the bundle imports specifying company and 
> security attributes, which was not the case of bundleFooImport.jar. Clearly, 
> the felix implementation of the mandatory directive is NOT correct.
> Please let me know if you need any more details.
> Thanks
> Hehe

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to