-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Support Scala 3, drop Scala 2.12 & Play 2.8
See: * #149 - dropping Scala 2.12 * #161 - supporting Scala 3 ## Code changes required for Scala 3 ### Controller endpoint definitions often need their return type declared Explicitly declaring the return type is necessary on many endpoint definitions, or Scala 3 reports an 'ambiguous overload' error: ``` [error] -- [E051] Reference Error: /Users/Roberto_Tyley/code/pan-domain-authentication/pan-domain-auth-example/app/controllers/AdminController.scala:42:15 [error] 42 | def logout = Action { implicit request => [error] | ^^^^^^ [error] |Ambiguous overload. The overloaded alternatives of method apply in trait ActionBuilder with types [error] | (block: play.api.mvc.Request[play.api.mvc.AnyContent] => play.api.mvc.Result): [error] | play.api.mvc.Action[play.api.mvc.AnyContent] [error] | [A] [error] | (bodyParser: play.api.mvc.BodyParser[A]): [error] | play.api.mvc.ActionBuilder[play.api.mvc.Request, A] [error] |both match arguments (<?> => <?>) [error] | [error] | longer explanation available when compiling with `-explain` ``` ### Need to import `play.api.libs.ws._` for the `BodyWritable` Panda's `OAuth` class posts some url-encoded data (defined as `Map[String, Seq[String]]` in Scala) with `ws.url(dd.token_endpoint).post`, and this needs an implicit instance of `BodyWritable[Map[String, Seq[String]]]` in order to work! For some reason, in Scala 2, the compiler was able to find the correct implicit somewhere, but in Scala 3 we get a compilation error: ``` [error] 81 | }.flatMap { response => [error] | ^ [error] |Cannot find an instance of Map[K, Seq[String]] to WSBody. Define a BodyWritable[Map[K, Seq[String]]] or extend play.api.libs.ws.ahc.DefaultBodyWritables [error] | [error] |where: K is a type variable with constraint >: String [error] | [error] |One of the following imports might fix the problem: [error] | [error] | [error] |One of the following imports might fix the problem: [error] | [error] | import play.api.libs.ws.DefaultBodyWritables.writeableOf_urlEncodedForm [error] | import play.api.libs.ws.WSBodyWritables.writeableOf_urlEncodedForm [error] | import play.api.libs.ws.writeableOf_urlEncodedForm ``` Importing the whole `ws` package fixes the problem: ``` import play.api.libs.ws._ ```
- Loading branch information
Showing
9 changed files
with
86 additions
and
139 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
sbt.version=1.9.9 | ||
sbt.version=1.10.5 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters