As far as I understood the idea, it's
to use DS for Karaf itself, not to get rid of Blueprint.
Just so Karaf itself does have a smaller footprint.
@Ioannis did I get this right?

regards, Achim


2013/12/5 Jean-Baptiste Onofré <j...@nanthrax.net>

> Good point Dan.
>
> I think you should not hurry about this.
>
> Ioannis did a good PoC, but I quickly discussed with him and his goal is
> not to "force" the inclusion on Karaf 3.x.
>
> I think it makes more sense (and it's wise ;)), to act for a plan for
> Karaf 4.x.
>
> Regards
> JB
>
>
> On 12/05/2013 04:26 PM, Daniel Kulp wrote:
>
>>
>> On Dec 5, 2013, at 7:31 AM, Guillaume Nodet <gno...@apache.org> wrote:
>>
>>  I think that can be argued : it's a big internal change, but not really a
>>> user-facing one.  If the work is done in a compatible way (which I think
>>> is
>>> doable and should be the goal), it can be done in a minor release, as it
>>> would be almost transparent for the user: i.e. a user should still be
>>> able
>>> to deploy his own application without any changes.  So I don't think it
>>> requires a major version change.
>>>
>>
>> Well, there COULD be an impact….   Right now, some of the features.xml
>> files out there just assume blueprint is available.   For example, CXF’s
>> just assumes blueprint is there.   They don’t depend on any “blueprint”
>> feature.    Thus, an application (or CXF) that would deploy fine on the
>> minimal container out of the box right now would not with 3.1 (or whatever)
>> where blueprint isn’t there.
>>
>> We COULD adjust for this by adding a “blueprint” feature right now
>> (before 3.0 ships) that is relatively redundant with the “framework”
>> feature (or have framework depend on the new blueprint) that the other
>> features.xml could start depending on.   That could also be added for a
>> 2.3.x patch as well.
>>
>>
>>
>> Dan
>>
>>
>>
>>  2013/12/5 Jamie G. <jamie.goody...@gmail.com>
>>>
>>>  Just wanted to contribute my 2 cents -- I'd look at a SCR Karaf for 4.0
>>>> -
>>>> removing Blueprint dependencies from the core is too major a change to
>>>> try
>>>> to introduce it to 2.3.x or 3.0 at this stage.
>>>>
>>>> --Jamie
>>>>
>>>>
>>>> On Thu, Dec 5, 2013 at 8:10 AM, Jean-Baptiste Onofré <j...@nanthrax.net
>>>>
>>>>> wrote:
>>>>>
>>>>
>>>>  I think we have to distinguish different things:
>>>>> - the learn curve and usage "outside" of Karaf for developers. CDI is
>>>>>
>>>> like
>>>>
>>>>> EJB, and other framework.
>>>>> - the usage of CDI "inside" an OSGi application or Karaf itself (or for
>>>>> "native" OSGi applications).
>>>>>
>>>>> The fact that Karaf now supports CDI (via pax-cdi) is as good as
>>>>> supporting OpenEJB (in KarafEE), or Spring (in Karaf "natively").
>>>>>
>>>>> I would not use OpenEJB in Karaf "itself", nor Spring, nor CDI.
>>>>>
>>>>> If a developer wants to create a "generic" application (that can work
>>>>> in
>>>>> both OSGi or non-OSGi containers), CDI is good.
>>>>> If a developer want to create a native OSGi application, I would use
>>>>> natively OSGi "specific" framework (like blueprint).
>>>>>
>>>>> My 0.02€
>>>>>
>>>>> Regards
>>>>> JB
>>>>>
>>>>>
>>>>> On 12/05/2013 12:06 PM, Christian Schneider wrote:
>>>>>
>>>>>  Probably you are right.
>>>>>>
>>>>>> The reason why I came up with CDI is that it has the potential to be
>>>>>> the
>>>>>> core of user applications.
>>>>>> It is fully featured regarding web and persistence if you include
>>>>>> other
>>>>>> JavaEE stuff and also defines a standardized extension mechanism.
>>>>>> CDI is also well known to JavaEE developers. So my point is/was that
>>>>>> CDI
>>>>>> may be the only thing a developer needs to learn regarding dependency
>>>>>> injection.
>>>>>>
>>>>>> On the other hand a programmer of user applications running on karaf
>>>>>> is
>>>>>> quite decoupled from the karaf services and commands.
>>>>>> So it is probably not necessary that he uses and understands the karaf
>>>>>> internals. So from this perspective minimum footprint counts more than
>>>>>> having only one framework. So from this point of view DS really is
>>>>>> better than CDI.
>>>>>>
>>>>>> Another argument supporting this is that while I see most potential in
>>>>>> CDI to take over dependency injection in user space it is far from the
>>>>>> only solution. So there will always be people who use something else.
>>>>>> As
>>>>>> karaf needs to support a wide range of frameworks this also speaks for
>>>>>> minimum footprint for karaf's internals.
>>>>>>
>>>>>> Christian
>>>>>>
>>>>>> On 05.12.2013 11:49, Guillaume Nodet wrote:
>>>>>>
>>>>>>  2013/12/5 Christian Schneider <ch...@die-schneider.net>
>>>>>>>
>>>>>>> Good idea to look into alternatives to blueprint.
>>>>>>>
>>>>>>>>
>>>>>>>> The big advantage I see for DS is that it is very light weight. I am
>>>>>>>>
>>>>>>> not
>>>>
>>>>> so sure about its long term future though.
>>>>>>>> I personally think the future of OSGi dependency injection is CDI
>>>>>>>> like
>>>>>>>> pax-cdi + weld or openwebbeans.
>>>>>>>> Of course this is not really near term and far from being a sure
>>>>>>>> bet.
>>>>>>>> Still I think if we switch the DI framework we should
>>>>>>>> also at least experiment with CDI. I am currently working on a karaf
>>>>>>>> tutorial for CDI. The service injections already work very well.
>>>>>>>> I am now looking into jpa support.
>>>>>>>>
>>>>>>>> I disagree.  CDI will have the same problems as blueprint, it's an
>>>>>>>>
>>>>>>> application level injection framework, not focused *primarily* on
>>>>>>> OSGi.
>>>>>>> The lifecycle of CDI beans has to be static, so you have to use
>>>>>>>
>>>>>> proxies.
>>>>
>>>>>   Blueprint has the exact same problem where the beans lifecycle is
>>>>>>> bound to
>>>>>>> the lifecycle of the container.    On the opposite, DS has a better
>>>>>>> lifecycle mechanism for beans which can naturally handle the OSGi
>>>>>>> dynamism.
>>>>>>>
>>>>>>> And CDI would be even more heavyweight than blueprint, so I'd rather
>>>>>>> stick
>>>>>>> with blueprint than switching to CDI, even if it were ready.
>>>>>>> The real benefit of DS is that it has been designed to handle the
>>>>>>> OSGi
>>>>>>> dynamism, so it does less, but it does it better.
>>>>>>>
>>>>>>>
>>>>>>> In any case I think switching the DI framework should be considered
>>>>>>>
>>>>>> for
>>>>
>>>>> karaf 4. So in this case we have a bit of time to experiment.
>>>>>>>>
>>>>>>>> Christian
>>>>>>>>
>>>>>>>>
>>>>>>>> On 04.12.2013 21:41, Ioannis Canellos wrote:
>>>>>>>>
>>>>>>>> For anyone curious on how Karaf without Blueprint would look like,
>>>>>>>>
>>>>>>>>> here is a karaf branch that is free of blueprint:
>>>>>>>>> https://github.com/iocanel/karaf/tree/karaf-light (it's a fork of
>>>>>>>>>
>>>>>>>> the
>>>>
>>>>> karat-2.3.x branch).
>>>>>>>>>
>>>>>>>>> It is actually a refactored karaf 2.3.x that removes blueprint from
>>>>>>>>> all modules (yet still provides blueprint as feaures). Karaf
>>>>>>>>> specific
>>>>>>>>> blueprint namespace handlers have moved to optional bundles so that
>>>>>>>>> they can still be used if needed.
>>>>>>>>> Blueprint has been replaced with Felix SCR (including the shell
>>>>>>>>> commands). Moreover, misc refactorings on features and startup
>>>>>>>>>
>>>>>>>> bundles
>>>>
>>>>> have been performed in order to reduce the size and the amount of
>>>>>>>>> bundles in the minimal distro.
>>>>>>>>>
>>>>>>>>> The result is a minimal distribution that starts 12 bundles [1]
>>>>>>>>> (out
>>>>>>>>> of 37 which were part of karaf 2.3.3 minimal distro). 10 of those
>>>>>>>>> bundle were blueprint bundles and the rest are extra noise.
>>>>>>>>>
>>>>>>>>> My motivation behind this refactoring was:
>>>>>>>>> i) I like declarative services more than blueprint.
>>>>>>>>> ii) I've been working on projects that are packaged inside the
>>>>>>>>> karaf
>>>>>>>>> minimal distro which would benefit from a smaller size (e.g.
>>>>>>>>> jclouds-cli).
>>>>>>>>> iii) I wanted to make a karaf distro as flexible as possible.
>>>>>>>>>
>>>>>>>>> Please note that my main focus was the minimal distribution and
>>>>>>>>> also
>>>>>>>>> this is not 100% polished.
>>>>>>>>>
>>>>>>>>> Enjoy!
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> [1]: The bundle list of the minimal distro:
>>>>>>>>>
>>>>>>>>>      ID   State         Level  Name
>>>>>>>>> [   0] [Active     ] [    0] System Bundle (4.0.3)
>>>>>>>>> [   1] [Active     ] [    5] OPS4J Pax Url - mvn: (1.3.6)
>>>>>>>>> [   2] [Active     ] [    5] OPS4J Pax Url - wrap: (1.3.6)
>>>>>>>>> [   3] [Active     ] [    8] OPS4J Pax Logging - API (1.7.1)
>>>>>>>>> [   4] [Active     ] [    8] OPS4J Pax Logging - Service (1.7.1)
>>>>>>>>> [   5] [Active     ] [   10] Apache Felix Configuration Admin
>>>>>>>>> Service
>>>>>>>>> (1.6.0)
>>>>>>>>> [   6] [Active     ] [   11] Apache Felix File Install (3.2.6)
>>>>>>>>> [   7] [Active     ] [   13] Apache Felix Declarative Services
>>>>>>>>>
>>>>>>>> (1.6.2)
>>>>
>>>>> [   8] [Active     ] [   25] Apache Karaf :: Shell :: Console
>>>>>>>>> (2.3.4.SNAPSHOT)
>>>>>>>>> [   9] [Active     ] [   30] Apache Karaf :: Features :: Core
>>>>>>>>> (2.3.4.SNAPSHOT)
>>>>>>>>> [  10] [Active     ] [   30] Apache Karaf :: Features :: Command
>>>>>>>>> (2.3.4.SNAPSHOT)
>>>>>>>>> [  11] [Active     ] [   30] Apache Karaf :: Shell :: Log Commands
>>>>>>>>> (2.3.4.SNAPSHOT)
>>>>>>>>> [  12] [Active     ] [   30] Apache Karaf :: Shell :: OSGi Commands
>>>>>>>>> (2.3.4.SNAPSHOT)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>>
>>>>>>>> Christian Schneider
>>>>>>>> http://www.liquid-reality.de
>>>>>>>>
>>>>>>>> Open Source Architect
>>>>>>>> http://www.talend.com
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>  --
>>>>> Jean-Baptiste Onofré
>>>>> jbono...@apache.org
>>>>> http://blog.nanthrax.net
>>>>> Talend - http://www.talend.com
>>>>>
>>>>>
>>>>
>>
> --
> Jean-Baptiste Onofré
> jbono...@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>



-- 

Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
Project Lead
OPS4J Pax for Vaadin <http://team.ops4j.org/wiki/display/PAXVAADIN/Home>
Commiter & Project Lead
blog <http://notizblog.nierbeck.de/>

Reply via email to