[Lift] Re: JTA Transaction Monad - Early Access Program
Sweet looking stuff! On Tue, Jun 9, 2009 at 6:18 AM, Jonas Bonér 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 > > > > -- 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 liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
2009/6/9 David Pollak : > Sweet looking stuff! Thanks. > > On Tue, Jun 9, 2009 at 6:18 AM, Jonas Bonér 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 >> >> > > > > -- > 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 > > > > -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Starkt jobbat Jonas! I'll have a look at it asap :) On Tue, Jun 9, 2009 at 4:27 PM, Jonas Bonér wrote: > > 2009/6/9 David Pollak : > > Sweet looking stuff! > > Thanks. > > > > > On Tue, Jun 9, 2009 at 6:18 AM, Jonas Bonér 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 > >> > >> > > > > > > > > -- > > 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 > > > > > > > > > > > -- > Jonas Bonér > > twitter: @jboner > blog:http://jonasboner.com > work: http://crisp.se > work: http://scalablesolutions.se > code: http://github.com/jboner > > > > -- Viktor Klang Rockstar Developer --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Wow, this is very nice! Kudos Jonas! Cheers, Tim On 09/06/2009 14:18, "Jonas Bonér" 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/li > ft-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. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Awesome! I'll take a look at the code. If you're basing this on ScalaJPA, would it be preferable to add the functionality there, or is there anything Lift-specific? Derek On Tue, Jun 9, 2009 at 7:18 AM, Jonas Bonér 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 > > > > --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
OK, one quick comment before I dive in: we generally want to depend on Maven to grab dependencies. Right now you have a lib folder checked into git that appears to hold the JTA libs and Atomikos. If that's the Sun JTA libs then we can't distribute them. We generally use the geronimo JTA API, so you could instead add dependencies to your pom.xml from the following: http://mvnrepository.com/artifact/com.atomikos org.apache.geronimo.specs geronimo-jta_1.1_spec 1.1.1 Let me know if you have any problems with that. Now, on to the code! Derek On Tue, Jun 9, 2009 at 9:44 AM, Derek Chen-Becker wrote: > Awesome! I'll take a look at the code. If you're basing this on ScalaJPA, > would it be preferable to add the functionality there, or is there anything > Lift-specific? > > Derek > > > > On Tue, Jun 9, 2009 at 7:18 AM, Jonas Bonér 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 >> >> >> >> > --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
I added the lib folder only since I have not been able to find the atomikos and deps in any maven repo. Now the user can install them in their private repo. If they exist in a public repo then I will remove the lib folder. Will switch to the apache libs. Thanks, Jonas. 2009/6/9 Derek Chen-Becker : > OK, one quick comment before I dive in: we generally want to depend on Maven > to grab dependencies. Right now you have a lib folder checked into git that > appears to hold the JTA libs and Atomikos. If that's the Sun JTA libs then > we can't distribute them. We generally use the geronimo JTA API, so you > could instead add dependencies to your pom.xml from the following: > > http://mvnrepository.com/artifact/com.atomikos > > > org.apache.geronimo.specs > geronimo-jta_1.1_spec > 1.1.1 > > > Let me know if you have any problems with that. Now, on to the code! > > Derek > > On Tue, Jun 9, 2009 at 9:44 AM, Derek Chen-Becker > wrote: >> >> Awesome! I'll take a look at the code. If you're basing this on ScalaJPA, >> would it be preferable to add the functionality there, or is there anything >> Lift-specific? >> >> Derek >> >> >> On Tue, Jun 9, 2009 at 7:18 AM, Jonas Bonér 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 >>> >>> >> > > > > > -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Isnt LiftLogger extensible? Perhaps there would be some way to integrate it with LiftLogger so it was an optional logger just like Log4J, SL4J etc Disclaimer: I know nothing about Configgy! Cheers, Tim On 09/06/2009 17:34, "Jonas Bonér" wrote: > > I am only depending on Lift through the Lift logger (switched from > Configgy, which I actually like better). > I am only depending on ScalaJPA through one single 'with ScalaEntityManager'. > I could move it. > What do the rest of you guys think? > > 2009/6/9 Derek Chen-Becker : >> Awesome! I'll take a look at the code. If you're basing this on ScalaJPA, >> would it be preferable to add the functionality there, or is there anything >> Lift-specific? >> >> Derek >> >> >> On Tue, Jun 9, 2009 at 7:18 AM, Jonas Bonér 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 >>> >>> >> >> >>> >> > > --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
I am only depending on Lift through the Lift logger (switched from Configgy, which I actually like better). I am only depending on ScalaJPA through one single 'with ScalaEntityManager'. I could move it. What do the rest of you guys think? 2009/6/9 Derek Chen-Becker : > Awesome! I'll take a look at the code. If you're basing this on ScalaJPA, > would it be preferable to add the functionality there, or is there anything > Lift-specific? > > Derek > > > On Tue, Jun 9, 2009 at 7:18 AM, Jonas Bonér 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 >> >> > > > > > -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Jonas, We always use Maven to load dependencies. We never use GPL dependencies. If you have a question about the license of a dependency and its use in Lift, please ping me privately. What does Configgy have that Lift's Props and Logger doesn't? I'm all for enhancing Lift to be as good as Configgy (and Robey didn't have the bandwidth to integrate Configgy into Lift, thus our own config management). Thanks, David On Tue, Jun 9, 2009 at 9:34 AM, Jonas Bonér wrote: > > I am only depending on Lift through the Lift logger (switched from > Configgy, which I actually like better). > I am only depending on ScalaJPA through one single 'with > ScalaEntityManager'. > I could move it. > What do the rest of you guys think? > > 2009/6/9 Derek Chen-Becker : > > Awesome! I'll take a look at the code. If you're basing this on ScalaJPA, > > would it be preferable to add the functionality there, or is there > anything > > Lift-specific? > > > > Derek > > > > > > On Tue, Jun 9, 2009 at 7:18 AM, Jonas Bonér 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 > >> > >> > > > > > > > > > > > > > -- > 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 liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
2009/6/9 David Pollak : > Jonas, > We always use Maven to load dependencies. We never use GPL dependencies. > If you have a question about the license of a dependency and its use in > Lift, please ping me privately. I am using Maven. But as I said I could not find the Atomikos in any public library, putting them in lib will let the user easily install them in their local repo. Do you know if they are in any public repo? Sorry about the license issues, didn't think about that. I can remove them all in any case, even though that would make it harder to use. > What does Configgy have that Lift's Props and Logger doesn't? I'm all for > enhancing Lift to be as good as Configgy (and Robey didn't have the > bandwidth to integrate Configgy into Lift, thus our own config management). First I like the printf-style logging API, similar to slf4j. Nice to use plus better performance. Second I really like Configgys configuration API, plus that it is integrated with the logging. But this was just a comment from my side, I have no problem whatsoever to use Lift logger. /Jonas > Thanks, > David > On Tue, Jun 9, 2009 at 9:34 AM, Jonas Bonér wrote: >> >> I am only depending on Lift through the Lift logger (switched from >> Configgy, which I actually like better). >> I am only depending on ScalaJPA through one single 'with >> ScalaEntityManager'. >> I could move it. >> What do the rest of you guys think? >> >> 2009/6/9 Derek Chen-Becker : >> > Awesome! I'll take a look at the code. If you're basing this on >> > ScalaJPA, >> > would it be preferable to add the functionality there, or is there >> > anything >> > Lift-specific? >> > >> > Derek >> > >> > >> > On Tue, Jun 9, 2009 at 7:18 AM, Jonas Bonér 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 >> >> >> >> >> > >> > >> > > >> > >> >> >> >> -- >> 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 > > > > -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post
[Lift] Re: JTA Transaction Monad - Early Access Program
On Tue, Jun 9, 2009 at 10:13 AM, Jonas Bonér wrote: > > 2009/6/9 David Pollak : > > Jonas, > > We always use Maven to load dependencies. We never use GPL dependencies. > > If you have a question about the license of a dependency and its use in > > Lift, please ping me privately. > > I am using Maven. But as I said I could not find the Atomikos in any > public library, putting them in lib will let the user easily install > them in their local repo. I understand why you did it and that you had the goal of making it easier for developers. > > Do you know if they are in any public repo? I don't... but if they are not in a public repo, we have two choices: hosting the JAR files on scala-tools.org (as long as the license allows us to do that) or finding an alternative that is hosted in a public repo. I'm dealing with similar issues right now with ZooKeeper. > > Sorry about the license issues, didn't think about that. > I can remove them all in any case, even though that would make it > harder to use. > > > What does Configgy have that Lift's Props and Logger doesn't? I'm all > for > > enhancing Lift to be as good as Configgy (and Robey didn't have the > > bandwidth to integrate Configgy into Lift, thus our own config > management). > > First I like the printf-style logging API, similar to slf4j. Nice to > use plus better performance. We can add that to Lift's logger (which can sit on top of slf4j) Also, note that all of Lift's logger parameters are call-by-name so there's no evaluation unless the log level is met. > > > Second I really like Configgys configuration API, Can you tell me what you specifically like about it? Thanks, David > plus that it is > integrated with the logging. > But this was just a comment from my side, I have no problem whatsoever > to use Lift logger. > > /Jonas > > > Thanks, > > David > > On Tue, Jun 9, 2009 at 9:34 AM, Jonas Bonér wrote: > >> > >> I am only depending on Lift through the Lift logger (switched from > >> Configgy, which I actually like better). > >> I am only depending on ScalaJPA through one single 'with > >> ScalaEntityManager'. > >> I could move it. > >> What do the rest of you guys think? > >> > >> 2009/6/9 Derek Chen-Becker : > >> > Awesome! I'll take a look at the code. If you're basing this on > >> > ScalaJPA, > >> > would it be preferable to add the functionality there, or is there > >> > anything > >> > Lift-specific? > >> > > >> > Derek > >> > > >> > > >> > On Tue, Jun 9, 2009 at 7:18 AM, Jonas Bonér 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. > >> >> > >> >> -- > >> >>
[Lift] Re: JTA Transaction Monad - Early Access Program
>> >> First I like the printf-style logging API, similar to slf4j. Nice to >> use plus better performance. > > We can add that to Lift's logger (which can sit on top of slf4j) That would be great. > Also, note that all of Lift's logger parameters are call-by-name so there's > no evaluation unless the log level is met. > Ok, I didn't know that. Great. That's the way to do it. -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Re configgy. I think it is a great balance between properties and xml, like pragmatic xml. Simple as properties but with nesting, hierarchies, type conversions, good override and defaults system (inheritance). It also has notification of changes and a JMX API for management (which I have not used yet). /Jonas 2009/6/9 Jonas Bonér : >>> >>> First I like the printf-style logging API, similar to slf4j. Nice to >>> use plus better performance. >> >> We can add that to Lift's logger (which can sit on top of slf4j) > > That would be great. > >> Also, note that all of Lift's logger parameters are call-by-name so there's >> no evaluation unless the log level is met. >> > > Ok, I didn't know that. Great. That's the way to do it. > > -- > Jonas Bonér > > twitter: @jboner > blog: http://jonasboner.com > work: http://crisp.se > work: http://scalablesolutions.se > code: http://github.com/jboner > -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
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 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 --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
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: com.atomikos transactions-jta 3.2.3 Derek On Tue, Jun 9, 2009 at 12:54 PM, Meredith Gregory 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 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 > > > > > --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Thanks Derek. I missed that. I will fix the pom.xml. 2009/6/9 Derek Chen-Becker : > 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: > > > com.atomikos > transactions-jta > 3.2.3 > > > Derek > > On Tue, Jun 9, 2009 at 12:54 PM, Meredith Gregory > 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 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 --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Thanks Greg. And thanks for the suggestion to see transactions as monadic. All feedback is more than welcome. /Jonas 2009/6/9 Meredith Gregory : > 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 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 --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Jonas, the code looks great! I don't see any issues with how ScalaJPA is used. It's nice to see that this fits what you're doing well and I really like how this lets one use transactions without having to go with a full-blown JEE container. One thing that you might want to put into the README is a reminder that if you're going to be using JNDI along with an EntityManager then JTA is not only required, but should be handled automatically by the container. The only valid operation on a Container-managed EM (as pointed out by mrxtravis yesterday when he found a bug in ScalaJPA) is to set the TX as rollback-only. Derek On Tue, Jun 9, 2009 at 1:10 PM, Derek Chen-Becker wrote: > 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: > > > com.atomikos > transactions-jta > 3.2.3 > > > Derek > > > On Tue, Jun 9, 2009 at 12:54 PM, Meredith Gregory < > lgreg.mered...@gmail.com> 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 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 >> >> >> >> >> > --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Thanks Derek. Thanks for taking time to do a code review. I'll add that to the README. /Jonas 2009/6/9 Derek Chen-Becker : > Jonas, the code looks great! I don't see any issues with how ScalaJPA is > used. It's nice to see that this fits what you're doing well and I really > like how this lets one use transactions without having to go with a > full-blown JEE container. One thing that you might want to put into the > README is a reminder that if you're going to be using JNDI along with an > EntityManager then JTA is not only required, but should be handled > automatically by the container. The only valid operation on a > Container-managed EM (as pointed out by mrxtravis yesterday when he found a > bug in ScalaJPA) is to set the TX as rollback-only. > > Derek > > On Tue, Jun 9, 2009 at 1:10 PM, Derek Chen-Becker > wrote: >> >> 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: >> >> >> com.atomikos >> transactions-jta >> 3.2.3 >> >> >> Derek >> >> On Tue, Jun 9, 2009 at 12:54 PM, Meredith Gregory >> 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 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 --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Now I have deleted the lib dir with all jars and fixed the POM. 2009/6/9 Derek Chen-Becker : > 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: > > > com.atomikos > transactions-jta > 3.2.3 > > > Derek > > On Tue, Jun 9, 2009 at 12:54 PM, Meredith Gregory > 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 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 --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
On Tue, Jun 9, 2009 at 1:08 PM, Jonas Bonér wrote: > > Now I have deleted the lib dir with all jars and fixed the POM. Thanks! > > > 2009/6/9 Derek Chen-Becker : > > 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: > > > > > > com.atomikos > > transactions-jta > > 3.2.3 > > > > > > Derek > > > > On Tue, Jun 9, 2009 at 12:54 PM, Meredith Gregory < > lgreg.mered...@gmail.com> > > 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 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 liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Lifted, i gotta say this thread of activity is just so cool. It's what i always dreamed open source would be like. The community essentially gets to access and think with each others' best minds and act with each others' best talents to arrive on a path to a better concrete realization of feature, function and design. We all know, individually and collectively, just how hard it is to make excellent software and know that we're more likely to achieve that aim working together. i can't help but notice that there is no explicit representation of the profit motive here. Each of us might individually be in contact with some aspect of profit motive, but it does not have an explicit representation in this little snippet of process. That gives this entrepreneur pause for thought. Best wishes, --greg On Tue, Jun 9, 2009 at 3:46 PM, David Pollak wrote: > > > On Tue, Jun 9, 2009 at 1:08 PM, Jonas Bonér wrote: > >> >> Now I have deleted the lib dir with all jars and fixed the POM. > > > Thanks! > > >> >> >> 2009/6/9 Derek Chen-Becker : >> > 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: >> > >> > >> > com.atomikos >> > transactions-jta >> > 3.2.3 >> > >> > >> > Derek >> > >> > On Tue, Jun 9, 2009 at 12:54 PM, Meredith Gregory < >> lgreg.mered...@gmail.com> >> > 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 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 > > > > -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://bios
[Lift] Re: JTA Transaction Monad - Early Access Program
2009/6/9 Jonas Bonér : > > 2009/6/9 David Pollak : >> Jonas, >> We always use Maven to load dependencies. We never use GPL dependencies. >> If you have a question about the license of a dependency and its use in >> Lift, please ping me privately. > > I am using Maven. But as I said I could not find the Atomikos in any > public library, putting them in lib will let the user easily install > them in their local repo. > Do you know if they are in any public repo? If its any help I added them here a while back for an integration test in ActiveMQ http://repo.fusesource.com/maven2-all/com/atomikos/ the repo is: http://repo.fusesource.com/maven2-all/ you might wanna put more recent jars up on some public repo though. -- James --- http://macstrac.blogspot.com/ Open Source Integration http://fusesource.com/ --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Thanks James. But I have already found them in a public repo. /Jonas 2009/6/10 James Strachan : > > 2009/6/9 Jonas Bonér : >> >> 2009/6/9 David Pollak : >>> Jonas, >>> We always use Maven to load dependencies. We never use GPL dependencies. >>> If you have a question about the license of a dependency and its use in >>> Lift, please ping me privately. >> >> I am using Maven. But as I said I could not find the Atomikos in any >> public library, putting them in lib will let the user easily install >> them in their local repo. >> Do you know if they are in any public repo? > > If its any help I added them here a while back for an integration test > in ActiveMQ > http://repo.fusesource.com/maven2-all/com/atomikos/ > > the repo is: http://repo.fusesource.com/maven2-all/ > > you might wanna put more recent jars up on some public repo though. > > > -- > James > --- > http://macstrac.blogspot.com/ > > Open Source Integration > http://fusesource.com/ > > > > -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Jonas, Did you roll this into master? What's its status? Cheers, Tim On Jun 10, 4:46 pm, James Strachan wrote: > 2009/6/9 Jonas Bonér : > > > > > 2009/6/9 David Pollak : > >> Jonas, > >> We always use Maven to load dependencies. We never use GPL dependencies. > >> If you have a question about the license of a dependency and its use in > >> Lift, please ping me privately. > > > I am using Maven. But as I said I could not find the Atomikos in any > > public library, putting them in lib will let the user easily install > > them in their local repo. > > Do you know if they are in any public repo? > > If its any help I added them here a while back for an integration test > in ActiveMQhttp://repo.fusesource.com/maven2-all/com/atomikos/ > > the repo is:http://repo.fusesource.com/maven2-all/ > > you might wanna put more recent jars up on some public repo though. > > -- > James > ---http://macstrac.blogspot.com/ > > Open Source Integrationhttp://fusesource.com/ --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
No I haven't. Should I? Is everyone happy with it? Have anyone tried it? Is anyone using it? 2009/6/30 Timothy Perrett : > > Jonas, > > Did you roll this into master? What's its status? > > Cheers, Tim > > On Jun 10, 4:46 pm, James Strachan wrote: >> 2009/6/9 Jonas Bonér : >> >> >> >> > 2009/6/9 David Pollak : >> >> Jonas, >> >> We always use Maven to load dependencies. We never use GPL dependencies. >> >> If you have a question about the license of a dependency and its use in >> >> Lift, please ping me privately. >> >> > I am using Maven. But as I said I could not find the Atomikos in any >> > public library, putting them in lib will let the user easily install >> > them in their local repo. >> > Do you know if they are in any public repo? >> >> If its any help I added them here a while back for an integration test >> in ActiveMQhttp://repo.fusesource.com/maven2-all/com/atomikos/ >> >> the repo is:http://repo.fusesource.com/maven2-all/ >> >> you might wanna put more recent jars up on some public repo though. >> >> -- >> James >> ---http://macstrac.blogspot.com/ >> >> Open Source Integrationhttp://fusesource.com/ > > > -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Jonas, i'm going to begin playing with it after i've finished the conversion of the DSL stuff to scala-query. The JTA monad should just fit with scala-query. Best wishes, --greg On Tue, Jul 7, 2009 at 10:18 AM, Jonas Bonér wrote: > > No I haven't. Should I? Is everyone happy with it? > Have anyone tried it? Is anyone using it? > > 2009/6/30 Timothy Perrett : > > > > Jonas, > > > > Did you roll this into master? What's its status? > > > > Cheers, Tim > > > > On Jun 10, 4:46 pm, James Strachan wrote: > >> 2009/6/9 Jonas Bonér : > >> > >> > >> > >> > 2009/6/9 David Pollak : > >> >> Jonas, > >> >> We always use Maven to load dependencies. We never use GPL > dependencies. > >> >> If you have a question about the license of a dependency and its use > in > >> >> Lift, please ping me privately. > >> > >> > I am using Maven. But as I said I could not find the Atomikos in any > >> > public library, putting them in lib will let the user easily install > >> > them in their local repo. > >> > Do you know if they are in any public repo? > >> > >> If its any help I added them here a while back for an integration test > >> in ActiveMQhttp://repo.fusesource.com/maven2-all/com/atomikos/ > >> > >> the repo is:http://repo.fusesource.com/maven2-all/ > >> > >> you might wanna put more recent jars up on some public repo though. > >> > >> -- > >> James > >> ---http://macstrac.blogspot.com/ > >> > >> Open Source Integrationhttp://fusesource.com/ > > > > > > > > > -- > 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 --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Hey Jonas, I have no real use case to test it out - I was just interested in its status as conceptually it was very very clever and wondered where you were too with it. I think Greg or Derek are most likely to be able to give you valuable feedback as I believe they are using JTA already. Cheers, Tim On 07/07/2009 18:18, "Jonas Bonér" wrote: > > No I haven't. Should I? Is everyone happy with it? > Have anyone tried it? Is anyone using it? > > 2009/6/30 Timothy Perrett : >> >> Jonas, >> >> Did you roll this into master? What's its status? >> >> Cheers, Tim >> >> On Jun 10, 4:46 pm, James Strachan wrote: >>> 2009/6/9 Jonas Bonér : >>> >>> >>> 2009/6/9 David Pollak : > Jonas, > We always use Maven to load dependencies. We never use GPL dependencies. > If you have a question about the license of a dependency and its use in > Lift, please ping me privately. >>> I am using Maven. But as I said I could not find the Atomikos in any public library, putting them in lib will let the user easily install them in their local repo. Do you know if they are in any public repo? >>> >>> If its any help I added them here a while back for an integration test >>> in ActiveMQhttp://repo.fusesource.com/maven2-all/com/atomikos/ >>> >>> the repo is:http://repo.fusesource.com/maven2-all/ >>> >>> you might wanna put more recent jars up on some public repo though. >>> >>> -- >>> James >>> ---http://macstrac.blogspot.com/ >>> >>> Open Source Integrationhttp://fusesource.com/ >>> >> > > --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Thanks Greg. I would love to get your feedback on it. 2009/7/7 Meredith Gregory : > Jonas, > > i'm going to begin playing with it after i've finished the conversion of the > DSL stuff to scala-query. The JTA monad should just fit with scala-query. > > Best wishes, > > --greg > > On Tue, Jul 7, 2009 at 10:18 AM, Jonas Bonér wrote: >> >> No I haven't. Should I? Is everyone happy with it? >> Have anyone tried it? Is anyone using it? >> >> 2009/6/30 Timothy Perrett : >> > >> > Jonas, >> > >> > Did you roll this into master? What's its status? >> > >> > Cheers, Tim >> > >> > On Jun 10, 4:46 pm, James Strachan wrote: >> >> 2009/6/9 Jonas Bonér : >> >> >> >> >> >> >> >> > 2009/6/9 David Pollak : >> >> >> Jonas, >> >> >> We always use Maven to load dependencies. We never use GPL >> >> >> dependencies. >> >> >> If you have a question about the license of a dependency and its >> >> >> use in >> >> >> Lift, please ping me privately. >> >> >> >> > I am using Maven. But as I said I could not find the Atomikos in any >> >> > public library, putting them in lib will let the user easily install >> >> > them in their local repo. >> >> > Do you know if they are in any public repo? >> >> >> >> If its any help I added them here a while back for an integration test >> >> in ActiveMQhttp://repo.fusesource.com/maven2-all/com/atomikos/ >> >> >> >> the repo is:http://repo.fusesource.com/maven2-all/ >> >> >> >> you might wanna put more recent jars up on some public repo though. >> >> >> >> -- >> >> James >> >> ---http://macstrac.blogspot.com/ >> >> >> >> Open Source Integrationhttp://fusesource.com/ >> > > >> > >> >> >> >> -- >> 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 --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Thanks Tim. Thanks for staying on top of it. Derek has already looked at it and seemed to like it. But I'll wait until I get Greg's feedback. 2009/7/7 Timothy Perrett : > > > Hey Jonas, > > I have no real use case to test it out - I was just interested in its status > as conceptually it was very very clever and wondered where you were too with > it. I think Greg or Derek are most likely to be able to give you valuable > feedback as I believe they are using JTA already. > > Cheers, Tim > > On 07/07/2009 18:18, "Jonas Bonér" wrote: > >> >> No I haven't. Should I? Is everyone happy with it? >> Have anyone tried it? Is anyone using it? >> >> 2009/6/30 Timothy Perrett : >>> >>> Jonas, >>> >>> Did you roll this into master? What's its status? >>> >>> Cheers, Tim >>> >>> On Jun 10, 4:46 pm, James Strachan wrote: 2009/6/9 Jonas Bonér : > 2009/6/9 David Pollak : >> Jonas, >> We always use Maven to load dependencies. We never use GPL dependencies. >> If you have a question about the license of a dependency and its use in >> Lift, please ping me privately. > I am using Maven. But as I said I could not find the Atomikos in any > public library, putting them in lib will let the user easily install > them in their local repo. > Do you know if they are in any public repo? If its any help I added them here a while back for an integration test in ActiveMQhttp://repo.fusesource.com/maven2-all/com/atomikos/ the repo is:http://repo.fusesource.com/maven2-all/ you might wanna put more recent jars up on some public repo though. -- James ---http://macstrac.blogspot.com/ Open Source Integrationhttp://fusesource.com/ >>> >> >> > > > > > > -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Hi Greg. Have you had time to look at the JTA stuff? Should I merge in master? /Jonas 2009/7/7 Jonas Bonér : > Thanks Tim. Thanks for staying on top of it. Derek has already looked > at it and seemed to like it. But I'll wait until I get Greg's > feedback. > > 2009/7/7 Timothy Perrett : >> >> >> Hey Jonas, >> >> I have no real use case to test it out - I was just interested in its status >> as conceptually it was very very clever and wondered where you were too with >> it. I think Greg or Derek are most likely to be able to give you valuable >> feedback as I believe they are using JTA already. >> >> Cheers, Tim >> >> On 07/07/2009 18:18, "Jonas Bonér" wrote: >> >>> >>> No I haven't. Should I? Is everyone happy with it? >>> Have anyone tried it? Is anyone using it? >>> >>> 2009/6/30 Timothy Perrett : Jonas, Did you roll this into master? What's its status? Cheers, Tim On Jun 10, 4:46 pm, James Strachan wrote: > 2009/6/9 Jonas Bonér : > > > >> 2009/6/9 David Pollak : >>> Jonas, >>> We always use Maven to load dependencies. We never use GPL >>> dependencies. >>> If you have a question about the license of a dependency and its use in >>> Lift, please ping me privately. > >> I am using Maven. But as I said I could not find the Atomikos in any >> public library, putting them in lib will let the user easily install >> them in their local repo. >> Do you know if they are in any public repo? > > If its any help I added them here a while back for an integration test > in ActiveMQhttp://repo.fusesource.com/maven2-all/com/atomikos/ > > the repo is:http://repo.fusesource.com/maven2-all/ > > you might wanna put more recent jars up on some public repo though. > > -- > James > ---http://macstrac.blogspot.com/ > > Open Source Integrationhttp://fusesource.com/ > >>> >>> >> >> >> >> >> >> > > > > -- > Jonas Bonér > > twitter: @jboner > blog: http://jonasboner.com > work: http://crisp.se > work: http://scalablesolutions.se > code: http://github.com/jboner > -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
On Fri, Jul 17, 2009 at 1:02 AM, Jonas Bonér wrote: > > Hi Greg. > > Have you had time to look at the JTA stuff? > Should I merge in master? Please merge into Master. We've got 6-8 weeks until with have the 1.1 release code slush... and if stuff is in the Maven repo, it'll get used. > > > /Jonas > > 2009/7/7 Jonas Bonér : > > Thanks Tim. Thanks for staying on top of it. Derek has already looked > > at it and seemed to like it. But I'll wait until I get Greg's > > feedback. > > > > 2009/7/7 Timothy Perrett : > >> > >> > >> Hey Jonas, > >> > >> I have no real use case to test it out - I was just interested in its > status > >> as conceptually it was very very clever and wondered where you were too > with > >> it. I think Greg or Derek are most likely to be able to give you > valuable > >> feedback as I believe they are using JTA already. > >> > >> Cheers, Tim > >> > >> On 07/07/2009 18:18, "Jonas Bonér" wrote: > >> > >>> > >>> No I haven't. Should I? Is everyone happy with it? > >>> Have anyone tried it? Is anyone using it? > >>> > >>> 2009/6/30 Timothy Perrett : > > Jonas, > > Did you roll this into master? What's its status? > > Cheers, Tim > > On Jun 10, 4:46 pm, James Strachan wrote: > > 2009/6/9 Jonas Bonér : > > > > > > > >> 2009/6/9 David Pollak : > >>> Jonas, > >>> We always use Maven to load dependencies. We never use GPL > dependencies. > >>> If you have a question about the license of a dependency and its > use in > >>> Lift, please ping me privately. > > > >> I am using Maven. But as I said I could not find the Atomikos in any > >> public library, putting them in lib will let the user easily install > >> them in their local repo. > >> Do you know if they are in any public repo? > > > > If its any help I added them here a while back for an integration > test > > in ActiveMQhttp://repo.fusesource.com/maven2-all/com/atomikos/ > > > > the repo is:http://repo.fusesource.com/maven2-all/ > > > > you might wanna put more recent jars up on some public repo though. > > > > -- > > James > > ---http://macstrac.blogspot.com/ > > > > Open Source Integrationhttp://fusesource.com/ > > > > >>> > >>> > >> > >> > >> > >> >> > >> > > > > > > > > -- > > Jonas Bonér > > > > twitter: @jboner > > blog:http://jonasboner.com > > work: http://crisp.se > > work: http://scalablesolutions.se > > code: http://github.com/jboner > > > > > > -- > 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 liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
JTA stuff is in github master branch now. http://github.com/dpp/liftweb/tree/4d8405a3dcf93570da8142c078784f9dc127933c/lift-jta Have fun. /Jonas 2009/7/17 David Pollak : > > > On Fri, Jul 17, 2009 at 1:02 AM, Jonas Bonér wrote: >> >> Hi Greg. >> >> Have you had time to look at the JTA stuff? >> Should I merge in master? > > Please merge into Master. We've got 6-8 weeks until with have the 1.1 > release code slush... and if stuff is in the Maven repo, it'll get used. > >> >> /Jonas >> >> 2009/7/7 Jonas Bonér : >> > Thanks Tim. Thanks for staying on top of it. Derek has already looked >> > at it and seemed to like it. But I'll wait until I get Greg's >> > feedback. >> > >> > 2009/7/7 Timothy Perrett : >> >> >> >> >> >> Hey Jonas, >> >> >> >> I have no real use case to test it out - I was just interested in its >> >> status >> >> as conceptually it was very very clever and wondered where you were too >> >> with >> >> it. I think Greg or Derek are most likely to be able to give you >> >> valuable >> >> feedback as I believe they are using JTA already. >> >> >> >> Cheers, Tim >> >> >> >> On 07/07/2009 18:18, "Jonas Bonér" wrote: >> >> >> >>> >> >>> No I haven't. Should I? Is everyone happy with it? >> >>> Have anyone tried it? Is anyone using it? >> >>> >> >>> 2009/6/30 Timothy Perrett : >> >> Jonas, >> >> Did you roll this into master? What's its status? >> >> Cheers, Tim >> >> On Jun 10, 4:46 pm, James Strachan wrote: >> > 2009/6/9 Jonas Bonér : >> > >> > >> > >> >> 2009/6/9 David Pollak : >> >>> Jonas, >> >>> We always use Maven to load dependencies. We never use GPL >> >>> dependencies. >> >>> If you have a question about the license of a dependency and its >> >>> use in >> >>> Lift, please ping me privately. >> > >> >> I am using Maven. But as I said I could not find the Atomikos in >> >> any >> >> public library, putting them in lib will let the user easily >> >> install >> >> them in their local repo. >> >> Do you know if they are in any public repo? >> > >> > If its any help I added them here a while back for an integration >> > test >> > in ActiveMQhttp://repo.fusesource.com/maven2-all/com/atomikos/ >> > >> > the repo is:http://repo.fusesource.com/maven2-all/ >> > >> > you might wanna put more recent jars up on some public repo though. >> > >> > -- >> > James >> > ---http://macstrac.blogspot.com/ >> > >> > Open Source Integrationhttp://fusesource.com/ >> > >> >> >>> >> >>> >> >> >> >> >> >> >> >> >> >> >> >> > >> > >> > >> > -- >> > Jonas Bonér >> > >> > twitter: @jboner >> > blog: http://jonasboner.com >> > work: http://crisp.se >> > work: http://scalablesolutions.se >> > code: http://github.com/jboner >> > >> >> >> >> -- >> 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 > > > > -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Awesome - kudos Jonas. Cheers, Tim On Jul 18, 11:53 am, Jonas Bonér wrote: > JTA stuff is in github master branch > now.http://github.com/dpp/liftweb/tree/4d8405a3dcf93570da8142c078784f9dc1... > > Have fun. > /Jonas --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
On Sat, Jul 18, 2009 at 11:20 AM, Timothy Perrett wrote: > > Awesome - kudos Jonas. +1 And more generally, it's great to have such a diverse and talented group of people contributing to Lift! > > > Cheers, Tim > > On Jul 18, 11:53 am, Jonas Bonér wrote: > > JTA stuff is in github master branch now. > http://github.com/dpp/liftweb/tree/4d8405a3dcf93570da8142c078784f9dc1... > > > > Have fun. > > /Jonas > > > > -- 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 liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
Thanks Tim and David. 2009/7/19 David Pollak : > > > On Sat, Jul 18, 2009 at 11:20 AM, Timothy Perrett > wrote: >> >> Awesome - kudos Jonas. > > +1 > > And more generally, it's great to have such a diverse and talented group of > people contributing to Lift! > >> >> Cheers, Tim >> >> On Jul 18, 11:53 am, Jonas Bonér wrote: >> > JTA stuff is in github master branch >> > now.http://github.com/dpp/liftweb/tree/4d8405a3dcf93570da8142c078784f9dc1... >> > >> > Have fun. >> > /Jonas >> >> > > > > -- > 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 > > > > -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
FYI, it looks like the Hibernate dependency you had in your pom was pulling in the javax.transactions:jta lib, which isn't available in maven repos. I added an exclusion to prevent that from breaking the build. Derek On Sun, Jul 19, 2009 at 3:08 AM, Jonas Bonér wrote: > > Thanks Tim and David. > > 2009/7/19 David Pollak : > > > > > > On Sat, Jul 18, 2009 at 11:20 AM, Timothy Perrett > > > wrote: > >> > >> Awesome - kudos Jonas. > > > > +1 > > > > And more generally, it's great to have such a diverse and talented group > of > > people contributing to Lift! > > > >> > >> Cheers, Tim > >> > >> On Jul 18, 11:53 am, Jonas Bonér wrote: > >> > JTA stuff is in github master branch > >> > now. > http://github.com/dpp/liftweb/tree/4d8405a3dcf93570da8142c078784f9dc1... > >> > > >> > Have fun. > >> > /Jonas > >> > >> > > > > > > > > -- > > 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 > > > > > > > > > > > -- > Jonas Bonér > > twitter: @jboner > blog:http://jonasboner.com > work: http://crisp.se > work: http://scalablesolutions.se > code: http://github.com/jboner > > > > --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
... hit the enter key too quickly! Kudos on the work in this library. I really like how this is coming together. Derek On Sun, Jul 19, 2009 at 11:52 PM, Derek Chen-Becker wrote: > FYI, it looks like the Hibernate dependency you had in your pom was pulling > in the javax.transactions:jta lib, which isn't available in maven repos. I > added an exclusion to prevent that from breaking the build. > > Derek > > > On Sun, Jul 19, 2009 at 3:08 AM, Jonas Bonér wrote: > >> >> Thanks Tim and David. >> >> 2009/7/19 David Pollak : >> > >> > >> > On Sat, Jul 18, 2009 at 11:20 AM, Timothy Perrett >> >> > wrote: >> >> >> >> Awesome - kudos Jonas. >> > >> > +1 >> > >> > And more generally, it's great to have such a diverse and talented group >> of >> > people contributing to Lift! >> > >> >> >> >> Cheers, Tim >> >> >> >> On Jul 18, 11:53 am, Jonas Bonér wrote: >> >> > JTA stuff is in github master branch >> >> > now. >> http://github.com/dpp/liftweb/tree/4d8405a3dcf93570da8142c078784f9dc1... >> >> > >> >> > Have fun. >> >> > /Jonas >> >> >> >> >> > >> > >> > >> > -- >> > 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 >> > >> > > >> > >> >> >> >> -- >> Jonas Bonér >> >> twitter: @jboner >> blog:http://jonasboner.com >> work: http://crisp.se >> work: http://scalablesolutions.se >> code: http://github.com/jboner >> >> >> >> > --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
I'm really sorry. I never checked building with an empty maven repo. Thanks for fixing it. 2009/7/20 Derek Chen-Becker : > FYI, it looks like the Hibernate dependency you had in your pom was pulling > in the javax.transactions:jta lib, which isn't available in maven repos. I > added an exclusion to prevent that from breaking the build. > > Derek > > On Sun, Jul 19, 2009 at 3:08 AM, Jonas Bonér wrote: >> >> Thanks Tim and David. >> >> 2009/7/19 David Pollak : >> > >> > >> > On Sat, Jul 18, 2009 at 11:20 AM, Timothy Perrett >> > >> > wrote: >> >> >> >> Awesome - kudos Jonas. >> > >> > +1 >> > >> > And more generally, it's great to have such a diverse and talented group >> > of >> > people contributing to Lift! >> > >> >> >> >> Cheers, Tim >> >> >> >> On Jul 18, 11:53 am, Jonas Bonér wrote: >> >> > JTA stuff is in github master branch >> >> > >> >> > now.http://github.com/dpp/liftweb/tree/4d8405a3dcf93570da8142c078784f9dc1... >> >> > >> >> > Have fun. >> >> > /Jonas >> >> >> >> >> > >> > >> > >> > -- >> > 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 >> > >> > > >> > >> >> >> >> -- >> Jonas Bonér >> >> twitter: @jboner >> blog: http://jonasboner.com >> work: http://crisp.se >> work: http://scalablesolutions.se >> code: http://github.com/jboner >> >> > > > > > -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: JTA Transaction Monad - Early Access Program
2009/7/20 Derek Chen-Becker : > ... hit the enter key too quickly! Kudos on the work in this library. I > really like how this is coming together. Thanks Derek. > > Derek > > On Sun, Jul 19, 2009 at 11:52 PM, Derek Chen-Becker > wrote: >> >> FYI, it looks like the Hibernate dependency you had in your pom was >> pulling in the javax.transactions:jta lib, which isn't available in maven >> repos. I added an exclusion to prevent that from breaking the build. >> >> Derek >> >> On Sun, Jul 19, 2009 at 3:08 AM, Jonas Bonér wrote: >>> >>> Thanks Tim and David. >>> >>> 2009/7/19 David Pollak : >>> > >>> > >>> > On Sat, Jul 18, 2009 at 11:20 AM, Timothy Perrett >>> > >>> > wrote: >>> >> >>> >> Awesome - kudos Jonas. >>> > >>> > +1 >>> > >>> > And more generally, it's great to have such a diverse and talented >>> > group of >>> > people contributing to Lift! >>> > >>> >> >>> >> Cheers, Tim >>> >> >>> >> On Jul 18, 11:53 am, Jonas Bonér wrote: >>> >> > JTA stuff is in github master branch >>> >> > >>> >> > now.http://github.com/dpp/liftweb/tree/4d8405a3dcf93570da8142c078784f9dc1... >>> >> > >>> >> > Have fun. >>> >> > /Jonas >>> >> >>> >> >>> > >>> > >>> > >>> > -- >>> > 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 >>> > >>> > > >>> > >>> >>> >>> >>> -- >>> Jonas Bonér >>> >>> twitter: @jboner >>> blog: http://jonasboner.com >>> work: http://crisp.se >>> work: http://scalablesolutions.se >>> code: http://github.com/jboner >>> >>> >> > > > > > -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---