The Lift Committers are pleased to announce the release of Lift 3.2.0-RC1 on December 16th, 2017. This release is the first (and hopefully last) release candidate for Lift 3.2.0. We encourage all Lift Framework users to bump their applications to this version as quickly as possible, and to give us feedback on how it works for you.
Please read below for the changes in this milestone.
(#1770) Comet Rehydration
Since Comets were first introduced in Lift, it's been the case that if the Lift app server got restarted in the middle of a user's session and comets were involved then the user would need to refresh their entire page to reconnect to the server and have their comets start working again. By default, Lift is kind enough to do this page refresh for the users. However, this is a less than ideal experience for obvious reasons.
Now, after over a year's worth of work, @joescii has delivered Comet Rehydration to the Lift Framework.
Comet Rehydration is an optional feature that, when enabled, allows a user's browser to seamlessly reconnect to the comets on the server without needing to reload the page in many circumstances. In cases where significant changes have been delivered to an application, reloading the entire page may still be desirable. However, when deploying small bug fixes to users Comet Rehydration is a useful tool to do so without interrupting their experience in your application.
There are a couple of prerequisites to use rehydration effectively. Specifically,
CometActors in your application should have a mechanism for reconstructing their intended state from cookies or by invoking methods on the client via
paritalUpdatethat will cause the client to transmit its current state to a new Comet.
We encourage all Lift developers to take a closer look at Comet Rehydration. We believe it will significantly improve the user experience for end-users of Lift applications when implemented with the prerequisites described above.
To start using rehydration, add the following to your
- (#1924) Correctly override list item markup in lift-markdown. This resolves an issue (#1810) where
InlineParserwould ignore custom decorators for list items. Thanks @ricsirigu for the fix!
- (#1930) Added a null guard to address tests that touch stateful features. Resoles an issue (#1929) where an alarming, but harmless
NullPointerExceptionwould occur in tests that destroy a
LiftSession. Hat tip to @joescii for spotting it and delivering the fix.
- (#1928) Add a configurable
maxIdLengthto mongo-record's string primary keys. Previously this was hard-coded to 12.
The Lift Framework is a mature, advanced framework for the modern software engineer. There are Seven Things that set Lift apart from the other frameworks out there today: it's secure-by-default, developer-centric, scalable, capable of rich interactive behavior, modular, and designer-friendly. If you're new to Lift or interested in checking out what these things mean, we recommend checking out Simply Lift and The Lift Cookbook.