[Lift] Re: ScalaTest in Lift archetypes
Hi Tim, Let's do that. See you next week. Bill On Wed, Nov 11, 2009 at 3:33 PM, Timothy Perrett timo...@getintheloop.eu wrote: Bill, can I propose you and I get together at devoxx and discuss the options? I belive my talk is not long after yours! Cheers, Tim Sent from my iPhone On 11 Nov 2009, at 21:50, Bill Venners b...@artima.com wrote: Hi, I was talking with David Pollak the other night about putting some ScalaTest examples into the Lift archetypes. He said I should post to the list. Can anyone out there let me know how we might go about that? Thanks. Bill Bill Venners Artima, Inc. http://www.artima.com -- Bill Venners Artima, Inc. http://www.artima.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] ScalaTest in Lift archetypes
Hi, I was talking with David Pollak the other night about putting some ScalaTest examples into the Lift archetypes. He said I should post to the list. Can anyone out there let me know how we might go about that? Thanks. Bill Bill Venners Artima, Inc. http://www.artima.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: Don't shoot the non-XML messenger ...
Hi David, On Tue, Oct 13, 2009 at 4:37 PM, David Pollak feeder.of.the.be...@gmail.com wrote: Why does Lift use XHTML rather than Strings or something else for templating? Because XML is a secure (and fast) representation. While PHP sites have significant cross site scripting problems, Lift apps have none (and I've been through half a dozen penetration test with Lift apps and the universal evaluation is this is the most secure web site we've ever tested.) Can you elaborate on how XHTML eliminates the XSS potential of strings? Doesn't an XHTML file have strings in it in between the markup? Bill Bill Venners Artima, Inc. http://www.artima.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: Testing snippets that depend on a user logged in
Hi Ryan, It looks like you're currently using a JUnit TestCase. If you want an easier port to something that would work you could use a ScalaTest Suite like this: import org.scalatest.Suite class YourSuite extends Suite { val session = new LiftSession(, randomString(20), Empty) val stableTime = now override def withFixture(test: NoArgTest) { S.initIfUninitted(session) { val user = User.create user.firstName(XXX) user.lastName(YYY) user.save User.logUserIn(user) test() } } def testValue() { val xml = xml:group tr td p:fullNameMy Name/p:fullName /td td p:styleFighter Style/p:style /td td p:weightWeight/p:weight /td /tr /xml:group val trainer = new Trainer() val output = trainer.showPeople(xml) // seems like you need an assertion here... } } A Suite considers methods that start with test as tests, like JUnit 3, except they don't need to result in Unit so you don't need an extra () at the end. The withFixture method is an alternative to beforeEach/afterEach, which are like JUnit 3's setUp/tearDown methods. Each test gets passed as a function to withFixture, which is responsible for executing the test by invoking the function. In this case, it is executed in the context created by S. initIfUninitted. This is ScalaTest 1.0, which is available as a SNAPSHOT right now but should be released proper a week from Monday. http://www.artima.com/scalatest Bill On Thu, Oct 1, 2009 at 9:50 AM, David Pollak feeder.of.the.be...@gmail.com wrote: Using Specs 1.6: object HelloWorldTestSpecs extends Specification { val session = new LiftSession(, randomString(20), Empty) val stableTime = now override def executeExpectations(ex: Examples, t: =Any): Any = { S.initIfUninitted(session) { ... put your User init here. The User.logUserIn will be within the context of a session and thus session (and request) vars will be valid } } HelloWorld Snippet should { Put the time in the node in { ... do testing here } } } Hope this helps. On Thu, Oct 1, 2009 at 8:55 AM, rstradling ryanstradl...@gmail.com wrote: I have a class called class Trainer { def showPeople(xhtml : Group) : NodeSeq = { val user : User = User.currentUser.open_! ... } } I then want to write a unit test to test that returns proper xml. The test is written as so def testValue() = { val xml = xml:group tr td p:fullNameMy Name/p:fullName /td td p:styleFighter Style/p:style /td td p:weightWeight/p:weight /td /tr /xml:group val trainer = new Trainer() val output = trainer.showPeople(xml) () } The User object inherits from MegaProtoUser. The problem is I am not sure how to create a mock user and sign them in. I have tried in my unit test override def setUp : Unit = { val user = User.create user.firstName(XXX) user.lastName(YYY) user.save User.logUserIn(user) } The mock user log-in *seems* to work fine but when User.currentUser.open_! is called it throws an exception on trying to open an empty box. So either how do I do this or how do others do this type of testing. I am sure I am missing something simple. Thanks, ryan -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics -- Bill Venners Artima, Inc. http://www.artima.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: Testing snippets that depend on a user logged in
Hi David, Thanks. I appreciate that. I was actually already planning to request getting some ScalaTest examples in the Lift archetypes right after ScalaTest 1.0 comes out (on Oct 12, if all goes as planned), and have already arranged with David Bernard to put ScalaTest examples into simple-archetype-simple. I think it is great that we have three decent Scala-specific testing tools already, specs, ScalaTest, and ScalaCheck, plus the trusty Java tools JUnit and TestNG. People have a lot of choice, so it is good that the archetypes would show some of the options. I would also suggest we include a ScalaCheck example in the archetypes as well. I can use ScalaCheck from one of the ScalaTest examples I submit if you like that idea. The downside is that it would add one more dependency, but really I think people should find out about ScalaCheck. Bill On Thu, Oct 1, 2009 at 1:53 PM, David Pollak feeder.of.the.be...@gmail.com wrote: Bill, Thanks for posting this. I am, by experience (I started using it, I can use it enough to write basic tests, I know no more) using Specs. I would welcome and encourage some sample tests in Lift archetypes that use ScalaTest. I want to make sure that folks who pick up Lift get to experience ScalaTest as well as Specs... that way, folks who have a better understanding of tests can make better choices. Thanks, David On Thu, Oct 1, 2009 at 1:27 PM, Bill Venners b...@artima.com wrote: Hi Ryan, It looks like you're currently using a JUnit TestCase. If you want an easier port to something that would work you could use a ScalaTest Suite like this: import org.scalatest.Suite class YourSuite extends Suite { val session = new LiftSession(, randomString(20), Empty) val stableTime = now override def withFixture(test: NoArgTest) { S.initIfUninitted(session) { val user = User.create user.firstName(XXX) user.lastName(YYY) user.save User.logUserIn(user) test() } } def testValue() { val xml = xml:group tr td p:fullNameMy Name/p:fullName /td td p:styleFighter Style/p:style /td td p:weightWeight/p:weight /td /tr /xml:group val trainer = new Trainer() val output = trainer.showPeople(xml) // seems like you need an assertion here... } } A Suite considers methods that start with test as tests, like JUnit 3, except they don't need to result in Unit so you don't need an extra () at the end. The withFixture method is an alternative to beforeEach/afterEach, which are like JUnit 3's setUp/tearDown methods. Each test gets passed as a function to withFixture, which is responsible for executing the test by invoking the function. In this case, it is executed in the context created by S. initIfUninitted. This is ScalaTest 1.0, which is available as a SNAPSHOT right now but should be released proper a week from Monday. http://www.artima.com/scalatest Bill On Thu, Oct 1, 2009 at 9:50 AM, David Pollak feeder.of.the.be...@gmail.com wrote: Using Specs 1.6: object HelloWorldTestSpecs extends Specification { val session = new LiftSession(, randomString(20), Empty) val stableTime = now override def executeExpectations(ex: Examples, t: =Any): Any = { S.initIfUninitted(session) { ... put your User init here. The User.logUserIn will be within the context of a session and thus session (and request) vars will be valid } } HelloWorld Snippet should { Put the time in the node in { ... do testing here } } } Hope this helps. On Thu, Oct 1, 2009 at 8:55 AM, rstradling ryanstradl...@gmail.com wrote: I have a class called class Trainer { def showPeople(xhtml : Group) : NodeSeq = { val user : User = User.currentUser.open_! ... } } I then want to write a unit test to test that returns proper xml. The test is written as so def testValue() = { val xml = xml:group tr td p:fullNameMy Name/p:fullName /td td p:styleFighter Style/p:style /td td p:weightWeight/p:weight /td /tr /xml:group val trainer = new Trainer() val output = trainer.showPeople(xml) () } The User object inherits from MegaProtoUser. The problem is I am not sure how to create a mock user and sign them in. I have tried in my unit test override def setUp : Unit = { val user = User.create user.firstName(XXX) user.lastName(YYY) user.save User.logUserIn(user) } The mock user log-in *seems* to work fine but when User.currentUser.open_! is called it throws an exception on trying to open an empty box. So either how do I do
[Lift] Re: Testing snippets that depend on a user logged in
Hi Ryan, David, Eric, I added a ScalaTest version to your wiki page: http://wiki.github.com/dpp/liftweb/how-to-unit-test-lift-snippets-with-a-logged-in-user Eric you may want to add a specs version. Bill On Thu, Oct 1, 2009 at 3:03 PM, rstradling ryanstradl...@gmail.com wrote: Awesome!!! Thanks guys for the help. It now works. I put a how-to wiki document up on github. For me this was one of those times where my google searches did not seem to turn up anything fruitful, so I thought this how-to would be helpful. If it is not helpful, then no hard feelings if the page is deleted. I just wanted to give back. Wiki page http://wiki.github.com/dpp/liftweb/how-to-unit-test-lift-snippets-with-a-logged-in-user On Oct 1, 4:53 pm, David Pollak feeder.of.the.be...@gmail.com wrote: Bill, Thanks for posting this. I am, by experience (I started using it, I can use it enough to write basic tests, I know no more) using Specs. I would welcome and encourage some sample tests in Lift archetypes that use ScalaTest. I want to make sure that folks who pick up Lift get to experience ScalaTest as well as Specs... that way, folks who have a better understanding of tests can make better choices. Thanks, David On Thu, Oct 1, 2009 at 1:27 PM, Bill Venners b...@artima.com wrote: Hi Ryan, It looks like you're currently using a JUnit TestCase. If you want an easier port to something that would work you could use a ScalaTest Suite like this: import org.scalatest.Suite class YourSuite extends Suite { val session = new LiftSession(, randomString(20), Empty) val stableTime = now override def withFixture(test: NoArgTest) { S.initIfUninitted(session) { val user = User.create user.firstName(XXX) user.lastName(YYY) user.save User.logUserIn(user) test() } } def testValue() { val xml = xml:group tr td p:fullNameMy Name/p:fullName /td td p:styleFighter Style/p:style /td td p:weightWeight/p:weight /td /tr /xml:group val trainer = new Trainer() val output = trainer.showPeople(xml) // seems like you need an assertion here... } } A Suite considers methods that start with test as tests, like JUnit 3, except they don't need to result in Unit so you don't need an extra () at the end. The withFixture method is an alternative to beforeEach/afterEach, which are like JUnit 3's setUp/tearDown methods. Each test gets passed as a function to withFixture, which is responsible for executing the test by invoking the function. In this case, it is executed in the context created by S. initIfUninitted. This is ScalaTest 1.0, which is available as a SNAPSHOT right now but should be released proper a week from Monday. http://www.artima.com/scalatest Bill On Thu, Oct 1, 2009 at 9:50 AM, David Pollak feeder.of.the.be...@gmail.com wrote: Using Specs 1.6: object HelloWorldTestSpecs extends Specification { val session = new LiftSession(, randomString(20), Empty) val stableTime = now override def executeExpectations(ex: Examples, t: =Any): Any = { S.initIfUninitted(session) { ... put your User init here. The User.logUserIn will be within the context of a session and thus session (and request) vars will be valid } } HelloWorld Snippet should { Put the time in the node in { ... do testing here } } } Hope this helps. On Thu, Oct 1, 2009 at 8:55 AM, rstradling ryanstradl...@gmail.com wrote: I have a class called class Trainer { def showPeople(xhtml : Group) : NodeSeq = { val user : User = User.currentUser.open_! ... } } I then want to write a unit test to test that returns proper xml. The test is written as so def testValue() = { val xml = xml:group tr td p:fullNameMy Name/p:fullName /td td p:styleFighter Style/p:style /td td p:weightWeight/p:weight /td /tr /xml:group val trainer = new Trainer() val output = trainer.showPeople(xml) () } The User object inherits from MegaProtoUser. The problem is I am not sure how to create a mock user and sign them in. I have tried in my unit test override def setUp : Unit = { val user = User.create user.firstName(XXX) user.lastName(YYY) user.save User.logUserIn(user) } The mock user log-in *seems* to work fine but when User.currentUser.open_! is called it throws an exception on trying to open an empty box. So either how do I do this or how do others do this type
[Lift] Re: Removing Scala Actors from Lift
twitter: @jboner blog: http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner code: http://akkasource.org -- Bill Venners Artima, Inc. http://www.artima.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: Removing Scala Actors from Lift
-over. Milestone 6 (which should be out next week) will be based on the existing Actor model. After we get feedback from the community about the new Actor stuff, we will switch -SNAPSHOT over to the new Actor stuff. Questions, thoughts, or comments? Thanks, David -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Surf the harmonics -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics -- Bill Venners Artima, Inc. http://www.artima.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] ScalaTest dependency
Hi Derek, I noticed you checked in a change to Lift that updated the Maven ScalaTest ref. However the ref is to version 0.9.4, whereas the current version is 0.9.5. Thanks. Bill Bill Venners Artima, Inc. http://www.artima.com On Aug 15, 2009, at 7:02 AM, Derek Chen-Becker dchenbec...@gmail.com wrote: OK, a preliminary version of log wrappers is checked in on wip-dcb- sql-log-wrappers. I'll merge it on Tuesday if no one sees any problems with it. Derek On Tue, Aug 11, 2009 at 11:08 AM, Derek Chen-Becker dchenbec...@gmail.com wrote: Will do. On Tue, Aug 11, 2009 at 2:33 AM, marius d. marius.dan...@gmail.com wrote: Please do so. If you need any help for some reason (time availability etc.) please let me know. As a note probably the wrappers should be only only when there is at least one log function registered. Br's, Marius On Aug 6, 11:48 pm, Derek Chen-Becker dchenbec...@gmail.com wrote: If there's a consensus that we want our own JDBC wrappers I'll go ahead and write them. Derek On Thu, Aug 6, 2009 at 1:19 PM, marius d. marius.dan...@gmail.com wrote: Probably building our own wrappers would be more lightweight then 3-rd party. Jus' guessing Br's, Marius On Aug 6, 9:58 pm, Derek Chen-Becker dchenbec...@gmail.com wrote: Well, I started looking at it and determined that the only way for us to truly log the queries would be to essentially make our own wrappers over Statement and PreparedStatement. There are projects (log4jdbc, notably) that already do this, and in a transparent manner. I'm not sure that adding a whole bunch of SQL logging directly to Lift is better than leveraging some existing libraries to do it. Derek On Thu, Aug 6, 2009 at 11:03 AM, marius d. marius.dan...@gmail.com wrote: Yeah we're aware of that. That is based on toString application which is JDBC driver dependent. I think Derek started some work on this to correct this behavior. Derek ? Br's, Marius On Aug 6, 8:01 pm, jon jonhoff...@gmail.com wrote: Hi, I have the following in boot: DB.addLogFunc((query, len) = Log.info(The query: +query+ took +len+ milliseconds)) I was expecting the query parameter to be sql, but it's actually some sort of guid INFO - The query: 6839c016-0122-f09a-9c96-003844e8 took 5 milliseconds Any ideas? I'm running with derby. Thanks, Jon --~--~-~--~~~---~--~~ 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: unit test framework
Hi ph, If you end up needing to use JUnit, you can import Assertions or ShouldMatchers or MustMatchers from ScalaTest to get a nicer scala-like assertion syntax inside JUnit tests. JUnit won't care it was written in Scala or used ScalaTest assertions and will run it and generate JUnit-compatible output, since it actually is JUnit. Here's what that might look like: import org.junit.Test import org.scalatest.matchers.MustMatchers._ class MyJUnitTest { @Test def mapKeys() { Map(one - 1, two - 2) must contain key (two) } @Test def stringLength() { hello, world must have length (12) } @Test def stringCharAtMethodRejectsBadInput() { intercept[StringIndexOutOfBoundsException] { hi.charAt(-1) } } } http://www.artima.com/scalatest Bill On Wed, Jul 1, 2009 at 3:07 PM, phpkirsa...@gmail.com wrote: This question might be obvious to most of the people here, but since I new to Scala and Java I'm not clear Maven generates 2 different unit test files: MySpec specs AppTest junit running mvn test invokes AppTest (and other test cases with annotation @Test) running from Eclipse project as JUnit invokes MySpec I'm trying to figure out what unit test framework to use in my project. I'd prefer to have JUnit compatible output as continuous build system will, probably, understand it. Are both test frameworks generate JUnit-compatible output? How to make maven invoke specs test when running mvn test? Why is it 2 different test frameworks used? Are they complimentary? If yes when use which? I will probably use Hudson for continuous builds and also invoke unit tests from script and or command line and will need parse result and generate reports. What framework is better for these purposes? Or maybe use both in defferent cases? -- Bill Venners Artima, Inc. http://www.artima.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: The Lift 1.1 list
Hi David, On Thu, Apr 2, 2009 at 12:11 AM, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, Improved testing framework and better testing support when running in test mode. Can you elaborate on what your plans are for this? Thanks. Bill --~--~-~--~~~---~--~~ 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: The Lift 1.1 list
Hi David, On Thu, Apr 2, 2009 at 9:28 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Thu, Apr 2, 2009 at 2:30 AM, Bill Venners b...@artima.com wrote: Hi David, On Thu, Apr 2, 2009 at 12:11 AM, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, Improved testing framework and better testing support when running in test mode. Can you elaborate on what your plans are for this? It's a goal, not a set of plans. I'm expecting one of the committers would take ownership and figure it out. Wanna be a committer, take ownership, and figure it out? Ooh, I stepped in that one. The testing Lift apps is a good, real use case for both ScalaTest and Specs. I hope to meet with Eric Torreborre Monday. I'll talk with him about what's needed for Lift, as I think he's more familiar with its testing needs. I have definitely wanted to do some work with Lift so I can become more familiar with it as a web app framework, but just haven't had time yet. I'm gradually popping things off my stack of tasks, so I'll get there eventually. Bill Thanks. Bill -- 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: Book Announcement: Exploring Lift: Scala-based Web Framework
Hi Tyler, Congratulations. I'm going to have to buy a new bookshelf to hold all these Scala books. Bill On Fri, Mar 20, 2009 at 12:08 PM, TylerWeir tyler.w...@gmail.com wrote: Derek, Marius and I are happy to announce: Exploring Lift: Scala-based Web Framework http://www.apress.com/book/view/1430224215 Lift is an exciting new framework that leverages the Scala programming language to offer an innovative approach to creating web applications. Lift provides enormous flexibility and functionality while keeping your code simple. Exploring Lift is brought to you by Derek Chen-Becker, Marius Danciu, and Tyler Weir, three committers on the Lift project. The book not only covers the fundamentals of building a comprehensive Lift-based application, but contains multiple chapters on advanced functionality such as AJAX, Comet and custom URL rewriting. Extensive code samples are given throughout the book to demonstrate practical application, and a complete demo app is built from the ground up to reinforce the information presented. What you'll learn * How to get a basic Lift application up and running quickly using Maven's archetypes * How to generate and process forms, including file uploads * How to use the SiteMap framework to provide a custom site menu and programmatic access control to your application's pages * Database access using Lift's Mapper framework as well as how to integrate the Java Persistence Architecture * How to use custom URL rewriting and request dispatch to easily provide user-friendly URLs and powerful servlet-like functionality * How to easily internationalized (I18N) your application * And much more! Who this book is for? Anyone interested in getting the most out of their web applications and who appreciates the power and flexibility of the Scala programming language. A basic understanding of Scala is assumed, so if you're not familiar with it we would suggest reading David Pollak's excellent book, Beginning Scala, http://apress.com/book/view/1430219890 . Reviews Lift was created by David Pollak, an industry veteran who has repeatedly pushed the boundaries of what is possible with programming. Here is what people are saying about Lift: Lift is the only new framework in the last four years to offer fresh and innovative approaches to web development. It's not just some incremental improvements over the status quo, it redefines the state of the art. If you are a web developer, you should learn Lift. Even if you don't wind up using it everyday, it will change the way you approach web applications. —Michael Galpin, Developer, eBay Lift is an expressive and elegant framework for writing web applications. Lift stresses the importance of security, maintainability, scalability and performance, while allowing for high levels of developer productivity. —Lee Mighdoll, CTO, Digiting, Inc. --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---