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


Reply via email to