diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index c496c480d35..b7bbe7b3d91 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -32,6 +32,7 @@ For upgrade instructions, please check the [migration guide](MIGRATIONS.released - Updated antd UI library from version 4.24.8 to 4.24.15. [#7505](https://github.com/scalableminds/webknossos/pull/7505) - Changed the default dataset search mode to also search in subfolders. [#7539](https://github.com/scalableminds/webknossos/pull/7539) - When clicking a segment in the viewport, it is automatically focused in the segment list. A corresponding context menu entry was added as well. [#7512](https://github.com/scalableminds/webknossos/pull/7512) +- Upgraded to Play 3. [#7562](https://github.com/scalableminds/webknossos/pull/7562) - Updated the isValidName route in the API to return 200 for valid and invalid names. With this, the API version was bumped up to 6. [#7550](https://github.com/scalableminds/webknossos/pull/7550) - The metadata for ND datasets and their annotation has changed: upper bound of additionalAxes is now stored as an exclusive value, called "end" in the NML format. [#7547](https://github.com/scalableminds/webknossos/pull/7547) diff --git a/MIGRATIONS.unreleased.md b/MIGRATIONS.unreleased.md index 1cccde5d142..bf880256643 100644 --- a/MIGRATIONS.unreleased.md +++ b/MIGRATIONS.unreleased.md @@ -13,6 +13,9 @@ User-facing changes are documented in the [changelog](CHANGELOG.released.md). - If your setup contains webknossos-workers, you may want to add the new available worker job `compute_segment_index_file` to the `supportedJobCommands` column of one or more of your workers. [#7493](https://github.com/scalableminds/webknossos/pull/7493) - The WEBKNOSSOS api version has changed to 6. The `isValidNewName` route for datasets now returns 200 regardless of whether the name is valid or not. The body contains a JSON object with the key "isValid". [#7550](https://github.com/scalableminds/webknossos/pull/7550) - If your setup contains ND datasets, run the python3 script at `tools/migrate-axis-bounds/migration.py` on your datastores to update the datasource-properties.jsons of the ND datasets. +- With the upgrade to Play 3 and the migration to pekko, configuration keys using akka need to be changed. For the default configuration this results in the following changes: + - akka.requestTimeout → pekko.requestTimeout + - akka.actor.default-dispatcher → pekko.actor.default-dispatcher ### Postgres Evolutions: diff --git a/app/Startup.scala b/app/Startup.scala index ee83169c550..be4fac6cc0a 100755 --- a/app/Startup.scala +++ b/app/Startup.scala @@ -1,4 +1,4 @@ -import akka.actor.{ActorSystem, Props} +import org.apache.pekko.actor.{ActorSystem, Props} import cleanup.CleanUpService import com.typesafe.scalalogging.LazyLogging import controllers.InitialDataService diff --git a/app/cleanup/CleanUpService.scala b/app/cleanup/CleanUpService.scala index a2a686584c8..1ebd649565b 100644 --- a/app/cleanup/CleanUpService.scala +++ b/app/cleanup/CleanUpService.scala @@ -1,6 +1,6 @@ package cleanup -import akka.actor.{ActorSystem, Cancellable} +import org.apache.pekko.actor.{ActorSystem, Cancellable} import com.scalableminds.util.tools.Fox import com.typesafe.scalalogging.LazyLogging import javax.inject.Inject @@ -11,10 +11,10 @@ import scala.concurrent.duration.FiniteDuration class CleanUpService @Inject()(system: ActorSystem)(implicit ec: ExecutionContext) extends LazyLogging { - @volatile private var akkaIsShuttingDown = false + @volatile private var pekkoIsShuttingDown = false system.registerOnTermination { - akkaIsShuttingDown = true + pekkoIsShuttingDown = true } def register[T](description: String, interval: FiniteDuration, runOnShutdown: Boolean = false)( @@ -22,7 +22,7 @@ class CleanUpService @Inject()(system: ActorSystem)(implicit ec: ExecutionContex system.scheduler.scheduleWithFixedDelay(interval, interval)(() => runJob(description, job, runOnShutdown)) private def runJob[T](description: String, job: => Fox[T], runOnShutdown: Boolean): Unit = - if (!akkaIsShuttingDown || runOnShutdown) { + if (!pekkoIsShuttingDown || runOnShutdown) { job.futureBox.map { case Full(value) => logger.info(s"Completed cleanup job: $description. Result: " + value) diff --git a/app/controllers/AnnotationController.scala b/app/controllers/AnnotationController.scala index 6efd9d82047..9417182fd22 100755 --- a/app/controllers/AnnotationController.scala +++ b/app/controllers/AnnotationController.scala @@ -1,6 +1,6 @@ package controllers -import akka.util.Timeout +import org.apache.pekko.util.Timeout import play.silhouette.api.Silhouette import com.scalableminds.util.accesscontext.{DBAccessContext, GlobalAccessContext} import com.scalableminds.util.geometry.BoundingBox diff --git a/app/controllers/AnnotationIOController.scala b/app/controllers/AnnotationIOController.scala index 71afbb5632b..f96d052e6c0 100755 --- a/app/controllers/AnnotationIOController.scala +++ b/app/controllers/AnnotationIOController.scala @@ -2,8 +2,8 @@ package controllers import java.io.{BufferedOutputStream, File, FileOutputStream} import java.util.zip.Deflater -import akka.actor.ActorSystem -import akka.stream.Materializer +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.stream.Materializer import play.silhouette.api.Silhouette import com.scalableminds.util.accesscontext.{DBAccessContext, GlobalAccessContext} import com.scalableminds.util.io.ZipIO diff --git a/app/controllers/Application.scala b/app/controllers/Application.scala index 2f1f72db9ef..497e8471c5d 100755 --- a/app/controllers/Application.scala +++ b/app/controllers/Application.scala @@ -1,6 +1,6 @@ package controllers -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import play.silhouette.api.Silhouette import com.scalableminds.util.tools.{Fox, FoxImplicits} import com.typesafe.config.ConfigRenderOptions diff --git a/app/controllers/AuthenticationController.scala b/app/controllers/AuthenticationController.scala index 5561af3558b..c9e8794a2ae 100755 --- a/app/controllers/AuthenticationController.scala +++ b/app/controllers/AuthenticationController.scala @@ -1,6 +1,6 @@ package controllers -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import play.silhouette.api.actions.SecuredRequest import play.silhouette.api.exceptions.ProviderException import play.silhouette.api.services.AuthenticatorResult diff --git a/app/controllers/OrganizationController.scala b/app/controllers/OrganizationController.scala index 6a4ab3c4b02..9304aedb5d8 100755 --- a/app/controllers/OrganizationController.scala +++ b/app/controllers/OrganizationController.scala @@ -1,6 +1,6 @@ package controllers -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import play.silhouette.api.Silhouette import com.scalableminds.util.accesscontext.{DBAccessContext, GlobalAccessContext} import com.scalableminds.util.time.Instant diff --git a/app/mail/MailchimpTicker.scala b/app/mail/MailchimpTicker.scala index 4ec85937244..fdd214aa957 100644 --- a/app/mail/MailchimpTicker.scala +++ b/app/mail/MailchimpTicker.scala @@ -1,6 +1,6 @@ package mail -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.scalableminds.util.accesscontext.{DBAccessContext, GlobalAccessContext} import com.scalableminds.util.time.Instant import com.scalableminds.util.tools.Fox diff --git a/app/mail/Mailer.scala b/app/mail/Mailer.scala index 825d0cbd325..db986cbe360 100644 --- a/app/mail/Mailer.scala +++ b/app/mail/Mailer.scala @@ -1,6 +1,6 @@ package mail -import akka.actor._ +import org.apache.pekko.actor._ import com.typesafe.scalalogging.LazyLogging import javax.mail.internet.InternetAddress import org.apache.commons.mail._ diff --git a/app/models/annotation/AnnotationMutexService.scala b/app/models/annotation/AnnotationMutexService.scala index acac310d94e..6495b1537cc 100644 --- a/app/models/annotation/AnnotationMutexService.scala +++ b/app/models/annotation/AnnotationMutexService.scala @@ -1,6 +1,6 @@ package models.annotation -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.scalableminds.util.accesscontext.GlobalAccessContext import com.scalableminds.util.time.Instant import com.scalableminds.util.tools.Fox diff --git a/app/models/annotation/AnnotationService.scala b/app/models/annotation/AnnotationService.scala index bcd16b8fa83..407abca424c 100755 --- a/app/models/annotation/AnnotationService.scala +++ b/app/models/annotation/AnnotationService.scala @@ -1,7 +1,7 @@ package models.annotation -import akka.actor.ActorSystem -import akka.stream.Materializer +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.stream.Materializer import com.scalableminds.util.accesscontext.{AuthorizedAccessContext, DBAccessContext, GlobalAccessContext} import com.scalableminds.util.geometry.{BoundingBox, Vec3Double, Vec3Int} import com.scalableminds.util.io.{NamedStream, ZipIO} diff --git a/app/models/job/Job.scala b/app/models/job/Job.scala index c38e53cdbeb..d5798f165fc 100644 --- a/app/models/job/Job.scala +++ b/app/models/job/Job.scala @@ -1,6 +1,6 @@ package models.job -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.scalableminds.util.accesscontext.{DBAccessContext, GlobalAccessContext} import com.scalableminds.util.geometry.{BoundingBox, Vec3Int} import com.scalableminds.util.mvc.Formatter diff --git a/app/models/job/Worker.scala b/app/models/job/Worker.scala index 1bb8119911e..187c4ef6dd8 100644 --- a/app/models/job/Worker.scala +++ b/app/models/job/Worker.scala @@ -1,6 +1,6 @@ package models.job -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.scalableminds.util.accesscontext.GlobalAccessContext import com.scalableminds.util.mvc.Formatter import com.scalableminds.util.time.Instant diff --git a/app/models/storage/UsedStorageService.scala b/app/models/storage/UsedStorageService.scala index b7ab20e7b33..67c77ce4d7d 100644 --- a/app/models/storage/UsedStorageService.scala +++ b/app/models/storage/UsedStorageService.scala @@ -1,6 +1,6 @@ package models.storage -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.scalableminds.util.accesscontext.{DBAccessContext, GlobalAccessContext} import com.scalableminds.util.time.Instant import com.scalableminds.util.tools.Fox diff --git a/app/models/user/EmailVerificationService.scala b/app/models/user/EmailVerificationService.scala index c264e85a3ec..cd04217185c 100644 --- a/app/models/user/EmailVerificationService.scala +++ b/app/models/user/EmailVerificationService.scala @@ -1,6 +1,6 @@ package models.user -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.scalableminds.util.accesscontext.DBAccessContext import com.scalableminds.util.time.Instant import com.scalableminds.util.tools.Fox diff --git a/app/models/user/Invite.scala b/app/models/user/Invite.scala index 269e9f96e5a..267d27f3375 100644 --- a/app/models/user/Invite.scala +++ b/app/models/user/Invite.scala @@ -1,6 +1,6 @@ package models.user -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.scalableminds.util.accesscontext.DBAccessContext import com.scalableminds.util.time.Instant import com.scalableminds.util.tools.{Fox, FoxImplicits} diff --git a/app/models/user/UserService.scala b/app/models/user/UserService.scala index 5dbfe248102..122645aad3a 100755 --- a/app/models/user/UserService.scala +++ b/app/models/user/UserService.scala @@ -1,6 +1,6 @@ package models.user -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import play.silhouette.api.LoginInfo import play.silhouette.api.services.IdentityService import play.silhouette.api.util.PasswordInfo diff --git a/app/models/voxelytics/LokiClient.scala b/app/models/voxelytics/LokiClient.scala index 526afb3a08b..1ea3a7f3d9c 100644 --- a/app/models/voxelytics/LokiClient.scala +++ b/app/models/voxelytics/LokiClient.scala @@ -1,6 +1,7 @@ package models.voxelytics -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.pattern.after import com.scalableminds.util.mvc.MimeTypes import com.scalableminds.util.time.Instant import com.scalableminds.util.tools.Fox @@ -42,7 +43,7 @@ class LokiClient @Inject()(wkConf: WkConf, rpc: RPC, val system: ActorSystem)(im private def pollUntilServerStartedUp(until: Instant): Fox[Unit] = { def waitAndRecurse(until: Instant): Fox[Unit] = for { - _ <- akka.pattern.after(POLLING_INTERVAL, using = system.scheduler)(Future.successful(())) + _ <- after(POLLING_INTERVAL, using = system.scheduler)(Future.successful(())) _ <- bool2Fox(!until.isPast) ?~> s"Loki did not become ready within ${conf.startupTimeout}." _ <- pollUntilServerStartedUp(until) } yield () diff --git a/app/opengraph/OpenGraphService.scala b/app/opengraph/OpenGraphService.scala index 6bb688b5571..c4081092493 100644 --- a/app/opengraph/OpenGraphService.scala +++ b/app/opengraph/OpenGraphService.scala @@ -1,6 +1,6 @@ package opengraph -import akka.http.scaladsl.model.Uri +import org.apache.pekko.http.scaladsl.model.Uri import com.google.inject.Inject import com.scalableminds.util.accesscontext.DBAccessContext import com.scalableminds.util.enumeration.ExtendedEnumeration diff --git a/app/thirdparty/BrainTracing.scala b/app/thirdparty/BrainTracing.scala index 5fceaf2df21..014a3a6dbfa 100755 --- a/app/thirdparty/BrainTracing.scala +++ b/app/thirdparty/BrainTracing.scala @@ -1,6 +1,6 @@ package thirdparty -import akka.actor.{ActorSelection, ActorSystem} +import org.apache.pekko.actor.{ActorSelection, ActorSystem} import com.scalableminds.util.accesscontext.GlobalAccessContext import com.scalableminds.util.security.SCrypt import com.scalableminds.util.tools.{Fox, FoxImplicits} diff --git a/build.sbt b/build.sbt index c464b04491f..971dff89d18 100644 --- a/build.sbt +++ b/build.sbt @@ -22,7 +22,7 @@ ThisBuild / javacOptions ++= Seq( ) ThisBuild / dependencyCheckAssemblyAnalyzerEnabled := Some(false) -PlayKeys.devSettings := Seq("play.server.akka.requestTimeout" -> "10000s", "play.server.http.idleTimeout" -> "10000s") +PlayKeys.devSettings := Seq("play.server.pekko.requestTimeout" -> "10000s", "play.server.http.idleTimeout" -> "10000s") // Disable unused import warnings, only in sbt console REPL Compile / console / scalacOptions -= "-Xlint:unused" diff --git a/conf/application.conf b/conf/application.conf index 67db7f0bd41..e5d91b66ea3 100644 --- a/conf/application.conf +++ b/conf/application.conf @@ -56,7 +56,7 @@ play { # Timeouts. Note that these take effect only in production mode (timeouts are shorter in dev) server { http.idleTimeout = 2 hours - akka.requestTimeout = 2 hours + pekko.requestTimeout = 2 hours } assets { cache { @@ -72,7 +72,7 @@ play { } } -akka.actor.default-dispatcher { +pekko.actor.default-dispatcher { # We use a compromise for our thread pool configuration # Parts of our api are async, so they should not need many threads, # but some parts are also blocking (file io, gcs, s3 access), causing new requests diff --git a/conf/logback-dev.xml b/conf/logback-dev.xml index 82a05312595..e8aa9cb9f8a 100644 --- a/conf/logback-dev.xml +++ b/conf/logback-dev.xml @@ -17,7 +17,7 @@ - + diff --git a/conf/logback.xml b/conf/logback.xml index 018b3d26531..82d0197a708 100644 --- a/conf/logback.xml +++ b/conf/logback.xml @@ -16,7 +16,7 @@ - + diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 1c3c2a5a504..def4f720b5e 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -2,14 +2,14 @@ import play.sbt.PlayImport.{filters, _} import sbt._ object Dependencies { - private val silhouetteVersion = "9.0.0" + private val silhouetteVersion = "10.0.0" private val brotliVersion = "1.11.0" private val scalapbVersion = scalapb.compiler.Version.scalapbVersion private val grpcVersion = scalapb.compiler.Version.grpcJavaVersion val utilDependencies: Seq[ModuleID] = Seq( // Play Web Framework. import play - "com.typesafe.play" %% "play" % "2.9.0", + "org.playframework" %% "play" % "3.0.1", // Play’s JSON serialization. import play.api.libs.json "com.typesafe.play" %% "play-json" % "2.10.1", // Sending emails. import org.apache.commons.mail @@ -85,8 +85,8 @@ object Dependencies { val webknossosDependencies: Seq[ModuleID] = Seq( // Base64, Hashing. import org.apache.commons.codec "commons-codec" % "commons-codec" % "1.16.0", - // End-to-end tests. import org.scalatestplus.play - "org.scalatestplus.play" %% "scalatestplus-play" % "5.1.0" % "test", + // End-to-end tests, backend unit tests. import org.scalatestplus.play + "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % "test", // Authenticated requests. import play.silhouette "org.playframework.silhouette" %% "play-silhouette" % silhouetteVersion, // Signing Cookies. import play.silhouette.crypto diff --git a/project/plugins.sbt b/project/plugins.sbt index 37f6334c9c8..745d372c6a2 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,5 +1,5 @@ // play framework -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0-RC3") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") // buildinfo routes addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.11.0") diff --git a/util/src/main/scala/com/scalableminds/util/cache/AlfuCache.scala b/util/src/main/scala/com/scalableminds/util/cache/AlfuCache.scala index db5b3735b65..3e857c62826 100644 --- a/util/src/main/scala/com/scalableminds/util/cache/AlfuCache.scala +++ b/util/src/main/scala/com/scalableminds/util/cache/AlfuCache.scala @@ -6,8 +6,8 @@ import net.liftweb.common.{Box, Failure} import java.util.concurrent.{CompletableFuture, Executor, TimeUnit} import java.util.function.BiFunction -import scala.compat.java8.FunctionConverters.asJavaBiFunction -import scala.compat.java8.FutureConverters.{CompletionStageOps, FutureOps} +import scala.jdk.FunctionWrappers.AsJavaBiFunction +import scala.jdk.FutureConverters.{CompletionStageOps, FutureOps} import scala.concurrent.{ExecutionContext, Future} import scala.concurrent.duration.{DurationInt, FiniteDuration} import scala.jdk.CollectionConverters._ @@ -25,7 +25,7 @@ class AlfuCache[K, V](store: AsyncCache[K, Box[V]]) extends FoxImplicits { } yield result private def getOrLoadAdapter(key: K, loadValue: K => Future[Box[V]]): Future[Box[V]] = - store.get(key, AlfuCache.toJavaMappingFunction[K, Box[V]](loadValue)).toScala + store.get(key, AlfuCache.toJavaMappingFunction[K, Box[V]](loadValue)).asScala def remove(key: K): Unit = store.synchronous().invalidate(key) @@ -73,7 +73,7 @@ object AlfuCache { } private def toJavaMappingFunction[K, V](loadValue: K => Future[V]): BiFunction[K, Executor, CompletableFuture[V]] = - asJavaBiFunction[K, Executor, CompletableFuture[V]]((k, _) => loadValue(k).toJava.toCompletableFuture) + new AsJavaBiFunction[K, Executor, CompletableFuture[V]]((k, _) => loadValue(k).asJava.toCompletableFuture) } diff --git a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/DataStoreModule.scala b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/DataStoreModule.scala index aee6753d473..24c5680ce88 100644 --- a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/DataStoreModule.scala +++ b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/DataStoreModule.scala @@ -1,6 +1,6 @@ package com.scalableminds.webknossos.datastore -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.google.inject.AbstractModule import com.google.inject.name.Names import com.scalableminds.webknossos.datastore.services._ diff --git a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/helpers/IntervalScheduler.scala b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/helpers/IntervalScheduler.scala index defa0f1bb4d..dac330158eb 100644 --- a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/helpers/IntervalScheduler.scala +++ b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/helpers/IntervalScheduler.scala @@ -1,6 +1,6 @@ package com.scalableminds.webknossos.datastore.helpers -import akka.actor.{ActorSystem, Cancellable} +import org.apache.pekko.actor.{ActorSystem, Cancellable} import play.api.inject.ApplicationLifecycle import scala.concurrent.{ExecutionContext, Future} diff --git a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/AdHocMeshService.scala b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/AdHocMeshService.scala index 4d63f79bbe2..0f5b5c24b35 100644 --- a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/AdHocMeshService.scala +++ b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/AdHocMeshService.scala @@ -1,10 +1,10 @@ package com.scalableminds.webknossos.datastore.services import java.nio._ -import akka.actor.{Actor, ActorRef, ActorSystem, Props} -import akka.pattern.ask -import akka.routing.RoundRobinPool -import akka.util.Timeout +import org.apache.pekko.actor.{Actor, ActorRef, ActorSystem, Props} +import org.apache.pekko.pattern.ask +import org.apache.pekko.routing.RoundRobinPool +import org.apache.pekko.util.Timeout import com.scalableminds.util.geometry.{BoundingBox, Vec3Double, Vec3Int} import com.scalableminds.util.tools.{Fox, FoxImplicits} import com.scalableminds.webknossos.datastore.models.AdditionalCoordinate diff --git a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/AdHocMeshingServiceHolder.scala b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/AdHocMeshingServiceHolder.scala index ce51a0cdebd..4ae043c805b 100644 --- a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/AdHocMeshingServiceHolder.scala +++ b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/AdHocMeshingServiceHolder.scala @@ -1,6 +1,6 @@ package com.scalableminds.webknossos.datastore.services -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import javax.inject.Inject import scala.concurrent.ExecutionContext diff --git a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DSRemoteWebKnossosClient.scala b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DSRemoteWebKnossosClient.scala index cc45c9c60ed..f5e3f580ef7 100644 --- a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DSRemoteWebKnossosClient.scala +++ b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DSRemoteWebKnossosClient.scala @@ -1,6 +1,6 @@ package com.scalableminds.webknossos.datastore.services -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.google.inject.Inject import com.google.inject.name.Named import com.scalableminds.util.cache.AlfuCache diff --git a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DataSourceRepository.scala b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DataSourceRepository.scala index 79d419a4ca4..bd2eebcd7c9 100644 --- a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DataSourceRepository.scala +++ b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DataSourceRepository.scala @@ -1,6 +1,6 @@ package com.scalableminds.webknossos.datastore.services -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.google.inject.Inject import com.google.inject.name.Named import com.scalableminds.webknossos.datastore.models.datasource.inbox.InboxDataSource diff --git a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DataSourceService.scala b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DataSourceService.scala index 3f85842f4bf..8d17cb9cc30 100644 --- a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DataSourceService.scala +++ b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DataSourceService.scala @@ -1,6 +1,6 @@ package com.scalableminds.webknossos.datastore.services -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.google.inject.Inject import com.google.inject.name.Named import com.scalableminds.util.io.PathUtils diff --git a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DatasetErrorLoggingService.scala b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DatasetErrorLoggingService.scala index 704d497769e..62d80a5aa69 100644 --- a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DatasetErrorLoggingService.scala +++ b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DatasetErrorLoggingService.scala @@ -1,6 +1,6 @@ package com.scalableminds.webknossos.datastore.services -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.google.inject.name.Named import com.scalableminds.webknossos.datastore.helpers.IntervalScheduler import com.typesafe.scalalogging.LazyLogging diff --git a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/storage/TemporaryStore.scala b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/storage/TemporaryStore.scala index ac2869271ce..1ec23abd39a 100644 --- a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/storage/TemporaryStore.scala +++ b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/storage/TemporaryStore.scala @@ -1,6 +1,6 @@ package com.scalableminds.webknossos.datastore.storage -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import javax.inject.Inject import scala.concurrent.ExecutionContext diff --git a/webknossos-datastore/conf/logback.xml b/webknossos-datastore/conf/logback.xml index 484faf4099e..57c74fdaee4 100644 --- a/webknossos-datastore/conf/logback.xml +++ b/webknossos-datastore/conf/logback.xml @@ -13,7 +13,7 @@ - + diff --git a/webknossos-datastore/conf/standalone-datastore.conf b/webknossos-datastore/conf/standalone-datastore.conf index c946f74a2c9..2fb36dc1d4a 100644 --- a/webknossos-datastore/conf/standalone-datastore.conf +++ b/webknossos-datastore/conf/standalone-datastore.conf @@ -26,7 +26,7 @@ play { server { # Timeouts. Note that these take effect only in production mode (timeouts are shorter in dev) http.idleTimeout = 10000s - akka.requestTimeout = 10000s + pekko.requestTimeout = 10000s } ws { timeout.request = 2 hours @@ -35,7 +35,7 @@ play { } } -akka.actor.default-dispatcher { +pekko.actor.default-dispatcher { # We use a compromise for our thread pool configuration # Parts of our api are async, so they should not need many threads, # but some parts are also blocking (file io, gcs, s3 access), causing new requests diff --git a/webknossos-tracingstore/app/com/scalableminds/webknossos/tracingstore/TracingStoreModule.scala b/webknossos-tracingstore/app/com/scalableminds/webknossos/tracingstore/TracingStoreModule.scala index 1327dc918b2..5886c45b7bf 100644 --- a/webknossos-tracingstore/app/com/scalableminds/webknossos/tracingstore/TracingStoreModule.scala +++ b/webknossos-tracingstore/app/com/scalableminds/webknossos/tracingstore/TracingStoreModule.scala @@ -1,6 +1,6 @@ package com.scalableminds.webknossos.tracingstore -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.google.inject.AbstractModule import com.google.inject.name.Names import com.scalableminds.webknossos.datastore.services.AdHocMeshingServiceHolder diff --git a/webknossos-tracingstore/app/com/scalableminds/webknossos/tracingstore/tracings/TemporaryTracingStore.scala b/webknossos-tracingstore/app/com/scalableminds/webknossos/tracingstore/tracings/TemporaryTracingStore.scala index 5b65a84c5d0..1ade2c25851 100644 --- a/webknossos-tracingstore/app/com/scalableminds/webknossos/tracingstore/tracings/TemporaryTracingStore.scala +++ b/webknossos-tracingstore/app/com/scalableminds/webknossos/tracingstore/tracings/TemporaryTracingStore.scala @@ -1,6 +1,6 @@ package com.scalableminds.webknossos.tracingstore.tracings -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.google.inject.Inject import com.google.inject.name.Named import com.scalableminds.webknossos.datastore.storage.TemporaryStore diff --git a/webknossos-tracingstore/app/com/scalableminds/webknossos/tracingstore/tracings/TracingDataStore.scala b/webknossos-tracingstore/app/com/scalableminds/webknossos/tracingstore/tracings/TracingDataStore.scala index 8d198d64398..37df9decf09 100644 --- a/webknossos-tracingstore/app/com/scalableminds/webknossos/tracingstore/tracings/TracingDataStore.scala +++ b/webknossos-tracingstore/app/com/scalableminds/webknossos/tracingstore/tracings/TracingDataStore.scala @@ -1,6 +1,6 @@ package com.scalableminds.webknossos.tracingstore.tracings -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.google.inject.Inject import com.scalableminds.webknossos.tracingstore.TracingStoreConfig import com.scalableminds.webknossos.tracingstore.slacknotification.TSSlackNotificationService diff --git a/webknossos-tracingstore/conf/logback.xml b/webknossos-tracingstore/conf/logback.xml index 484faf4099e..57c74fdaee4 100644 --- a/webknossos-tracingstore/conf/logback.xml +++ b/webknossos-tracingstore/conf/logback.xml @@ -13,7 +13,7 @@ - + diff --git a/webknossos-tracingstore/conf/standalone-tracingstore.conf b/webknossos-tracingstore/conf/standalone-tracingstore.conf index 8053cae40bb..ae1d166e1f9 100644 --- a/webknossos-tracingstore/conf/standalone-tracingstore.conf +++ b/webknossos-tracingstore/conf/standalone-tracingstore.conf @@ -26,7 +26,7 @@ play { server { # Timeouts. Note that these take effect only in production mode (timeouts are shorter in dev) http.idleTimeout = 10000s - akka.requestTimeout = 10000s + pekko.requestTimeout = 10000s } ws { timeout.request = 2 hours @@ -35,7 +35,7 @@ play { } } -akka.actor.default-dispatcher { +pekko.actor.default-dispatcher { # We use a compromise for our thread pool configuration # Parts of our api are async, so they should not need many threads, # but some parts are also blocking (file io, gcs, s3 access), causing new requests