On Tue, Jun 9, 2009 at 1:08 PM, Jonas Bonér <[email protected]> wrote:
> > Now I have deleted the lib dir with all jars and fixed the POM. Thanks! > > > 2009/6/9 Derek Chen-Becker <[email protected]>: > > In my email above I have the link to the Maven artifacts for Atomikos: > > > > http://mvnrepository.com/artifact/com.atomikos > > > > I think that the dependency you want is: > > > > <dependency> > > <groupId>com.atomikos</groupId> > > <artifactId>transactions-jta</artifactId> > > <version>3.2.3</version> > > </dependency> > > > > Derek > > > > On Tue, Jun 9, 2009 at 12:54 PM, Meredith Gregory < > [email protected]> > > wrote: > >> > >> Jonas, > >> > >> Awesome! i look forward to digging into this stuff! > >> > >> Best wishes, > >> > >> --greg > >> > >> On Tue, Jun 9, 2009 at 6:18 AM, Jonas Bonér <[email protected]> wrote: > >>> > >>> Hey guys. > >>> > >>> I have hacked together an early draft of the JTA transaction stuff. > >>> > >>> I have wrapped it up in a monad. Here are some examples of usage: > >>> > >>> for { > >>> ctx <- TransactionContext.Required > >>> entity <- updatedEntities > >>> if !ctx.isRollbackOnly > >>> } { > >>> // transactional stuff > >>> ctx.getEntityManager.merge(entity) > >>> } > >>> > >>> val users = for { > >>> ctx <- TransactionContext.Required > >>> name <- userNames > >>> } yield { > >>> // transactional stuff > >>> val query = ctx.getEntityManager.createNamedQuery("findUserByName") > >>> query.setParameter("userName", name) > >>> query.getSingleResult > >>> } > >>> > >>> If you don't like the monadic approach you can just use the high-order > >>> functions: > >>> > >>> TransactionContext.withTxRequired { > >>> ... // REQUIRED semantics > >>> > >>> TransactionContext.withTxRequiresNew { > >>> ... // REQUIRES_NEW semantics > >>> } > >>> } > >>> > >>> I have implemented the same semantics as used in the EJB spec. > >>> Required, RequiresNew, Mandatory, Supports, Never. All these are > >>> monadic objects in the TransactionContext object. > >>> I don't have a webapp to try this out, so I would be happy to get all > >>> kinds of feedback, but API wise and bug reports or fixes. > >>> > >>> This API is hooked into Derek's Scala-JPA stuff. I had my own impl of > >>> this but replaced it with Derek's work. > >>> > >>> Derek, > >>> please go through the integration to see if I have done it correctly, > >>> and where things code be improved. > >>> > >>> All committers, > >>> feel free to hack and change this code anyway you want. > >>> > >>> The code is in a branch (wip-jta-jonas), you can find it here: > >>> > >>> > http://github.com/dpp/liftweb/tree/3783b9e2200cc57dd72baa1bd8cabdb1365ee923/lift-jta > >>> > >>> Check the ScalaDoc (or the source) for the documentation on usage, > >>> semantics etc. > >>> Also see the README for configuration in persistence.xml etc. > >>> > >>> Currently it is hard-coded to use the Atomikos Transaction library and > >>> Hibernate JPA, that would have to be configurable + some other options > >>> as well. See the TODOs in the code. > >>> > >>> As I said, this needs feedback and testing. Thanks. > >>> > >>> -- > >>> Jonas Bonér > >>> > >>> twitter: @jboner > >>> blog: http://jonasboner.com > >>> work: http://crisp.se > >>> work: http://scalablesolutions.se > >>> code: http://github.com/jboner > >>> > >>> > >> > >> > >> > >> -- > >> L.G. Meredith > >> Managing Partner > >> Biosimilarity LLC > >> 1219 NW 83rd St > >> Seattle, WA 98117 > >> > >> +1 206.650.3740 > >> > >> http://biosimilarity.blogspot.com > >> > >> > > > > > > > > > > > > > -- > Jonas Bonér > > twitter: @jboner > blog: http://jonasboner.com > work: http://crisp.se > work: http://scalablesolutions.se > code: http://github.com/jboner > > > > -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---
