Re: [Lift] JAX-RS (Lift on Atmosphere)
On Jan 6, 2010, at 9:47 PM, David Pollak wrote: On Wed, Jan 6, 2010 at 11:31 AM, Ransford Segu-Baffoe paks...@gmail.com wrote: Hopefully I am not asking unnecessary questions but there are question that are popping in my head. How does JAX-RS fits into Lift considering that they are both web frameworks; could framework like Jersey benefit from Lifts template's mechanicism at the very least? There's Jersey - Lift integration already: http://n2.nabble.com/Lift-support-for-Jersey-checked-into-trunk-td3007414.html And if Jim Strachan would just sign the Lift paperwork, he could roll the Jersey support right into Lift proper... ;-) I would be happy to help with any such integration work. Paul. -- You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to lift...@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.
Re: [Lift] JAX-RS (Lift on Atmosphere)
The work has already been done - it just needs adding to lift proper and maintaining... its currently in jersey contrib. Cheers, Tim On 7 Jan 2010, at 10:13, Paul Sandoz wrote: I would be happy to help with any such integration work. -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@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.
Re: [Lift] JAX-RS (Lift on Atmosphere)
On Jan 7, 2010, at 11:24 AM, Timothy Perrett wrote: The work has already been done - Yes. I have to disclose that being the Jersey lead i am keen to see such integration happen :-) it just needs adding to lift proper and maintaining... its currently in jersey contrib. I am happy to help out and work with James in that regard. IIUC Marius re-factored the servlet integration, thus making it easier to dispatch requests to something that returns a response. If so, is there potential for further integration work in this respect? Paul. -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@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.
Re: [Lift] Mapper: Hook into owner lifecycle from field
Can you post some example code of your current thinking as a GitHub project and we can work on refining it and tuning Mapper/MetaMapper to suit your needs? On Tue, Jan 5, 2010 at 7:47 AM, Jeppe Nejsum Madsen je...@ingolfs.dkwrote: Hi, I'm trying to extend Mapper with a new MappedField type (basically same as OneToMany, with date/time interval) So the mapped field in the owner object holds a collection of child objects. When I save the owner, the childs should be updated/inserted/deleted as well. The owner can contain several instances of the MappedField I would like each of these fields to hook into the lifecycle of the owned object. I could use the LifecycleCallbacks trait, but this seems like notification only. Ie if a save of the child fails, I don't see this in the call to owner.save. I could create a trait to mixin to the MetaMapper which overrides save, delete etc, but I would have to mix this in one time for each field the way I see it Any hints? /Jeppe -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.comliftweb%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/liftweb?hl=en. -- 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 lift...@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.
Re: [Lift] Re: Postmortem thoughts on a small production Lift site
On Sat, Jan 2, 2010 at 7:17 AM, Nathan Parry npa...@gmail.com wrote: Jetty seems to do questionable things with filehandles, opening multiple copies of the same template file and keeping them open too long. Setting ulimit fixes the issue of Too many open files exceptions failed requests, but it still seems like at most templates should need 1 access to check mtime. Not really a lift issue, and not a deal breaker for us to switch to a different servlet container, but I am curious to see what the eventual solution for comet performance is. If you can put together a reproducible case on this, we'll see what we can do to close stuff that Jetty hands us more explicitly. I'm a total Lift and Scala newbie, but file-handle problems and last- modified checks remind me of this bug in Facelets: https://facelets.dev.java.net/issues/show_bug.cgi?id=278 Thanks. Looks like you found a defect and I've opened a defect. In case it is helpful, I think you can reproduce the behavior by doing something like this: 1. mvn jetty:run 2. Figure out the pid for jetty 3. Figure out how many file descriptors are open after startup using: lsof | grep pid | wc -l 4. Run a command like the one copied below to request the same file over and over. 5. Run the lsof command line every few seconds to watch the FD count. Sample command to fetch a file in a loop: while (`true`); do curl -H If-Modified-Since: Tue, 29 Dec 2009 20:02:16 UTC -H Cache-Control: max-age=0 http://localhost:8080/classpath/blueprint/screen.css; done Running this locally the FD count seems to fluctuate between the baseline count and around 2x the baseline. I would guess that might be based on how frequently the garbage collector is running and cleaning up any connections that were not explicitly closed. Nathan, Now don't take this the wrong way, but I could kiss you. ;-) This is a great defect report... it's led to: http://github.com/dpp/liftweb/issues/#issue/275 As well as a fix that I'm posting to review board right now. Thanks, David -- Nathan -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.comliftweb%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/liftweb?hl=en. -- 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 lift...@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.
Re: [Lift] problems with file upload inside modal
Stephanos, It would be ideal if you could put up a quick project on GitHub that demonstrates the problem. Having reproducible code helps us solve problems faster. Any chance you could do that? Thanks, David On Wed, Jan 6, 2010 at 11:17 PM, stephanos stephan.beh...@googlemail.comwrote: Hi guys, I'm stuck with this problem for a few days now and need help. I want users to be able to upload a ZIP file. When I embed this functionality directly in the page it works flawlessly - but I need to put it into a modal and that's were the trouble starts. When I submit the form it executes correctly but it prints (!) the response to the browser: try{jQuery(#lift__noticesContainer__).each(function(i) {this.innerHTML = div class=\success\ulliThanks for the upload!/li/ul /div;});} catch (e) {} The code looks right but it shouldn't print to the screen. What am I doing wrong? # My current progress (using M8): HTML: lift:SourceUpload form=post multipart=true fieldset style=width: 90%; margin: 0 auto strongAt first/strong select the zip file upload:file/ br/br/ and strongthen/strong push input type=submit value=upload!/ /fieldset /lift:SourceUpload CODE: def request(in: NodeSeq) = // opens file upload modal ajaxButton(in, () = S.runTemplate(List(/katas/share)). map(ns = ModalDialog(ns)) openOr Alert(Internal error: Couldn't find template!)) def render(in: NodeSeq): NodeSeq = bind(upload, file - SHtml.fileUpload(processFile _)) Cheers, Stephan -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.comliftweb%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/liftweb?hl=en. -- 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 lift...@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] Validation -- I'm doing it wrong?
So, as a first stab at validation for category names in the image gallery example I posted yesterday, and basing myself on the Starting with Lift tutorial, I replaced: object name extends MappedPoliteString(this, 128) with object name extends MappedPoliteString(this, 128) { override def defaultValue = private def noSlashes(s: String) : List[FieldError] = if (s.contains(/)) { List(FieldError(this, Text(Category name \ + s + \ may not contain \/\))) } else { Nil } override def validations = valMinLen(1, Category name must not be empty) _ :: valUnique(Category name must be unique) _ :: noSlashes _ :: super.validations } in my model, and replaced the snippet to create a category with: private def saveCategory(i: ImageCategory): Unit = i.validate match { case Nil = i.saveMe S.notice(Changes saved) case err = S.error(err) } def doNewCategory(in: NodeSeq): NodeSeq = { var newCat = ImageCategory.create bind(nc, in, // XXX XXX need to validate (at least no /) name - newCat.name.toForm, create - SHtml.submit(Create, {() = saveCategory(newCat)}) ) } (and made the matching change to the category edit snippet). However, although the new defaultValue is honored, the new validations don't seem to get run -- I can create duplicate, empty, or illegal category names without triggering a FieldError. What am I missing? As always, thanks for all help with this -- the quick and helpful answers I've gotten on this list are certainly one of my favorite parts of the Lift framework! -- Jim Wise jw...@draga.com pgpSCOcrrxaBT.pgp Description: PGP signature
Re: [Lift] Validation -- I'm doing it wrong?
Jim Wise jw...@draga.com writes: object name extends MappedPoliteString(this, 128) { override def defaultValue = private def noSlashes(s: String) : List[FieldError] = if (s.contains(/)) { List(FieldError(this, Text(Category name \ + s + \ may not contain \/\))) } else { Nil } override def validations = valMinLen(1, Category name must not be empty) _ :: valUnique(Category name must be unique) _ :: noSlashes _ :: super.validations } Note that adding Log.error(noSlashes called) to the validator function above results in no log message, which seems to indicate that the validations are indeed never being run. Is there anything I need to do at the level of the containing LongKeyedMapper so that it's validate method calls the field's validations? Or does that happen automatically? -- Jim Wise jw...@draga.com pgpq3JzDLuC22.pgp Description: PGP signature
[Lift] Questions about Loc
Hello Is it possible to add a Loc to the menu which would point to a file in webapp/allcategories.html but the url that would be visible to the user would be http://localhost:8080/categories/all I know i could do this using a rewrite rule like so: LiftRules.rewrite.append { case RewriteRequest( /* making it pretty */ ParsePath(List(categories::all),_,_,_),_,_) = RewriteResponse(allcategories :: Nil) } But i want the link created by Menu.builder to have the structure http://localhost:8080/categories/all I want to be able to have a folder structure that is independent of my url structure Currently the menu i'm talking about is constructed like so: Menu(Loc (Alle_Kategorier, List(allcategories), Alle Kategorier)) Heh I hope you can follow my train of though ;) Cheers -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@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.
Re: [Lift] issue with sitemap submenus ?
I just noticed the same problem (nearby submenus are not displaying) using 1.1-SNAPSHOT. If I switch to M8 the submenus appear as they should. Was there a change in the way this works? Tim On Wed, Jan 6, 2010 at 9:59 AM, Ross Mellgren dri...@gmail.com wrote: By default sitemap will only show submenus nearby the current page. You can show the entire expanded menu by using lift:Menu.builder expandAll=true / You should try navigating to the Author List page and ensure that the Author Test menu shows up then. -Ross On Jan 6, 2010, at 9:20 AM, Jean-Luc wrote: Hi liftweb-list ! Happy New Year to all ! Well, I have an issue with sitemap submenus. Using the following code : val entries = SiteMap(Menu(Loc(Home, index :: Nil , ?(Home))), Menu(Loc(Authors, authors :: list :: Nil, ?(Author List)), Menu(Loc(Test, authors :: test :: Nil, ?(Author Test, Menu(Loc(Add Author, authors :: add :: Nil, ?(Add Author), Hidden)), Menu(Loc(Books, books :: list :: Nil, ?(Book List))), Menu(Loc(Add Book, books :: add :: Nil, ?(Add Book), Hidden)), Menu(Loc(BookSearch, books :: search :: Nil, ?(Book Search Expected result : - the menu is displayed and a Author Test entry is present * Home * Author List * Author Test * Book List * Book Search Current result : - the menu is displayed but no Author Test entry is present * Home * Author List * Book List * Book Search Before the last mvn -U xxx my submenis where displayed correctly. Is there a known issue or am I missing something ? To reproduce the problem : - http://github.com/jlcanela/scalajpademo - change Boot.scala (line 53) and use the modified entries sitemap -- Jean-Luc Canela jlcane...@gmail.com -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@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. -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@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. -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@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.
Re: [Lift] issue with sitemap submenus ?
On Thu, Jan 7, 2010 at 5:12 PM, Tim Nelson tnell...@gmail.com wrote: I just noticed the same problem (nearby submenus are not displaying) using 1.1-SNAPSHOT. If I switch to M8 the submenus appear as they should. Was there a change in the way this works? It's a bug. It was fixed with a checkin that's currently on review board. Tim On Wed, Jan 6, 2010 at 9:59 AM, Ross Mellgren dri...@gmail.com wrote: By default sitemap will only show submenus nearby the current page. You can show the entire expanded menu by using lift:Menu.builder expandAll=true / You should try navigating to the Author List page and ensure that the Author Test menu shows up then. -Ross On Jan 6, 2010, at 9:20 AM, Jean-Luc wrote: Hi liftweb-list ! Happy New Year to all ! Well, I have an issue with sitemap submenus. Using the following code : val entries = SiteMap(Menu(Loc(Home, index :: Nil , ?(Home))), Menu(Loc(Authors, authors :: list :: Nil, ?(Author List)), Menu(Loc(Test, authors :: test :: Nil, ?(Author Test, Menu(Loc(Add Author, authors :: add :: Nil, ?(Add Author), Hidden)), Menu(Loc(Books, books :: list :: Nil, ?(Book List))), Menu(Loc(Add Book, books :: add :: Nil, ?(Add Book), Hidden)), Menu(Loc(BookSearch, books :: search :: Nil, ?(Book Search Expected result : - the menu is displayed and a Author Test entry is present * Home * Author List * Author Test * Book List * Book Search Current result : - the menu is displayed but no Author Test entry is present * Home * Author List * Book List * Book Search Before the last mvn -U xxx my submenis where displayed correctly. Is there a known issue or am I missing something ? To reproduce the problem : - http://github.com/jlcanela/scalajpademo - change Boot.scala (line 53) and use the modified entries sitemap -- Jean-Luc Canela jlcane...@gmail.com -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.comliftweb%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/liftweb?hl=en. -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.comliftweb%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/liftweb?hl=en. -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.comliftweb%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/liftweb?hl=en. -- 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 lift...@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] OAuth dpp_issue_276
Folks, I'm half way through the OAuth stuff on the dpp_issue_276 branch. It'd be wicked helpful if Indrajit would add another module to the branch: lift-oauth-mapper at the same level as lift-oauth. The lift-oauth-mapper module will have concrete mapper traits that front for the abstract trait in lift-oauth. 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 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 lift...@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: Thanks for the all the help so far...
I love how the site looks like. VERY cool job ! Thanks! -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@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.
Re: [Lift] Questions about Loc
On Thu, Jan 7, 2010 at 2:24 PM, Mads Hartmann mads...@gmail.com wrote: Hello Is it possible to add a Loc to the menu which would point to a file in webapp/allcategories.html but the url that would be visible to the user would be http://localhost:8080/categories/all I know i could do this using a rewrite rule like so: LiftRules.rewrite.append { case RewriteRequest( /* making it pretty */ ParsePath(List(categories::all),_,_,_),_,_) = RewriteResponse(allcategories :: Nil) } But i want the link created by Menu.builder to have the structure http://localhost:8080/categories/all I want to be able to have a folder structure that is independent of my url structure Currently the menu i'm talking about is constructed like so: Menu(Loc (Alle_Kategorier, List(allcategories), Alle Kategorier)) Menu(Loc(Alle_Kategorier, List(allcategories), Alle Kategorier, Loc.Template(() = TemplateFinder.findAnyTemplate(foo :: bar :: Nil) openOr NodeSeq.Empty))) Heh I hope you can follow my train of though ;) Cheers -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.comliftweb%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/liftweb?hl=en. -- 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 lift...@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] Picking textbox values and saving in a database via Ajax
Hello, I'm trying to pick values in a textbox, set them to a mapper field and persist to the database using Ajax but it don't seem to want to send the value to the database despite the fact that it picks it up from the textboxs. I've tried a lot of code and it does not seem to work, please help me with this. The codes are: Snippet: class VendorManipulator { def edit(tags : NodeSeq) : NodeSeq = { val vendor = Vendor.create def processEntries():JsCmd = { val saveAndDisplay = {vendor.save; println(Saved!) ajaxInvoke(() = SetHtml (data_saved, span h1Data saved:/h1 br/ Company name: {vendor.name.is} br/Date Established: {vendor.dateEstablished} br/Location: {vendor.location} /span ))._2} ajaxCall(ValById(txt_name), (s) = {vendor.name (s);println(name: +s);JsRaw()})._2 ajaxCall(ValById(txt_loc), (s) = {vendor.location (s);println(location: +s);JsRaw()})._2 saveAndDisplay } bind(vm, tags, name - text(vendor.name.is, vendor.name(_), id - txt_name), location - text(vendor.location.is, vendor.location (_), id - txt_loc), submit - ajaxButton(Save, processEntries _) ) } } Markup: lift:VendorManipulator.edit form=post Name vm:name /br / Location vm:location /br / vm:submit / /lift:VendorManipulator.edit Vendor is a mapper object. The Saved!, name: and location: shows on the console but the values are not persisted to the database. -- You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to lift...@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.