[ https://issues.apache.org/jira/browse/FELIX-973?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kristian Koehler updated FELIX-973: ----------------------------------- Attachment: filter.patch Hi ok. This is the filter patch for the obr component. It uses the implementation from Peter with some smaller adjustements (the additional parameters for non-lpad operators didn't worked for me). I also added some test cases. Kristian > FilterImpl from Felix Framework does not support none LDAP operators > -------------------------------------------------------------------- > > Key: FELIX-973 > URL: https://issues.apache.org/jira/browse/FELIX-973 > Project: Felix > Issue Type: Bug > Components: Bundle Repository (OBR) > Affects Versions: bundlerepository-1.2.1 > Reporter: Kristian Koehler > Attachments: filter.patch, patch.txt > > > Hi > as discussed on the user mailing list > (http://www.mail-archive.com/us...@felix.apache.org/msg03402.html) the > framework doesn't support none standard LDAP operators (see also the RFC-0112 > Bundle Repository). > The filter impl throws an exception while parsing a repository file > containing filters with this syntax. > Kristian > sample stack trace > --- 8< --- > ERROR: Error parsing repository metadata > org.osgi.framework.InvalidSyntaxException: expected ~=|>=|<= > at org.apache.felix.framework.FilterImpl.<init>(FilterImpl.java:81) > at > org.apache.felix.framework.BundleContextImpl.createFilter(BundleContextImpl.java:102) > at > org.apache.felix.bundlerepository.RequirementImpl.setFilter(RequirementImpl.java:57) > at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.felix.bundlerepository.metadataparser.XmlCommonHandler.startElement(XmlCommonHandler.java:490) > at > org.apache.felix.bundlerepository.metadataparser.kxmlsax.KXml2SAXParser.parseXML(KXml2SAXParser.java:67) > at > org.apache.felix.bundlerepository.RepositoryImpl.parseRepositoryFile(RepositoryImpl.java:256) > at > org.apache.felix.bundlerepository.RepositoryImpl.access$000(RepositoryImpl.java:44) > at > org.apache.felix.bundlerepository.RepositoryImpl$1.run(RepositoryImpl.java:75) > at java.security.AccessController.doPrivileged(Native Method) > at > org.apache.felix.bundlerepository.RepositoryImpl.<init>(RepositoryImpl.java:71) > at > org.apache.felix.bundlerepository.RepositoryImpl.<init>(RepositoryImpl.java:60) > at > org.apache.felix.bundlerepository.RepositoryAdminImpl.initialize(RepositoryAdminImpl.java:206) > at > org.apache.felix.bundlerepository.RepositoryAdminImpl.discoverResources(RepositoryAdminImpl.java:126) > at > org.apache.felix.bundlerepository.ObrCommandImpl.list(ObrCommandImpl.java:210) > at > org.apache.felix.bundlerepository.ObrCommandImpl.execute(ObrCommandImpl.java:104) > at > org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:276) > at > org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Activator.java:167) > at java.lang.Thread.run(Thread.java:619) > WARNING: RepositoryAdminImpl: Exception creating repository > file:/home/kkoehler/repository.xml. Repository is skipped. > java.lang.reflect.InvocationTargetException > at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.felix.bundlerepository.metadataparser.XmlCommonHandler.startElement(XmlCommonHandler.java:490) > at > org.apache.felix.bundlerepository.metadataparser.kxmlsax.KXml2SAXParser.parseXML(KXml2SAXParser.java:67) > at > org.apache.felix.bundlerepository.RepositoryImpl.parseRepositoryFile(RepositoryImpl.java:256) > at > org.apache.felix.bundlerepository.RepositoryImpl.access$000(RepositoryImpl.java:44) > at > org.apache.felix.bundlerepository.RepositoryImpl$1.run(RepositoryImpl.java:75) > at java.security.AccessController.doPrivileged(Native Method) > at > org.apache.felix.bundlerepository.RepositoryImpl.<init>(RepositoryImpl.java:71) > at > org.apache.felix.bundlerepository.RepositoryImpl.<init>(RepositoryImpl.java:60) > at > org.apache.felix.bundlerepository.RepositoryAdminImpl.initialize(RepositoryAdminImpl.java:206) > at > org.apache.felix.bundlerepository.RepositoryAdminImpl.discoverResources(RepositoryAdminImpl.java:126) > at > org.apache.felix.bundlerepository.ObrCommandImpl.list(ObrCommandImpl.java:210) > at > org.apache.felix.bundlerepository.ObrCommandImpl.execute(ObrCommandImpl.java:104) > at > org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:276) > at > org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Activator.java:167) > at java.lang.Thread.run(Thread.java:619) > 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:102) > at > org.apache.felix.bundlerepository.RequirementImpl.setFilter(RequirementImpl.java:57) > ... 18 more -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.