[Lift] Comet logger initialized too early?
Hi, In trying to move to slf4j/logback I encountered an error when I removed log4j from the cp: 09:53:50.297 [main] ERROR org.mortbay.log - failed LiftFilter java.lang.NoClassDefFoundError: org/apache/log4j/LogManager at net.liftweb.util.LogBoot$.log4jIsConfigured$1(Log.scala:113) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.util.LogBoot$._log4JSetup(Log.scala:129) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.util.LogBoot$$anonfun$2.apply(Log.scala:95) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.util.LogBoot$$anonfun$2.apply(Log.scala:95) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.util.LogBoot$.checkConfig(Log.scala:93) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.util.LogBoot$.net$liftweb$util$LogBoot$$_logger(Log.scala:139) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.util.LogBoot$$anonfun$3.apply(Log.scala:141) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.util.LogBoot$$anonfun$3.apply(Log.scala:141) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.http.LiftRules$.init(LiftRules.scala:654) [lift-webkit-1.1-SNAPSHOT.jar:na] I would seem that the Comet logger is initialised before lift is booted (and thus using the default log config): from LiftRules: var cometLogger: LiftLogger = { val ret = LogBoot.loggerByName(comet_trace) ret.level = LiftLogLevels.Off ret } Shouldn't this initialization be moved to after lift is booted? /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: Cant generating liftweb document from source
when I do mvn install scala:doc i get [WARNING] /Users/george/Sites/git/liftweb/lift-util/src/main/scala/net/ liftweb/util/CurrencyZone.scala:32: error: AU is already defined as package AU [WARNING] object AU extends CurrencyZone { [WARNING]^ [WARNING] /Users/george/Sites/git/liftweb/lift-util/src/main/scala/net/ liftweb/util/CurrencyZone.scala:39: error: US is already defined as package US [WARNING] object US extends CurrencyZone { [WARNING]^ [WARNING] /Users/george/Sites/git/liftweb/lift-util/src/main/scala/net/ liftweb/util/CurrencyZone.scala:46: error: GB is already defined as package GB [WARNING] object GB extends CurrencyZone { [WARNING]^ [WARNING] /Users/george/Sites/git/liftweb/lift-util/src/main/scala/net/ liftweb/util/CurrencyZone.scala:53: error: EU is already defined as package EU [WARNING] object EU extends CurrencyZone { [WARNING]^ [WARNING] /Users/george/Sites/git/liftweb/lift-util/src/main/scala/net/ liftweb/util/Mailer.scala:27: error: Mailer is already defined as package Mailer [WARNING] object Mailer { [WARNING]^ [WARNING] /Users/george/Sites/git/liftweb/lift-util/src/main/scala/net/ liftweb/util/RE.scala:27: error: RE is already defined as package RE [WARNING] object RE { [WARNING]^ [WARNING] Aug 13, 2009 9:03:31 AM org.scala_tools.vscaladoc.HtmlRenderer render [WARNING] INFO: write page for overview [WARNING] Aug 13, 2009 9:03:32 AM org.scala_tools.vscaladoc.HtmlRenderer render [WARNING] INFO: write page for all-classes (list) [WARNING] Aug 13, 2009 9:03:32 AM org.scala_tools.vscaladoc.HtmlRenderer render [WARNING] INFO: write index.html [WARNING] Aug 13, 2009 9:03:32 AM org.scala_tools.vscaladoc.HtmlRenderer render [WARNING] INFO: write doc for each classes [WARNING] 6 errors found [INFO] [ERROR] BUILD ERROR [INFO] [INFO] wrap: org.apache.maven.reporting.MavenReportException: wrap: command line returned non-zero value:1 it seems to have generated the documentation. but the packages are not combined into a one set of docs. how do we do that? On Aug 11, 10:22 pm, Timothy Perrett timo...@getintheloop.eu wrote: Can you try: mvn install scala:doc Cheers, Tim On Aug 11, 8:49 pm, Lance Zheng lanc...@gmail.com wrote: I try to generate doc but got an error.http://wiki.liftweb.net/index.php/Generating_Lift_scaladocs_locally my OS is vista and maven's version is 2.2.0 D:\scalasrc\liftwebmvn -v Apache Maven 2.2.0 (r788681; 2009-06-26 21:04:01+0800) Java version: 1.6.0_13 Java home: C:\Program Files\Java\jdk1.6.0_13\jre Default locale: zh_CN, platform encoding: GBK OS name: windows vista version: 6.0 arch: x86 Family: windows D:\scalasrc\liftwebmvn scala:doc .. [WARNING] [Fatal Error] :1:38: Open quote is expected for attribute {1} associated with an elemen t type href. [WARNING] Exception in thread main org.xml.sax.SAXParseException: Open quote is expected for attri bute {1} associated with an element type href. [WARNING] at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse (AbstractSAXPar ser.java:1231) [WARNING] at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl $JAXPSAXParser.parse(SAXPars erImpl.java:522) [WARNING] at javax.xml.parsers.SAXParser.parse(SAXParser.java: 395) [WARNING] at scala.xml.parsing.FactoryAdapter.loadXML (FactoryAdapter.scala:292) [WARNING] at scala.xml.parsing.NoBindingFactoryAdapter.loadXML (NoBindingFactoryAdapter.scala:6 0) [WARNING] at scala.xml.XML$.load(XML.scala:68) [WARNING] at org.scala_tools.vscaladoc.DocUtil$.load (DocUtil.scala:28) [WARNING] at org.scala_tools.vscaladoc.Services$cfg$.setFrom (Services.scala:38) [WARNING] at org.scala_tools.vscaladoc.Main$.process(Main.scala: 81) [WARNING] at org.scala_tools.vscaladoc.Main$.main(Main.scala: 107) [WARNING] at org.scala_tools.vscaladoc.Main.main(Main.scala) [INFO] [ERROR] BUILD ERROR [INFO] [INFO] wrap: org.apache.maven.reporting.MavenReportException: wrap: command line returned non-zero v alue:1 --~--~-~--~~~---~--~~ 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] A question about H2 in the pocketchange example
i have downloaded H2 client and tried to connect to pca_example database. but how? i dont know the username and password. and i tried to find it out from the source code, but nothing. 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] any idea when we can cut a 1.1-M5 release?
Now that the APIs have changed to abstract the servlet stuff, I'd really like a 1.1-M5 release. Anyone any objections to cutting one soon? -- 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: any idea when we can cut a 1.1-M5 release?
To what end? Not a lot of code has gone in since the 1.1-m4 Cheers, Tim On 13/08/2009 10:59, James Strachan james.strac...@gmail.com wrote: Now that the APIs have changed to abstract the servlet stuff, I'd really like a 1.1-M5 release. Anyone any objections to cutting one soon? --~--~-~--~~~---~--~~ 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] Mapper: Is it possible to avoid the n+1 selects?
Hi I have a mapped object A with a foreign key to mapped object B. I need to display the information (A+B) in a table. The not so smart way is to first query on the As and then for each A, get the B. This results in n+1 selects. Is it possible to ask Mapper, when querying for the As, that it should join with Bs table to fetch the B at the same time (ie the equivalent of join fetching in Hibernate)? /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: any idea when we can cut a 1.1-M5 release?
On Thu, Aug 13, 2009 at 2:59 AM, James Strachan james.strac...@gmail.comwrote: Now that the APIs have changed to abstract the servlet stuff, I'd really like a 1.1-M5 release. Anyone any objections to cutting one soon? We do time-based releases, so M5 is going to come at the end of August. -- James --- http://macstrac.blogspot.com/ Open Source Integration http://fusesource.com/ -- 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: any idea when we can cut a 1.1-M5 release?
2009/8/13 Timothy Perrett timo...@getintheloop.eu: To what end? Not a lot of code has gone in since the 1.1-m4 I just wanna be able to use the new APIs (which avoid the explicit use of servlets) without being on the bleeding edge. e.g. S.render() changed to not take HttpServletRequest. -- 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: A question about H2 in the pocketchange example
The JDBC URL that we use for pocketchange makes an embedded server (no external connections, AFAIK). Someone just posted a thread on the list recently about adding a line to Boot.boot that would set up the H2 web console in the Lift project, which may work for you: http://groups.google.com/group/liftweb/browse_thread/thread/8a671792a51c7336?hl=en# Derek On Thu, Aug 13, 2009 at 3:42 AM, Caesar You ucae...@gmail.com wrote: i have downloaded H2 client and tried to connect to pca_example database. but how? i dont know the username and password. and i tried to find it out from the source code, but nothing. 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: Mapper: Is it possible to avoid the n+1 selects?
You should be able to use the PreCache QueryParam to tell Mapper to pre-fetch the mapped object: http://scala-tools.org/scaladocs/liftweb/1.0/net/liftweb/mapper/PreCache.html Derek On Thu, Aug 13, 2009 at 6:11 AM, Jeppe Nejsum Madsen je...@ingolfs.dkwrote: Hi I have a mapped object A with a foreign key to mapped object B. I need to display the information (A+B) in a table. The not so smart way is to first query on the As and then for each A, get the B. This results in n+1 selects. Is it possible to ask Mapper, when querying for the As, that it should join with Bs table to fetch the B at the same time (ie the equivalent of join fetching in Hibernate)? /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: Comet logger initialized too early?
I'll check in a fix in a little. Thanks for the bug report. On Thu, Aug 13, 2009 at 1:27 AM, Jeppe Nejsum Madsen je...@ingolfs.dkwrote: Hi, In trying to move to slf4j/logback I encountered an error when I removed log4j from the cp: 09:53:50.297 [main] ERROR org.mortbay.log - failed LiftFilter java.lang.NoClassDefFoundError: org/apache/log4j/LogManager at net.liftweb.util.LogBoot$.log4jIsConfigured$1(Log.scala:113) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.util.LogBoot$._log4JSetup(Log.scala:129) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.util.LogBoot$$anonfun$2.apply(Log.scala:95) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.util.LogBoot$$anonfun$2.apply(Log.scala:95) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.util.LogBoot$.checkConfig(Log.scala:93) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.util.LogBoot$.net$liftweb$util$LogBoot$$_logger(Log.scala:139) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.util.LogBoot$$anonfun$3.apply(Log.scala:141) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.util.LogBoot$$anonfun$3.apply(Log.scala:141) [lift-util-1.1-SNAPSHOT.jar:na] at net.liftweb.http.LiftRules$.init(LiftRules.scala:654) [lift-webkit-1.1-SNAPSHOT.jar:na] I would seem that the Comet logger is initialised before lift is booted (and thus using the default log config): from LiftRules: var cometLogger: LiftLogger = { val ret = LogBoot.loggerByName(comet_trace) ret.level = LiftLogLevels.Off ret } Shouldn't this initialization be moved to after lift is booted? /Jeppe -- 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: Mapper: Is it possible to avoid the n+1 selects?
Derek Chen-Becker dchenbec...@gmail.com writes: You should be able to use the PreCache QueryParam to tell Mapper to pre-fetch the mapped object: http://scala-tools.org/scaladocs/liftweb/1.0/net/liftweb/mapper/PreCache.html Ahh nice. I missed that one, Thanks /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] Welcome Joni Freeman to the Lift committers
Folks, I'm pleased to announce that Joni Freeman has joined the Lift committers. Joni will be adding his high performance JSON library as a module in Lift... and I certainly hope that Lift's JSON support will improve. Please join me in welcoming Joni! Thanks, David -- 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: Welcome Joni Freeman to the Lift committers
Welcome on board Joni ! On Aug 13, 7:06 pm, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, I'm pleased to announce that Joni Freeman has joined the Lift committers. Joni will be adding his high performance JSON library as a module in Lift... and I certainly hope that Lift's JSON support will improve. Please join me in welcoming Joni! Thanks, David -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://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: [Lift committers] Welcome Joni Freeman to the Lift committers
Joni, Welcome! Best wishes, --greg On Thu, Aug 13, 2009 at 9:06 AM, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, I'm pleased to announce that Joni Freeman has joined the Lift committers. Joni will be adding his high performance JSON library as a module in Lift... and I certainly hope that Lift's JSON support will improve. Please join me in welcoming Joni! Thanks, David -- 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://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] 1.0.1 release plan, forward porting changes
Hi, I have some code checked in on the 1.0_maint branch to fix the issues with PostgreSQL doubles and Oracle autoincrement primary keys (issue #37). If no one else has anything that needs to go into 1.0.1, I'll move ahead with releasing 1.0.1 and setting 1.0_maint to 1.0.2-SNAPSHOT. Also, does anyone have objections to forward-porting the changes I made to get PostgreSQL and Oracle squared away? The changes are primarily to DriverTypes, with some minor mods to Schemifier and MetaMapper to accomodate some new driver methods. You can see the changes here: PostgreSQL: http://github.com/dpp/liftweb/commit/54e6f64675d163a4fd7ba1ce0f14da8e4dc94aa2 Oracle: http://github.com/dpp/liftweb/commit/eda5e86092fec035b3f6326e05ba75fa1396b4bc Derek --~--~-~--~~~---~--~~ 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] how to do basic joins
I have 3 classes like so class Foo extends LongKeyedMapper[Foo] with IdPK def getBazes = { Baz.findAll(...) } } class Bar extends LongKeyedMapper[Bar] with IdPK object fooid extends MappedLongForeignKey(this, Foo) } class Baz extends LongKeyedMapper[Baz] with IdPK object barid extends MappedLongForeignKey(this, Bar) } How do I write Baz.findAll(...) so it will give me all the Bazes that point to any Bars that point to the Foo. In SQL I would write something like this: SELECT * FROM bazzes WHERE bazzes.barid = bars.id AND bars.fooid = 111; (where 111 is foo.id) I feel like I should be using ByRef here? But it's not clear to me how to do it. -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: how to do basic joins
One possibility is to do Baz.findAllBy{PreparedStatement,InsecureSql} (section 6.3.2 of lift book) I am also curious if there is a safe way to construct a join. - Jon On Aug 13, 3:41 pm, harryh har...@gmail.com wrote: I have 3 classes like so class Foo extends LongKeyedMapper[Foo] with IdPK def getBazes = { Baz.findAll(...) } } class Bar extends LongKeyedMapper[Bar] with IdPK object fooid extends MappedLongForeignKey(this, Foo) } class Baz extends LongKeyedMapper[Baz] with IdPK object barid extends MappedLongForeignKey(this, Bar) } How do I write Baz.findAll(...) so it will give me all the Bazes that point to any Bars that point to the Foo. In SQL I would write something like this: SELECT * FROM bazzes WHERE bazzes.barid = bars.id AND bars.fooid = 111; (where 111 is foo.id) I feel like I should be using ByRef here? But it's not clear to me how to do it. -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: how to do basic joins
On Thu, Aug 13, 2009 at 12:41 PM, harryh har...@gmail.com wrote: I have 3 classes like so class Foo extends LongKeyedMapper[Foo] with IdPK def getBazes = { Baz.findAll(...) } } Baz.findAll(In.fk(Baz.barid, By(Bar.fooid, this.id))) class Bar extends LongKeyedMapper[Bar] with IdPK object fooid extends MappedLongForeignKey(this, Foo) } class Baz extends LongKeyedMapper[Baz] with IdPK object barid extends MappedLongForeignKey(this, Bar) } How do I write Baz.findAll(...) so it will give me all the Bazes that point to any Bars that point to the Foo. In SQL I would write something like this: SELECT * FROM bazzes WHERE bazzes.barid = bars.id AND bars.fooid = 111; (where 111 is foo.id) I feel like I should be using ByRef here? But it's not clear to me how to do it. -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] Re: SOAP web services?
All, As a follow up, i was able to get the Apache Axis2 maven plugin to accept WSDL 2.0. Below is what i had to add to my pom.xml. Attached is an example that will get you an Http binding that should work RESTfully. Best wishes, --greg pluginRepositories ... pluginRepository idplugin.axis2.apache.org/id nameApache Axis2 Repository/name urlhttp://apache.sunsite.ualberta.ca/ws/axis2/tools/1_4_1/url /pluginRepository /pluginRepositories plugins ... plugin groupIdorg.apache.axis2/groupId artifactIdaxis2-wsdl2code-maven-plugin/artifactId version1.4.1/version executions execution goals goalwsdl2code/goal /goals /execution /executions configuration packageName${groupId}.${artifactId}.model/packageName wsdlVersion2.0/wsdlVersion generateAllClassestrue/generateAllClasses generateServerSidetrue/generateServerSide generateServerSideInterfacetrue/generateServerSideInterface generateServicesXmltrue/generateServicesXml generateTestCasetrue/generateTestCase /configuration /plugin /plugins 2009/8/11 Meredith Gregory lgreg.mered...@gmail.com Marius, The original design goals of WSDL were very straightforward: - a Port Type is a set of Message Types governing all the messages arriving on the Port - A Message Type is given precisely by an XML Schema (e.g. an XSD) - A Port is instanced by binding a Port Type to an Endpoint (URL) supporting a transport protocol In symbols, WSDL was intended to be able to make statements of the form - URL+Transport : { XMLSchema1, ..., XMLSchemaN } - Notice the close correlation between this and the statement you see on the Scala REPL all the time: - ScalaExpr ret - res1 : ScalaType URL is the location of the resource/instance in the same way that res1 provides a location that the Scala REPL can use to look up the instance. PortType is very much like a ScalaType. In the case of typing at the Scala REPL from a command shell there is no question of transport and any encoding/decoding necessary. However, if one had a more remote network access to the Scala REPL that did involve some issues around transport and encoding/decoding, then these two cases would be isomorphic. BTW, this lines up nearly perfectly with the idea of sorts and sorting in Milner's π-calculus. Because message exchange usually involves parameter-passing because of confusion about the role of Object Technology in all this, WSDL was extended with the notion of Operation. This could have been done more cleanly, but was not. Not everyone involved in WSDL's design had the same picture in their minds of what they were attempting to accomplish. As for what happens today, i could easily imaging WSDL and/or WSDL+SOAP over RabbitMQ, for example. i think something like this is considerably better than JSON over transport. The basic reason for this is straightforward. XMLSchema are a form of typing discipline. So, you get a typing discipline for messaging-style applications that fits well with the typing discipline of a language like Scala. This could, for example, play out very nicely in an actor framework. An actor's mailbox is a good thing to locate at an URL. Then you have statements of the form - URL + Transport/Actor : { MessageType1, ..., MessageTypeN } Today, Scala actors do not even support statements of this basic form, though they would greatly enhance the actor package. Beyond this, you can imagine putting constraints on the order of messages. Here's a general scheme - Actor : ( { MsgType1 - Type1, ..., MsgTypeN - TypeN }, RegularExpressionOver(MsgType1,...,MsgTypeN) ) - The first element in the pair just maps message type names to Scala types (or the types of some host language) and the second element in the pair says the order you expect to see messages in the mailbox. - Here's an example: ( { Init - OpenSession( id, pwd ), Read - ReadDb( ... ), Update - UpdateDB( ... ), Finish - CloseSession( ... ) }, Init.(Read+Update)*.Finish ) - It says that the only legal sequences of messages in the mbox are of the form Init :: Read-or-Update :: ... :: Read-or-Update :: FInish. Best wishes, --greg On Tue, Aug 11, 2009 at 9:27 AM, marius d. marius.dan...@gmail.comwrote: On Aug 11, 7:09 pm, Meredith Gregory lgreg.mered...@gmail.com wrote: Tim, i was under the same impression, but then read a couple of IBM comparison articles and a WSO2 blog and it seemed that the WSDL 2.0 was gaining ground. Further, the tooling for WSDL, with integration into all the major IDE's, has been significantly more developed than the WADL tooling. However, yesterday i tried a simple example with a schema-valid WSDL 2.0 xml document for a simple service with 1 operation and the Apache Axis2 tool barfed on the fact that the schema pointed to in the
[Lift] Re: how to do basic joins
Sorry... try: class Foo extends LongKeyedMapper[Foo] with IdPK { def getBazes = { Baz.findAll(In(Baz.barid, Bar.id, By(Bar.fooid, this))) } } object Foo extends Foo with LongKeyedMetaMapper[Foo] class Bar extends LongKeyedMapper[Bar] with IdPK { object fooid extends MappedLongForeignKey(this, Foo) } class Baz extends LongKeyedMapper[Baz] with IdPK { object barid extends MappedLongForeignKey(this, Bar) } object Baz extends Baz with LongKeyedMetaMapper[Baz] object Bar extends Bar with LongKeyedMetaMapper[Bar] On Thu, Aug 13, 2009 at 1:48 PM, harryh har...@gmail.com wrote: Foo = Venue, Bar = VenueAlias, Baz = Checkin lazy val checkins = Checkin.findAll(In.fk(Checkin.aliasid, By (VenueAlias.venueid, this.id))) confusing error message on compile: found : com.harryh.model.Checkin.aliasid.type (with underlying type object com.harryh.model.Checkin.aliasid) required: net.liftweb.mapper.MappedForeignKey [?,?,com.harryh.model.Checkin] Note that implicit conversions are not applicable because they are ambiguous: both method mapToType in object MappedField of type [T,A : net.liftweb.mapper.Mapper[A]](net.liftweb.mapper.MappedField[T,A])T and method mapToType in object MappedField of type [T,A : net.liftweb.mapper.Mapper[A]](net.liftweb.mapper.MappedField[T,A])T are possible conversion functions from com.harryh.model.Checkin.aliasid.type to net.liftweb.mapper.MappedForeignKey[?,?,com.harryh.model.Checkin] lazy val checkins = Checkin.findAll(In.fk(Checkin.aliasid, By (VenueAlias.venueid, this.id))) On Aug 13, 4:20 pm, David Pollak feeder.of.the.be...@gmail.com wrote: On Thu, Aug 13, 2009 at 12:41 PM, harryh har...@gmail.com wrote: I have 3 classes like so class Foo extends LongKeyedMapper[Foo] with IdPK def getBazes = { Baz.findAll(...) } } Baz.findAll(In.fk(Baz.barid, By(Bar.fooid, this.id))) class Bar extends LongKeyedMapper[Bar] with IdPK object fooid extends MappedLongForeignKey(this, Foo) } class Baz extends LongKeyedMapper[Baz] with IdPK object barid extends MappedLongForeignKey(this, Bar) } How do I write Baz.findAll(...) so it will give me all the Bazes that point to any Bars that point to the Foo. In SQL I would write something like this: SELECT * FROM bazzes WHERE bazzes.barid = bars.id AND bars.fooid = 111; (where 111 is foo.id) I feel like I should be using ByRef here? But it's not clear to me how to do it. -harryh -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://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 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] Welcome Joni Freeman to the Lift committers
From Joni: Thanks everyone, it is great to be part of growing Lift community! Here's a short description of current state of lift-json module (I haven't pushed it to master yet, it currently lives in my fork at http://github.com/jonifreeman/liftweb/tree/master Will push to master real soon.). The module provides: * Fast JSON parser Much faster than scala.util.parsing.json.JSON parser, bit slower than fastest known Java JSON parser: http://github.com/jonifreeman/liftweb/blob/e2e59b63a427258e7dde9b0877691322c29c8552/lift-json/benchmark/README.md * XPath like queries Examples: http://github.com/jonifreeman/liftweb/tree/e2e59b63a427258e7dde9b0877691322c29c8552/lift-json * Extractors (experimental) Case classes can be used to extract values from JSON. Examples: http://github.com/jonifreeman/liftweb/blob/28dbf1a221df97f27bd788ae57c005407547d480/lift-json/src/test/scala/net/liftweb/json/ExtractionExamples.scala * DSL to produce valid JSON Examples: http://github.com/jonifreeman/liftweb/tree/e2e59b63a427258e7dde9b0877691322c29c8552/lift-json * Pretty and compact printing Uses similar system as Philip Wadler described: http://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf If you have time please review, hack and play with this. Now is a great time to tweak the APIs since this is not published yet. Cheers Joni -- 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: how to do basic joins
Now I get an NPE :( Message: java.lang.NullPointerException net.liftweb.mapper.In$$anon$3.init(MetaMapper.scala:1206) net.liftweb.mapper.In$.apply(MetaMapper.scala:1200) com.harryh.model.Venue.checkins(Venue.scala:40) -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: SOAP web services?
Tim, How do you compose JAX-WS generated services with lift or do you? i'm trying to enumerate the ways to do this. Best wishes, --greg On Thu, Aug 6, 2009 at 5:15 PM, Timothy Perrett timo...@getintheloop.euwrote: Myself and Viktor are two committers who do a lot of SOAP work - right now, the best route forward it to use the Java JAX-WS code and call into it with a scala wrapper - this is exactly what I do and it works perfectly. Because there is toll free calling of Java code, there is little point in porting such massive projects to Scala; just make a wrapper that suits your needs. In my environment I have about 40+ endpoints, with hundreds of methods so I just made a scala wrapper that lets me do: DriverManager.whateverdriver.myMethod(params) // Box[T] IMO, that's a damn lot easier than calling a boat load of Java (of course its doing the under the hood, but like I said, its just a wrapper). HTH Cheers, Tim On 06/08/2009 16:26, Jacek Furmankiewicz jace...@gmail.com wrote: I was reading through the Lift book PDF and it mentions only REST- style web services. In our case, we need to look at re-implementing a set of existing SOAP web services (is there anything like 'wsdl2scala' anywhere?). I would appreciate any best practices and suggestions for implementing SOAP web services in the context of a larger Lift app (and Scala in general). -- 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] Dynamic URL creation
Hello there, I'm stumped! I've got snippet code that is like this: val nextpage: String = ... calculate next page number ... bind(c, xhtml, next - a href=/customer/page-{nextpage}next/a, back - back ) But when the page is generated, the link is /customer/page- {nextpage}, not /customer/page-2, /customer/page-3, etc. How do I get the nextpage value in my link? My template is just c:backc:next with the surrounding tags. Paul. --~--~-~--~~~---~--~~ 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: Dynamic URL creation
Try bind(c, xhtml, next - a href={ /customer/page- + nextpage}next/a, back - back ) I ran into something similar earlier today. Thanks, Chris On Thu, Aug 13, 2009 at 6:21 PM, pabraham paulabraham...@googlemail.comwrote: Hello there, I'm stumped! I've got snippet code that is like this: val nextpage: String = ... calculate next page number ... bind(c, xhtml, next - a href=/customer/page-{nextpage}next/a, back - back ) But when the page is generated, the link is /customer/page- {nextpage}, not /customer/page-2, /customer/page-3, etc. How do I get the nextpage value in my link? My template is just c:backc:next with the surrounding tags. Paul. --~--~-~--~~~---~--~~ 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: Dynamic URL creation
On Thu, Aug 13, 2009 at 3:21 PM, pabraham paulabraham...@googlemail.comwrote: Hello there, I'm stumped! I've got snippet code that is like this: val nextpage: String = ... calculate next page number ... bind(c, xhtml, next - a href=/customer/page-{nextpage}next/a, next - a href={/customer/page-+urlEncode(nextPage)}next/a back - back ) But when the page is generated, the link is /customer/page- {nextpage}, not /customer/page-2, /customer/page-3, etc. How do I get the nextpage value in my link? My template is just c:backc:next with the surrounding tags. Paul. -- 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: A question about H2 in the pocketchange example
You should be able to connect to the db with the following steps: 1) start the H2 webinterface/server with something like java -cp h2-1.1.113.jar org.h2.tools.Server 2) point your browser to localhost:8082 3) Use Generic H2 (Embedded), driver class: org.h2.Driver JDBC URL: something like jdbc:h2:~/YourProjectPath/todo/ pca_example 4) Leave User Name and Password blank 5) Test Connection and Connect should now work Best regards On Aug 13, 11:42 am, Caesar You ucae...@gmail.com wrote: i have downloaded H2 client and tried to connect to pca_example database. but how? i dont know the username and password. and i tried to find it out from the source code, but nothing. 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] Symlinks and Javascript Files
My Lift project is in a git repository and to the repository I've added a submodule. Since right now I only want one javascript file from this submodule, my thought was to make the directory src/main/ webroot/js and then make a symbolic link to the javascript file in question. Unfortunately, when I try to request the file at http://localhost:9090/js/jquery.sparkline.js, I get a 403 response that says the page is not defined in my sitemap. There was no note of the request in the stdout. Thinking that the js subdirectory is the problem, I then tried making the symlink in the webroot directory and got a 404 error. On stdout it said: 2009-08-13 18:38:23.051::WARN: Aliased resource: file:/Users/peter/ Sites/Equal%20Networks/server/src/main/webapp/ jquery.sparkline.js==file:/Users/peter/Sites/Equal%20Networks/server/ vendors/dashboard/www/jquery.sparkline.js From this I gather than Lift is troubled by the presence of a symlink and refused to acknowledge its presence. Is this true? If so, why? From the thread last week on ExtJS I see a discussion on loading files in webroot, including supporting a css directory by adding the following to Boot.scala: ResourceServer.allow { case css :: _ = true } I already have a css file being served from a directory in the exact same location without any additions to Boot.scala. Nonetheless, I tried the following: ResourceServer.allow { case js :: _ = true } Unfortunately, this had no effect. So, how can I get my symlinked javascript to be server? Or should I just give up on symlinks altogether (I'm not a git master, so perhaps that was the wrong approach anyway). Peter Robinett PS I'm on 1.1-SNAPSHOT. PPS The YUI Compressor works well. Very cool. --~--~-~--~~~---~--~~ 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] Bind problem
Is this according to the specs? bind(x, x:ax:b //x:a, b - c) just returns the original NodeSeq untransformed. --~--~-~--~~~---~--~~ 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 do basic joins
Please post a reproducible example. I use this call pretty regularly and have not seen any problems. Also, what version of Lift are you using? On Thu, Aug 13, 2009 at 2:31 PM, harryh har...@gmail.com wrote: Now I get an NPE :( Message: java.lang.NullPointerException net.liftweb.mapper.In$$anon$3.init(MetaMapper.scala:1206) net.liftweb.mapper.In$.apply(MetaMapper.scala:1200) com.harryh.model.Venue.checkins(Venue.scala:40) -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] Re: Bind problem
On Thu, Aug 13, 2009 at 7:09 PM, Naftoli Gugenheim naftoli...@gmail.comwrote: Is this according to the specs? Yes. a:x fails binding and by default, it is returned. There is no nesting or recursion in the seeking of the nested elements. bind(x, x:ax:b //x:a, b - c) just returns the original NodeSeq untransformed. -- 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] Attributes question
Why was the decision made, if I understand correctly, that normal attributes are not preserved in a bound node, and are are only available for the snippet's usage, and if you want the attribute to be sticky you have to prefix it with lift:? Wouldn't it be better the other way? One of lift's design goals is to help keep the static html in the view and the logic in the code, and to provide a templating system that doesn't interfere with visual web designers. It seems to me that it would further this goal if html attributes could be properly specified in the view html. --~--~-~--~~~---~--~~ 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: Bind problem
Which means that chaining binds is only useful when they operate on nodes that are side by side or are order outer first... Thanks. - David Pollakfeeder.of.the.be...@gmail.com wrote: On Thu, Aug 13, 2009 at 7:09 PM, Naftoli Gugenheim naftoli...@gmail.comwrote: Is this according to the specs? Yes. a:x fails binding and by default, it is returned. There is no nesting or recursion in the seeking of the nested elements. bind(x, x:ax:b //x:a, b - c) just returns the original NodeSeq untransformed. -- 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: Bind problem
Of the same prefix, that is... - Naftoli Gugenheimnaftoli...@gmail.com wrote: Which means that chaining binds is only useful when they operate on nodes that are side by side or are order outer first... Thanks. - David Pollakfeeder.of.the.be...@gmail.com wrote: On Thu, Aug 13, 2009 at 7:09 PM, Naftoli Gugenheim naftoli...@gmail.comwrote: Is this according to the specs? Yes. a:x fails binding and by default, it is returned. There is no nesting or recursion in the seeking of the nested elements. bind(x, x:ax:b //x:a, b - c) just returns the original NodeSeq untransformed. -- 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: Attributes question
On Thu, Aug 13, 2009 at 7:24 PM, Naftoli Gugenheim naftoli...@gmail.comwrote: Why was the decision made, if I understand correctly, that normal attributes are not preserved in a bound node, and are are only available for the snippet's usage, and if you want the attribute to be sticky you have to prefix it with lift:? Wouldn't it be better the other way? I don't understand your question. Are you talking about Helpers.bind() or are you talking about snippet dispatching? Can you please provide an example of what happens now and what you would expect to happen? One of lift's design goals is to help keep the static html in the view and the logic in the code, and to provide a templating system that doesn't interfere with visual web designers. It seems to me that it would further this goal if html attributes could be properly specified in the view html. -- 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: Attributes question
What I would like to do: label for=nameName/labelnbsp;person:name I'd=name size=10 class=special style=vertical-align: top maxlength=5 tabindex=1 / Okay, just a little contrived... My understanding is you can do this by prefixing the attribute with lift:; otherwise it will not be output but is available to the snippet code, i.e., without the prefix you are making an attribute available to the snippet but that's it. I'm getting this from Exploring Lift page 115. - David Pollakfeeder.of.the.be...@gmail.com wrote: On Thu, Aug 13, 2009 at 7:24 PM, Naftoli Gugenheim naftoli...@gmail.comwrote: Why was the decision made, if I understand correctly, that normal attributes are not preserved in a bound node, and are are only available for the snippet's usage, and if you want the attribute to be sticky you have to prefix it with lift:? Wouldn't it be better the other way? I don't understand your question. Are you talking about Helpers.bind() or are you talking about snippet dispatching? Can you please provide an example of what happens now and what you would expect to happen? One of lift's design goals is to help keep the static html in the view and the logic in the code, and to provide a templating system that doesn't interfere with visual web designers. It seems to me that it would further this goal if html attributes could be properly specified in the view html. -- 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 -~--~~~~--~~--~--~---