[
https://issues.apache.org/jira/browse/FELIX-759?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12645159#action_12645159
]
Atle Prange commented on FELIX-759:
-----------------------------------
Hi,
i am starting to be a heavy felix user, and i think that if the OBR bundle is
to be really useful, the Felix filters should at least support the > and <
operators. I have taken the liberty of downloading the head and adding the two
operators in the o.a.f.framwork.util.ldap.Parser. (See attachment)
One should also have a better strategy when an unparseable filter is
encountered, now the OBR bundle just skips the repository. I changed the bundle
so that a "impossible" filter is created when an InvalidSyntaxException is
encountered: (false=false). Not optimal, but at least i can load the rest of
the resources from the repository.
> Version range in import declaration creates a filter using invalid operators
> (<,>)
> ----------------------------------------------------------------------------------
>
> Key: FELIX-759
> URL: https://issues.apache.org/jira/browse/FELIX-759
> Project: Felix
> Issue Type: Bug
> Components: Bundle Repository (OBR), Maven Bundle Plugin
> Affects Versions: maven-bundle-plugin-1.4.3, bundlerepository-1.2.0
> Environment: Maven Bundle Plugin 1.4.3
> Apache Felix Bundle Repository (1.2.0)
> Apache Felix 1.2.1/Equinox 3.4.0
> Reporter: Dirk Mahler
> Attachments: BundleInfo.java.diff
>
>
> If a version range is given for an import-declaration (e.g. bundle
> http://www.springsource.com/repository/app/bundle/version/detail?name=com.springsource.javax.jms&version=1.1.0)
> the maven bundle plugin creates version filters for the OBR repository which
> might contain the operators < and >, e.g.:
> <require extend="false"
> filter="(&(package=javax.transaction.xa)(version>=1.0.1)(version<2.0.0))"
> multiple="false" name="package" optional="true">Import package
> javax.transaction.xa ;version=[1.0.1,2.0.0)</require>
> These operators are currently not supported by Felix and Equinox, the OSGi
> specification (at least 4.0.1) only states "<=" and ">=" as valid ones.
> The resulting problem are exceptions while reading the repository descriptor:
> Caused by: org.osgi.framework.InvalidSyntaxException: expected ~=|>=|<=
> at org.apache.felix.framework.FilterImpl.<init>(FilterImpl.java:81)
> at
> org.apache.felix.framework.BundleContextImpl.createFilter(BundleContextImpl.java:104)
> at
> org.apache.felix.bundlerepository.RequirementImpl.setFilter(RequirementImpl.java:57)
> A simple patch for the class
> org.osgi.impl.bundle.obr.resource.BundleInfo.java is attached to this issue.
> The solution is to replace (version<2.0.0) by (!(version>=2.0.0))
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.