[Lift] Re: higher-kinded types

2009-06-24 Thread Meredith Gregory
All,

The following code works without going through the M-P-O construction. It
enjoys approximately the same brevity as a Haskell type class.

// smallest expression of monad i can find
trait MBrace[C[_] <: MBrace[C,A],A] {
  def nest( a : A ) : C[A]
  def flatten[T <: C[C[A]]]( bsq : T ) : C[A]
}

// one of the simplest witnesses of monad i can find
class MBraceSeq[A]( a_ : A* ) extends Seq[A] with MBrace[MBraceSeq,A] {
  override def nest( a : A ) = new MBraceSeq[A]( a )
  override def flatten[T <: MBraceSeq[MBraceSeq[A]]]( bsq : T ) :
MBraceSeq[A] = {
(new MBraceSeq[A]( ) /: bsq)( {
  ( acc : MBraceSeq[A], e : MBraceSeq[A] ) => ( acc ++ e
).asInstanceOf[MBraceSeq[A]]
} )
  }
  override def length = a_.length
  override def elements = a_.elements
  override def apply( n : Int ) = a_.apply( n )
}

Best wishes,

--greg

On Wed, Jun 24, 2009 at 3:49 PM, Meredith Gregory
wrote:

> All,
>
> Am i correct in concluding that the solution in The Moors-Piessens-Odersky
> paper only works with collections that have been clever enough to have used
> type members rather that type parameters? Or, is there a trick to making the
> vast majority of the collections types that are parametrically typed look as
> if they have type members? (See example below.)
>
> Best wishes,
>
> --greg
>
> // Paraphrasing the basic Moors-Piessens-Odersky construction
> trait TypeCtor1 { type E }
> trait Brace[A] extends TypeCtor1 {
>   type C <: TypeCtor1
>   def nest( a : A ) : C{type E = A}
>   def flatten( bsq : C{type E=C{type E=A}} ) : C{type E=A}
> }
>
> // Now, how to make a version of BraceList since List is parametrically
> typed?
>
>
> --
> L.G. Meredith
> Managing Partner
> Biosimilarity LLC
> 1219 NW 83rd St
> Seattle, WA 98117
>
> +1 206.650.3740
>
> http://biosimilarity.blogspot.com
>



-- 
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] Re: lift presentation

2009-06-24 Thread marius d.

I'm giving today a presentation for Transylvania JUG  ... I'll email
you my material.

Br's,
Marius

On Jun 25, 8:04 am, Wilson MacGyver  wrote:
> Hi,
>
> I'm doing a presentation on lift to my local java user group next month.
>
> I'm wondering if any of you have slides on lift that I can borrow/leverage? :)
>
> Thanks,
> Mac
>
> --
> Omnem crede diem tibi diluxisse supremum.
--~--~-~--~~~---~--~~
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] lift presentation

2009-06-24 Thread Wilson MacGyver

Hi,

I'm doing a presentation on lift to my local java user group next month.

I'm wondering if any of you have slides on lift that I can borrow/leverage? :)

Thanks,
Mac

-- 
Omnem crede diem tibi diluxisse supremum.

--~--~-~--~~~---~--~~
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: date management

2009-06-24 Thread g-man

OK, things are working well with RequestVar, but now I need to know
how to kill it!

After I create and save my record, if I refresh the browser, I get
another record created. I did a temporary hack-fix with:

if(! myRecord.saved_?)

but I would just like to kill the RequestVar after the first round of
record creation-saving.

In terms of your example above, how would I do that?



On Jun 8, 7:18 am, Derek Chen-Becker  wrote:
> Generally you can either use RequestVars or a StatefulSnippet class to keep
> the values around on form resubmission. If you're using a Mapper class, you
> really just need one RequestVar to hold your Mapper instance. For example,
> if I had a Mapper class for a person with first name, last name and email, I
> could do something like this in my snippet class:
>
> ...
>   // Set the up the RequstVar to initialize a new MyUserClass by default
>   object userVar extends RequestVar[MyUserClass](MyUserClass.create)
>
>   def editMyUser (xhtml : NodeSeq) : NodeSeq = {
>     // We define a val to capture the current value of the userVar. This
> will be used to reinject later, as well
>     // as for current access
>     val current = userVar.is
>     ...
>     def saveMyUser () {
>       current.validate match { ...
>         ...
>         current.save
>       }
>     }
>
>     bind("user", xhtml,
>            // First we re-inject the current MyUserClass instance using a
> hidden field
>            "current" -> SHtml.hidden(() => userVar(current))
>            // normal fields follow, e.g.
>            "name" -> SHtml.text(current.name.is, current.name(_))
>            // alternatively, you could do both steps in the first form
> field:
>            "name" -> SHtml.text(current.name.is, { in => userVar(current);
> current.name(in) })
>            ...
>     )
>   }
> ...
>
> Let me know if you have any questions on that.
>
> Derek
>
> On Fri, Jun 5, 2009 at 9:47 PM, g-man  wrote:
>
> > I now have the due date arriving OK from the jQuery datepicker, and I
> > cobbled together some ugliness to give days left until the ToDo due
> > date, so that is good.
>
> > My problem now is since we are not using the 'magic' of the _toForm
> > methods for the form elements, I have to set each var value for the
> > model field from the input SHtml data, as was done in the PocketChange
> > app AddEntry.scala file.
>
> > What is happening is that the initialization for each var is resetting
> > the form if validation fails, so I guess I need to institute some
> > RequestVars to remember the form values for resubmission, right?
>
> > All my questions will take take the form of 'how to' recipes of
> > foundational webapp elements, as you can see. My plan is to develop
> > them for a 'cookbook' section of the wiki, so that's why I am asking
> > one simple conceptual thing at a time.
>
> > Therefore, what I have to learn now is all about form binding and
> > recalling form value state if validation fails, so please break that
> > down for me.
>
> > Thanks as always!
>
> > On Jun 3, 10:25 pm, Derek Chen-Becker  wrote:
> > > Box is the base class. What you want is Full("2").
>
> > > Derek
>
> > > On Wed, Jun 3, 2009 at 8:53 PM, g-man  wrote:
>
> > > > Very good!
>
> > > > I did a little homework, rearranged some things, and am getting some
> > > > nice results with the 'manual method'...
>
> > > > Since I am following the PocketChange app now rather than the ToDo
> > > > example, there is no 'todo' val in scope to bind, so the
> > > > todo.priority.toForm method will not work.
>
> > > > I have SHtml.select working with a mapping for my choices, and I can
> > > > use Empty for my default, but how do I get a Box["2"] as my default?
>
> > > > On Jun 3, 7:21 am, Derek Chen-Becker  wrote:
> > > > > The only issue I would mention is that there's currently an open
> > ticket
> > > > > because MappedDateTime won't save the time portion when you use
> > Derby. I
> > > > > haven't had time to triage this yet.
>
> > > > > Derek
>
> > > > > On Wed, Jun 3, 2009 at 3:01 AM, Timothy Perrett
> >  > > > >wrote:
>
> > > > > > Greg,
>
> > > > > > I dont really use toForm; have you explored "doing it manually"? It
> > > > > > seems like that would be able to tell you if there is a problem
> > with
> > > > > > toForm on MappedDateTime.
>
> > > > > > I use mapped date time quite a bit and have no problems at all
> > > > > > persisting the dates :-)
>
> > > > > > Cheers, Tim
>
> > > > > > On Jun 3, 3:09 am, g-man  wrote:
> > > > > > > Are there no ideas for my problem?
>
> > > > > > > I have many more questions saved up, but would like to clear each
> > out
> > > > > > > before starting a new one.
>
> > > > > > > Thanks again!
>
> > > > > > > On May 31, 1:57 pm, g-man  wrote:
>
> > > > > > > > As I proceed to enhance the ToDo example, I have added a new
> > field
> > > > to
> > > > > > > > the ToDo.scala model:
>
> > > > > > > > object dueOn extends MappedDateTime(this) {
> > > > > > > >     final val dateFormat = DateFormat.getDateIns

[Lift] Re: Is Hudson Stuck? 6/24

2009-06-24 Thread Derek Chen-Becker
I stopped the stuck job.

On Wed, Jun 24, 2009 at 7:09 PM, Bryan  wrote:

>
> I'm using http://hudson.scala-tools.org/job/Lift/.
>
> On Jun 24, 9:08 pm, Bryan  wrote:
> > Is this the correct URL to check on the status of the Hudson build?
> > If so, is it stuck?
> >
> > --Bryan
> >
>

--~--~-~--~~~---~--~~
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] Getting Username and Password from URL of form hxxp://user:passw...@foo.org

2009-06-24 Thread Alan M

I can't seem to find anyway to get to those two values.  I've been
searching all over the request class/object and no luck.

I'm writing a RESTful web service that uses basic auth and for some
reason jQuery likes to send things in the above mentioned format
(http://user:passw...@foo.org).  I've tried to fix that on the
Javascript side but I couldn't get anything to work.  So instead I
decided on the service to recognize either the header style or the URL
style of passing the login info.  Sounded simple enough, until I
couldn't find how to get at that/those strings..

Any help would be greatly appreciated..

Alan Mortensen
--~--~-~--~~~---~--~~
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: Stax

2009-06-24 Thread Meredith Gregory
Jon,

Sweet!

Best wishes,

--greg

On Wed, Jun 24, 2009 at 3:11 PM, jon  wrote:

>
> I was able to get the latest lift-example application deployed without
> a problem: http://helloworld.hoffrocket.staxapps.net/.  It's running
> against a mysql DB that they're hosting, not h2.
>
> I got an nginx 502 gateway down with a more substantial app, but their
> log files were all blank, so I have no idea what the problem was.
>
> Their deployment mechanism is war/ear based (ear built locally, then
> uploaded).  It would be cool if they supported standard mvn layouts
> and could just build your war from source.  I'm on a 512kb max upload
> and lift-example took 5 minutes to deploy.
>
> - Jon
>
> On Jun 24, 4:21 pm, Tim Nelson  wrote:
> > I think they use Gant.http://gant.codehaus.org/
> >
> >
> >
> > On Wed, Jun 24, 2009 at 3:10 PM, fan...@gmail.com 
> wrote:
> >
> > > Tim Nelson a écrit :
> > > [...]
> > > > I did install their SDK and from what I can tell it's basically some
> > > > Groovy scripts that use Ant + Ivy.
> >
> > > Gradle perhaps ?http://www.gradle.org/
> >
> > > --
> > > Francois Armand
> > >http://fanf42.blogspot.com
>
> >
>


-- 
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] Re: JPA and auto generation of id

2009-06-24 Thread Meredith Gregory
David,

The GenericGenerator annotation was the solution i found worked for me for
Hibernate 3.3.2GA, and the one i suggested you investigate. i'm glad you've
gotten past that one.

Best wishes,

--greg

On Wed, Jun 24, 2009 at 3:29 PM, David Persons  wrote:

>
> Thanks for all the answers guys.
>
> I managed to fix the id problem, I needed the Hibernate specific class
> GenericGenerator to fix it, which of cource is less pretty then using
> only JPA. Someone has an example of how to make it work with MySql and
> only JPA annotations? Current version:
>
> @Entity
> class Scene {
>  @Id
>  @GenericGenerator{val name="hibernate-increment", val
> strategy="increment"}
>  @GeneratedValue{val strategy = GenerationType.SEQUENCE, val
> generator = "hibernate-increment"}
>   var id : Long = _
>
>  @Column{val unique = true, val nullable = false}
>  var ordering : Int = _
>
>  @Column{val unique = true, val nullable = false}
>  var name : String = ""
>
>  @ManyToOne{val optional = false}
>  var storyBoard : StoryBoard = _
> }
>
> However, now I get an org.hibernate.PropertyValueException: not-null
> property references a null or transient value:
> model.Scene.storyBoard :-s I tried a lot of things already, the
> corresponding StoryBoard is saved and not null, so I guess it has to
> be transient. Merging the StoryBoard however still gives the same
> error..
>
> I tried to get JPA and Lift working together in the same way as in the
> JPADemo example.. Is it the use of MySql which prevents the example
> from working for me?
>
> regards,
> David
>
> On 23 jun, 00:54, Derek Chen-Becker  wrote:
> > Also, what does the schema for the entity's table look like?
> >
> > On Mon, Jun 22, 2009 at 4:54 PM, Derek Chen-Becker <
> dchenbec...@gmail.com>wrote:
> >
> > > Mind posting the snippet of code where you're saving the instance? A
> merge
> > > should interpret a null ID as a fresh instance, and a persist should
> just
> > > save it.
> >
> > > Derek
> >
> > > On Mon, Jun 22, 2009 at 1:50 PM, David Persons  >wrote:
> >
> > >> I am using MySql (5). After setting the hibernate.dialect to
> > >> org.hibernate.dialect.MySQLDialect in my persistence.xml file, I get a
> > >> org.hibernate.AssertionFailure: null id :-s
> >
> > >> cheers
> >
> > >> On 22 jun, 19:18, Derek Chen-Becker  wrote:
> > >> > That's not accurate, at least with Hibernate. By putting the
> annotations
> > >> on
> > >> > vars, the compiler ends up putting them on the internal fields,
> which
> > >> then
> > >> > forces Hibernate into a field-based persistence model and not a
> > >> > getter/setter based one. The SQLGrammarException is most likely what
> the
> > >> > other people have said. If you're in Oracle or PostgreSQL, for
> instance,
> > >> you
> > >> > need a sequence set up for the auto identity model. What database
> are
> > >> you
> > >> > using?
> >
> > >> > Derek
> >
> > >> > On Mon, Jun 22, 2009 at 8:54 AM, Eric Bowman 
> wrote:
> >
> > >> > > David Persons wrote:
> > >> > > > Hello guys,
> >
> > >> > > > I get a org.hibernate.exception.SQLGrammarException: could not
> get
> > >> or
> > >> > > > update next value error everytime I try to save the following
> > >> Entity:
> >
> > >> > > > @Entity
> > >> > > > class Scene {
> > >> > > >   @Id
> > >> > > >   @GeneratedValue(){val strategy = GenerationType.AUTO}
> > >> > > >   var id : Long = _
> >
> > >> > > >   @Column{val unique = true, val nullable = false}
> > >> > > >   var ordering : Int = _
> >
> > >> > > >   @Column{val unique = true, val nullable = false}
> > >> > > >   var name : String = ""
> >
> > >> > > >   @ManyToOne{val optional = false}
> > >> > > >   var storyBoard : StoryBoard = _
> > >> > > > }
> >
> > >> > > You almost certainly need some scala.reflect.BeanProperty
> annotations
> > >> on
> > >> > > your fields.
> >
> > >> > > cheers,
> > >> > > Eric
> >
> > >> > > --
> > >> > > Eric Bowman
> > >> > > Boboco Ltd
> > >> > > ebow...@boboco.ie
> > >> > >http://www.boboco.ie/ebowman/pubkey.pgp
> > >> > > +35318394189/+353872801532<
> > >>http://www.boboco.ie/ebowman/pubkey.pgp%0A+35318394189/+353872801532>
>
> >
>


-- 
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] Re: JPA and auto generation of id

2009-06-24 Thread Bryan

Try upgrading your hibernate version from 3.3.1.ga to 3.3.2.GA.

Derek, can you look into upgrading the archetype to this release as
well?  I recall 3.3.1.ga having some packaging issues.

--Bryan

On Wed, Jun 24, 2009 at 6:29 PM, David Persons wrote:
>
> Thanks for all the answers guys.
>
> I managed to fix the id problem, I needed the Hibernate specific class
> GenericGenerator to fix it, which of cource is less pretty then using
> only JPA. Someone has an example of how to make it work with MySql and
> only JPA annotations? Current version:
>
> @Entity
> class Scene {
> �...@id
> �...@genericgenerator{val name="hibernate-increment", val
> strategy="increment"}
> �...@generatedvalue{val strategy = GenerationType.SEQUENCE, val
> generator = "hibernate-increment"}
>  var id : Long = _
>
> �...@column{val unique = true, val nullable = false}
>  var ordering : Int = _
>
> �...@column{val unique = true, val nullable = false}
>  var name : String = ""
>
> �...@manytoone{val optional = false}
>  var storyBoard : StoryBoard = _
> }
>
> However, now I get an org.hibernate.PropertyValueException: not-null
> property references a null or transient value:
> model.Scene.storyBoard :-s I tried a lot of things already, the
> corresponding StoryBoard is saved and not null, so I guess it has to
> be transient. Merging the StoryBoard however still gives the same
> error..
>
> I tried to get JPA and Lift working together in the same way as in the
> JPADemo example.. Is it the use of MySql which prevents the example
> from working for me?
>
> regards,
> David
>
> On 23 jun, 00:54, Derek Chen-Becker  wrote:
>> Also, what does the schema for the entity's table look like?
>>
>> On Mon, Jun 22, 2009 at 4:54 PM, Derek Chen-Becker 
>> wrote:
>>
>> > Mind posting the snippet of code where you're saving the instance? A merge
>> > should interpret a null ID as a fresh instance, and a persist should just
>> > save it.
>>
>> > Derek
>>
>> > On Mon, Jun 22, 2009 at 1:50 PM, David Persons wrote:
>>
>> >> I am using MySql (5). After setting the hibernate.dialect to
>> >> org.hibernate.dialect.MySQLDialect in my persistence.xml file, I get a
>> >> org.hibernate.AssertionFailure: null id :-s
>>
>> >> cheers
>>
>> >> On 22 jun, 19:18, Derek Chen-Becker  wrote:
>> >> > That's not accurate, at least with Hibernate. By putting the annotations
>> >> on
>> >> > vars, the compiler ends up putting them on the internal fields, which
>> >> then
>> >> > forces Hibernate into a field-based persistence model and not a
>> >> > getter/setter based one. The SQLGrammarException is most likely what the
>> >> > other people have said. If you're in Oracle or PostgreSQL, for instance,
>> >> you
>> >> > need a sequence set up for the auto identity model. What database are
>> >> you
>> >> > using?
>>
>> >> > Derek
>>
>> >> > On Mon, Jun 22, 2009 at 8:54 AM, Eric Bowman  wrote:
>>
>> >> > > David Persons wrote:
>> >> > > > Hello guys,
>>
>> >> > > > I get a org.hibernate.exception.SQLGrammarException: could not get
>> >> or
>> >> > > > update next value error everytime I try to save the following
>> >> Entity:
>>
>> >> > > > @Entity
>> >> > > > class Scene {
>> >> > > >   @Id
>> >> > > >   @GeneratedValue(){val strategy = GenerationType.AUTO}
>> >> > > >   var id : Long = _
>>
>> >> > > >   @Column{val unique = true, val nullable = false}
>> >> > > >   var ordering : Int = _
>>
>> >> > > >   @Column{val unique = true, val nullable = false}
>> >> > > >   var name : String = ""
>>
>> >> > > >   @ManyToOne{val optional = false}
>> >> > > >   var storyBoard : StoryBoard = _
>> >> > > > }
>>
>> >> > > You almost certainly need some scala.reflect.BeanProperty annotations
>> >> on
>> >> > > your fields.
>>
>> >> > > cheers,
>> >> > > Eric
>>
>> >> > > --
>> >> > > Eric Bowman
>> >> > > Boboco Ltd
>> >> > > ebow...@boboco.ie
>> >> > >http://www.boboco.ie/ebowman/pubkey.pgp
>> >> > > +35318394189/+353872801532<
>> >>http://www.boboco.ie/ebowman/pubkey.pgp%0A+35318394189/+353872801532>
>
> >
>

--~--~-~--~~~---~--~~
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: JPA and auto generation of id

2009-06-24 Thread David Persons

Thanks for all the answers guys.

I managed to fix the id problem, I needed the Hibernate specific class
GenericGenerator to fix it, which of cource is less pretty then using
only JPA. Someone has an example of how to make it work with MySql and
only JPA annotations? Current version:

@Entity
class Scene {
  @Id
  @GenericGenerator{val name="hibernate-increment", val
strategy="increment"}
  @GeneratedValue{val strategy = GenerationType.SEQUENCE, val
generator = "hibernate-increment"}
  var id : Long = _

  @Column{val unique = true, val nullable = false}
  var ordering : Int = _

  @Column{val unique = true, val nullable = false}
  var name : String = ""

  @ManyToOne{val optional = false}
  var storyBoard : StoryBoard = _
}

However, now I get an org.hibernate.PropertyValueException: not-null
property references a null or transient value:
model.Scene.storyBoard :-s I tried a lot of things already, the
corresponding StoryBoard is saved and not null, so I guess it has to
be transient. Merging the StoryBoard however still gives the same
error..

I tried to get JPA and Lift working together in the same way as in the
JPADemo example.. Is it the use of MySql which prevents the example
from working for me?

regards,
David

On 23 jun, 00:54, Derek Chen-Becker  wrote:
> Also, what does the schema for the entity's table look like?
>
> On Mon, Jun 22, 2009 at 4:54 PM, Derek Chen-Becker 
> wrote:
>
> > Mind posting the snippet of code where you're saving the instance? A merge
> > should interpret a null ID as a fresh instance, and a persist should just
> > save it.
>
> > Derek
>
> > On Mon, Jun 22, 2009 at 1:50 PM, David Persons wrote:
>
> >> I am using MySql (5). After setting the hibernate.dialect to
> >> org.hibernate.dialect.MySQLDialect in my persistence.xml file, I get a
> >> org.hibernate.AssertionFailure: null id :-s
>
> >> cheers
>
> >> On 22 jun, 19:18, Derek Chen-Becker  wrote:
> >> > That's not accurate, at least with Hibernate. By putting the annotations
> >> on
> >> > vars, the compiler ends up putting them on the internal fields, which
> >> then
> >> > forces Hibernate into a field-based persistence model and not a
> >> > getter/setter based one. The SQLGrammarException is most likely what the
> >> > other people have said. If you're in Oracle or PostgreSQL, for instance,
> >> you
> >> > need a sequence set up for the auto identity model. What database are
> >> you
> >> > using?
>
> >> > Derek
>
> >> > On Mon, Jun 22, 2009 at 8:54 AM, Eric Bowman  wrote:
>
> >> > > David Persons wrote:
> >> > > > Hello guys,
>
> >> > > > I get a org.hibernate.exception.SQLGrammarException: could not get
> >> or
> >> > > > update next value error everytime I try to save the following
> >> Entity:
>
> >> > > > @Entity
> >> > > > class Scene {
> >> > > >   @Id
> >> > > >   @GeneratedValue(){val strategy = GenerationType.AUTO}
> >> > > >   var id : Long = _
>
> >> > > >   @Column{val unique = true, val nullable = false}
> >> > > >   var ordering : Int = _
>
> >> > > >   @Column{val unique = true, val nullable = false}
> >> > > >   var name : String = ""
>
> >> > > >   @ManyToOne{val optional = false}
> >> > > >   var storyBoard : StoryBoard = _
> >> > > > }
>
> >> > > You almost certainly need some scala.reflect.BeanProperty annotations
> >> on
> >> > > your fields.
>
> >> > > cheers,
> >> > > Eric
>
> >> > > --
> >> > > Eric Bowman
> >> > > Boboco Ltd
> >> > > ebow...@boboco.ie
> >> > >http://www.boboco.ie/ebowman/pubkey.pgp
> >> > > +35318394189/+353872801532<
> >>http://www.boboco.ie/ebowman/pubkey.pgp%0A+35318394189/+353872801532>

--~--~-~--~~~---~--~~
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: Stax

2009-06-24 Thread jon

I was able to get the latest lift-example application deployed without
a problem: http://helloworld.hoffrocket.staxapps.net/.  It's running
against a mysql DB that they're hosting, not h2.

I got an nginx 502 gateway down with a more substantial app, but their
log files were all blank, so I have no idea what the problem was.

Their deployment mechanism is war/ear based (ear built locally, then
uploaded).  It would be cool if they supported standard mvn layouts
and could just build your war from source.  I'm on a 512kb max upload
and lift-example took 5 minutes to deploy.

- Jon

On Jun 24, 4:21 pm, Tim Nelson  wrote:
> I think they use Gant.http://gant.codehaus.org/
>
>
>
> On Wed, Jun 24, 2009 at 3:10 PM, fan...@gmail.com  wrote:
>
> > Tim Nelson a écrit :
> > [...]
> > > I did install their SDK and from what I can tell it's basically some
> > > Groovy scripts that use Ant + Ivy.
>
> > Gradle perhaps ?http://www.gradle.org/
>
> > --
> > Francois Armand
> >http://fanf42.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] Re: Is Hudson Stuck? 6/24

2009-06-24 Thread Bryan

I'm using http://hudson.scala-tools.org/job/Lift/.

On Jun 24, 9:08 pm, Bryan  wrote:
> Is this the correct URL to check on the status of the Hudson build?
> If so, is it stuck?
>
> --Bryan
--~--~-~--~~~---~--~~
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] Is Hudson Stuck? 6/24

2009-06-24 Thread Bryan

Is this the correct URL to check on the status of the Hudson build?
If so, is it stuck?

--Bryan
--~--~-~--~~~---~--~~
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: New mapper class: MappedEnumString

2009-06-24 Thread Oliver Lambert
Looks very nice.

One thing I'm wondering, what if I wanted the displayed value outside of the
mapper, such as TestTypes.Item1.displayValue. Would you use an implicit
conversion to provide this or is the
display value conceptually always part of a mapper object.

I have a rough implementation called EnumWithDescription, that wraps (not
extends) an Enumeration
and provides a description method on the enumeration value without using an
implicit. I'm wondering
if it might be useful to combine your approach and mine?

cheers
Oliver

On Thu, Jun 25, 2009 at 6:39 AM, Jeppe Nejsum Madsen wrote:

> Hi,
>
> A while ago, I asked if it was possible to use something like MappedEnum
> and have some sensible values inserted into the database instead of
> integers.
>
> I got the feeling this was not the case, so I've created MappedEnumString
> (attached) which maps Enumerations into string values.
>
> Example:
>   object TestTypes extends Enumeration {
>  val Unknown = new Val(0,"??")
>  val Item1 = new Val("XX")
>  val Item2 = new Val("YY")
>   }
>
>  object test extends MappedEnumString(this, TestTypes, 2)
>
> This will store the values, ??, XX or YY in the db. For display
> purposes, it will by default lookup the resource values TestTypes.??,
> TestTypes.XX, TestTypes.YY
>
> You can also calculate the displayed values:
>
>object test2 extends MappedEnumString(this, TestTypes, 2) {
>override def _valueToDisplayString(v:Enumeration#Value) = v match {
>case TestTypes.Item1 => "Item1Display"
>case TestTypes.Item2 => "Item2Display"
>case _ => "Unknown x ItemDisplay"
>   }
>}
>
> I'm by no means a Scala/Lift expert so I may have overlooked stuff, so
> feel free to comment :-)
>
> /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: Anyone working on the flot widget?

2009-06-24 Thread Francois Bertrand

Hi Jeppe

Great to see you are interested in the flot widget.

My current to-do list for the flot widget, is:

- create more Lift JsExp and JsCmd to modify a already displayed flot
graph.  They should be used in AJAX and Comet applications

- update to a more recent version of the javascrrit widget

- create the test demo app,

- make the creation of FlotOptions, FlotLinesOptions, etc, less
verbose.  I hope that Scala 2.8 Named and Default Arguments will help.

- create a high level mechanism to display Lift's Record

I appreciate any help.

Francois


On Jun 24, 4:49 am, Jeppe Nejsum Madsen  wrote:
> On 24 Jun 2009, Timothy Perrett wrote:
>
> > I've not spoken with Francois for some time, but I'll ask him next
> > time he's online if he's able to make changes to the flot stuff. He's
> > based in Chilli so should be online later on.
>
> Thanks. I'm more than willing to spend some time on this (and share the
> results :-) since we need it, but having the original author on board
> would be most helpful.
>
> /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: Stax

2009-06-24 Thread Tim Nelson
I think they use Gant. http://gant.codehaus.org/

On Wed, Jun 24, 2009 at 3:10 PM, fan...@gmail.com  wrote:

>
> Tim Nelson a écrit :
> [...]
> > I did install their SDK and from what I can tell it's basically some
> > Groovy scripts that use Ant + Ivy.
>
> Gradle perhaps ? http://www.gradle.org/
>
>
> --
> Francois Armand
> http://fanf42.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] New mapper class: MappedEnumString

2009-06-24 Thread Jeppe Nejsum Madsen
Hi,

A while ago, I asked if it was possible to use something like MappedEnum
and have some sensible values inserted into the database instead of
integers.

I got the feeling this was not the case, so I've created MappedEnumString
(attached) which maps Enumerations into string values.

Example:
   object TestTypes extends Enumeration {
  val Unknown = new Val(0,"??")
  val Item1 = new Val("XX")
  val Item2 = new Val("YY")
   }

  object test extends MappedEnumString(this, TestTypes, 2)

This will store the values, ??, XX or YY in the db. For display
purposes, it will by default lookup the resource values TestTypes.??,
TestTypes.XX, TestTypes.YY

You can also calculate the displayed values:

object test2 extends MappedEnumString(this, TestTypes, 2) {
override def _valueToDisplayString(v:Enumeration#Value) = v match {
case TestTypes.Item1 => "Item1Display"
case TestTypes.Item2 => "Item2Display"
case _ => "Unknown x ItemDisplay"
   }
}

I'm by no means a Scala/Lift expert so I may have overlooked stuff, so
feel free to comment :-)

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



MappedEnumString.scala
Description: MappedEnumString.scala


[Lift] Re: Stax

2009-06-24 Thread fan...@gmail.com

Tim Nelson a écrit :
[...]
> I did install their SDK and from what I can tell it's basically some 
> Groovy scripts that use Ant + Ivy.

Gradle perhaps ? http://www.gradle.org/


-- 
Francois Armand
http://fanf42.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] Re: Stax

2009-06-24 Thread Meredith Gregory
David,

Cool. About 6 weeks ago i started down the path of evaluating them, but saw
no free service and stopped; and then the GAE noise began.

Best wishes,

--greg

On Wed, Jun 24, 2009 at 12:08 PM, David Pollak <
feeder.of.the.be...@gmail.com> wrote:

> They will have a free level
>
> On Jun 24, 2009 11:46 AM, "Naftoli Gugenheim" 
> wrote:
>
> Anyone know what kind of pricing they have? Do they have a free level like
> GAE?
>
>
> On Wed, Jun 24, 2009 at 12:43 PM, David Pollak <
> feeder.of.the.be...@gmail.com> wrote:
>
>> > > > > On Wed, Jun 24, 2009 at 9:02 AM, Timothy Perrett
>>  wrote: >> >> >> A...
>>
>> > Lift, the simply functional web framework http://liftweb.net >
>> Beginning Scala http://www.apress.c...
>>
>
> >
>


-- 
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] Re: Stax

2009-06-24 Thread David Pollak
They will have a free level

On Jun 24, 2009 11:46 AM, "Naftoli Gugenheim"  wrote:

Anyone know what kind of pricing they have? Do they have a free level like
GAE?

On Wed, Jun 24, 2009 at 12:43 PM, David Pollak <
feeder.of.the.be...@gmail.com> wrote:

> > > > > On Wed, Jun 24, 2009 at 9:02 AM, Timothy Perrett
>  wrote: >> >> >> A...
>
> > Lift, the simply functional web framework http://liftweb.net > Beginning
> Scala http://www.apress.c...
>

--~--~-~--~~~---~--~~ You received this
message because you are sub...

--~--~-~--~~~---~--~~
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: Stax

2009-06-24 Thread Tim Nelson
Although it's not in the docs, they do have a Lift 1.0 template that's at:
http://stax-downloads.s3.amazonaws.com/app-templates/0.3/lift-1.0.zip

This is normally downloaded automatically by their SDK, but you can download
it directly if you want to see what's in it without installing the SDK.

I don't see any reason that one couldn't make a new Maven archetype that is
Stax compatible.

However, it appears that, currently, you are required to use their SDK to
deploy apps. This was intentional on their part as they were worried users
would be turned off if they tried to load existing apps and had problems
with them, since there are certain limitations. There are problems with
Grails apps at the moment because it has it's own build system that
conflicts with Stax's SDK and they are working on an API that would allow
using a separate build system that calls the Stax API for deployment. This
would probably allow for a Maven plugin to be built for deploying Stax apps.

There's more details in this post from their forum:
http://developer.stax.net/forum/topics/grails-help-me-and-i-can-help

I did install their SDK and from what I can tell it's basically some Groovy
scripts that use Ant + Ivy.

Tim

On Wed, Jun 24, 2009 at 11:43 AM, David Pollak <
feeder.of.the.be...@gmail.com> wrote:

>
>
> On Wed, Jun 24, 2009 at 9:02 AM, Timothy Perrett 
> wrote:
>
>>
>> Agreed - this does really look very good... DPP, do you know how they
>> are doing the generation of applications? I guess they must have some
>> templating system and im just wondering if its something like our
>> existing archetypes and if they could be modified to become "stax
>> compatible" or whatever.
>
>
> I don't know, but this is a good question to ask them.
>
>
>>
>>
>> Cheers, Tim
>>
>> On Jun 24, 3:03 pm, "marius d."  wrote:
>> > Would be neat to have a Lift application template when creating a new
>> > stax app. And the fact they are using Amazon EC2 is really great.
>> >
>> > Br's,
>> > Marius
>> >
>> > On Jun 24, 4:53 pm, David Pollak 
>> > wrote:
>> >
>> >
>> >
>> > > Folks,
>> > > The folks in the ESME project have been hosting demo versions of ESME
>> onhttp://stax.net/
>> >
>> > > I had the pleasure of speaking with the CEO of
>> > > Stax yesterday.  I really like his vision of where he wants to take
>> > > Stax.  Plus, I think that Stax offers everything that GAE offers plus
>> > > a lot more flexibility and potential future growth.
>> >
>> > > One of the things I'm not so good with is figuring out the details of
>> > > what is needed for a given technology to be useful for an audience as
>> > > broad as the Lift community... I don't know what kinds of things are
>> > > necessary to have on the toolchain.
>> >
>> > > Could a few of you play with Stax and put together a list of stuff
>> you'd
>> > > like to see in Stax with respect to Lift.  Having that list will help
>> guide
>> > > the Stax folks to making Lift support even better.
>> >
>> > > 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
>>
>>
>
>
> --
> 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: Modify CRUDify XHTML

2009-06-24 Thread Naftoli Gugenheim
How would you customize the edit view, say to allow editing all child
entities on the same screen?

On Wed, Jun 24, 2009 at 2:01 PM, Jeppe Nejsum Madsen wrote:

>
> On 24 Jun 2009, Peter Robinett wrote:
>
>
> > Hi all,
> >
> > I'm using CRUDify on one of my models and I'd like to display some
> > additional data on the view template. I believe that I need to
> > override one of the model definitions with some sort of reference to
> > my own XHTML file. Which one? _viewTemplate? Or perhaps the
> > viewTemplate method?
>
> If you look at the source to CRUDify, you'll see
>
> def viewTemplate(): NodeSeq = pageWrapper(_viewTemplate)
>
> where
>
> def pageWrapper(body: NodeSeq): NodeSeq =
>  
>{
>  body
>}
>  
>
> def _viewTemplate =
>  
>
>  
>
>  
>  
>
>  
>
>  
>
> So the simplest thing is to override _viewTemplate with something similar
> to the above. This should be done on the companion objects where CRUDify
> is mixed in
>
> /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: Stax

2009-06-24 Thread Naftoli Gugenheim
Anyone know what kind of pricing they have? Do they have a free level like
GAE?

On Wed, Jun 24, 2009 at 12:43 PM, David Pollak <
feeder.of.the.be...@gmail.com> wrote:

>
>
> On Wed, Jun 24, 2009 at 9:02 AM, Timothy Perrett 
> wrote:
>
>>
>> Agreed - this does really look very good... DPP, do you know how they
>> are doing the generation of applications? I guess they must have some
>> templating system and im just wondering if its something like our
>> existing archetypes and if they could be modified to become "stax
>> compatible" or whatever.
>
>
> I don't know, but this is a good question to ask them.
>
>
>>
>>
>> Cheers, Tim
>>
>> On Jun 24, 3:03 pm, "marius d."  wrote:
>> > Would be neat to have a Lift application template when creating a new
>> > stax app. And the fact they are using Amazon EC2 is really great.
>> >
>> > Br's,
>> > Marius
>> >
>> > On Jun 24, 4:53 pm, David Pollak 
>> > wrote:
>> >
>> >
>> >
>> > > Folks,
>> > > The folks in the ESME project have been hosting demo versions of ESME
>> onhttp://stax.net/
>> >
>> > > I had the pleasure of speaking with the CEO of
>> > > Stax yesterday.  I really like his vision of where he wants to take
>> > > Stax.  Plus, I think that Stax offers everything that GAE offers plus
>> > > a lot more flexibility and potential future growth.
>> >
>> > > One of the things I'm not so good with is figuring out the details of
>> > > what is needed for a given technology to be useful for an audience as
>> > > broad as the Lift community... I don't know what kinds of things are
>> > > necessary to have on the toolchain.
>> >
>> > > Could a few of you play with Stax and put together a list of stuff
>> you'd
>> > > like to see in Stax with respect to Lift.  Having that list will help
>> guide
>> > > the Stax folks to making Lift support even better.
>> >
>> > > 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
>>
>>
>
>
> --
> 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: Can't embed a snippet

2009-06-24 Thread Kris Nuttycombe

Perhaps something a touch more intuitive like ? It
would feel odd to have to tell lift not to ignore stuff.

Kris

On Wed, Jun 24, 2009 at 9:49 AM, David
Pollak wrote:
> We should probably have a  tag to surround stuff like
> this and to complement the  tag.  Anyone want to add that
> snippet?
>
> On Wed, Jun 24, 2009 at 8:36 AM, Derek Chen-Becker 
> wrote:
>>
>> Yes. Since it's a full template and not a fragment (using > />) it has to conform to normal XML rules. In particular, XML can only have
>> one root element.
>>
>> Derek
>>
>> On Wed, Jun 24, 2009 at 9:08 AM, Nolan Darilek 
>> wrote:
>>>
>>> On 06/24/2009 09:40 AM, Derek Chen-Becker wrote:
>>> > Wait a second. I have plenty of templates that have multiple elements
>>> > in them. What exactly is the problem you're seeing here?
>>> >
>>> Using 1.1, I have the following in templates-hidden/welcome.html:
>>>
>>> Welcome
>>>
>>> Put welcome details here.
>>>
>>> Running mvn test gives me the following failure report:
>>>
>>>
>>> ---
>>> Test set: info.thewordnerd.therascribe.AppTest
>>>
>>> ---
>>> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.8 sec
>>> <<< FAILURE!
>>> testXml(info.thewordnerd.therascribe.AppTest)  Time elapsed: 1.474 sec
>>> <<< FAILURE!
>>> junit.framework.AssertionFailedError: Malformed XML in 1 file:
>>> src/main/webapp/templates-hidden/welcome.html
>>>     at junit.framework.Assert.fail(Assert.java:47)
>>>     at info.thewordnerd.therascribe.AppTest.testXml(AppTest.scala:72)
>>> ..
>>>
>>>  From the surefire report:
>>>
>>> Malformed XML in 1 file:
>>> src/main/webapp/templates-hidden/welcome.html
>>> 
>>> :3:70: document must contain exactly one element
>>>                                                                      ^
>>> 
>>>
>>> Surrounding it in a div fixes that. Must be a new addition in 1.1?
>>>
>>>
>>>
>>
>>
>>
>
>
>
> --
> 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: Modify CRUDify XHTML

2009-06-24 Thread Jeppe Nejsum Madsen

On 24 Jun 2009, Peter Robinett wrote:


> Hi all,
> 
> I'm using CRUDify on one of my models and I'd like to display some
> additional data on the view template. I believe that I need to
> override one of the model definitions with some sort of reference to
> my own XHTML file. Which one? _viewTemplate? Or perhaps the
> viewTemplate method?

If you look at the source to CRUDify, you'll see

def viewTemplate(): NodeSeq = pageWrapper(_viewTemplate)

where

def pageWrapper(body: NodeSeq): NodeSeq =
  
{
  body
}
  

def _viewTemplate =
  

  

  
  

  

  

So the simplest thing is to override _viewTemplate with something similar
to the above. This should be done on the companion objects where CRUDify
is mixed in

/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: Another backtrace on reload

2009-06-24 Thread Naftoli Gugenhem

I had the same problem a while ago. I'm not sure if I fixed it then, but I 
think it had to do with the db still being open possibly. When the code changes 
does the servlet get undeployed?
You might need to run derby in server mode.
Lately I've been launching jetty without maven, and to get it to reload eclipse 
calls an ant script that touches the context.xml. I'm using h2 in tcp mode.
Another option is JavaRebel which often obviates the need to redeploy.
Sorry I can't help you better--I'm interested in any more information there is 
about this too.

-
David Pollak wrote:

I won't have a chance to look at it until next week, but maybe somebody else
could step in here and help.

On Wed, Jun 24, 2009 at 7:16 AM, Nolan Darilek wrote:

>
> On 06/24/2009 08:54 AM, David Pollak wrote:
> > Are you using JNDI or your own connection manager to connect to the
> RDBMS?
> >
> I'm new to this, but I'm guessing the latter. In any case, I haven't
> touched whatever values the snapshot sets up in Boot.scala, nor have I
> set any properties, so it's stock Derby.
>
> >
>


-- 
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: Modify CRUDify XHTML

2009-06-24 Thread Derek Chen-Becker
Well, it's the viewTemplate method, but it's supposed to return a NodeSeq,
so if you're pulling from a file you'll need to do the file load yourself.
You can do that with LiftRules.loadResourceAsXml:

...
override def viewTemplate = LiftRules.loadResourceAsXml("foo") openOr
Error loading template
...

Derek

On Wed, Jun 24, 2009 at 11:10 AM, Peter Robinett wrote:

>
> Hi all,
>
> I'm using CRUDify on one of my models and I'd like to display some
> additional data on the view template. I believe that I need to
> override one of the model definitions with some sort of reference to
> my own XHTML file. Which one? _viewTemplate? Or perhaps the
> viewTemplate method?
>
> Thanks,
> Peter Robinett
>
> >
>

--~--~-~--~~~---~--~~
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: Can't embed a snippet

2009-06-24 Thread Derek Chen-Becker
I've added an issue for this.

On Wed, Jun 24, 2009 at 9:49 AM, David Pollak  wrote:

> We should probably have a  tag to surround stuff like
> this and to complement the  tag.  Anyone want to add that
> snippet?
>
>
> On Wed, Jun 24, 2009 at 8:36 AM, Derek Chen-Becker 
> wrote:
>
>> Yes. Since it's a full template and not a fragment (using > />) it has to conform to normal XML rules. In particular, XML can only have
>> one root element.
>>
>> Derek
>>
>>
>> On Wed, Jun 24, 2009 at 9:08 AM, Nolan Darilek wrote:
>>
>>>
>>> On 06/24/2009 09:40 AM, Derek Chen-Becker wrote:
>>> > Wait a second. I have plenty of templates that have multiple elements
>>> > in them. What exactly is the problem you're seeing here?
>>> >
>>> Using 1.1, I have the following in templates-hidden/welcome.html:
>>>
>>> Welcome
>>>
>>> Put welcome details here.
>>>
>>> Running mvn test gives me the following failure report:
>>>
>>>
>>> ---
>>> Test set: info.thewordnerd.therascribe.AppTest
>>>
>>> ---
>>> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.8 sec
>>> <<< FAILURE!
>>> testXml(info.thewordnerd.therascribe.AppTest)  Time elapsed: 1.474 sec
>>> <<< FAILURE!
>>> junit.framework.AssertionFailedError: Malformed XML in 1 file:
>>> src/main/webapp/templates-hidden/welcome.html
>>> at junit.framework.Assert.fail(Assert.java:47)
>>> at info.thewordnerd.therascribe.AppTest.testXml(AppTest.scala:72)
>>> ..
>>>
>>>  From the surefire report:
>>>
>>> Malformed XML in 1 file:
>>> src/main/webapp/templates-hidden/welcome.html
>>> 
>>> :3:70: document must contain exactly one element
>>>  ^
>>> 
>>>
>>> Surrounding it in a div fixes that. Must be a new addition in 1.1?
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> --
> 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: So where is that OAuth?

2009-06-24 Thread jon

I've been working on the provider side of oauth to authenticate api
calls.

I was looking at the http-authentication example, but I'm not sure if
want to go that route.  I would like to be able to specify
authentication for paths in the same place that I define them (in a
DispatchPF).

I'd also like to be able to pass down a Box[(consumer, Box[token])] to
my response functions.

This is what I have so far.  I'm fairly new to scala/lift, so any
pointers would be appreciated:

object RestAPI extends XMLApiHelper{

//OAuth takes to functions for looking up the secrets
associated with the consumer and token keys
   //trivial functions here for testing, but would be replaced
with DB call
val oauth = OAuth(c => c, t => t)

def dispatch: LiftRules.DispatchPF = {
  case Req(List("api","user",userid), "", GetRequest) =>
() => requireToken(showUser(userid))

   }

def showUser(userid: String) (consumer: Consumer, token: Token):
LiftResponse = {
  val e: Box[NodeSeq] =
  for(r <- User.find(userid.toLong)) yield {
r.toXML
  }
  e
}

   def unauth(message: String) = new XhtmlResponse(
{message}, Full("text/xml"),
 Nil,
 Nil,
 401, false)

   def requireToken(f: (Consumer, Token) => LiftResponse):
LiftResponse = {
 oauth.verify_signature match {
   case Full((c, Full(t))) => f(c, t)
   case _ => unauth("Authentication failed")
 }
   }

   def requireSigned(f: (Consumer) => LiftResponse): LiftResponse = {
 oauth.verify_signature match {
   case Full((c, _)) => f(c)
   case _ => unauth("Invalid oauth signature")
 }
   }

}

On Jun 22, 12:36 pm, DFectuoso  wrote:
> Well i will start working on that tonight(after work of course) and
> keep you guys updated! Cheers!
>
> On Jun 22, 8:59 am, "marius d."  wrote:
>
>
>
> > On Jun 22, 3:25 am, DFectuoso  wrote:
>
> > > Well i went ahead and learn a lot from the lift-openId implementation
> > > and understand what I would need to do have lift-OAuthworking
>
> > > It seems like i could do two things:
> > > 1) Get aOAuthjava library that allows me to post, get, login and
> > > logout then create aOAuth.scala file where i create a trait of the
> > >OAuthHandler that would access to this methods, then create a object
> > > that extends from that trait; Then create a OAuthProtoUser.scala where
> > > I would have a trait for the MetaOAuthProtoUser with the Xhtml for
> > > login, override the menus that i would not use and perform the login
> > > and logout of the user as well as the post and get methods. Finally
> > > create a trait for the OAuthProtoUser that would allow me to store
> > > information about the user.
>
> > Besides Proto stuff we'd need an abstraction overOAuthartifacts.
> > Essentially a wrapper over their Java library.
>
> > > 2) Go ahead and have the login,logout, post and get methods on the
> > >OAuth.scala actually do the logic to get the tokens without a java
> > > library, this would mean creating some way of signing a url and body
> > > to post and get stuff from the request, access and user-auth Token Url
> > > or an url in the service.
>
> > > I have absolutely no experience with scala, java or lift but I really
> > > want to get some(by doing this type of stuff). So what do you think is
> > > better(for me to learn, for lift and for you).
>
> > I think it would be a good exercise. Once you're done with it we could
> > probably review it and maybe it'll get its way into Lift if some
> > committer doesn't implement it in the mean time, but regardless would
> > be a good exercise for you.
>
> > > Also, what part of this abstraction(and how) is the one to set the
> > > consumer_key, secret_key and the request urls?
>
> > InOAuthworld consumer secret and consumer key are somehow invariants
> > as they impersonate a trusted service. So I would put them into a
> > Scala object where user can just set these quantities from Boot.
>
> > > Finally; a uber noob question, what is the equivalent of curl(php) or
> > > urllib/urlopen(python) that i would use in the second option to
> > > actually make the http request to ther other site? I think its a
> > > servlet but some trivial example on this would really help me =)
>
> > You can just use HttpUrlConnection, or Apache Http client.
>
> > > On Jun 21, 7:18 am, "marius d."  wrote:
>
> > > >OAuthis not implemented yet in Lift still the project folder is
> > > > there. I think Dave wanted to put it there but never got the chance to
> > > > add it.
>
> > > > Br's,
> > > > Marius
>
> > > > On Jun 21, 9:29 am, DFectuoso  wrote:
>
> > > > > Im trying to integrateOAuth(with twitter) in one of my projects...
> > > > > and i saw the lift-oauth, but i cant find the code, documentation or
> > > > > examples around this module; so i guess either its somewhere else or
> > > > > people is doing their twitt

[Lift] Modify CRUDify XHTML

2009-06-24 Thread Peter Robinett

Hi all,

I'm using CRUDify on one of my models and I'd like to display some
additional data on the view template. I believe that I need to
override one of the model definitions with some sort of reference to
my own XHTML file. Which one? _viewTemplate? Or perhaps the
viewTemplate method?

Thanks,
Peter Robinett

--~--~-~--~~~---~--~~
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: Stax

2009-06-24 Thread David Pollak
On Wed, Jun 24, 2009 at 9:02 AM, Timothy Perrett wrote:

>
> Agreed - this does really look very good... DPP, do you know how they
> are doing the generation of applications? I guess they must have some
> templating system and im just wondering if its something like our
> existing archetypes and if they could be modified to become "stax
> compatible" or whatever.


I don't know, but this is a good question to ask them.


>
>
> Cheers, Tim
>
> On Jun 24, 3:03 pm, "marius d."  wrote:
> > Would be neat to have a Lift application template when creating a new
> > stax app. And the fact they are using Amazon EC2 is really great.
> >
> > Br's,
> > Marius
> >
> > On Jun 24, 4:53 pm, David Pollak 
> > wrote:
> >
> >
> >
> > > Folks,
> > > The folks in the ESME project have been hosting demo versions of ESME
> onhttp://stax.net/
> >
> > > I had the pleasure of speaking with the CEO of
> > > Stax yesterday.  I really like his vision of where he wants to take
> > > Stax.  Plus, I think that Stax offers everything that GAE offers plus
> > > a lot more flexibility and potential future growth.
> >
> > > One of the things I'm not so good with is figuring out the details of
> > > what is needed for a given technology to be useful for an audience as
> > > broad as the Lift community... I don't know what kinds of things are
> > > necessary to have on the toolchain.
> >
> > > Could a few of you play with Stax and put together a list of stuff
> you'd
> > > like to see in Stax with respect to Lift.  Having that list will help
> guide
> > > the Stax folks to making Lift support even better.
> >
> > > 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
> >
>


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

2009-06-24 Thread Timothy Perrett

Agreed - this does really look very good... DPP, do you know how they
are doing the generation of applications? I guess they must have some
templating system and im just wondering if its something like our
existing archetypes and if they could be modified to become "stax
compatible" or whatever.

Cheers, Tim

On Jun 24, 3:03 pm, "marius d."  wrote:
> Would be neat to have a Lift application template when creating a new
> stax app. And the fact they are using Amazon EC2 is really great.
>
> Br's,
> Marius
>
> On Jun 24, 4:53 pm, David Pollak 
> wrote:
>
>
>
> > Folks,
> > The folks in the ESME project have been hosting demo versions of ESME 
> > onhttp://stax.net/
>
> > I had the pleasure of speaking with the CEO of
> > Stax yesterday.  I really like his vision of where he wants to take
> > Stax.  Plus, I think that Stax offers everything that GAE offers plus
> > a lot more flexibility and potential future growth.
>
> > One of the things I'm not so good with is figuring out the details of
> > what is needed for a given technology to be useful for an audience as
> > broad as the Lift community... I don't know what kinds of things are
> > necessary to have on the toolchain.
>
> > Could a few of you play with Stax and put together a list of stuff you'd
> > like to see in Stax with respect to Lift.  Having that list will help guide
> > the Stax folks to making Lift support even better.
>
> > 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: Can't embed a snippet

2009-06-24 Thread David Pollak
We should probably have a  tag to surround stuff like
this and to complement the  tag.  Anyone want to add that
snippet?

On Wed, Jun 24, 2009 at 8:36 AM, Derek Chen-Becker wrote:

> Yes. Since it's a full template and not a fragment (using  />) it has to conform to normal XML rules. In particular, XML can only have
> one root element.
>
> Derek
>
>
> On Wed, Jun 24, 2009 at 9:08 AM, Nolan Darilek wrote:
>
>>
>> On 06/24/2009 09:40 AM, Derek Chen-Becker wrote:
>> > Wait a second. I have plenty of templates that have multiple elements
>> > in them. What exactly is the problem you're seeing here?
>> >
>> Using 1.1, I have the following in templates-hidden/welcome.html:
>>
>> Welcome
>>
>> Put welcome details here.
>>
>> Running mvn test gives me the following failure report:
>>
>>
>> ---
>> Test set: info.thewordnerd.therascribe.AppTest
>>
>> ---
>> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.8 sec
>> <<< FAILURE!
>> testXml(info.thewordnerd.therascribe.AppTest)  Time elapsed: 1.474 sec
>> <<< FAILURE!
>> junit.framework.AssertionFailedError: Malformed XML in 1 file:
>> src/main/webapp/templates-hidden/welcome.html
>> at junit.framework.Assert.fail(Assert.java:47)
>> at info.thewordnerd.therascribe.AppTest.testXml(AppTest.scala:72)
>> ..
>>
>>  From the surefire report:
>>
>> Malformed XML in 1 file:
>> src/main/webapp/templates-hidden/welcome.html
>> 
>> :3:70: document must contain exactly one element
>>  ^
>> 
>>
>> Surrounding it in a div fixes that. Must be a new addition in 1.1?
>>
>>
>>
>>
>
> >
>


-- 
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: Another backtrace on reload

2009-06-24 Thread David Pollak
I won't have a chance to look at it until next week, but maybe somebody else
could step in here and help.

On Wed, Jun 24, 2009 at 7:16 AM, Nolan Darilek wrote:

>
> On 06/24/2009 08:54 AM, David Pollak wrote:
> > Are you using JNDI or your own connection manager to connect to the
> RDBMS?
> >
> I'm new to this, but I'm guessing the latter. In any case, I haven't
> touched whatever values the snapshot sets up in Boot.scala, nor have I
> set any properties, so it's stock Derby.
>
> >
>


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

2009-06-24 Thread David Pollak
On Wed, Jun 24, 2009 at 7:06 AM, Mark Lynn  wrote:

>
> Can you use actors with Stax?
>

Yes.  And MySQL, so there's no persistence lock-in like with BigTable.


> My understanding was that GAE could not support actors.
>
> Mark Lynn
> Sabado Technologies
>
>
> On Jun 24, 2009, at 9:53 AM, David Pollak wrote:
>
> Folks,
> The folks in the ESME project have been hosting demo versions of ESME on
> http://stax.net/
>
> I had the pleasure of speaking with the CEO of
> Stax yesterday.  I really like his vision of where he wants to take Stax.  
> Plus, I think that Stax offers everything that GAE offers plus a lot more 
> flexibility and potential future growth.
>
>
> One of the things I'm not so good with is figuring out the details of what is 
> needed for a given technology to be useful for an audience as broad as the 
> Lift community... I don't know what kinds of things are necessary to have on 
> the toolchain.
>
> Could a few of you play with Stax and put together a list of stuff you'd
> like to see in Stax with respect to Lift.  Having that list will help guide
> the Stax folks to making Lift support even better.
>
> 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
>
>
>
>
>
> >
>


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

2009-06-24 Thread Mark Lynn

Can you use actors with Stax? My understanding was that GAE could not  
support actors.

Mark Lynn
Sabado Technologies


On Jun 24, 2009, at 9:53 AM, David Pollak wrote:

> Folks,
>
> The folks in the ESME project have been hosting demo versions of  
> ESME on http://stax.net/
>
> I had the pleasure of speaking with the CEO of Stax yesterday.  I  
> really like his vision of where he wants to take Stax.  Plus, I  
> think that Stax offers everything that GAE offers plus a lot more  
> flexibility and potential future growth.
>
> One of the things I'm not so good with is figuring out the details  
> of what is needed for a given technology to be useful for an  
> audience as broad as the Lift community... I don't know what kinds  
> of things are necessary to have on the toolchain.
>
> Could a few of you play with Stax and put together a list of stuff  
> you'd like to see in Stax with respect to Lift.  Having that list  
> will help guide the Stax folks to making Lift support even better.
>
> 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: Best method to protect most menu items?

2009-06-24 Thread David Pollak
On Wed, Jun 24, 2009 at 7:49 AM, Jeppe Nejsum Madsen wrote:

>
> On Wed, Jun 24, 2009 at 3:25 PM, David Pollak
>  wrote:
>
> >
> > Oh... I get why you did the Hidden thing... I'd do the following:
> > case Full(Req(path, _, _)) if !User.loggedIn_? && path != List("profile",
> "login") && path != path != List("profile", "lost_password") =>
> Loc.EarlyResponse(() =>
> Full(RedirectResponse("/profile/login?returnTo="+S.uri)))
> > If you prefer to do the pattern matching thing, you can return:
> >  new Loc.LocParam{}
> > That's a noop.
>
> Ahh yes (Note to self: Not everything needs to be pattern matched :-)


Guards are your friend.


>
>
> Thanks for the quick solution!
>
> /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: Can't embed a snippet

2009-06-24 Thread Derek Chen-Becker
Yes. Since it's a full template and not a fragment (using )
it has to conform to normal XML rules. In particular, XML can only have one
root element.

Derek

On Wed, Jun 24, 2009 at 9:08 AM, Nolan Darilek wrote:

>
> On 06/24/2009 09:40 AM, Derek Chen-Becker wrote:
> > Wait a second. I have plenty of templates that have multiple elements
> > in them. What exactly is the problem you're seeing here?
> >
> Using 1.1, I have the following in templates-hidden/welcome.html:
>
> Welcome
>
> Put welcome details here.
>
> Running mvn test gives me the following failure report:
>
>
> ---
> Test set: info.thewordnerd.therascribe.AppTest
>
> ---
> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.8 sec
> <<< FAILURE!
> testXml(info.thewordnerd.therascribe.AppTest)  Time elapsed: 1.474 sec
> <<< FAILURE!
> junit.framework.AssertionFailedError: Malformed XML in 1 file:
> src/main/webapp/templates-hidden/welcome.html
> at junit.framework.Assert.fail(Assert.java:47)
> at info.thewordnerd.therascribe.AppTest.testXml(AppTest.scala:72)
> ..
>
>  From the surefire report:
>
> Malformed XML in 1 file:
> src/main/webapp/templates-hidden/welcome.html
> 
> :3:70: document must contain exactly one element
>  ^
> 
>
> Surrounding it in a div fixes that. Must be a new addition in 1.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] Re: Cheap Hosting

2009-06-24 Thread anothertestapp test

I have account with http://javaprovider.net they offer good service
for java hosting

Thanks
Warren

On Jun 16, 7:00 am, Harshad RJ  wrote:
> Mark,
>
> Try VPSLink.
>
> http://vpslink.com/?ref=7J32ZZ
>
> The cheapest plan is about 6.6$ p/mo and you will get a discount of 10% if
> you use the above link (referral program).
>
> I have successfully run scala based servlets + postgresql db on it, with
> performance sufficient for my needs.
>
> I haven't tried Lift on it though.
>
> cheers,
> --
> Harshad RJ
> WebHome   »  http://hrj.wikidot.com
> Classifieds  »  http://uproot.in

--~--~-~--~~~---~--~~
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: Can't embed a snippet

2009-06-24 Thread Nolan Darilek

On 06/24/2009 09:40 AM, Derek Chen-Becker wrote:
> Wait a second. I have plenty of templates that have multiple elements 
> in them. What exactly is the problem you're seeing here?
>
Using 1.1, I have the following in templates-hidden/welcome.html:

Welcome

Put welcome details here.

Running mvn test gives me the following failure report:

---
Test set: info.thewordnerd.therascribe.AppTest
---
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.8 sec 
<<< FAILURE!
testXml(info.thewordnerd.therascribe.AppTest)  Time elapsed: 1.474 sec 
<<< FAILURE!
junit.framework.AssertionFailedError: Malformed XML in 1 file: 
src/main/webapp/templates-hidden/welcome.html
 at junit.framework.Assert.fail(Assert.java:47)
 at info.thewordnerd.therascribe.AppTest.testXml(AppTest.scala:72)
..

 From the surefire report:

Malformed XML in 1 file: 
src/main/webapp/templates-hidden/welcome.html

:3:70: document must contain exactly one element
  ^


Surrounding it in a div fixes that. Must be a new addition in 1.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] Re: Another backtrace on reload

2009-06-24 Thread Nolan Darilek

On 06/24/2009 08:54 AM, David Pollak wrote:
> Are you using JNDI or your own connection manager to connect to the RDBMS?
>
I'm new to this, but I'm guessing the latter. In any case, I haven't 
touched whatever values the snapshot sets up in Boot.scala, nor have I 
set any properties, so it's stock Derby.

--~--~-~--~~~---~--~~
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: Can't embed a snippet

2009-06-24 Thread Derek Chen-Becker
Ah, so this would be a top-level template (no lift:surround).

Derek

On Wed, Jun 24, 2009 at 9:16 AM, Kris Nuttycombe
wrote:

>
> The error was occurring if you had more than a single root element. Thus:
>
> 
>   
>   
> 
>
> works whereas
>
> 
> 
>
> caused the "template not found" erroneous exception before David fixed
> it. Thanks David!
>
> Kris
>
> On Wed, Jun 24, 2009 at 8:40 AM, Derek Chen-Becker
> wrote:
> > Wait a second. I have plenty of templates that have multiple elements in
> > them. What exactly is the problem you're seeing here?
> >
> > Derek
> >
> > On Tue, Jun 23, 2009 at 10:09 PM, Nolan Darilek 
> > wrote:
> >>
> >> Cool deal, mvn test showed me the issue.
> >>
> >> Apparently, templates can only have a single element, I had an  and
> >> a . The book called it a fragment, so this wasn't entirely clear. In
> >> any case, I put a div#welcome around it and now it works fine. Thanks
> >> for the pointer.
> >>
> >>
> >>
> >
> >
> > >
> >
>
> >
>

--~--~-~--~~~---~--~~
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: Deployment questions and little Java web dev experience

2009-06-24 Thread Kris Nuttycombe

I hadn't seen openejb before, thanks for the reference!

Kris

On Wed, Jun 24, 2009 at 8:35 AM, Derek Chen-Becker wrote:
> The line is blurring. With EJB 3.1 (Java EE 6) there is talk of using
> various profiles so that you can essentially deploy a WAR file that
> bootstraps a subset of an application server feature set within a servlet
> container. OpenEJB already does something like this:
>
> http://openejb.apache.org/
>
> Derek
>
> On Tue, Jun 23, 2009 at 1:54 PM, Jeppe Nejsum Madsen 
> wrote:
>>
>> On 23 Jun 2009, Naftoli Gugenhem wrote:
>>
>>
>> > What's the difference between an application server and a servlet
>> > container?
>>
>> Depends on who you ask :-) Application server usually means a J2EE
>> implementation which support things such as EJBs, message services,
>> transaction monitors, database pools (and a servlet container).
>>
>> A servlet container, as the name implies, is a service that can be used
>> to host servlets.
>>
>> So while applications can run using only a servlet container, an
>> "application server" typically means a servlet container and a lot of
>> extra services which you may or (most likely) may not need.
>>
>> /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: Can't embed a snippet

2009-06-24 Thread Kris Nuttycombe

The error was occurring if you had more than a single root element. Thus:


   
   


works whereas




caused the "template not found" erroneous exception before David fixed
it. Thanks David!

Kris

On Wed, Jun 24, 2009 at 8:40 AM, Derek Chen-Becker wrote:
> Wait a second. I have plenty of templates that have multiple elements in
> them. What exactly is the problem you're seeing here?
>
> Derek
>
> On Tue, Jun 23, 2009 at 10:09 PM, Nolan Darilek 
> wrote:
>>
>> Cool deal, mvn test showed me the issue.
>>
>> Apparently, templates can only have a single element, I had an  and
>> a . The book called it a fragment, so this wasn't entirely clear. In
>> any case, I put a div#welcome around it and now it works fine. Thanks
>> for the pointer.
>>
>>
>>
>
>
> >
>

--~--~-~--~~~---~--~~
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: [scala] JPA question

2009-06-24 Thread Derek Chen-Becker
Well, in my real-world experience I've never had very complex models and
I've never used TABLE-PER-CLASS either, so I don't really have a feel for
what's not possible. Generally I think that JPA (which is a subset of
Hibernate) covers a good portion of people's needs for ORM, but it
definitely has some big missing functionality (e.g. no ordered collections
until JPA 2). I think that in this case Greg is pushing the limits on a
relatively unused corner of JPA (I've never seen someone use TABLE-PER-CLASS
before) and he's hitting some bugs. I want to make clear that I think that
what Greg is attempting is entirely possible. My earlier comment about
rolling your own ORM was because I misunderstood what he was doing with
abstract classes. In my mind, there would be a couple of places where you
might want to roll your own stuff:


   1. An existing schema that doesn't map well to an object graph. We have a
   legacy database at work where the brilliant developers decided that nothing
   should be normalized and data can exist in one of four tables based on some
   arcane business logic. You can still build an ORM layer on something like
   this, but essentially all you're doing is creating a thin wrapper on
   ResultSets
   2. You have very specific data that you need to retrieve with possibly
   complex joins, and you need it to be as performant as possible. There are
   some tricks you can do with EJB QL to make it prefetch things, but often you
   can end up with multiple round trips to the database and/or data that you
   don't need being fetched. In certain scenarios I could see this being an
   issue.

This list isn't intended to be exhaustive, these are just the top two that
come to mind. In terms of Hibernate vs others like JPOX, TopLink, etc, I'd
say that Hibernate is a first-class provider and at least equal to the
others.

Derek

On Wed, Jun 24, 2009 at 2:21 AM, TSP  wrote:

>
> Derek
> Would you distinguish between what is achievable in a specific ORM
> such as Hibernate from JPA in this statement or would you think it
> applies to all. I've got to "go with hibernate" in any case because of
> widespread use of UserTypes. Unlike Greg, in my case I can hand-craft
> all my hibernate xml files if I need.
>
> Tim
>
> On Jun 23, 1:46 am, Derek Chen-Becker  wrote:
> > For sufficiently complex relationships, JPA is not a good fit. Beyond a
> > certain point it's usually simpler to roll your own. I think that this is
> > somewhat of a failing of the model, but it's not a simple problem to
> solve
> > in the generic case.
> >
> > Derek
> >
> > On Mon, Jun 22, 2009 at 6:45 PM, Derek Chen-Becker <
> dchenbec...@gmail.com>wrote:
> >
> >
> >
> > > Ah, sorry, I lost track of the thread.
> >
> > > On Mon, Jun 22, 2009 at 4:55 PM, Meredith Gregory <
> > > lgreg.mered...@gmail.com> wrote:
> >
> > >> Derek,
> >
> > >> You are correct and i noted and reported this on Scala on Friday.
> However,
> > >> if you have a chain of the form
> >
> > >> AbstractClass <- Class <-contains- AbstractClass <-Class <-contains-
> ...
> >
> > >> The @MappedSuperclass solution fails at level 2.
> >
> > >> Best wishes,
> >
> > >> --greg
> >
> > >> On Mon, Jun 22, 2009 at 3:52 PM, Derek Chen-Becker <
> dchenbec...@gmail.com
> > >> > wrote:
> >
> > >>> Something I just want to throw out into the discussion: Since you're
> > >>> using table-per-class, having a @Table annotation on
> AbstractContainer
> > >>> doesn't do anything since abstract classes can't have instances.
> Tables are
> > >>> only generated for abstract classes if you're using a JOINED
> inheritance
> > >>> strategy. You might want to look at using the MappedSuperclass
> annotation
> > >>> for the abstract base class instead. If I change the
> AbstractContainer def
> > >>> to:
> >
> > >>> @MappedSuperclass
> > >>> public abstract class AbstractContainer implements
> java.io.Serializable {
> >
> > >>> and then modify MySampleFuContainer to:
> >
> > >>> public class MySampleFuContainer extends AbstractContainer {
> >
> > >>> then I seem to get the proper schema:
> >
> > >>> create table lingo_production.MySampleFuContainer_table (
> > >>> id varchar(255) not null,
> > >>> uuid varchar(255),
> > >>> mysamplingmumble__idSuper varchar(255),
> > >>> primary key (id),
> > >>> unique (uuid)
> > >>> );
> >
> > >>> Having said that, I think that the behavior you're currently seeing
> > >>> appears to be a bug.
> >
> > >>> Derek
> >
> > >>> On Mon, Jun 22, 2009 at 3:43 PM, Meredith Gregory <
> > >>> lgreg.mered...@gmail.com> wrote:
> >
> >  Kris,
> >
> >  Here<
> http://svn.biosimilarity.com/src/open/codesamples/trunk/hibernate/>is a
> link to the self-contained example that now uses just Java. i included
> >  the target dir in the repo to speed up investigation, but you can
> just blow
> >  that away and build from scratch. The example is currently written
> to
> >  Java1.6, but also exhibits the same behavior under Ja

[Lift] Re: Best method to protect most menu items?

2009-06-24 Thread Jeppe Nejsum Madsen

On Wed, Jun 24, 2009 at 3:25 PM, David Pollak
 wrote:

>
> Oh... I get why you did the Hidden thing... I'd do the following:
> case Full(Req(path, _, _)) if !User.loggedIn_? && path != List("profile", 
> "login") && path != path != List("profile", "lost_password") => 
> Loc.EarlyResponse(() => 
> Full(RedirectResponse("/profile/login?returnTo="+S.uri)))
> If you prefer to do the pattern matching thing, you can return:
>  new Loc.LocParam{}
> That's a noop.

Ahh yes (Note to self: Not everything needs to be pattern matched :-)

Thanks for the quick solution!

/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: Can't embed a snippet

2009-06-24 Thread Derek Chen-Becker
Wait a second. I have plenty of templates that have multiple elements in
them. What exactly is the problem you're seeing here?

Derek

On Tue, Jun 23, 2009 at 10:09 PM, Nolan Darilek wrote:

>
> Cool deal, mvn test showed me the issue.
>
> Apparently, templates can only have a single element, I had an  and
> a . The book called it a fragment, so this wasn't entirely clear. In
> any case, I put a div#welcome around it and now it works fine. Thanks
> for the pointer.
>
>
> >
>

--~--~-~--~~~---~--~~
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: Misleading error: The Requested URL /admin/orders/new was not found on this server

2009-06-24 Thread Derek Chen-Becker
Just the other day Lift said it was going to go for a short walk after
lunch, but it came back at 2am smelling of cheap vodka. 

On Tue, Jun 23, 2009 at 5:31 PM, David Pollak  wrote:

> I hate it when Lift lies... it sucks rubber donkey lungs!!
>
> I've just checked in code that should make this kind of error much more
> obvious.
>
> I'm sorry for your frustration, but thanks to you and your error report,
> future Lift users will have a much better time.
>
> On Tue, Jun 23, 2009 at 3:31 PM, Trav  wrote:
>
>>
>> The Requested URL /admin/orders/new was not found on this server
>>
>> So I check my SiteMap: Menu(Loc("New Order", "orders" :: "new" ::
>> Nil, ?("New Order")))
>> I check there is a file "orders/new.html" (admin is the web context)
>> Then I read about site maps, and recheck and try new Locs.
>> I study my logs.
>> Hours go by and I'm quite frustrated.
>>
>> Finally it dawns on me that the error message may be lying to me and I
>> start to comment out lines from the new.html file -- presto!
>>
>> Here is the line that I commented out:
>> Full Name
>>
>> Oh, lookie, it's missing a closing td tag.  Cuss this, cuss that
>> commit and go to sleep.  So something else should have caught that
>> (like my IDE), but in the end: lift lied!
>>
>> -Trav
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>
> --
> 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: Deployment questions and little Java web dev experience

2009-06-24 Thread Derek Chen-Becker
The line is blurring. With EJB 3.1 (Java EE 6) there is talk of using
various profiles so that you can essentially deploy a WAR file that
bootstraps a subset of an application server feature set within a servlet
container. OpenEJB already does something like this:

http://openejb.apache.org/

Derek

On Tue, Jun 23, 2009 at 1:54 PM, Jeppe Nejsum Madsen wrote:

>
> On 23 Jun 2009, Naftoli Gugenhem wrote:
>
>
> > What's the difference between an application server and a servlet
> > container?
>
> Depends on who you ask :-) Application server usually means a J2EE
> implementation which support things such as EJBs, message services,
> transaction monitors, database pools (and a servlet container).
>
> A servlet container, as the name implies, is a service that can be used
> to host servlets.
>
> So while applications can run using only a servlet container, an
> "application server" typically means a servlet container and a lot of
> extra services which you may or (most likely) may not need.
>
> /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: Submenus for model-generated views

2009-06-24 Thread Derek Chen-Becker
I haven't looked at the CRUDify trait in a while, but I think that what you
want is something like:

val entries =
  Menu(Loc("Home", List("index"), "Home")) ::
  Menu(Loc("Layous", Layouts.listPath, "Layouts", Layouts.menus: _*) ::
  User.sitemap

Using the listPath method makes sure that you match the actual prefix and
path. In your case, the class is "Layouts", which by default results in a
"Layouts" path prefix, but in your code you're using "layout". If you're
overriding the table name to "layout" then your code should be working, I
think. Also, List and Create are the only two links that should be shown,
but I'm not sure that the current CRUDify code makes the delete, edit and
view Menus hidden.

Derek


On Tue, Jun 23, 2009 at 10:42 AM, Nolan Darilek wrote:

>
> This is something I asked in a subthread, but maybe it deserves its own
> thread in case someone might have the answer but chose to stop reading
> the original, whose subject line isn't really accurate for this question
> anyhow. :)
>
> I have a model that I'm using CRUDify for. I'd like to link the model
> into my sitemap such that it has a single top-level menu item pointing
> to /model/list, at which point the CRUD actions appear. So, basically, I
> want Model.menus to be a series of submenus beneath a menu named for the
> model. Thus far I have:
>
> val entries =
>   Menu(Loc("Home", List("index"), "Home")) ::
>   Menu(Loc("layouts", List("layout", "list"), "Layouts"),
> Layout.menus:_*) ::
>   User.sitemap
>
> This gives me the Layouts menu item, but it doesn't work. Specifically,
> I get a 404 when I click on "Layouts", but not a message telling me that
> /layout/list isn't in the sitemap. From this I assume that /layout/list
> expects to find a filesystem-based template, and whatever magic the
> Layout.menus injects isn't taking.
>
> I've tried a number of variations. I'm also reading chapter 5 of
> Mastering Lift. It could be that the answer is there and obvious, but
> this is all a lot to take in for someone coming from five years of Rails
> and 1.5 of Merb. :)
>
>
> >
>

--~--~-~--~~~---~--~~
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: Managed child entities

2009-06-24 Thread Derek Chen-Becker
Very nice!

On Mon, Jun 22, 2009 at 10:30 PM, Naftoli Gugenheim wrote:

> I was working on something to help make it easier to deal with one to many
> relationships. I'm attaching it (OneToMany.scala) along with a class that
> uses it (partially work in progress), although it's a bit verbose (partially
> because my class names are very long). Advantages include access to the
> children like a collection, and ability to add and remove children but defer
> actually saving it, as well as adding the children before the parent was
> saved and got an id.
> It's not test very thoroughly, and of course any suggestions for
> improvement are more than welcome. I'm planning to try to make something
> similar for many to many 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] Re: Stax

2009-06-24 Thread marius d.

Would be neat to have a Lift application template when creating a new
stax app. And the fact they are using Amazon EC2 is really great.

Br's,
Marius

On Jun 24, 4:53 pm, David Pollak 
wrote:
> Folks,
> The folks in the ESME project have been hosting demo versions of ESME 
> onhttp://stax.net/
>
> I had the pleasure of speaking with the CEO of
> Stax yesterday.  I really like his vision of where he wants to take
> Stax.  Plus, I think that Stax offers everything that GAE offers plus
> a lot more flexibility and potential future growth.
>
> One of the things I'm not so good with is figuring out the details of
> what is needed for a given technology to be useful for an audience as
> broad as the Lift community... I don't know what kinds of things are
> necessary to have on the toolchain.
>
> Could a few of you play with Stax and put together a list of stuff you'd
> like to see in Stax with respect to Lift.  Having that list will help guide
> the Stax folks to making Lift support even better.
>
> 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: Another backtrace on reload

2009-06-24 Thread David Pollak
Are you using JNDI or your own connection manager to connect to the RDBMS?

On Wed, Jun 24, 2009 at 6:50 AM, Nolan Darilek wrote:

>
> I'm getting this one on server reloads if I have mvn scala:cc running in
> one terminal and mvn jetty:run in another. Happens whenever I make a
> code change that gets redeployed:
>
> ERROR - Failed to Boot
> java.lang.NullPointerException: Looking for Connection Identifier
> ConnectionIdentifier(lift) but failed to find either a JNDI data source
> with the name lift or a lift connection manager with the correct name
> at net.liftweb.mapper.DB$$anonfun$3$$anonfun$apply$7.apply(DB.scala:95)
> at net.liftweb.mapper.DB$$anonfun$3$$anonfun$apply$7.apply(DB.scala:95)
> at net.liftweb.util.EmptyBox.openOr(Box.scala:372)
> at net.liftweb.mapper.DB$$anonfun$3.apply(DB.scala:95)
> at net.liftweb.mapper.DB$$anonfun$3.apply(DB.scala:95)
> at net.liftweb.util.EmptyBox.openOr(Box.scala:372)
> at net.liftweb.mapper.DB$.newConnection(DB.scala:89)
> at net.liftweb.mapper.DB$.getConnection(DB.scala:136)
> at net.liftweb.mapper.DB$.use(DB.scala:315)
> at net.liftweb.mapper.Schemifier$.schemify(Schemifier.scala:53)
> at net.liftweb.mapper.Schemifier$.schemify(Schemifier.scala:36)
> at bootstrap.liftweb.Boot.boot(Boot.scala:24)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
>
> net.liftweb.util.ClassHelpers$$anonfun$createInvoker$1.apply(ClassHelpers.scala:408)
> at
>
> net.liftweb.util.ClassHelpers$$anonfun$createInvoker$1.apply(ClassHelpers.scala:406)
> at
>
> net.liftweb.http.DefaultBootstrap$$anonfun$boot$1.apply(LiftRules.scala:1041)
> at
>
> net.liftweb.http.DefaultBootstrap$$anonfun$boot$1.apply(LiftRules.scala:1041)
> at net.liftweb.util.Full.map(Box.scala:330)
> at net.liftweb.http.DefaultBootstrap$.boot(LiftRules.scala:1041)
> at net.liftweb.http.LiftFilter.bootLift(LiftServlet.scala:561)
> at net.liftweb.http.LiftFilter.init(LiftServlet.scala:529)
> at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at
>
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:653)
> at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> at
>
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1239)
> at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
> at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:466)
> at
>
> org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:124)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at
>
> org.mortbay.jetty.plugin.AbstractJettyRunMojo.restartWebApp(AbstractJettyRunMojo.java:446)
> at
>
> org.mortbay.jetty.plugin.AbstractJettyRunMojo$1.filesChanged(AbstractJettyRunMojo.java:407)
> at org.mortbay.util.Scanner.reportBulkChanges(Scanner.java:486)
> at org.mortbay.util.Scanner.reportDifferences(Scanner.java:352)
> at org.mortbay.util.Scanner.scan(Scanner.java:280)
> at org.mortbay.util.Scanner$1.run(Scanner.java:232)
> at java.util.TimerThread.mainLoop(Timer.java:512)
> at java.util.TimerThread.run(Timer.java:462)
> [INFO] Restart completed at Wed Jun 24 08:43:27 CDT 2009
>
>
> >
>


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

2009-06-24 Thread David Pollak
Folks,
The folks in the ESME project have been hosting demo versions of ESME on
http://stax.net/

I had the pleasure of speaking with the CEO of
Stax yesterday.  I really like his vision of where he wants to take
Stax.  Plus, I think that Stax offers everything that GAE offers plus
a lot more flexibility and potential future growth.

One of the things I'm not so good with is figuring out the details of
what is needed for a given technology to be useful for an audience as
broad as the Lift community... I don't know what kinds of things are
necessary to have on the toolchain.

Could a few of you play with Stax and put together a list of stuff you'd
like to see in Stax with respect to Lift.  Having that list will help guide
the Stax folks to making Lift support even better.

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] Another backtrace on reload

2009-06-24 Thread Nolan Darilek

I'm getting this one on server reloads if I have mvn scala:cc running in 
one terminal and mvn jetty:run in another. Happens whenever I make a 
code change that gets redeployed:

ERROR - Failed to Boot
java.lang.NullPointerException: Looking for Connection Identifier 
ConnectionIdentifier(lift) but failed to find either a JNDI data source 
with the name lift or a lift connection manager with the correct name
 at net.liftweb.mapper.DB$$anonfun$3$$anonfun$apply$7.apply(DB.scala:95)
 at net.liftweb.mapper.DB$$anonfun$3$$anonfun$apply$7.apply(DB.scala:95)
 at net.liftweb.util.EmptyBox.openOr(Box.scala:372)
 at net.liftweb.mapper.DB$$anonfun$3.apply(DB.scala:95)
 at net.liftweb.mapper.DB$$anonfun$3.apply(DB.scala:95)
 at net.liftweb.util.EmptyBox.openOr(Box.scala:372)
 at net.liftweb.mapper.DB$.newConnection(DB.scala:89)
 at net.liftweb.mapper.DB$.getConnection(DB.scala:136)
 at net.liftweb.mapper.DB$.use(DB.scala:315)
 at net.liftweb.mapper.Schemifier$.schemify(Schemifier.scala:53)
 at net.liftweb.mapper.Schemifier$.schemify(Schemifier.scala:36)
 at bootstrap.liftweb.Boot.boot(Boot.scala:24)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at 
net.liftweb.util.ClassHelpers$$anonfun$createInvoker$1.apply(ClassHelpers.scala:408)
 at 
net.liftweb.util.ClassHelpers$$anonfun$createInvoker$1.apply(ClassHelpers.scala:406)
 at 
net.liftweb.http.DefaultBootstrap$$anonfun$boot$1.apply(LiftRules.scala:1041)
 at 
net.liftweb.http.DefaultBootstrap$$anonfun$boot$1.apply(LiftRules.scala:1041)
 at net.liftweb.util.Full.map(Box.scala:330)
 at net.liftweb.http.DefaultBootstrap$.boot(LiftRules.scala:1041)
 at net.liftweb.http.LiftFilter.bootLift(LiftServlet.scala:561)
 at net.liftweb.http.LiftFilter.init(LiftServlet.scala:529)
 at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
 at 
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
 at 
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:653)
 at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
 at 
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1239)
 at 
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
 at 
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:466)
 at 
org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:124)
 at 
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
 at 
org.mortbay.jetty.plugin.AbstractJettyRunMojo.restartWebApp(AbstractJettyRunMojo.java:446)
 at 
org.mortbay.jetty.plugin.AbstractJettyRunMojo$1.filesChanged(AbstractJettyRunMojo.java:407)
 at org.mortbay.util.Scanner.reportBulkChanges(Scanner.java:486)
 at org.mortbay.util.Scanner.reportDifferences(Scanner.java:352)
 at org.mortbay.util.Scanner.scan(Scanner.java:280)
 at org.mortbay.util.Scanner$1.run(Scanner.java:232)
 at java.util.TimerThread.mainLoop(Timer.java:512)
 at java.util.TimerThread.run(Timer.java:462)
[INFO] Restart completed at Wed Jun 24 08:43:27 CDT 2009


--~--~-~--~~~---~--~~
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: Error shutting down Jetty instance

2009-06-24 Thread Nolan Darilek

Works for me. Thanks for the quick fix.


--~--~-~--~~~---~--~~
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: Best method to protect most menu items?

2009-06-24 Thread David Pollak
On Wed, Jun 24, 2009 at 12:58 AM, Jeppe Nejsum Madsen wrote:

>
> On 23 Jun 2009, David Pollak wrote:
>
> > Jeppe, I just checked in code (it'll take 45 minutes to hit the Maven
> > repo) that has global LocParams for each SiteMap.  The SiteMap
> > constructor is now:
> >
> > SiteMap(globalParamFuncs: List[PartialFunction[Box[Req],
> > Loc.LocParam]], kids: Menu*)
> >
> > You can put your Redirect stuff in like:
> >
> > List({
> > case _ if !User.loggedIn_? => ...
> > })
>
> Brilliant! Works nicely. I ended up with this
>
>  val menuDispatch:List[PartialFunction[Box[Req], Loc.LocParam]] = List({
>   case Full(Req("profile" :: "login" :: Nil , _, _)) => Hidden
>   case Full(Req("profile" :: "lost_password" :: Nil , _, _)) => Hidden


I would put these Hidden items on the specific menu items rather than
matching against a path.  Locating Hidden with the items to be hidden will
help you and other developers see what the non-global rules are.


>
>   case Full(Req(_, _, _)) if !User.loggedIn_? => Loc.EarlyResponse(()
> => Full(RedirectResponse("/profile/login?returnTo="+S.uri)))


This could be case _ if User.loggedIn_? => or case Full(_) if
User.loggedIn_? =>


>
>})
>
> A couple of questions:
>
> 1) Why the need for Box[Req]? When will it be Empty?
>

If the menu building takes place inside the scope of a CometActor.  There
are times when Lift does stuff outside of the scope of a specific request.
 It's unlikely that this will happen in the normal case, but it could happen
(e.g., someone updates menus in a CometActor).


>
> 2) In the above I had to use Hidden as a dummy value to signal no
> Loc. It might be useful with a Box[Loc.LocParam] as return value?


Oh... I get why you did the Hidden thing... I'd do the following:

case Full(Req(path, _, _)) if !User.loggedIn_? && path != List("profile",
"login") && path != path != List("profile", "lost_password") =>
Loc.EarlyResponse(() =>
Full(RedirectResponse("/profile/login?returnTo="+S.uri)))

If you prefer to do the pattern matching thing, you can return:
 new Loc.LocParam{}

That's a noop.

Thanks,

David


>
>
> /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: Is there any eclipse setup that actually works for lift?

2009-06-24 Thread Ellis

Hello Everyone,

Thanks for all your suggestions and the version numbers -- I'll give
them a try.

I tried NetBeans 6.7RC3 yesterday, btw, but its maven+scala support
has a major bug with regard to compiler errors, so it's no better than
my experience with Eclipse at this time.  (The plugin versions were
Maven 4.2 and Scala Kit 0.15.0)

Cheers,
Ellis


On Jun 23, 6:30 am, Rudi Engelbrecht  wrote:
> Hi Dano
>
> I am using the debugger in IntelliJ IDEA and it works seamlessly -  
> stepping through Scala code - I find stepping through code helps  
> learning the Lift framework.
>
> If you are not committed to using a specific IDE, then trying IntelliJ  
> will be a useful investment - you can download a 30 day trial - it has  
> been my favourite Java IDE for the past 8 years.
>
> Regards
>
> Rudi
>
> Cell: +27 82 551 0582
>
> On 23 Jun 2009, at 12:20 AM, Dano  wrote:
>
>
>
> > Rudi,
>
> > Thanks for posting your Intellij specifics.  Wondering if you are
> > using the debugger and find that it works for your scala/lift
> > debugging?
>
> > Dano
>
> > On Jun 22, 2:57 pm, Rudi Engelbrecht  wrote:
> >> I know you are looking for a working Eclipse configuration, but I  
> >> have
> >> had great success and stability with
>
> >> IntelliJ IDEA 8.1.2
> >> Scala 2.7.4
> >> The Scala plugin for IDEA
> >> Lift 1.0
>
> >> I can do "mvn jetty:run" from the IDE and what is really cool is that
> >> I can set breakpoints and debug the "mvn jetty:run" target from IDEA
> >> and then explore the scala code.
>
> >> Just thought I will post version numbers of a working environment.
>
> >> Regards
>
> >> Rudi
>
> >> On 22 Jun 2009, at 8:35 PM, David Pollak
>
> >>  wrote:
>
> >>> On Mon, Jun 22, 2009 at 11:25 AM, Ellis 
> >>> wrote:
>
> >>> Hello David,
>
> >>> Thanks for your reply.  Do you know whether lift *should* work with
> >>> scala 2.8 when we pull it from the maven repositories?
>
> >>> Lift currently only works with Scala 2.7.4.  You can use Eclipse and
> >>> 2.7.5 to edit Lift files, but Lift must be deployed against 2.7.4.
>
> >>> We will have a branch of Lift (Jorge... you got this running yet)
> >>> building against 2.8, but it will be experimental.
>
> >>> I have experienced a fair number of suboptimalities with Lift and
> >>> Eclipse in the last 3 weeks with the 2.7.5 stable plugin.  I have
> >>> had success recently with NetBeans, IntelliJ, and emacs.
>
> >>>  If so, then
> >>> I'll try deleting my ~/.m2 as Tim suggested.
>
> >>> Thanks,
> >>> Ellis
>
> >>> On Jun 22, 8:14 pm, David Pollak 
> >>> wrote:
>  Ellis,
>  Miles will be back online in a few days, but I suspect that the
> >>> answer is
>  that the 2.8 plugin is the "new generation" and the 2.7.5 stuff is
> >>> going to
>  have bugs. :-(
>
>  Sorry.
>
>  David
>
>  On Mon, Jun 22, 2009 at 11:08 AM, Ellis
> >>>  wrote:
>
> > Hello everyone,
>
> > Does anyone have a setup for eclipse that works like it should?
> >>> By
> > "like it should", I mostly mean that the scala plugin doesn't
> >>> crash
> > regularly AND it works with lift/maven.  If so, which versions of
> > which plugins are you using?
>
> > The nightly build of the scala plugin seems to work better than
> > 2.7.4/2.7.5 in some ways, but I couldn't get it working with lift/
> > maven due to "signature differences" between the scala libraries.
>
> > Best regards,
> > Ellis
>
>  --
>  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 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 and mysql

2009-06-24 Thread Peter Robinett

People using MySQL might also want to consider putting their database
connection information in a props file. See
http://groups.google.com/group/liftweb/browse_thread/thread/763cbe16259ce3ea.

Perhaps something to add to the wiki?

Peter

On Jun 23, 12:48 pm, David Pollak 
wrote:
> Rog,
>
> Thanks for pointing to this old wiki page.  I've changed Can -> Box.  I've
> updated the wiki.
>
> And, yes, it should work.
>
> Thanks,
>
> David
>
>
>
> On Tue, Jun 23, 2009 at 11:01 AM, Rogelio  wrote:
>
> > Hi All,
>
> > I'm new to Lift so forgive me if this is old news -- I did not see
> > this info in a search of the
> > group archive.
>
> > I've been trying to get Lift to work with MySQL following the
> > instructions on the
> > wiki:  http://wiki.liftweb.net/index.php/HowTo_configure_lift_with_MySQL
>
> > I kept getting an error that  "Can" was an unresolved symbol in line 2
> > of this section of code:
>
> > 
> > object DBVendor extends ConnectionManager {
> >  def newConnection(name: ConnectionIdentifier): Can[Connection] = {
> >   try {
> >     Class.forName("com.mysql.jdbc.Driver")
> >     val dm = DriverManager.getConnection("jdbc:mysql://localhost/name-
> > of-your-database?user=root&password=mysql-password")
> >     Full(dm)
> >   } catch {
> >     case e : Exception => e.printStackTrace; Empty
> >   }
> >  }
> >  def releaseConnection(conn: Connection) {conn.close}
> > }
> > 
>
> > I found that if I replaced the word "Can" with "Box" (ie Box
> > [Connection]), then I was able to
> > get the wiki instructions to work.  I also has to preface the two
> > import statement in the
> > wiki with "_root_."  So far it appears to work, but others with more
> > experience may want
> > to weigh in.
>
> > Thanks,
> > Rog
>
> --
> 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: Thead safe part and transaction management in Lift

2009-06-24 Thread marius d.



On Jun 24, 2:18 pm, "fan...@gmail.com"  wrote:
> marius d. a écrit :
>
> > Yes it is thread safe. It is one of the most fundamental design scopes
> > of lift. Do you have any specifics in mind that you need answers?
>
> No, in fact I took as an assumption the thread-safety of
> request/response (and I saw some thread local call in the lift code),
> but it was to be sure :)

We use thread locals quite a bit for request life cycle state
management. i.e. in S object, RequestVar etc. It is a concise model of
scoping state.

>
> >> Second question: how transaction are handled with Lift default ORM
> >> layout ? I'm didn't see how we declare a transaction, and especially how
> >> one can handle rollbacks.
>
> > Please see DB.scala commit/rollback semantics are there.
>
> OK, I see the code, and I discover a buildLoanWrapper that perhaps I
> could call in Boot class, to have default behaviour for transaction.
>
> Thank you very much for your answers !
>
> --
> Francois Armandhttp://fanf42.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] Re: Thead safe part and transaction management in Lift

2009-06-24 Thread fan...@gmail.com

marius d. a écrit :
> Yes it is thread safe. It is one of the most fundamental design scopes
> of lift. Do you have any specifics in mind that you need answers?

No, in fact I took as an assumption the thread-safety of 
request/response (and I saw some thread local call in the lift code), 
but it was to be sure :)


>> Second question: how transaction are handled with Lift default ORM
>> layout ? I'm didn't see how we declare a transaction, and especially how
>> one can handle rollbacks.
> 
> Please see DB.scala commit/rollback semantics are there.

OK, I see the code, and I discover a buildLoanWrapper that perhaps I 
could call in Boot class, to have default behaviour for transaction.

Thank you very much for your answers !

-- 
Francois Armand
http://fanf42.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] Re: Thead safe part and transaction management in Lift

2009-06-24 Thread marius d.



On Jun 24, 12:10 pm, "fan...@gmail.com"  wrote:
> Hello guys,
>
> I'm following my path through lift, and there is some part that are
> still not really clear for me.
>
> First question: what parts of lift are thread safe ? In particular, does
> the request/response handling cycle is thread safe ? I thing so, but I
> didn't found any doc that assert that.

Yes it is thread safe. It is one of the most fundamental design scopes
of lift. Do you have any specifics in mind that you need answers?

>
> Second question: how transaction are handled with Lift default ORM
> layout ? I'm didn't see how we declare a transaction, and especially how
> one can handle rollbacks.

Please see DB.scala commit/rollback semantics are there.

>
> Any inputs or links toward resources answering these two points would be
> much appreciated !
>
> Thanks in advance,
>
> --
> Francois Armandhttp://fanf42.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] Thead safe part and transaction management in Lift

2009-06-24 Thread fan...@gmail.com

Hello guys,

I'm following my path through lift, and there is some part that are 
still not really clear for me.

First question: what parts of lift are thread safe ? In particular, does 
the request/response handling cycle is thread safe ? I thing so, but I 
didn't found any doc that assert that.

Second question: how transaction are handled with Lift default ORM 
layout ? I'm didn't see how we declare a transaction, and especially how 
one can handle rollbacks.

Any inputs or links toward resources answering these two points would be 
much appreciated !

Thanks in advance,

-- 
Francois Armand
http://fanf42.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] Re: Anyone working on the flot widget?

2009-06-24 Thread Jeppe Nejsum Madsen

On 24 Jun 2009, Timothy Perrett wrote:



> I've not spoken with Francois for some time, but I'll ask him next
> time he's online if he's able to make changes to the flot stuff. He's
> based in Chilli so should be online later on.

Thanks. I'm more than willing to spend some time on this (and share the
results :-) since we need it, but having the original author on board
would be most helpful.

/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: Anyone working on the flot widget?

2009-06-24 Thread marius d.

One note ... the flot widget is in lift-widgets but I think it should
also be added into the test demo app along with the other widgets so
people can actually see it in action.

Br's,
Marius

On Jun 24, 11:23 am, Timothy Perrett  wrote:
> I've not spoken with Francois for some time, but I'll ask him next time he's
> online if he's able to make changes to the flot stuff. He's based in Chilli
> so should be online later on.
>
> Cheers, Tim
>
> On 24/06/2009 09:15, "Jeppe Nejsum Madsen"  wrote:
>
>
>
> > Hi,
>
> > We need to do quite a lot of charting in our app and after evaluating
> > several libraries we've settled on Flot (for now at least :-)
>
> > So I was happy to discover there was already some Flot integrations in
> > Lift. After having looked a bit at this, it seems there are some things
> > missing that we would need:
>
> > 1) Better support for barcharts (ie specifying data series as (label, 
> > value))
>
> > 2) Support for pie charts (patches exists for the JS part)
>
> > But before diving into this I thought to ask if anybody is already
> > working on the flot widget (or has other ideas for the Flot stuff)
>
> > /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: Anyone working on the flot widget?

2009-06-24 Thread Timothy Perrett


I've not spoken with Francois for some time, but I'll ask him next time he's
online if he's able to make changes to the flot stuff. He's based in Chilli
so should be online later on.

Cheers, Tim

On 24/06/2009 09:15, "Jeppe Nejsum Madsen"  wrote:

> 
> Hi,
> 
> We need to do quite a lot of charting in our app and after evaluating
> several libraries we've settled on Flot (for now at least :-)
> 
> So I was happy to discover there was already some Flot integrations in
> Lift. After having looked a bit at this, it seems there are some things
> missing that we would need:
> 
> 1) Better support for barcharts (ie specifying data series as (label, value))
> 
> 2) Support for pie charts (patches exists for the JS part)
> 
> But before diving into this I thought to ask if anybody is already
> working on the flot widget (or has other ideas for the Flot stuff)
> 
> /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: [scala] JPA question

2009-06-24 Thread TSP

Derek
Would you distinguish between what is achievable in a specific ORM
such as Hibernate from JPA in this statement or would you think it
applies to all. I've got to "go with hibernate" in any case because of
widespread use of UserTypes. Unlike Greg, in my case I can hand-craft
all my hibernate xml files if I need.

Tim

On Jun 23, 1:46 am, Derek Chen-Becker  wrote:
> For sufficiently complex relationships, JPA is not a good fit. Beyond a
> certain point it's usually simpler to roll your own. I think that this is
> somewhat of a failing of the model, but it's not a simple problem to solve
> in the generic case.
>
> Derek
>
> On Mon, Jun 22, 2009 at 6:45 PM, Derek Chen-Becker 
> wrote:
>
>
>
> > Ah, sorry, I lost track of the thread.
>
> > On Mon, Jun 22, 2009 at 4:55 PM, Meredith Gregory <
> > lgreg.mered...@gmail.com> wrote:
>
> >> Derek,
>
> >> You are correct and i noted and reported this on Scala on Friday. However,
> >> if you have a chain of the form
>
> >> AbstractClass <- Class <-contains- AbstractClass <-Class <-contains- ...
>
> >> The @MappedSuperclass solution fails at level 2.
>
> >> Best wishes,
>
> >> --greg
>
> >> On Mon, Jun 22, 2009 at 3:52 PM, Derek Chen-Becker  >> > wrote:
>
> >>> Something I just want to throw out into the discussion: Since you're
> >>> using table-per-class, having a @Table annotation on AbstractContainer
> >>> doesn't do anything since abstract classes can't have instances. Tables 
> >>> are
> >>> only generated for abstract classes if you're using a JOINED inheritance
> >>> strategy. You might want to look at using the MappedSuperclass annotation
> >>> for the abstract base class instead. If I change the AbstractContainer def
> >>> to:
>
> >>> @MappedSuperclass
> >>> public abstract class AbstractContainer implements java.io.Serializable {
>
> >>> and then modify MySampleFuContainer to:
>
> >>> public class MySampleFuContainer extends AbstractContainer {
>
> >>> then I seem to get the proper schema:
>
> >>>     create table lingo_production.MySampleFuContainer_table (
> >>>         id varchar(255) not null,
> >>>         uuid varchar(255),
> >>>         mysamplingmumble__idSuper varchar(255),
> >>>         primary key (id),
> >>>         unique (uuid)
> >>>     );
>
> >>> Having said that, I think that the behavior you're currently seeing
> >>> appears to be a bug.
>
> >>> Derek
>
> >>> On Mon, Jun 22, 2009 at 3:43 PM, Meredith Gregory <
> >>> lgreg.mered...@gmail.com> wrote:
>
>  Kris,
>
>  Hereis
>   a link to the self-contained example that now uses just Java. i included
>  the target dir in the repo to speed up investigation, but you can just 
>  blow
>  that away and build from scratch. The example is currently written to
>  Java1.6, but also exhibits the same behavior under Java1.5. To run the
>  example
>
>  > svn co
> http://svn.biosimilarity.com/src/open/codesamples/trunk/hibernate
>  ...
>  > env PATH=:$PATH JAVA_HOME= mvn clean
>  compile process-classes
>
>  If you switch comment and decl at line 22 in
>  src/main/java/maxb/hbex2/MySampleFuContainer.java then you see the error.
>  The schema goes from
>
>  create table lingo_production.MySampleFuContainer_table (
>          id_AbstractContainer varchar(255) not null,
>          varchar(255) not null,
>          uuid varchar(255),
>          mysamplingmumble__idSuper varchar(255),
>          primary key (id),
>          unique (uuid)
>      );
>
>  to
>
>  create table lingo_production.MySampleFuContainer_table (
>          id_AbstractContainer varchar(255) not null,
>          id varchar(255),
>          mysamplingmumble_ tinyblob,
>          uuid varchar(255),
>          primary key (id_AbstractContainer),
>          unique (id_AbstractContainer)
>      );
>
>  Best wishes,
>
>  --greg
>
>  On Mon, Jun 22, 2009 at 1:38 PM, Meredith Gregory <
>  lgreg.mered...@gmail.com> wrote:
>
> > Kris,
>
> > Thanks for the suggestion. i've now got a tiny little example that
> > compiles on its own that illustrates the problem. Changing the 
> > inheritance
> > strategy to JOINED makes no difference. Hibernate still does the wrong
> > thing.
>
> > Best wishes,
>
> > --greg
>
> > On Mon, Jun 22, 2009 at 8:55 AM, Kris Nuttycombe <
> > kris.nuttyco...@gmail.com> wrote:
>
> >> This may be off the mark, but I'm wondering if the reason that you're
> >> having difficulty with the parallel inheritance hierarchy problem is
> >> not your use of TABLE_PER_CLASS inheritance. In my application, I have
> >> a similar construct, but I am using JOINED_TABLE inheritance. This
> >> allows for a normal foreign key relationship to be created in the
> >> database between C2_table and the base table for CThing, with the
> >> result that Hibernate will genera

[Lift] Anyone working on the flot widget?

2009-06-24 Thread Jeppe Nejsum Madsen

Hi,

We need to do quite a lot of charting in our app and after evaluating
several libraries we've settled on Flot (for now at least :-)

So I was happy to discover there was already some Flot integrations in
Lift. After having looked a bit at this, it seems there are some things
missing that we would need:

1) Better support for barcharts (ie specifying data series as (label, value))

2) Support for pie charts (patches exists for the JS part)

But before diving into this I thought to ask if anybody is already
working on the flot widget (or has other ideas for the Flot stuff)

/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: Best method to protect most menu items?

2009-06-24 Thread Jeppe Nejsum Madsen

On 23 Jun 2009, David Pollak wrote:

> Jeppe, I just checked in code (it'll take 45 minutes to hit the Maven
> repo) that has global LocParams for each SiteMap.  The SiteMap
> constructor is now:
> 
> SiteMap(globalParamFuncs: List[PartialFunction[Box[Req],
> Loc.LocParam]], kids: Menu*)
> 
> You can put your Redirect stuff in like:
> 
> List({
> case _ if !User.loggedIn_? => ...
> })

Brilliant! Works nicely. I ended up with this

  val menuDispatch:List[PartialFunction[Box[Req], Loc.LocParam]] = List({
   case Full(Req("profile" :: "login" :: Nil , _, _)) => Hidden
   case Full(Req("profile" :: "lost_password" :: Nil , _, _)) => Hidden
   case Full(Req(_, _, _)) if !User.loggedIn_? => Loc.EarlyResponse(() => 
Full(RedirectResponse("/profile/login?returnTo="+S.uri))) 
})

A couple of questions:

1) Why the need for Box[Req]? When will it be Empty?  

2) In the above I had to use Hidden as a dummy value to signal no
Loc. It might be useful with a Box[Loc.LocParam] as return value?

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