felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stuart McCulloch (JIRA)" <j...@apache.org>
Subject [jira] Updated: (FELIX-759) Version range in import declaration creates a filter using invalid operators (<,>)
Date Thu, 29 Jan 2009 18:20:59 GMT

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

Stuart McCulloch updated FELIX-759:

          Component/s:     (was: Maven Bundle Plugin)
    Affects Version/s:     (was: maven-bundle-plugin-1.4.3)

Removing this issue from the bundleplugin component because the new Bindex code (updated in
trunk) now generates filters that are accepted by the existing OBR implementation. However,
I'm leaving this issue open against the bundlerepository component as the version range parser
still doesn't accept all the operators listed in the OBR spec.

> 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)
>    Affects Versions: 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, Parser.java
> 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="(&amp;(package=javax.transaction.xa)(version&gt;=1.0.1)(version&lt;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.

View raw message