Announcing Lift 2.6 M1
The Lift team proudly announces the availability of Milestone 1 of Lift version 2.6.
Lift is the most powerful, secure and mature web framework available today. There are Seven Things that distinguish Lift from other web frameworks.
Lift applications are:
- Secure -- Lift apps are resistant to common vulnerabilities including many of the OWASP Top 10
- Developer centric -- Lift apps are fast to build, concise and easy to maintain
- Scalable -- Lift apps are high performance and scale in the real world to handle insane traffic levels
- Interactive like a desktop app -- Lift's Comet support is unparalleled and Lift's ajax support is super-easy and very secure
- Modular -- Lift apps can benefit from, easy to integrate, pre built modules
- Designer friendly -- Lift apps can be developed in a totally designer friendly way
Read an overview of how Lift achieves these important goals.
Lift open source software licensed under an Apache 2.0 license.
New Features & Enhancements
Improved LAFutures: The improvements to
LAFuture in Lift 3.0 have been back-ported to 2.6. This brings
onComplete. Thanks to @dpp and @fmpwizard.
Run-mode auto-detection: when
run.mode isn't set, you can now supply a function to determine the run mode to use by setting
Props.autDetectRuModeFn before referencing
run.mode. Thanks to @japgolly for this.
No more warnings in JValue in for comprehensions:
withFilter has been implemented on
JValue. Thanks @hedefalk.
Mock Lift Actor for better unit tests: The details and example are in the pull request. Thanks to @farmdawgnation.
ajaxOnSubmit to bind a
() => JsCmd submit handling function to an
<button>. This allows you to retain the entire element content, except for the onclick attribute, without resorting to a hidden field. Thanks to @Shadowfiend.
Conditional onEvent: A convenience for prompting the user before carrying out an action. For example:
SHtml.onEventIf("Are you sure you want to do that?", s => deleteUser()). Thanks to @farmdawgnation
form=ajax as a snippet attribute: You can now invoke a snippet with a
?form=ajax parameter and Lft will do the right thing and convert it into an Ajax form. Prior to this, you had to enclose your form with an extra div and call
data-lift="form.ajax". Thanks to @fmpwizard.
Logging not found GUIDs: Lift now logs POST or GET requests that contain no callback functions, but look like they should. You can control this behaviour with
LiftRules.handleUnmappedParameter. Thanks to @Shadowfiend and @serioga.
Easier testing and customization of Mailer: Mailer's inner class is now a trait, which allows any class extending the trait to accept
To() etc. Thanks to @japgolly.
Custom handling of Menu Param failing to match: Normally a
Menu.param 404s if the current value is
Empty. You can now change the behaviour via
Loc.MatchWithoutCurrentValue. There's an example of using this in the ScalaDoc. Thank you @farmdawgnation.
Scheme-relative URLs now supported: Scheme relative URLs (e.g., those starting
//) no longer have the context path pre-pended. Thanks to @serveace.
Lifecycle callbacks added to MongoMetaRecord.update: there's now support for
afterUpdate on Mongo records. Thanks to @eltimn.
Mongo Record creation date: a document creation date is now available via
createdAt. This uses the timestamp from Mongo's
ObjectId. Thanks to @eltimn.
Joda Time support for Mongo Record: you can now use Joda's
JodaTimeField. Thanks to @eltimn.
Dirty check on Record: use
myrecord.dirty_? to test if a record has been modified since being loaded. Thanks to @eltimn
Maven archetypes updated: thanks to @ldeck.
Bug fixes, Compatibility and Performance Gains
Remove ActorWatcher: BREAKING CHANGE
ActorWatcher has been removed, as it referenced the old deprecated Scala Actor code. Thanks @fmpwizard.
Workaround for Scala regression SI-7612: Annotate type of primaryKeyField in Mapper to avoid a StackOverflow (will be fixed in 2.10.3 or 2.11). Thanks to @retronym and @fmpwizard.
LAFuture.collect IndexOutOfBoundsException fix: it was possible for LAFuture to throw an IndexOutOfBoundsException for futures resolved in a particular order. This has been resolved, thanks to @tuhlmann.
Jetty 9 null safety checks: Under Jetty 9 it's possible for a request to say it has a header, but when you ask for the header you get null. We now protect against this, and you won't get a null header value. Thanks to @dpp.
JSON parser fix for handing scientific notation: The parser was fine with e and e-, but now can handle e+ (e.g., 1.23e+1). Thank you @kluyg.
CSS parser robustness improvements: Including allowing the # character in URLs. Thanks @pbrant.
Menu.item swallowed surrounding Elem. From @dpp and @hedefalk.
Helpers.toBoolean("on") now returns
true: it didn't before! Thanks @fmpwizard and Denis Nevmerzhitsky.
S.ieMode is misleading and so deprecated: This flag is used for a specific XML handling issue, and is not a general IE detection check. To avoid this confusion, isMode is deprecated and will probably be removed in Lift 3. This improvement from @farmdawgnation.
Spelling fixes for Vendor and supplimentalKidMenuItems: there have been a number of fixes to spelling mistakes in functions. Incorrect spellings have been deprecated. Thanks to @farmdawgnation and @nafg
ScalaDoc improvement to
ListenerManager, thanks to @Timr.
Typos in the source: fixed by @pbrant.
Out of date references to Can removed by @Shadowfiend.
...and thanks to everyone who contributed on the mailing list, writing code, reviewing code, supplying feedback!
Please join the Lift Community and enjoy building awesome apps with Lift.
2014/06/19 The Lift team is proud to announce Milestone 4 of Lift 2.6.
2014/04/12 The Lift team is proud to announce Milestone 3 of Lift 2.6.
2013/11/20 Lift and BREACH: How Lift protects you, and how you can protect yourself
2013/11/08 The Lift team is proud to announce Milestone 2 of Lift 2.6.
2013/10/11 The Lift team is proud to announce Milestone 1 of Lift 2.6.
2013/07/15 A list of things new and noteworthy in Lift 2.5
2013/06/28 The Lift Cookbook is now available from O'Reilly.
2013/06/25 The Lift team is proud to announce version 2.5.1 of Lift.
2013/06/2 The Lift team is proud to announce version 2.5 of Lift.
2013/05/12 The Lift team is proud to announce version 2.5-RC6 of Lift.
Entwicklung von Web-Applikationen mit Lift und Scala by Thomas Fiedler and Christoph Knabe.
Lift In Action by Tim Perrett is available in print and eBook format.
Lift Web Applications How-to by Torsten Uhlmann is available in print and eBook format.