Folks, I spent today "cracking the code" on how to implement a more dynamic Lift development cycle. Specifically, I figured out how to support (during development mode) having changes in compiled code reflected in the running application. The change to your Lift app will be a change in how you do things in Boot.scala. Basically, anything that could change between page loads will be wrapped as such in Boot:
LiftRules.dynamicDevelopmentMode(List("com.liftcode.model", "com.liftcode.lib"))(() => { LiftRules.dispatch.append {...} LiftRules.setSiteMap(....) }) The list is a list of packages to exclude from the dynamic reloading. Because schemification isn't going to happen on every page reload, it's best not to reload the models. The dynamic mode will impose the following limitations: - Lift will only service one request at once in development mode - Page loads in development mode will be 10x-50x slower than in non-development mode - Comet objects will not change once they've been instantiated - There will cases where classes created in one classloader are not recognized as the same class for casting and/or pattern matching purposes if the classes are created across calls - There may be problems related to running out of PermGen space because each page reload will cause all the applications classes to be reloaded... and this may happen faster than the classes are GCed. With those limitations, do you guys thing the feature would be valuable? Should it be part of development mode or should there be another demarcation of the dynamic reload mode? Thanks, David -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics -- You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.