diff --git a/play-pac4j_2.13/pom.xml b/play-pac4j_2.13/pom.xml
index bea93854..1fb84661 100644
--- a/play-pac4j_2.13/pom.xml
+++ b/play-pac4j_2.13/pom.xml
@@ -5,7 +5,7 @@
org.pac4j
play-pac4j-parent
- 12.0.0-PLAY2.9-SNAPSHOT
+ 12.0.0-PLAY3.0-SNAPSHOT
play-pac4j_2.13
@@ -15,13 +15,13 @@
- com.typesafe.play
+ org.playframework
play_${scala.version}
${play.version}
provided
- com.typesafe.play
+ org.playframework
play-cache_${scala.version}
${play.version}
provided
@@ -34,7 +34,7 @@
- com.typesafe.play
+ org.playframework
play-test_${scala.version}
${play.version}
test
diff --git a/play-pac4j_2.13/src/main/java/org/pac4j/play/ScalaCompatibility.java b/play-pac4j_2.13/src/main/java/org/pac4j/play/ScalaCompatibility.java
deleted file mode 100644
index bdbe17a6..00000000
--- a/play-pac4j_2.13/src/main/java/org/pac4j/play/ScalaCompatibility.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.pac4j.play;
-
-import play.api.mvc.AnyContentAsFormUrlEncoded;
-import scala.collection.immutable.Seq;
-import scala.jdk.CollectionConverters;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author Jerome LELEU
- * @since 9.0.0
- */
-class ScalaCompatibility {
-
- static Map parseBody(final AnyContentAsFormUrlEncoded body) {
- final Map p = new HashMap<>();
- final scala.collection.immutable.Map> scalaParameters = body.asFormUrlEncoded().get();
- for (final String key : CollectionConverters.SetHasAsJava(scalaParameters.keySet()).asJava()) {
- final Seq v = scalaParameters.get(key).get();
- final String[] values = new String[v.size()];
- v.copyToArray(values);
- p.put(key, values);
- }
- return p;
- }
-}
diff --git a/play-pac4j_2.13/src/main/scala/org/pac4j/play/scala/ScalaCompat.scala b/play-pac4j_2.13/src/main/scala/org/pac4j/play/scala/ScalaCompat.scala
deleted file mode 100644
index 45f08333..00000000
--- a/play-pac4j_2.13/src/main/scala/org/pac4j/play/scala/ScalaCompat.scala
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.pac4j.play.scala
-
-/**
- * @since 12.0.0
- */
-object ScalaCompat {
-
- val Converters = _root_.scala.jdk.CollectionConverters
-
-}
diff --git a/play-pac4j_3/pom.xml b/play-pac4j_3/pom.xml
index 0abaacd6..4f26b336 100644
--- a/play-pac4j_3/pom.xml
+++ b/play-pac4j_3/pom.xml
@@ -5,7 +5,7 @@
org.pac4j
play-pac4j-parent
- 12.0.0-PLAY2.9-SNAPSHOT
+ 12.0.0-PLAY3.0-SNAPSHOT
play-pac4j_3
@@ -15,13 +15,13 @@
- com.typesafe.play
+ org.playframework
play_${scala.version}
${play.version}
provided
- com.typesafe.play
+ org.playframework
play-cache_${scala.version}
${play.version}
provided
@@ -34,7 +34,7 @@
- com.typesafe.play
+ org.playframework
play-test_${scala.version}
${play.version}
test
diff --git a/play-pac4j_3/src/main/scala/org/pac4j/play/scala/ScalaCompat.scala b/play-pac4j_3/src/main/scala/org/pac4j/play/scala/ScalaCompat.scala
deleted file mode 100644
index 45f08333..00000000
--- a/play-pac4j_3/src/main/scala/org/pac4j/play/scala/ScalaCompat.scala
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.pac4j.play.scala
-
-/**
- * @since 12.0.0
- */
-object ScalaCompat {
-
- val Converters = _root_.scala.jdk.CollectionConverters
-
-}
diff --git a/pom.xml b/pom.xml
index cb46646c..ba122dd9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
play-pac4j-parent
pom
pac4j parent for Play
- 12.0.0-PLAY2.9-SNAPSHOT
+ 12.0.0-PLAY3.0-SNAPSHOT
https://github.com/pac4j/play-pac4j
@@ -38,16 +38,6 @@
-
- typesafe
- typesafe-releases
- https://repo.typesafe.com/typesafe/releases
-
-
- Akka Snapshot Repository
- Akka Snapshot Repository
- https://repo.akka.io/snapshots/
-
sonatype-nexus-snapshots
Sonatype Nexus Snapshots
@@ -63,9 +53,9 @@
6.0.0-RC10-SNAPSHOT
- 2.9.0
+ 3.0.0
17
- 7.0.0
+ 6.0.0
1.12.0
2.10.9.2
3.2.17
diff --git a/play-pac4j_3/src/main/java/org/pac4j/play/ScalaCompatibility.java b/shared/src/main/java/org/pac4j/play/ScalaCompatibility.java
similarity index 100%
rename from play-pac4j_3/src/main/java/org/pac4j/play/ScalaCompatibility.java
rename to shared/src/main/java/org/pac4j/play/ScalaCompatibility.java
diff --git a/shared/src/main/scala/org/pac4j/play/filters/SecurityFilter.scala b/shared/src/main/scala/org/pac4j/play/filters/SecurityFilter.scala
index 06ba62d0..45386bec 100644
--- a/shared/src/main/scala/org/pac4j/play/filters/SecurityFilter.scala
+++ b/shared/src/main/scala/org/pac4j/play/filters/SecurityFilter.scala
@@ -1,6 +1,6 @@
package org.pac4j.play.filters
-import akka.stream.Materializer
+import org.apache.pekko.stream.Materializer
import org.pac4j.core.adapter.FrameworkAdapter
import org.pac4j.core.config.Config
import org.pac4j.core.util.CommonHelper
@@ -14,7 +14,7 @@ import play.api.{Configuration, Logger}
import play.mvc
import javax.inject.{Inject, Singleton}
-import scala.compat.java8.FutureConverters.CompletionStageOps
+import scala.jdk.FutureConverters._
import scala.concurrent.{ExecutionContext, Future}
import scala.util.Failure
@@ -107,7 +107,7 @@ class SecurityFilter @Inject()(configuration: Configuration, config: Config)
val futureResult: Future[Result] =
securityAction
.call(parameters, rule.clients, rule.authorizers, rule.matchers)
- .toScala
+ .asScala
.flatMap[Result](calculateResult)
futureResult.andThen { case Failure(ex) => log.error("Exception during authentication procedure", ex) }
diff --git a/shared/src/main/scala/org/pac4j/play/scala/Pac4jScalaTemplateHelper.scala b/shared/src/main/scala/org/pac4j/play/scala/Pac4jScalaTemplateHelper.scala
index 6ae936cc..42309959 100644
--- a/shared/src/main/scala/org/pac4j/play/scala/Pac4jScalaTemplateHelper.scala
+++ b/shared/src/main/scala/org/pac4j/play/scala/Pac4jScalaTemplateHelper.scala
@@ -9,7 +9,7 @@ import org.pac4j.core.profile.{ProfileManager, UserProfile}
import org.pac4j.play.context.PlayFrameworkParameters
import play.api.mvc.RequestHeader
-import ScalaCompat.Converters._
+import scala.jdk.CollectionConverters._
/**
* This is a helper which can be used to access the current user profile from a twirl template.
diff --git a/shared/src/main/scala/org/pac4j/play/scala/Security.scala b/shared/src/main/scala/org/pac4j/play/scala/Security.scala
index eb5a7ba0..f7017013 100644
--- a/shared/src/main/scala/org/pac4j/play/scala/Security.scala
+++ b/shared/src/main/scala/org/pac4j/play/scala/Security.scala
@@ -38,8 +38,8 @@ trait Security[P<:UserProfile] extends BaseController {
case class SecureAction[P <: UserProfile, ContentType, R[X]>:AuthenticatedRequest[P, X]<:Request[X]](
clients: String, authorizers: String, matchers: String, parser: BodyParser[ContentType], config: Config
)(implicit implicitExecutionContext: ExecutionContext) extends ActionBuilder[R, ContentType] {
- import ScalaCompat.Converters._
- import scala.compat.java8.FutureConverters._
+ import scala.jdk.CollectionConverters._
+ import scala.jdk.FutureConverters._
import scala.concurrent.Future
import org.pac4j.play.scala.SecureAction._
@@ -70,7 +70,7 @@ case class SecureAction[P <: UserProfile, ContentType, R[X]>:AuthenticatedReques
def invokeBlock[A](request: Request[A], block: R[A] => Future[Result]): Future[Result] = {
val secureAction = new org.pac4j.play.java.SecureAction(config)
val parameters = new PlayFrameworkParameters(request)
- secureAction.call(parameters, clients, authorizers, matchers).toScala.flatMap[play.api.mvc.Result] {
+ secureAction.call(parameters, clients, authorizers, matchers).asScala.flatMap[play.api.mvc.Result] {
case holder: PlayWebContextResultHolder =>
val webContext = holder.getPlayWebContext
val sessionStore = config.getSessionStoreFactory.newSessionStore(parameters)
diff --git a/shared/src/test/java/org/pac4j/play/filters/MockInMemoryAsyncCacheApi.scala b/shared/src/test/java/org/pac4j/play/filters/MockInMemoryAsyncCacheApi.scala
index dc8af3e3..f2340e77 100644
--- a/shared/src/test/java/org/pac4j/play/filters/MockInMemoryAsyncCacheApi.scala
+++ b/shared/src/test/java/org/pac4j/play/filters/MockInMemoryAsyncCacheApi.scala
@@ -1,6 +1,6 @@
package org.pac4j.play.filters
-import akka.Done
+import org.apache.pekko.Done
import play.api
import scala.collection.mutable
diff --git a/shared/src/test/java/org/pac4j/play/filters/SecurityFilterTests.scala b/shared/src/test/java/org/pac4j/play/filters/SecurityFilterTests.scala
index a6b738aa..dfdb2ddc 100644
--- a/shared/src/test/java/org/pac4j/play/filters/SecurityFilterTests.scala
+++ b/shared/src/test/java/org/pac4j/play/filters/SecurityFilterTests.scala
@@ -1,7 +1,7 @@
package org.pac4j.play.filters
-import akka.actor.ActorSystem
-import akka.stream.{ActorMaterializer, Materializer}
+import org.apache.pekko.actor.ActorSystem
+import org.apache.pekko.stream.{ActorMaterializer, Materializer}
import com.typesafe.config.ConfigFactory
import org.junit.Test
import org.junit.runner.RunWith