Description
I am using Ivy's "buildobr" Ant task to construct an OBR from my Eclipse installation. It is generating filters in the following format:
(&(package=org.eclipse.core.runtime)(version<1.5.0))
which cannot be parsed by the org.apache.felix.bundlerepository in Karaf 2.2.1
I see the following exceptions in the Karaf logs:
java.lang.Exception: Error while parsing resource null at line 10 and column 129
at org.apache.felix.bundlerepository.impl.PullParser.parseResource(PullParser.java:241)
at org.apache.felix.bundlerepository.impl.PullParser.parse(PullParser.java:138)
.... skipping moderately relevant information ...
Caused by: org.osgi.framework.InvalidSyntaxException: Missing ')': (bundle=org.eclipse.wst.common.project.facet.core)))
at org.apache.felix.utils.filter.FilterImpl$Parser.parse_filter(FilterImpl.java:1203)
at org.apache.felix.utils.filter.FilterImpl$Parser.parse_and(FilterImpl.java:1248)
at org.apache.felix.utils.filter.FilterImpl$Parser.parse_filtercomp(FilterImpl.java:1222)
at org.apache.felix.utils.filter.FilterImpl$Parser.parse_filter(FilterImpl.java:1198)
at org.apache.felix.utils.filter.FilterImpl$Parser.parse(FilterImpl.java:1172)
at org.apache.felix.utils.filter.FilterImpl.newInstance(FilterImpl.java:87)
at org.apache.felix.bundlerepository.impl.RequirementImpl.setFilter(RequirementImpl.java:74)
I originally submitted a patch to Felix's LDAP Filter implementation to include support for < and >. According to the last comment in FELIX-3023 it appears that the OSGi Alliance is going to drop the < and > in favor of a composite operator of (a < b or a = b) (assuming I understand everything correctly).
I attempted to create a patch which is wrong but I think can be finished correctly.