[Lift] Re: How to mixin both MegaProtoUser CRUDify?

2009-09-22 Thread Jeppe Nejsum Madsen

David Pollak feeder.of.the.be...@gmail.com writes:

 Gakkk... I'm not sure it can be done.  You're welcome to try different
 combinations of abstract override, etc. in the traits and see if you can
 come up with an elegant or at least workable solution.

I'm creating my own crudify anyway, so I'll just take the easy way out
and rename editPath :-)

Just curious how this could be solved in general. Since the two vals (in
this case) are unrelated, it seem to prohibit some cases of adding
functionality by mixing in a trait

/Jeppe

--~--~-~--~~~---~--~~
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: How to mixin both MegaProtoUser CRUDify?

2009-09-22 Thread Kevin Wright
You really need some way to delegate to the trait here, instead of
inheriting from it.

I'll add this as a use case for my dynamic-mixin compiler plugin, see if I
can't find a way out :)



On Tue, Sep 22, 2009 at 8:08 AM, Jeppe Nejsum Madsen je...@ingolfs.dkwrote:


 David Pollak feeder.of.the.be...@gmail.com writes:

  Gakkk... I'm not sure it can be done.  You're welcome to try different
  combinations of abstract override, etc. in the traits and see if you can
  come up with an elegant or at least workable solution.

 I'm creating my own crudify anyway, so I'll just take the easy way out
 and rename editPath :-)

 Just curious how this could be solved in general. Since the two vals (in
 this case) are unrelated, it seem to prohibit some cases of adding
 functionality by mixing in a trait

 /Jeppe

 


--~--~-~--~~~---~--~~
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] low level lift exception when building with sbt

2009-09-22 Thread harryh

Experimenting with SBT, and everything works fine when running jetty
from within sbt, but when I package up a war file and try to run in
production, I'm getting the following exception.  Any ideas?

-harryh

java.lang.NullPointerException
at net.liftweb.http.provider.HTTPProvider$$anonfun$service$3.apply
(HTTPProvider.scala:54)
at net.liftweb.http.provider.HTTPProvider$$anonfun$service$3.apply
(HTTPProvider.scala:54)
at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
at net.liftweb.http.URLRewriter$.doWith(Req.scala:470)
at net.liftweb.http.provider.HTTPProvider$class.service
(HTTPProvider.scala:53)
at net.liftweb.http.LiftFilter.service(LiftServlet.scala:507)
at net.liftweb.http.provider.servlet.ServletFilterProvider
$class.protected$service(ServletFilterProvider.scala:41)
at net.liftweb.http.LiftFilter.protected$service(LiftServlet.scala:
507)

--~--~-~--~~~---~--~~
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: Autogenerated PKs and MetaMapper

2009-09-22 Thread David Pollak
Thomas,

We, as a rule, do not accept patches.  For a complete discussion, please
see:
http://groups.google.com/group/liftweb/browse_frm/thread/0c7a97cbf60780f0?hl=en#

The current state of mapper's primary key support is sub-optimal.  There
have been a couple of discussions of the issues on-list.  I am hoping to
spend some time on this issue on Thursday.  If you've got specific
requirements or specific tests, please post them.

Thanks,

David

On Mon, Sep 21, 2009 at 9:33 PM, Thomas Rampelberg pyronic...@gmail.comwrote:


 I've been working at getting MetaMapper to work with primary keys that
 aren't auto-generated (or longs). Towards this end, I've got a patch
 for MetaMapper.scala that I'd like to get in. Who could I talk about
 the process for that?

 In addition, as part of implementing the functionality, I ran into
 some interesting problems. The most interesting one has to do with
 dbIndexFieldIndicatesSaved_?. The default (i_is_! != defaultValue)
 works great for cases where you're using the default value for the
 actual primary key. Unfortunately, if you use something like this when
 you're actively setting the primary key yourself there are some
 unfortunate side effects (nothing gets saved to the database).

 To get around this, I'm doing something along these lines:

 class InfoHashPrimaryKey[T:Mapper[T]] (
  override val fieldOwner: T) extends MappedStringPrimaryKey[T] (
fieldOwner, 20) with LifecycleCallbacks {
private var _saved = false
override def dbIndexFieldIndicatesSaved_? = _saved
override def afterSave = _saved = true
  }

 Would there happen to be a better way to do this? Leveraging an
 afterSave hook seems like potential overkill.

 



-- 
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: low level lift exception when building with sbt

2009-09-22 Thread David Pollak
It looks like the Lift filter didn't get initialized correctly.  Please look
at web.xml and make sure the Lift filter is listed correctly.

On Tue, Sep 22, 2009 at 8:33 AM, harryh har...@gmail.com wrote:


 Experimenting with SBT, and everything works fine when running jetty
 from within sbt, but when I package up a war file and try to run in
 production, I'm getting the following exception.  Any ideas?

 -harryh

 java.lang.NullPointerException
at net.liftweb.http.provider.HTTPProvider$$anonfun$service$3.apply
 (HTTPProvider.scala:54)
at net.liftweb.http.provider.HTTPProvider$$anonfun$service$3.apply
 (HTTPProvider.scala:54)
at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
at net.liftweb.http.URLRewriter$.doWith(Req.scala:470)
at net.liftweb.http.provider.HTTPProvider$class.service
 (HTTPProvider.scala:53)
at net.liftweb.http.LiftFilter.service(LiftServlet.scala:507)
at net.liftweb.http.provider.servlet.ServletFilterProvider
 $class.protected$service(ServletFilterProvider.scala:41)
at net.liftweb.http.LiftFilter.protected$service(LiftServlet.scala:
 507)

 



-- 
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: suggestion: make Mailer use n.l.util.Props

2009-09-22 Thread Richard Dallaway

Couldn't find a ticket for this, and it'd save us a few lines of code too.

http://github.com/dpp/liftweb/issues/#issue/73

Again, apologies if this is a duplicate.

Richard

On Thu, Sep 17, 2009 at 1:15 AM, David Pollak
feeder.of.the.be...@gmail.com wrote:
 Open a ticket... I'll see what I can do to merge system properties and
 Lift's props.

 On Wed, Sep 16, 2009 at 1:39 PM, harryh har...@gmail.com wrote:

 Rather than using System.getProperties should Mailer use
 net.liftweb.util.Props?  It seems a little inconsistent as is.

 -harryh





 --
 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] suggestion: strip comments when serving templates

2009-09-22 Thread harryh

I would love to add comments to my templates:

!-- Put the shiny new feature here as soon as we have time to build
it --

that got stripped out before being served to end users.

-harryh

--~--~-~--~~~---~--~~
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: access to raw HttpServletRequest/Response

2009-09-22 Thread marius d.

I really don't think Lift should expose directly expose servlet
references. Applications still have access to servlet stuff by
explicit casting.

You can do it today like this:

S.containerRequest.map(r = (r.asInstanceOf[HTTPRequestServlet]).req)



Br's,
Marius

On Sep 22, 3:53 pm, David Pollak feeder.of.the.be...@gmail.com
wrote:
 Please open a ticket for this one as well.  I'll expose it for you.



 On Tue, Sep 22, 2009 at 1:07 PM, harryh har...@gmail.com wrote:

  Is it still possible to get access to the raw HttpServletRequest/
  Response objects?  I know you could at least do this for Request from
  S, but now I'm not seeing it anymore.

  Looking to get this so I can use

 http://mrepo.happyfern.com/sites/facebook-java-api/facebook-java-api/...

  (I've found getting off the ground with lift-facebooksomewhat
  confusing).

  -harryh

 --
 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
--~--~-~--~~~---~--~~
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: suggestion: strip comments when serving templates

2009-09-22 Thread David Pollak
Turns out that's where I am in the code... I'll add it right now.

On Tue, Sep 22, 2009 at 3:46 PM, harryh har...@gmail.com wrote:


 I would love to add comments to my templates:

 !-- Put the shiny new feature here as soon as we have time to build
 it --

 that got stripped out before being served to end users.

 -harryh

 



-- 
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

--~--~-~--~~~---~--~~
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: Concurrent Web Service Requests?

2009-09-22 Thread David Pollak
I've added code (it's in review board right now) that will automatically
farm any snippet with the do:lazy='true' attribute set.

So, lift:foo/ will execute the foo snippet inline.

lift:foo do:lazy=true/ will execute the foo snippet in parallel and join
the result back to page before its rendered.

This should allow for the use case of going out to ad servers, etc. in
parallel.

On Mon, Sep 21, 2009 at 7:28 PM, espeed james.thorn...@gmail.com wrote:


 On Sep 21, 5:30 pm, David Pollak feeder.of.the.be...@gmail.com
 wrote:
  Threads are used in Scala actors, but only while processing a message
 (actor
  jobs are allocated to threads in a thread pool).  In the case of asking
 your
  external ad server for information, Scala Actors are not going to help
 you
  because they have not been integrated with the JVM's NIO library (NIO ~=
  Unix I/O Select)  Erlang's actor scheduler is IO aware, Scala's is not.

 Googling for Scala actors NIO turned up a recent paper by Matthias
 Schmidt at Sun. There is a section on combing the Scala actor model
 with NIO...

 http://blogs.sun.com/schmidtm/entry/high_performance_tcp_ip_programming

 http://blogs.sun.com/schmidtm/resource/nio-whitepaper/High-Performance-TCPIP-JVM.edit.Final.Formatted.pdf

 I also found this from the upcoming O'Reilly book Programming Scala,
 by Dean Wampler and Alex Payne...

 Chapter 9. Robust, Scalable Concurrency with Actors
 http://programming-scala.labs.oreilly.com/ch09.html

 The open-source Naggati library adds a Scala-friendly layer atop MINA
 that, according to its author, “makes it easy to build protocol
 filters [using a] sequential style”. Essentially, Naggati is a DSL for
 parsing network protocols, with MINA’s powerful NIO abilities under
 the hood.

 - James

 



-- 
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

--~--~-~--~~~---~--~~
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: suggestion: make Mailer use n.l.util.Props

2009-09-22 Thread David Pollak
On Tue, Sep 22, 2009 at 2:48 PM, Richard Dallaway dalla...@gmail.comwrote:


 Couldn't find a ticket for this, and it'd save us a few lines of code too.

 http://github.com/dpp/liftweb/issues/#issue/73

 Again, apologies if this is a duplicate.


I added this functionality when I did the character set support.  All the
Lift properties are pulled into the mailer properties.



 Richard

 On Thu, Sep 17, 2009 at 1:15 AM, David Pollak
 feeder.of.the.be...@gmail.com wrote:
  Open a ticket... I'll see what I can do to merge system properties and
  Lift's props.
 
  On Wed, Sep 16, 2009 at 1:39 PM, harryh har...@gmail.com wrote:
 
  Rather than using System.getProperties should Mailer use
  net.liftweb.util.Props?  It seems a little inconsistent as is.
 
  -harryh
 
 
 
 
 
  --
  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
 
  
 

 



-- 
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

--~--~-~--~~~---~--~~
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] SessionVar.remove() not clearing out the variable

2009-09-22 Thread Dano

Hello Lifters,

I am struggling with trying to clear out a SessionVar which holds user
information which I need to clear out after the user has left a
'lobby' page.

When I call the remove() function, I verify that the SessionVar is
Empty.  However, when I click on the URL for the lobby page with new
parameters, the SessionVar retains the old values for each session.
It is as if they were repopulated.

Perhaps I am not understanding out the function works.  When I look at
the source code (Vars.scala), it seems like it is clearing out the
state for each session.  The remove() function calls clearFunc().

  override protected def clearFunc(name: String): Unit =
S.session.foreach(_.unset(name))

Is there something I am missing?

Thanks in advance.


Dan
--~--~-~--~~~---~--~~
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: SessionVar.remove() not clearing out the variable

2009-09-22 Thread marius d.



On Sep 22, 8:13 pm, Dano olearydani...@gmail.com wrote:
 Hello Lifters,

 I am struggling with trying to clear out a SessionVar which holds user
 information which I need to clear out after the user has left a
 'lobby' page.

 When I call the remove() function, I verify that the SessionVar is
 Empty.  However, when I click on the URL for the lobby page with new
 parameters, the SessionVar retains the old values for each session.
 It is as if they were repopulated.

 Perhaps I am not understanding out the function works.  When I look at
 the source code (Vars.scala), it seems like it is clearing out the
 state for each session.  The remove() function calls clearFunc().

   override protected def clearFunc(name: String): Unit =
 S.session.foreach(_.unset(name))

No not for each session. S.session returns a Box which has a foreach
function, it does not iterate through all sessions.

Which Lift version are you using? .. there is no remove function in
Vars in 1.1-SNAPSHOT version.

Can you post some code to show where you are setting values on your
SessionVar and where are you deleting them?


 Is there something I am missing?

 Thanks in advance.

 Dan
--~--~-~--~~~---~--~~
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] SHtml.a not active when used via innerHtml

2009-09-22 Thread KP

Hi all.

I have essentially the following setup in a website:

class AjaxTest {
   def render =
  div
 div id=foofoo/div
 {getAjaxForm}
  /div

   def getAjaxForm = SHtml.ajaxForm(
 SHtml.submit(submit, () = ()),
 Run(customJSStr))

   def customJSStr = document.getElementById('foo').innerHTML = ' +
aStr + ';

   val aStr = SHtml.a(() = SetHtml(foo, Text(baz)), Text
(bar)).toString
}



when aStr is displayed (with text 'bar'), the link is inactive.


I'm using Run(customJSStr) instead of SetHtml as, in the actual app,
the situation is slightly more complicated (and the RHS of the
assignment operator in the javascript expression has some more stuff
fetched from the document).

Note also that if the ajaxForm uses SetHtml() instead of Run() it
works as expected.

So the question is -- is there a straightforward explanation for
what's going on here (I'm still kinda cargo-culting lift).

And, unconditional upon the answer to the last question, is there a
way to make aStr a valid, active link (or, I guess, string
representing one) while retaining the ability to have an arbitrarily
complex javascript expression in customJSStr (this would actually be
defined in a separate js file, of course).


Thanks much,
KP

--~--~-~--~~~---~--~~
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: SHtml.a not active when used via innerHtml

2009-09-22 Thread David Pollak
On Tue, Sep 22, 2009 at 7:49 PM, KP horse.headed.fish@gmail.com wrote:


 Hi all.

 I have essentially the following setup in a website:

 class AjaxTest {
   def render =
  div
 div id=foofoo/div
 {getAjaxForm}
  /div

   def getAjaxForm = SHtml.ajaxForm(
 SHtml.submit(submit, () = ()),
 Run(customJSStr))

   def customJSStr = document.getElementById('foo').innerHTML = ' +
 aStr + ';


If aStr contains a single or double quote or a non-printable or non-ascii
character, your expression will fail (it will be invalid JavaScript).

I would suggest:

def customJSStr = document.getElementById('foo').innerHTML =  +aStr.encJs
+ ;

That will properly escape the string as a JavaScript string.



   val aStr = SHtml.a(() = SetHtml(foo, Text(baz)), Text
 (bar)).toString
 }



 when aStr is displayed (with text 'bar'), the link is inactive.


 I'm using Run(customJSStr) instead of SetHtml as, in the actual app,
 the situation is slightly more complicated (and the RHS of the
 assignment operator in the javascript expression has some more stuff
 fetched from the document).

 Note also that if the ajaxForm uses SetHtml() instead of Run() it
 works as expected.

 So the question is -- is there a straightforward explanation for
 what's going on here (I'm still kinda cargo-culting lift).

 And, unconditional upon the answer to the last question, is there a
 way to make aStr a valid, active link (or, I guess, string
 representing one) while retaining the ability to have an arbitrarily
 complex javascript expression in customJSStr (this would actually be
 defined in a separate js file, of course).


 Thanks much,
 KP

 



-- 
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: SessionVar.remove() not clearing out the variable

2009-09-22 Thread Dano

Marius,

Thanks for your reply.  If I look in my pom.xml, I see that I am using
1.1-SNAPSHOT.  However, I see your point about the remove() function
not being in Vars.scala.  Not sure why I am able to compile a call to
remove() on a SessionVar - but it does!

My goal is to clear out the SessionVar for all sessions tied to the
variable so that I can return the Session to the state it was at the
beginning of time (at least with respect to the SessionVars).

I have an object contained within a LiftView class called
PartyLobbyUser:

class GameView extends LiftView {
   object PartyLobbyUser extends SessionVar[Box[UserInfo]](Empty)
...
}

This object is set in code called by the GameView.dispatch() function
and then referenced later by some comet actors.  I think the problem I
am having is that since a SessionVar is essentially a thread local
variable, I need to clear it (i.e. do something like PartyLobbyUser
(Empty) ) in the right place.

Perhaps the right context is to do this in the shutdown function of
the comet actors since they are able to reference the variable and get
the correct data (ie. via PartyLobbyUser.is).   I will try that and
report back.

Thanks again for your help.


Dan



On Sep 22, 7:03 pm, marius d. marius.dan...@gmail.com wrote:
 On Sep 22, 8:13 pm, Dano olearydani...@gmail.com wrote:





  Hello Lifters,

  I am struggling with trying to clear out a SessionVar which holds user
  information which I need to clear out after the user has left a
  'lobby' page.

  When I call the remove() function, I verify that the SessionVar is
  Empty.  However, when I click on the URL for the lobby page with new
  parameters, the SessionVar retains the old values for each session.
  It is as if they were repopulated.

  Perhaps I am not understanding out the function works.  When I look at
  the source code (Vars.scala), it seems like it is clearing out the
  state for each session.  The remove() function calls clearFunc().

    override protected def clearFunc(name: String): Unit =
  S.session.foreach(_.unset(name))

 No not for each session. S.session returns a Box which has a foreach
 function, it does not iterate through all sessions.

 Which Lift version are you using? .. there is no remove function in
 Vars in 1.1-SNAPSHOT version.

 Can you post some code to show where you are setting values on your
 SessionVar and where are you deleting them?





  Is there something I am missing?

  Thanks in advance.

  Dan
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---