All,

I resolved the rest of the native code CT test failures in https://issues.apache.org/jira/browse/FELIX-4729. So looks like we're getting close to being ready for R6. Please let me know if there is any feedback on the implementation. A couple of thoughts on the native code I'd like to float prior to the release.

1) R4LibraryClause and R4Library are no longer really R4 at all.

Can we consider renaming these classes to NativeLibraryClause and NativeLibrary. I realize this is a bit of a breaking change if developers are using the R4Library and R4LibraryClause classes but I couldn't find any examples of this outside the framework project. The R6 changes might be worth a major revision bump.

2) Processor and OS Name aliasing: in memory lookup vs coding.

R6 has it where the processor and os name gets aliased to potentially many names. Equinox currently does the aliasing by pulling a file into memory. I found it to be more direct and likely more backwards compatable in felix to hook into the normalization process and then do the aliasing. However we could refactor to put all the aliases in a table like Equinox at the expense of some memory. A file might be easier to maintain going forward as new os and processors come out. Might be good to provide some sort of hooks so developers can do this without us if needed.

3) Moving from the Felix version of VersionRange to the org.osgi.framework.VersionRange.

Currently we have our on VersionRange class with similar but not exactly the same functionality as the org.osgi.framework.VersionRange. It would be helpful if the osgi VersionRange implemented Comparable as we could then remove the special code I had to add to the CapabilitySet class to deal with VersionRange based on the provided OS Version. Not sure if this is something we might consider suggesting in a future spec.

Happy Holidays,

- Bob

Reply via email to