Hi Christian, Thanks for this information.
> There is one big downside to OBR unfortunately. Inside OBR the content of > bundles needs to be refered as a url. While karaf can work with mvn urls > other systems like bndtools can not. Now the problem is that you can not > populate an OBR well without maven urls if your artifacts reside in maven and > you also want to use maven SNAPSHOTs. My understanding is that this is very much by design. The reason is to have a “strongly” curated repository to promote well-behaved and predictable builds and deployments. I could be wrong. Maybe would be good to verify with some of the alliance peeps. > Another solution is to consider the OBR just as a cache and define the list > of bundles in a pom. Bndtools is going that way and I think karaf could do > the same. So a feature could simply point to a pom or when deployed to maven > we could assume to use the pom of the project the feature resides in as > default. This would allow to simply define OBRs by using a pom. You think bndtools is going that way? Or rather, they are just trying to bring in more Maven people? I don’t understand what the purpose would be. If the bundles are already defined in the OBR, why have a second list? Cheers, =David > On Jun 15, 2017, at 3:18 PM, Christian Schneider <ch...@die-schneider.net> > wrote: > > There is one big downside to OBR unfortunately. Inside OBR the content of > bundles needs to be refered as a url. While karaf can work with mvn urls > other systems like bndtools can not. Now the problem is that you can not > populate an OBR well without maven urls if your artifacts reside in maven and > you also want to use maven SNAPSHOTs. > > So I think there is a gap in OBR that needs to be closed. One solution would > be to add the mvn urls to the spec so they are universally accepted. > > Another solution is to consider the OBR just as a cache and define the list > of bundles in a pom. Bndtools is going that way and I think karaf could do > the same. So a feature could simply point to a pom or when deployed to maven > we could assume to use the pom of the project the feature resides in as > default. This would allow to simply define OBRs by using a pom. > > Christian > > > 2017-06-14 23:58 GMT+02:00 David Leangen <apa...@leangen.net>: > > Hi Guillaume, > > Thank you for this assessment. > > I agree that Features adds value. Your post explains a lot of good reasons > why this is so. > > My question is more about “why compete with OBR?”. Instead of embracing OBR > and working on top of it, it seems that Features want to replace it. This is > causing me to have to make a lot of choices in my deployment mechanism. > > Features could be really helpful for deployment by managing OBRs, > configurations, and other deployment information. They could also manage > versioning better etc. Maybe something like what Apache ACE was trying to do. > However, instead of “adding” value, currently Features are completely > replacing OBR, which I find interesting. But I understand that there is some > legacy to this. Now that it works, it would take some momentum to move to a > more standards-based approach. > > > My current issue is: how can I use Features for Continuous Deployment? I am > having trouble with automation. That is what got me interested in the idea > behind the Features… > > > Cheers, > =David > > > >> On Jun 15, 2017, at 6:38 AM, Guillaume Nodet <gno...@apache.org> wrote: >> >> So if you consider an OBR as being a collection of resources, each resource >> having capabilities and requirements, then a feature repository is an OBR >> repository, it's just the syntax is more concise. >> If you want to look at what the repository look like, you can launch the >> following command in karaf: >> > feature:install --store resolution.json --verbose --simulate scr >> >> Then, look at the resolution.json file, it will contain the OBR repository >> used by the resolver in a json format. The xml syntax would be slightly >> different of course, and a bit more verbose too, but roughly the same data. >> I do think the features syntax is a bit more understandable. >> >> But you do not want to compare OBR and features. I haven't seen any OBR >> repository used which would contain other things than just OSGi bundles. >> Features is more a deployment artifact than an OSGi bundle, so it's more to >> be compared with OSGi subsystems. >> >> With pure OBR, you can't group bundles together, you usually don't want to >> edit such a repository file manually, so at the end, you can never really >> hack the content. It has to be generated, and is mostly generated only from >> a set of OSGi bundles. You can't capture all the constraints by using >> bundles only. >> >> 2017-06-14 7:49 GMT+02:00 David Leangen <apa...@leangen.net>: >> >> 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 >> >> >> >> >> >> -- >> ------------------------ >> Guillaume Nodet >> > > > > > -- > -- > Christian Schneider > http://www.liquid-reality.de > > Open Source Architect > http://www.talend.com