[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-1144) Make org.jboss.seam.util.Transactions a seam component
Michael Youngstrom (JIRA)
jira-events at lists.jboss.org
Wed Apr 11 01:38:58 EDT 2007
[ http://jira.jboss.com/jira/browse/JBSEAM-1144?page=comments#action_12358891 ]
Michael Youngstrom commented on JBSEAM-1144:
I agree we don't want to provide another transaction interface that is why this patch does not introduce a new proprietary interface. It simply provides an implementation of UserTransaction. Seam already is dependent upon 2 Tx APIs JTA and EjbContext (container managed tx). All this patch does is combine the 2 apis into a single implementation of UserTransaction and exposes it as a Seam Component. I did add a utility flag "isJoinable" but that is it. :)
I agree that JTA is a fine tx api. However, the biggest problem I have with the strict use of JTA in Seam it's dependence on JNDI. There may be many great JTA runtimes available but they become a beast (with the exception of microcontainer) to configure when it comes to trying to correctly expose them with JNDI not to mention your datasources that must be wrapped and exposed through JNDI as well.
As a side effect because seam components are overridable it allows for wrapping of other transaction APIs or even easier wrapping of other JTA implementations without the dependence on JNDI.
I think this patch provides the added benefits helping make seam applications
easier to configure,
less thirdparty layers between code and database, and
less dependencies for projects who want to deploy on a simple web container.
And does it all without providing any new Transaction interfaces.
> Make org.jboss.seam.util.Transactions a seam component
> Key: JBSEAM-1144
> URL: http://jira.jboss.com/jira/browse/JBSEAM-1144
> Project: JBoss Seam
> Issue Type: Feature Request
> Components: Core
> Affects Versions: 1.2.1.GA
> Reporter: Michael Youngstrom
> Fix For: 1.3.0.BETA1
> Attachments: seam-tx-2.zip, seam-tx.patch
> I know this is probably a loaded issue but please hear me out. :) It would be nice if org.jboss.seam.util.Transactions was replaced with a Seam Component just like everything else in Seam. This would allow for pluggable Transaction Management providers and pave the way for support for Spring Managed Transactions, JPA Local Transactions, and true Hibernate Local Transactions. This will allow Seam applications to run without a dependency on microcontainer in tomcat and allow for tighter Framework integration with spring and others.
> I would personally be more than willing to do the work of making the an initial JTATransaction component(s) as a replacement for org.jboss.seam.util.Transactions and would also create a SpringTransaction component as a proof of concept for extending the Transaction component.
> One problem I can see off hand is we may have to interact with a transaction in some places where a Seam ApplicationContext is not available. However, I wonder if confining Seam transactions to a seam call might help simplify matters anyway? For example transaction cleanup could take place in the @Destroy of the transaction component instead of in the ExceptionFilter?
> Also, this wouldn't be looked at as a JTA replacement but rather a service abstraction. Just like any other java webapp if you're using enterprise services such as EJBs or JCA JTA would be required. if you're running on tomcat or some other simple web container a resource local transaction manager (Spring's abstraction, JPA's, or Hibernate's) can be used.
> I'm sure there are tons of other problems I'm not looking at but worst case scenario this issue would be a great place to document them and to refer rejected feature requests. (for example JBSEAM-1118)
> What do you think?
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the seam-issues