Thanks Arne, that looks useful! :) 

(I can read German ;))

Sent from my iPhone

On 2012-10-15, at 11:55, Arne Limburg <arne.limb...@openknowledge.de> wrote:

> Hi,
> 
> Some ideas from my side, too ([1] and [2]). Unfortunately it is in german.
> But everyone of you can read the code. We used an advanced version of that
> code to build a Spring-CDI-Bridge in a large project. Unfortunately
> meanwhile the project is completely migrated to CDI and the code is lost
> in subversion. Will see, if I find the final version and can donate it.
> 
> Cheers,
> Arne
> 
> [1] 
> http://www.openknowledge.de/blog/article/integration-von-spring-in-cdi-uebe
> r-eine-cdi-extension-erster-teil.html
> [2] 
> http://www.openknowledge.de/blog/article/integration-von-spring-in-cdi-uebe
> r-eine-cdi-extension-zweiter-teil.html
> 
> 
> Am 15.10.12 17:16 schrieb "Jason Porter" unter <lightguard...@gmail.com>:
> 
>> You have my +1 Marius. If we can rouse the CDISource guys (mostly Rick)
>> they may have some ideas as well.
>> 
>> On Mon, Oct 15, 2012 at 1:53 AM, Antoine Sabot-Durand <
>> anto...@sabot-durand.net> wrote:
>> 
>>> +1 it would definitively improve Java EE and CDI adoption.
>>> 
>>> Antoine SABOT-DURAND
>>> 
>>> 
>>> 
>>> Le 15 oct. 2012 à 09:41, Romain Manni-Bucau <rmannibu...@gmail.com> a
>>> écrit :
>>> 
>>>> +1 (since DS manages spring context lifecycle)
>>>> 
>>>> *Romain Manni-Bucau*
>>>> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
>>>> *Blog: **http://rmannibucau.wordpress.com/*<
>>> http://rmannibucau.wordpress.com/>
>>>> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
>>>> *Github: https://github.com/rmannibucau*
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 2012/10/15 Mark Struberg <strub...@yahoo.de>
>>>> 
>>>>> great stuff, +1!
>>>>> 
>>>>> Just to help me understand a bit better. This module will cover a
>>>>> Spring-CDI bridge, so you boot Spring and a CDI container and route
>>> the
>>>>> beans between both of them, right?
>>>>> 
>>>>> Just for getting the whole picture: Another way is to just interpret
>>> the
>>>>> spring beans.xml and serve it all purely with CDI. Of course this
>>> will
>>>>> pretty surely not be possible to implement 100% compatible thus I'm
>>> not
>>>>> sure if it's worth implementing at all.
>>>>> I guess this is _not_ covered in your proposal, right? Imo this is
>>>>> perfectly fine, I just mention it for clarity.
>>>>> 
>>>>> LieGrue,
>>>>> strub
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> ----- Original Message -----
>>>>>> From: Marius Bogoevici <marius.bogoev...@gmail.com>
>>>>>> To: deltaspike-dev@incubator.apache.org
>>>>>> Cc:
>>>>>> Sent: Monday, October 15, 2012 8:33 AM
>>>>>> Subject: [DISCUSS] Spring - CDI Integration in DeltaSpike
>>>>>> 
>>>>>> Hello all,
>>>>>> 
>>>>>> Please check [1] before you answer.
>>>>>> 
>>>>>> I'd like to propose the addition of a new module for integrating
>>> Spring
>>>>> with
>>>>>> CDI. We have discussed this on the e-mail list but let me provide a
>>> quick
>>>>>> rationale for it.
>>>>>> 
>>>>>> - it eases adoption of CDI and, by extension, Java EE, in
>>> environments
>>>>> with a
>>>>>> significant existing Spring codebase;
>>>>>> - it provides a general solution for Spring/Java EE integration;
>>>>>> - it provides users with more options in choosing the best
>>> components
>>>>> for their
>>>>>> application, knowing that they are not locked in either of the
>>> paradigms
>>>>> (e.g. a
>>>>>> user can integrate a project with a strong CDI-based programming API
>>> with
>>>>>> something like Spring Batch or Spring Integration);
>>>>>> 
>>>>>> Features (proposed)
>>>>>> -----------------
>>>>>> 
>>>>>> a) bidirectional injection of beans (Spring into CDI and
>>> vice-versa);
>>>>>> b) bridging EntityTransaction support between DeltaSpike and Spring;
>>>>>> c) integrating the CDI event model with Spring (the best approach
>>> in my
>>>>> opinion
>>>>>> being Spring Integraton rather than the core)
>>>>>> d) integration with other Spring portfolio projects wherever
>>> possible;
>>>>>> 
>>>>>> For version 0.4 a minimal goal would be a), followed by b) if
>>> possible.
>>>>>> 
>>>>>> General approach (covers a))
>>>>>> =================
>>>>>> 
>>>>>> For 0.4. my intent, by and large, is to follow the approaches of the
>>>>> Seam 3
>>>>>> Spring module (including a code migration), making improvements on
>>> its
>>>>> design
>>>>>> wherever possible. I intend to create individual JIRAs for a more
>>>>> detailed
>>>>>> discussion, but here's the outline:
>>>>>> 
>>>>>> The general principle is that each side (Spring, CDI) should not
>>> know
>>>>> about the
>>>>>> existence of the other. Spring beans should be used as CDI beans
>>>>> transparently
>>>>>> and vice-versa.
>>>>>> 
>>>>>> So where do beans come from?
>>>>>> ------------------------
>>>>>> 
>>>>>> Spring beans are exposed through a /resource producer pattern//./
>>>>>> 
>>>>>> @Produces @SpringBean Foo bar;
>>>>>> 
>>>>>> Will produce a CDI bean of the type Foo acquired from the Spring
>>> context
>>>>>> 
>>>>>> Details:
>>> 
>>> http://docs.jboss.org/seam/3/spring/latest/reference/en-US/html/spring-us
>>> age.html#d0e92
>>>>>> 
>>>>>> What Spring context?
>>>>>> ------------------
>>>>>> 
>>>>>> For flexibility reasons, we do not assume where the Spring context
>>> is
>>>>> coming
>>>>>> from. Therefore, we allow different mechanisms for accessing a
>>> Spring
>>>>> context.
>>>>>> In fact, multiple contexts can be used for import.
>>>>>> 
>>>>>> a) parent web context [3]
>>>>>> 
>>>>>> @Produces @Web @SpringContext ApplicationContext applicationContext;
>>>>>> 
>>>>>> b) Configuration-file based application context [4]
>>>>>> 
>>>>>> @Produces @Configuration("classpath*:META-INF/spring/context.xml")
>>>>>> @SpringContext ApplicationContext applicationContext;
>>>>>> 
>>>>>> (TBD: issues like auto-import and auto-vetoing, as well as sensible
>>>>> defaults)
>>>>>> 
>>>>>> The Spring bean producer can reference a specific context (see
>>>>> documentation for
>>>>>> details)
>>>>>> 
>>>>>> Note: When we get to the JIRAs we can consider alternative designs -
>>> e.g.
>>>>>> grouping all producers for a particular context in a single bean and
>>>>> making that
>>>>>> bean the Spring context reference marker.
>>>>>> 
>>>>>> Note #2: In regards to the CDISource implementation: I am happy with
>>>>> reusing
>>>>>> some of the stuff there, but I have a hard time looking at the code,
>>> it's
>>>>>> never been released (as in a Maven release), lacks documentation,
>>> and
>>>>> reverse
>>>>>> engineering is hard. So if someone that is familiar with the code
>>> and
>>>>> finds
>>>>>> something particularly apt for reuse, and it's also OK from an
>>> Apache
>>>>> code
>>>>>> policy point of view, we should incorporate anything that helps.
>>> What
>>> I
>>>>> am not
>>>>>> particularly happy with is the approach of annotating CDI injection
>>>>> points with
>>>>>> the @Spring marker, which I believe violates separation of concerns
>>> - I
>>>>> consider
>>>>>> production or auto-registration a better approach (CDI targets
>>> should
>>>>> not know
>>>>>> about the provenience of the bean).
>>>>>> 
>>>>>> 
>>>>>> CDI into Spring integration [5]
>>>>>> ===================
>>>>>> 
>>>>>> Conversely, CDI beans can be injected into Spring applications. To
>>> that
>>>>> end, we
>>>>>> will provide a namespace (and possibly a JavaConfig configuration
>>>>> mechanism)
>>>>>> 
>>>>>> Structure
>>>>>> ======
>>>>>> 
>>>>>> The integration can be split into multiple modules, one for each
>>>>> features above.
>>>>>> a) can be split into two different modules too.
>>>>>> 
>>>>>> Roadmap
>>>>>> ======
>>>>>> 
>>>>>> I think that the first vote would be for the inclusion of the module
>>> (or
>>>>>> modules), followed by discussion of the JIRAs.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> [1] http://markmail.org/message/7yefspfuvtz4jvmp
>>>>>> [2] https://cwiki.apache.org/DeltaSpike/spring-cdi-integration.html
>>>>>> [3]
>>> 
>>> http://docs.jboss.org/seam/3/spring/latest/reference/en-US/html/spring-us
>>> age.html#d0e92
>>>>>> [4]
>>> 
>>> http://docs.jboss.org/seam/3/spring/latest/reference/en-US/html/spring-us
>>> age.html#d0e92
>>>>>> [5]
>>> 
>>> http://docs.oracle.com/javaee/6/api/javax/enterprise/inject/spi/BeanManag
>>> er.html
>> 
>> 
>> -- 
>> Jason Porter
>> http://lightguard-jp.blogspot.com
>> http://twitter.com/lightguardjp
>> 
>> Software Engineer
>> Open Source Advocate
>> Author of Seam Catch - Next Generation Java Exception Handling
>> 
>> PGP key id: 926CCFF5
>> PGP key available at: keyserver.net, pgp.mit.edu
> 

Reply via email to