June 19, 2014

The Lift team proudly announces the availability of Milestone 4 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.

Notable Changes

  • 2.10 versions of Lift are now built for Scala 2.10.4.
  • We are now publishing Lift builds for 2.11, built with Scala 2.11.1.
  • MongoRecord.save now has a default true value for its safe parameter.
  • Add saveBox, updateBox, and deleteBox_! methods to MongoRecord that catch exceptions and return a Box.
  • Moved MongoIdentifier to use a common ConnectionIdentifier shared with other record types.
  • Added RecordRules.fieldName, a FactoryMaker that lets you modify a field's corresponding database name based on the database connection and the field's variable name. (#1505).
  • Added RecordRules.displayName, a FactoryMaker that lets you modify a field's display name (the name rendered in the UI) based on the record instance being handled, the current locale, and the default display name.
  • Added MongoRules.collectionName, an Inject that lets you modify the name of a MongoRecord class's collection based on the connection and the class name.
  • Fix MongoListField's setFromJValue to properly handle special mongo data types.
  • Add AsObjectId extractor for pattern matching ObjectId Strings.
  • Add AsMongoRecord extractor for pattern matching a Mongo Record instance based on an incoming String id.
  • Add JsonObjectId, JsonRegex, JsonUUID, JsonDate, and JsonDateTime extractors for lift-mongodb-formatted JValues.
  • Added a withFilter method to suppress warnings when using the BaseResponse class in Lift tests (see #1253).
  • Wrap mail parts in multipart/related MIME part in emails (see #1569).
  • CometActor now handles ResponseShortcutExceptions with redirect responses by sending an appropriate RedirectTo command to the client. This means that e.g. S.redirectTo will work as expected in a CometActor. Note that this is implemented in the default exceptionHandler of CometActor, so if you've overridden it you'll need to make sure that the default handler is something you eventually invoke.
  • Added the ability to get a forced version of a request body as JSON or XML, regardless of whether the specified Content-Type of the request was correct. These are Req.forcedBodyAsJson and Req.forcedBodyAsXml, respectively.
  • Return a Failure with descriptive error message if bodyAsJson or bodyAsXml are invoked and we don't return the relevant JSON or XML due to an incorrect Content-Type in the request.
  • Added a short note on StackableMaker's doWith (used by FactoryMaker, amongst other things) regarding the fact that its changes to its maker's value are thread-local.

Deprecations

  • JSONParser, Lift's legacy JSON parser, along with its dependents:
    • MetaRecord.setFieldsFromJSON
    • MetaRecord.fromJSON
    • CometActor's handleJson, jsonCall, and jsonInCode
    • S.buildJsonFunc
    • S.jsonFmapFunc with Any=>JsCmd
    • JsonHandler
    • SHtml.fjsonCall
    • SHtml.jsonButton with Any=>JsCmd
    • SHtml.jsonForm
  • Mapper and MetaMapper's snippet bindings that use PartialFunctions:
    • addSnippet, editSnippet, viewSnippet (in favor of addFormSnippet, editFormSnippet, and viewTransform, all based on CSS selector transforms)
    • modSnippet, used in addSnippet and editSnippet, superseded by formSnippet.
    • add, edit, and view snippets in HTML, in favor of addForm, editForm, and viewTransform
    • fieldMapperPF, in favor of fieldMapperTransforms
    • fieldPF, appendField, and prependField, in favor of fieldTransforms, appendFieldTransform, and prependFieldTransform.
  • MongoAddress, MongoHostBase, MongoHost, MongoSet and all functions that take them as parameters. Please use the Mongo Java driver's MongoClient instead.
  • MongoRecord.save with no parameters. Please use the version with one parameter, and invoke it with empty parens (save()) if you want a safe save. The default for save with no parameters was an unsafe save, which can be achieved using save(false).
  • MongoMeta.ensureIndex; use MongoMeta.createIndex instead.
  • ListenerManager.updateListeners(Any); use ListenerManager.sendListenersMesage(Any) instead.

Please join the Lift Community and enjoy building awesome apps with Lift.


Lift 3.3.0

2018/07/21 The Lift team is proud to announce the release of Lift 3.3.0.


Lift 3.2.0

2018/01/27 The Lift team is proud to announce the release of Lift 3.2.0.


Lift 3.2.0-RC1

2017/12/16 The Lift team is proud to announce the release of Lift 3.2.0-RC1.


Lift 3.2.0-M3

2017/11/16 The Lift team is proud to announce the release of Lift 3.2.0-M3.


Lift 3.2.0-M2

2017/09/15 The Lift team is proud to announce the release of Lift 3.2.0-M2.


Lift 3.2.0-M1

2017/07/23 The Lift team is proud to announce the release of Lift 3.2.0-M1.


Lift 3.1.0

2017/07/02 The Lift team is proud to announce the release of Lift 3.1.0 final.


Lift 3.1.0-RC1

2017/06/18 The Lift team is proud to announce the release of Lift 3.1.0-RC1.


Lift 3.1.0-M3

2017/05/20 The Lift team is proud to announce the release of Lift 3.1.0-M3.


Lift 3.1.0-M2

2017/04/13 The Lift team is proud to announce the release of Lift 3.1.0-M2.


Lift Books

Entwicklung von Web-Applikationen mit Lift und Scala by Thomas Fiedler and Christoph Knabe.

Simply Lift, by David Pollak is an open source book, available for free in both PDF and HTML versions at http://simply.liftweb.net/.

Exploring Lift, by Derek Chen-Becker, Tyler Weir, and Marius Danciu is an open source book, available for free in both PDF and HTML versions at http://exploring.liftweb.net/.

Lift In Action by Tim Perrett is available in print and eBook format.

Lift Cookbook A community question and answers book, free at cookbook.liftweb.net

Lift Web Applications How-to by Torsten Uhlmann is available in print and eBook format.

Lift Application Development Cookbook by Gilberto T. Garcia Jr. is available in print and eBook format.