myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christian Kaltepoth <christ...@kaltepoth.de>
Subject Re: MyFaces CODI and Weld 1.0.1
Date Wed, 09 Mar 2011 14:40:24 GMT
Hi Mark,

thank you very much for your response. I've tried your suggestion and
it worked great. I didn't knew about the BDA part in the spec and
assumed that CODI's beans.xml would globally enable the interceptor.
You are right! This BDA stuff is crap! :-)

@Matthias: Nice workaround! ;)

Thanks

Christian



2011/3/9 Mark Struberg <struberg@yahoo.de>:
> Hi Christian!
>
> The major difference between Weld and OpenWebBeans in the interceptor area is that Weld
strictly follows the "Bean Definition Archive" (BDA) part of the spec. This got added pretty
late (in the last few weeks before the spec went final and imo is complete crap [1] ;)
>
> In Weld you have to add the <interceptors> section to ALL jars as well as to the
WAR you like to use the interceptor in. Whereas in OWB it is enough to just have it enabled
in 1 of the beans.xml files.
>
> So please try adding those section to all your beans.xml files and plz report back if
that worked out.
>
> LieGrue,
> strub
>
>
> [1] https://issues.jboss.org/browse/CDI-18
> --- On Wed, 3/9/11, Christian Kaltepoth <christian@kaltepoth.de> wrote:
>
>> From: Christian Kaltepoth <christian@kaltepoth.de>
>> Subject: MyFaces CODI and Weld 1.0.1
>> To: "MyFaces Discussion" <users@myfaces.apache.org>
>> Date: Wednesday, March 9, 2011, 12:31 PM
>> Hey all,
>>
>> we are currently developing an application based on Weld
>> 1.0.1 and
>> MyFaces CODI. Unfortunately we have some strange problems
>> regarding
>> CODI's @Transactional not always being applied correctly.
>> It seems to
>> be completely ignored in some situations.
>>
>> I've reproduced this problem with Matthias'
>> Modern-EE-JSF2.0 example
>> application. I did just two modifications:
>>
>> 1. Weld doesn't support to inject the EntityManager via
>> @PersistenceContext. So I created a class named
>> EntityManagerProducer
>> to create request scoped EntityManager instances. Then I
>> replaced
>> @PersistenceContext in the DAO with @Inject. This works
>> fine with
>> OpenWebBeans.
>>
>> 2. Then I removed OpenWebBeans and added Weld 1.0.1 to the
>> dependencies. After that @Transactional immediately stopped
>> working.
>> It seems like the TransactionalInterceptor doesn't get
>> invoked at all.
>> No transactions are started and changes to the database
>> aren't
>> persisted any more.
>>
>> You can get the example application here:
>>
>> https://github.com/chkal/modern-ee-app20
>>
>> Here are the modifications I made to the application:
>>
>> https://github.com/chkal/modern-ee-app20/commits/master
>>
>> Does anyone have an idea what is causing this? I'm not
>> really sure if
>> it is a CODI or a Weld issue.
>>
>> Thanks
>>
>> Christian
>>
>>
>> --
>> Christian Kaltepoth
>> Blog: http://chkal.blogspot.com/
>> Twitter: http://twitter.com/chkal
>>
>
>
>
>



-- 
Christian Kaltepoth
Blog: http://chkal.blogspot.com/
Twitter: http://twitter.com/chkal

Mime
View raw message