Hi! I am trying to wrap my head around the differences between an OBR and a Karaf Feature. The concepts seem to be overlapping.
An OBR has an index of the contained bundles, as well as meta information, which includes requirements and capabilities. An OBR is therefore very useful for resolving bundles, and partitioning bundles into some kind of category. It can also be versioned, and can contained different versions of bundles. An OBR could potentially be used to keep snapshots of system releases. I believe that this is somewhat how Apache ACE works. (A Distribution can be rolled back by simply referring to a different OBR and allowing the system to re-resolve.) The actual bundles need to be stored somewhere. The OBR index needs to provide links to that storage. A Karaf Feature is basically an index of bundles (and configurations), too. I think that it can also be versioned, and can contain different versions of bundles. Like an OBR, it is very useful for partitioning bundles into some kind of category, so the groups of bundles can be manipulated as a single unit. Just like an OBR, the Karaf Feature also needs to provide a link to the bundles. AFAIU, resolution is done somehow in Karaf, based on the bundles available via the Features, so in the end the entire mechanism seems almost identical to what the OBR is doing. So many similarities! I understand that a Feature can include configurations, which is nice, but why have a competing non-official standard against an official standard? If configurations is the only problem, then why not build it on top of OBRs, rather than creating something completely new and different and competing? Is it to try to force lock-in to Karaf? Or am I completely missing something? Thanks for explaining! :-) Cheers, =David
