Tim,

Here's a thought. GWT uses <entry-point class="some fully qualified
class name" /> to
identify and initialize modules. Perhaps something similar could be
hooked into LiftFilter and an entry point
class identified in web.xml. There should be little objection to xml
configuration, as opposed to using Java reflection.

Glenn...


On Jul 28, 9:36 am, Timothy Perrett <timo...@getintheloop.eu> wrote:
> Glenn,
>
> You have my full attention - this is something I've been sitting on for
> quite some time but just not quite sure what the best route forward is.
>
> When im creating these modules, I essentially just build a normal jar
> project with maven, and as you say, if I have JS or whatever that I need to
> use I just specify that with ResourceServer (in the module JAR init).
>
> To date I've not actually needed to pull a template from another JAR, but
> looking at ResourceServer.findResourceInClasspath I think it could do it...
> If memory serves DPP checked in a change to make this work about 2 weeks
> ago...
>
> In terms of having a defined loading pattern, its possible, but would need
> outlining with some very specific details... IMO, adding one line of code to
> Boot.scala is not a big deal so we would really need a good reason to add a
> bunch of reflection which can sometime feel like voodoo because its not
> clear what its loading and why (one of the reasons I went off ruby).
>
> Cheers, tim
>
> On 28/07/2009 17:00, "glenn" <gl...@exmbly.com> wrote:
>
>
>
> > Hi, Tim,
>
> > So, what you do is put all new LiftRules, Schemifier and
> > ResourceServer stuff
> > in an init function and run it after the Boot.scala defaults. Sounds
> > simple enough.
>
> > When creating your modules, do you just strip out all the stock webapp
> > files (those
> > that come with the maven lift archetypes), and put all your new
> > resources in a
> > "toserve" directory, then just jar it up?
>
> > And what about any new template files? Where do those go in you module
> > jars?
> > You can't put them in the "toserver" directory. My understanding is
> > that that would
> > install them in the WEB-INF/classes directory of your final war file,
> > when they
> > need to go into the root webapp.
>
> > I still see loose ends here.
>
> > Also, what if you didn't have to modify Bool.scala for every
> > module you add. Some hook function in an object that Boot.scala runs
> > each time that
> > would iterate through all your init functions that followed a pre-
> > defined
> > signature, would be a nice feature to add to Lift.
>
> > Glenn...
>
> > On Jul 27, 4:01 pm, Timothy Perrett <timo...@getintheloop.eu> wrote:
> >> Hi Glen...
>
> >> I actually do a lot of this - we have a product at work and i've just
> >> written a bunch of abstractions for work which just require me to do:
>
> >> MyLib.init
>
> >> In the boot file of a new application and then everything wires up - I
> >> couldn't think of anything more straightforward?
>
> >> The vast majority of stuff in lift is done with PF's, so you can
> >> pretty much just write them in external jars, and import them - my 3rd
> >> part stuff usually has a lift-webkit dependency so that I can just do
> >> the LiftRules.disptach.append stuff directly in the init method, but
> >> its really no biggy and saves boilerplate.
>
> >> So given your example, this scheme should work right?
>
> >> Cheers, Tim
>
> >> On Jul 27, 11:52 pm, glenn <gl...@exmbly.com> wrote:
>
> >>> I'm interested in abstracting out useful features from my Lift
> >>> applications for ease of reuse, but I haven't found an easy way to do
> >>> it. I find myself creating a new Lift aplication for each feature,
> >>> with all the baggage (bootstrapping, etc.), and I then have to do a
> >>> lot of code modification to the application I'm adding the feature to
> >>> in order to get it to work.
>
> >>> For example, suppose I want to add role-based user login to an
> >>> application that already has a User model just by dropping in a jar
> >>> file with the new feature. I don't see how to do it without some
> >>> boostrapping modifications.
>
> >>> Has anyone really tried to modularize their Lift development. I'd be
> >>> very interested in some suggestions.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to