I see the issue for blueprint as it is quite heavy weight.
Scr on the other hand is just one bundle.
Christian
On 17.03.2016 16:58, Morgan wrote:
I only see one problem.
JB wants to keep a normal/default distro where scr could have a place
in the distro and also a minimal distro without scr so I don't know
how you would deal with that?
On 2016-03-17 16:43, Christian Schneider wrote:
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