+1 17 mar 2016 16:44 "Christian Schneider" <[email protected]> napisał(a):
> We currently use some custom Activator base classes to wire the karaf > bundles. The goal of this was to avoid depending on blueprint > as it is a quite heavy dependency and makes it harder to use a different > blueprint impl or version. > > There are some problems with this approach though: > - It makes it harder for new people to understand what we are doing > - The custom code is more error prone than a proven framework > > So I propose to switch our own bundles to use DS to expose and wire > services. > > There are some advantages: > - The DS annotation approach is easier to understand and more self > documenting than the custom code > - We get rid of the classes in util for the custom code > - The scr commands help diagnose problems > > The main cost is that we need to always install the felix scr bundle. > > To prove that it can work I switched bundle core in a branch > https://github.com/apache/karaf/tree/EXPERIMENTAL_DS . > The DS based code works quite nicely. > > Btw. I found a small problem with our shell command extender. It only > seems to work on all commands or none. If there is any required service > missing then none of the commands is installed. > This made it hard for me to diagnose problems as I was missing all bundle > commands ;-) > So while working on the switch I thought about two improvements to the > extender: > 1. Work on each command individually. So each command can activate as soon > as the deps are met > 2. Provide a service and commands to diagnose problems like the scr > commands > > Christian > > -- > Christian Schneider > http://www.liquid-reality.de > > Open Source Architect > http://www.talend.com > >
