On Tue, Jun 9, 2009 at 10:13 AM, Jonas Bonér <jbo...@gmail.com> wrote:
> > 2009/6/9 David Pollak <feeder.of.the.be...@gmail.com>: > > 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 <jbo...@gmail.com> 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 <dchenbec...@gmail.com>: > >> > 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 <jbo...@gmail.com> 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 > > > > -- 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 -~----------~----~----~----~------~----~------~--~---