The Lift team and the Lift community are proud to announce the availability of Lift 2.2-M1

Lift is an elegant, expressive web framework that allows any size team build and maintain secure, highly interactive, scalable web applicationsquickly and efficiently.  Lift is built on theScala and compiles to JVM byte-code.  Lift applications deploy as WAR files on popular application servers and web cotainers including Jetty, Glassfish and Tomcat.  Lift applications can be monitored and managed with the same proven infrastructure used to manage and monitor any Java web application.  Lift is open source licensed under an Apache 2.0 license.

Lift features include:

  • Community... the Lift community is 2,300 members strong, super-active and always there to help with questions
  • Best Comet (server-push) support that allows the creation of dynamic application such as Novell Pulse
  • Super simple Ajax for creating highly interactive web applications without worrying about HTTP plumbing
  • Secure by default... Lift apps are resistant to the OWASP top 10 vulnerabilities including XSS, XSRF, and parameter tampering
  • Concise and Maintainable... Lift apps typically contain fewer lines of code than corresponding Rails apps, yet are type safe so that many errors are flagged by the compiler
  • Scalable... Lift apps scale to millions of users across many servers, yet are highly efficient for single-box implementations
  • Compatible... Lift apps can take advantage of any Java library as well as the growing collection of Scala libraries

Lift 2.2-M1's new features include:

Lift-powered sites include:

  • Foursquare -- the multi-million user location based service that will soon surpass 1M+ checkins a day on their Lift-powered system
  • Novell Pulse -- enterprise collaboration software platform based on Google Wave
  • Innovation Games: The fun way to do serious business -- seriously
  • Xerox/XMPie -- the leading provider of software for cross-media, variable data one-to-one marketing
  • Snapsort -- Compare and decide on cameras
  • No Fouls -- Find pickup basketball games

Lift 2.2-M1's exhaustive change list:

See the Ticket Tracker for the full reference.

New Features:
  •  
    • Add full BSON support to lift-mongodb  Issue: 568. 
    • Support for Sybase ASE using JTDS JDBC driver for Lift 3.0  Issue: 620. 
    • Add binding support to the embed tag  Issue: 639. 
    • Add XML matchers to TestResponse  Issue: 640. 
    • Add support for prefixed attributes to BindParam subclasses  Issue: 647. 
    • Support for multiple validation  Issue: 664. 
    • Update CRUDify and ProtoUser to be persistance agnostic  Issue: 684. 
    • Implement FuncBoxBindParam  Issue: 690. 
    • Review designer friendly and add bind by css selectors  Issue: 695. 
    • Add some simple MVC style helpers for Lift  Issue: 703. 
Fixed Bugs:
  •  
    • Save an edited db-record which has a custom primary key -> Trying to open an empty Box  Issue: 552. 
    • Browser Detection (for max simultaneous connections) Doesn't Handle Firefox 4  Issue: 646. 
    • lift-mapper should not depend on H2 and Derby  Issue: 648. 
    • Chrome 7 barf on comet tags that include lift:when = ...  Issue: 698. 
    • Bug at OpenID's rawJUL2List  Issue: 556. 
    • Inconsistent rendering of notices in AJAX responses  Issue: 589. 
    • Add "body: NodeSeq" Parameter to Shtml.submit()  Issue: 613. 
    • All external links in SiteMap treated as same link  Issue: 615. 
    • CouchDB : StackOverflow in  Issue: 649. 
    • Values can't be extracted from JSON with Map[String, List[String]]  Issue: 654. 
    • SHtml.ajaxRadio()  Issue: 657. 
    • Change Loc.snippet to use currentValue  Issue: 661. 
    • JsonParser.Buffer incorrectly handles input Reader  Issue: 671. 
    • XMLApiHelpers has ambiguous implicit conversions from NodeSeq and Seq[Node]  Issue: 678. 
    • ImageResizer.getOrientation should handle Exceptions  Issue: 682. 
    • n.l.r.f.EmailField.emailPatter n is broken  Issue: 691. 
    • Performance degradation in JSON compact rendering  Issue: 696. 
    • \uffff is a valid char in JSON string literal  Issue: 697. 
    • POM Housekeeping  Issue: 447. 
    • Option bind, being able to remove large portion of html if none  Issue: 629. 
    • Misleading error message in net.liftweb.util.Props  Issue: 645. 
Other Changes:
  •  
    • OpenID error messages should be customizable  Issue: 561. 
    • Update vscaladoc packageLink defs with baseUri for external dependencies  Issue: 579. 
    • Update slf4j and logback revisions and make using logging backend more flexible  Issue: 516. 
    • Change log4j version in lift 2.1 from 1.2.14 to 1.2.16  Issue: 644. 
    • ImageResizer support for gif, bmp detection and jpeg quality  Issue: 662. 
    • Consider ways of making <lift:Menu.item/> work with custom locs  Issue: 663. 
    • Features that require session state should warn when container sessions are disabled  Issue: 665. 
    • LiftRules.uriNotFound does not support NotFoundAsTemplate when handling 404s for urls served by ResourceServer  Issue: 668. 
    • Add a class LocParam to SiteMap  Issue: 679. 
    • Make LiftScreen and Wizard stateful snippets  Issue: 699. 
    • Enrich archetypes to take CLI parameter logBackend  Issue: 700. 
    • Skip the <!DOCTYPE ...> tag at the beginning of an HTML file  Issue: 702. 

Please join the Lift community and help use grow Lift.  And a super-big thanks to the 30+ Lift committers who have grown the Lift community and code-base to what it is today... and what it will be in the future!

Thank you, have fun!