OBR issue when using parameters with exported packages
------------------------------------------------------
Key: FELIX-1809
URL: https://issues.apache.org/jira/browse/FELIX-1809
Project: Felix
Issue Type: Bug
Components: Bundle Repository (OBR)
Reporter: Arjun Panday
Please consider the attached test case along with the proposed patch.
- I have single bundle (A.jar) containing com.a.class and exporting the package
com.a with a version and a "tag"
ie: Export-Package: com.a; version="1.2.3";tag="mytag"
- I use bnd to build the bundle and it generates a similar import (which is
good)
ie: Import-Package: com.a; version="1.2.3";tag="mytag"
- I use bindex to generate the repository (containing only this bundle) which,
in turn, generates the following requirement:
<require extend='false'
filter='(&(package=com.a)(version>=1.2.3)(tag=mytag)(mandatory:<*tag))'
multiple='false' name='package' optional='false'>
Import package com.a ;version=1.2.3
</require>
As such when I try to resolve bundle A from the OBR, it fails.
Bundle A does not have a "mandatory" attribute in its capabilities, but as the
spec suggests (p18 of RFC-0112):
"If the value does not exist, then it is still possible to match a subset. A
non-existent property is a proper subset of
any set. A non-existent property is a superset if the list is empty.
(mandatory:<*vendor,var) Mandatory
must contain vendor, var, both or be empty."
While investigating this issue, i found 2 NullPointerExceptions, in the code of
bundlerepository (the first one being hidden behind an empty try/catch)
When I fix these NullPointerExceptions, the OBR successfully resolves bundle A
and my test passes.
BUT.. FilterImplTest now fails!
IF my understanding is right, i think line 73 of FilterImplTest should read
assertTrue instead of assertFalse.. (but I must admit that i find the meaning
of this "mandatory" part quite confusing!)
I'm attaching the test and the proposed patch in 2 separate tar files (to be
extracted under felix-trunk/bundlerepository).
Regards,
Arjun
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.