Lift Framework 2.6-M3
farmdawgnation
released this
12 Apr 13:13
·
1685 commits
to main
since this release
I'm pleased to announce that Lift 2.6-M3 is out the door and should be available on Sonatype shortly.
Here's the rundown.
Notable Changes
- Box.get is officially deprecated. Previously, calling
.get
on a box would trigger an implicit conversion from Box => Option. As we move towards encouraging people even more to utilize flatMap, map, etc to open boxes and to specify exceptions when they can't (a laopenOrThowException
), we're officially deprecating the use of.get
on a box, and you will start seeing warnings in your code if you do it as of this release. In Lift 3.0, the ability to call.get
on a box will disappear.
New Features / Enhancements
- Case class decomposition performance improvements. By doing some clever code @chriswebster was able to bring the complexity of case class decomposition down to O(n).
- Memoization to prevent additional reflection during decomposition, also thanks to @chriswebster.
- Implementation of LiftRules.funcNameGenerator. You can now use your own logic for generating Func names. Thanks @japgolly
- The Framework should be capable of compiling in Scala 2.10.1+ now thanks to @pbrant.
- Some variable name cleanup in lift-json.
- Implementation of toSingleBox that converts a List[Box[T]] => Box[List[T]].
Bugfixes
- IE 11 detection is working. IE changed their typical user agent signature in IE 11. The detection code has been updated to account for this change.
- MockHttpServletRequest correctly handles empty parameters thanks to contributions by @dmclean62.
- Unexpected warnings related to page/instance resource IDs should no longer appear, a hat tip to @Shadowfiend for that one.
- Fixes for an issue where bad database connections wouldn't be released correctly. Thanks to @rofreytag for this.
Once again, thank you to everyone involved in making this release possible. Have a spectacular Saturday.