Original approach was to upgrade one version of play at a time and keep all functionality. This turned out incredible difficult given all the interdependencies between libraries and scala version. See old branch: https://opensource.ncsa.illinois.edu/bitbucket/projects/CATS/repos/clowder/compare/commits?sourceBranch=refs%2Fheads%2F2.0&targetBranch=refs%2Fheads%2Fdevelop.
New approach is as follows:
- Remove all unused and legacy code
- XML RDF export
- Rabbitmq monitoring using manager API
- Geostreams API
- Modify code to be compatible with newer versions of play
- Every plugin should become a Guice Trait + Implementation
- Upgrade everything to latest version of play (
- Play 2.7 or 2.6 depending on required Scala version by underlying libraries
- Mongo drivers
- Migrate authentication / authorization:
Play 2.6 Upgrade
Upgrade Play 2.2.0 to 2.2.6https://www.playframework.com/documentation/2.5.x/Migration23https://www.playframework.com/documentation/2.5.x/Migration24http://www.silhouette.rocks/ - Secure Social replacement
https://www.playframework.com/documentation/2.5.x/Migration25https://www.playframework.com/documentation/2.6.x/Migration26
Sbt migration: http://www.scala-sbt.org/0.13/docs/Migrating-from-sbt-012x.html