You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by Arne Limburg <ar...@openknowledge.de> on 2010/02/12 18:09:11 UTC

[Ext-CDI] @Transactional

Hi folks,

I saw the discussion of adding an @Transactional-Annotation to your CDI extensions. I think Gerhard wrote it. I wonder if it deals with JTA transactions (which indeed would be pretty straight-forward) or with EntityTransactions of an resource-local EntityManager. I am working on the latter one and just would want to know if someone else is working on such stuff. I think it would be great, when we could archive injection of resource-local EntityManagers with transaction-support to deploy it on a tomcat or jetty. What do you think?

Regards,
Arne

--

Arne Limburg - Enterprise Developer
OpenKnowledge GmbH, Oldenburg
Bismarckstraße 13, 26122 Oldenburg
Mobil: +49 (0) 151 - 108 22 942
Tel: +49 (0) 441 - 4082-0
Fax: +49 (0) 441 - 4082-111
arne.limburg@openknowledge.de
http://www.openknowledge.de

Registergericht: Amtsgericht Oldenburg, HRB 4670
Geschäftsführer: Lars Röwekamp, Jens Schumann


AW: [Ext-CDI] @Transactional

Posted by Arne Limburg <ar...@openknowledge.de>.
Hi Gerhard,

OK, I got what you did, basically I did the same. You are right, that was pretty straight-forward, but I had to hard-code the persistence-unit name.

I have two ideas to inject the persistence-unit name into the producer-method for the EntityManager:

First idea: A @PersistenceUnitName qualifier-annotation to inject the name into the producer-method. Client code would have somethink like
public class Configuration {

  @Produces @PersistenceUnitName
  String getPersistenceUnitName() {
...
Not really nice, but the simplest solution to generify it.

Second idea:
The @PersistenceContext qualifier has a @Nonbind attribute persistenceUnitName which we can extract in the producer method. But then we get in scoping issues. Especially when having multiple persistence-units within one deployment. The second problem is: How can the @Transactional annotation know the persistence-unit-name.

Any other ideas?

Regards,
Arne

--

Arne Limburg - Enterprise Developer
OpenKnowledge GmbH, Oldenburg
Bismarckstraße 13, 26122 Oldenburg
Mobil: +49 (0) 151 - 108 22 942
Tel: +49 (0) 441 - 4082-0
Fax: +49 (0) 441 - 4082-111
arne.limburg@openknowledge.de
http://www.openknowledge.de

Registergericht: Amtsgericht Oldenburg, HRB 4670
Geschäftsführer: Lars Röwekamp, Jens Schumann

Von: Gerhard Petracek [mailto:gerhard.petracek@gmail.com]
Gesendet: Samstag, 13. Februar 2010 14:32
An: MyFaces Development
Betreff: Re: [Ext-CDI] @Transactional

hi arne,

i used the EntityManager to get an EntityTransaction.
you have to use cdi to create and inject it.
(i used some producer methods.)
i created @PersistenceUnit which is a cdi qualifier and
@Transactional which is a cdi interceptor binding.

basically it works and it isn't hard to use.
however, we have to think about an approach to provide as much as possible in a generic way.

regards,
gerhard

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces

2010/2/13 Arne Limburg <ar...@openknowledge.de>>
Hi Gerhard,

Did you mean "i used UserTransaction"? If not, how do you receive your EntityTransaction?

I am working on a solution to get request-scoped EntityManagers injected within a servlet-container that does not even support the web-profile (which are the current jetty and the current tomcat). I am not able to get an EntityManager injected via @PersistenceContext in that environment. So it would be nice if there were some CDI-Extension to achieve this. The implementation would be pretty straight-forward except the configuration of the persistence-unit name and the handling of different persistence-units within one CDI-deployment unit.

Using JTA-Transactions vs. resource-local EntityTransactions is another issue here.

Regards,
Arne

--

Arne Limburg - Enterprise Developer
OpenKnowledge GmbH, Oldenburg
Bismarckstraße 13, 26122 Oldenburg
Mobil: +49 (0) 151 - 108 22 942
Tel: +49 (0) 441 - 4082-0
Fax: +49 (0) 441 - 4082-111
arne.limburg@openknowledge.de<ma...@openknowledge.de>
http://www.openknowledge.de

Registergericht: Amtsgericht Oldenburg, HRB 4670
Geschäftsführer: Lars Röwekamp, Jens Schumann

Von: Gerhard Petracek [mailto:gerhard.petracek@gmail.com<ma...@gmail.com>]
Gesendet: Freitag, 12. Februar 2010 19:59
An: MyFaces Development
Betreff: Re: [Ext-CDI] @Transactional

hi arne,

yes - i used EntityTransaction in the prototype and it works pretty well in a servlet container (that was the base idea).

regards,
gerhard

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces
2010/2/12 Arne Limburg <ar...@openknowledge.de>>
Hi folks,

I saw the discussion of adding an @Transactional-Annotation to your CDI extensions. I think Gerhard wrote it. I wonder if it deals with JTA transactions (which indeed would be pretty straight-forward) or with EntityTransactions of an resource-local EntityManager. I am working on the latter one and just would want to know if someone else is working on such stuff. I think it would be great, when we could archive injection of resource-local EntityManagers with transaction-support to deploy it on a tomcat or jetty. What do you think?

Regards,
Arne

--

Arne Limburg - Enterprise Developer
OpenKnowledge GmbH, Oldenburg
Bismarckstraße 13, 26122 Oldenburg
Mobil: +49 (0) 151 - 108 22 942
Tel: +49 (0) 441 - 4082-0
Fax: +49 (0) 441 - 4082-111
arne.limburg@openknowledge.de<ma...@openknowledge.de>
http://www.openknowledge.de

Registergericht: Amtsgericht Oldenburg, HRB 4670
Geschäftsführer: Lars Röwekamp, Jens Schumann




Re: [Ext-CDI] @Transactional

Posted by Gerhard Petracek <ge...@gmail.com>.
hi arne,

i used the EntityManager to get an EntityTransaction.
you have to use cdi to create and inject it.
(i used some producer methods.)
i created @PersistenceUnit which is a cdi qualifier and
@Transactional which is a cdi interceptor binding.

basically it works and it isn't hard to use.
however, we have to think about an approach to provide as much as possible
in a generic way.

regards,
gerhard

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces


2010/2/13 Arne Limburg <ar...@openknowledge.de>

>  Hi Gerhard,
>
>
>
> Did you mean „i used UserTransaction”? If not, how do you receive your
> EntityTransaction?
>
>
>
> I am working on a solution to get request-scoped EntityManagers injected
> within a servlet-container that does not even support the web-profile (which
> are the current jetty and the current tomcat). I am not able to get an
> EntityManager injected via @PersistenceContext in that environment. So it
> would be nice if there were some CDI-Extension to achieve this. The
> implementation would be pretty straight-forward except the configuration of
> the persistence-unit name and the handling of different persistence-units
> within one CDI-deployment unit.
>
>
>
> Using JTA-Transactions vs. resource-local EntityTransactions is another
> issue here.
>
>
>
> Regards,
>
> Arne
>
>
>
> --
>
>
>
> Arne Limburg - Enterprise Developer
>
> OpenKnowledge GmbH, Oldenburg
>
> Bismarckstraße 13, 26122 Oldenburg
>
> Mobil: +49 (0) 151 - 108 22 942
>
> Tel: +49 (0) 441 - 4082-0
>
> Fax: +49 (0) 441 - 4082-111
>
> arne.limburg@openknowledge.de
>
> http://www.openknowledge.de
>
>
>
> Registergericht: Amtsgericht Oldenburg, HRB 4670
>
> Geschäftsführer: Lars Röwekamp, Jens Schumann
>
>
>
> *Von:* Gerhard Petracek [mailto:gerhard.petracek@gmail.com]
> *Gesendet:* Freitag, 12. Februar 2010 19:59
> *An:* MyFaces Development
> *Betreff:* Re: [Ext-CDI] @Transactional
>
>
>
> hi arne,
>
>
>
> yes - i used EntityTransaction in the prototype and it works pretty well in
> a servlet container (that was the base idea).
>
>
>
> regards,
>
> gerhard
>
> http://www.irian.at
>
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
>
>  2010/2/12 Arne Limburg <ar...@openknowledge.de>
>
> Hi folks,
>
>
>
> I saw the discussion of adding an @Transactional-Annotation to your CDI
> extensions. I think Gerhard wrote it. I wonder if it deals with JTA
> transactions (which indeed would be pretty straight-forward) or with
> EntityTransactions of an resource-local EntityManager. I am working on the
> latter one and just would want to know if someone else is working on such
> stuff. I think it would be great, when we could archive injection of
> resource-local EntityManagers with transaction-support to deploy it on a
> tomcat or jetty. What do you think?
>
>
>
> Regards,
>
> Arne
>
>
>
> --
>
>
>
> Arne Limburg - Enterprise Developer
>
> OpenKnowledge GmbH, Oldenburg
>
> Bismarckstraße 13, 26122 Oldenburg
>
> Mobil: +49 (0) 151 - 108 22 942
>
> Tel: +49 (0) 441 - 4082-0
>
> Fax: +49 (0) 441 - 4082-111
>
> arne.limburg@openknowledge.de
>
> http://www.openknowledge.de
>
>
>
> Registergericht: Amtsgericht Oldenburg, HRB 4670
>
> Geschäftsführer: Lars Röwekamp, Jens Schumann
>
>
>
>
>

AW: [Ext-CDI] @Transactional

Posted by Arne Limburg <ar...@openknowledge.de>.
Hi Gerhard,

Did you mean "i used UserTransaction"? If not, how do you receive your EntityTransaction?

I am working on a solution to get request-scoped EntityManagers injected within a servlet-container that does not even support the web-profile (which are the current jetty and the current tomcat). I am not able to get an EntityManager injected via @PersistenceContext in that environment. So it would be nice if there were some CDI-Extension to achieve this. The implementation would be pretty straight-forward except the configuration of the persistence-unit name and the handling of different persistence-units within one CDI-deployment unit.

Using JTA-Transactions vs. resource-local EntityTransactions is another issue here.

Regards,
Arne

--

Arne Limburg - Enterprise Developer
OpenKnowledge GmbH, Oldenburg
Bismarckstraße 13, 26122 Oldenburg
Mobil: +49 (0) 151 - 108 22 942
Tel: +49 (0) 441 - 4082-0
Fax: +49 (0) 441 - 4082-111
arne.limburg@openknowledge.de
http://www.openknowledge.de

Registergericht: Amtsgericht Oldenburg, HRB 4670
Geschäftsführer: Lars Röwekamp, Jens Schumann

Von: Gerhard Petracek [mailto:gerhard.petracek@gmail.com]
Gesendet: Freitag, 12. Februar 2010 19:59
An: MyFaces Development
Betreff: Re: [Ext-CDI] @Transactional

hi arne,

yes - i used EntityTransaction in the prototype and it works pretty well in a servlet container (that was the base idea).

regards,
gerhard

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces

2010/2/12 Arne Limburg <ar...@openknowledge.de>>
Hi folks,

I saw the discussion of adding an @Transactional-Annotation to your CDI extensions. I think Gerhard wrote it. I wonder if it deals with JTA transactions (which indeed would be pretty straight-forward) or with EntityTransactions of an resource-local EntityManager. I am working on the latter one and just would want to know if someone else is working on such stuff. I think it would be great, when we could archive injection of resource-local EntityManagers with transaction-support to deploy it on a tomcat or jetty. What do you think?

Regards,
Arne

--

Arne Limburg - Enterprise Developer
OpenKnowledge GmbH, Oldenburg
Bismarckstraße 13, 26122 Oldenburg
Mobil: +49 (0) 151 - 108 22 942
Tel: +49 (0) 441 - 4082-0
Fax: +49 (0) 441 - 4082-111
arne.limburg@openknowledge.de<ma...@openknowledge.de>
http://www.openknowledge.de

Registergericht: Amtsgericht Oldenburg, HRB 4670
Geschäftsführer: Lars Röwekamp, Jens Schumann



Re: [Ext-CDI] @Transactional

Posted by Gerhard Petracek <ge...@gmail.com>.
hi arne,

yes - i used EntityTransaction in the prototype and it works pretty well in
a servlet container (that was the base idea).

regards,
gerhard

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces


2010/2/12 Arne Limburg <ar...@openknowledge.de>

>  Hi folks,
>
>
>
> I saw the discussion of adding an @Transactional-Annotation to your CDI
> extensions. I think Gerhard wrote it. I wonder if it deals with JTA
> transactions (which indeed would be pretty straight-forward) or with
> EntityTransactions of an resource-local EntityManager. I am working on the
> latter one and just would want to know if someone else is working on such
> stuff. I think it would be great, when we could archive injection of
> resource-local EntityManagers with transaction-support to deploy it on a
> tomcat or jetty. What do you think?
>
>
>
> Regards,
>
> Arne
>
>
>
> --
>
>
>
> Arne Limburg - Enterprise Developer
>
> OpenKnowledge GmbH, Oldenburg
>
> Bismarckstraße 13, 26122 Oldenburg
>
> Mobil: +49 (0) 151 - 108 22 942
>
> Tel: +49 (0) 441 - 4082-0
>
> Fax: +49 (0) 441 - 4082-111
>
> arne.limburg@openknowledge.de
>
> http://www.openknowledge.de
>
>
>
> Registergericht: Amtsgericht Oldenburg, HRB 4670
>
> Geschäftsführer: Lars Röwekamp, Jens Schumann
>
>
>