From c8c99ffdcd426b09ecb241ce4fe2c78565f732aa Mon Sep 17 00:00:00 2001 From: Sebastian Alfers Date: Fri, 4 Oct 2024 16:16:04 +0200 Subject: [PATCH 1/2] chore: bump to akka 2.10.0-M1 (#83) --- .../scaladsl/EventSourcedCleanup.scala | 5 ++-- .../dynamodb/internal/BySliceQuery.scala | 17 +++++------ .../dynamodb/internal/ContinuousQuery.scala | 6 ++-- .../dynamodb/internal/JournalDao.scala | 23 +++++++------- .../dynamodb/internal/QueryDao.scala | 6 ++-- .../dynamodb/internal/SnapshotDao.scala | 15 +++++----- .../dynamodb/journal/DynamoDBJournal.scala | 3 +- .../query/javadsl/DynamoDBReadJournal.scala | 4 +-- .../dynamodb/util/scaladsl/CreateTables.scala | 9 +++--- .../persistence/dynamodb/TestActors.scala | 7 ++--- .../dynamodb/util/ClientProviderSpec.scala | 9 +++--- project/Dependencies.scala | 6 ++-- .../dynamodb/DynamoDBProjectionSettings.scala | 8 ++--- .../internal/DynamoDBHandlerAdapter.scala | 6 ++-- .../internal/DynamoDBOffsetStore.scala | 3 +- .../internal/DynamoDBProjectionImpl.scala | 20 ++++++------- .../dynamodb/internal/OffsetStoreDao.scala | 30 +++++++++---------- .../dynamodb/scaladsl/CreateTables.scala | 5 ++-- ...ynamoDBTimestampOffsetProjectionSpec.scala | 5 ++-- .../dynamodb/EventSourcedPubSubSpec.scala | 5 ++-- .../akka/projection/dynamodb/TestActors.scala | 7 ++--- .../TestSourceProviderWithInput.scala | 2 +- 22 files changed, 93 insertions(+), 108 deletions(-) diff --git a/core/src/main/scala/akka/persistence/dynamodb/cleanup/scaladsl/EventSourcedCleanup.scala b/core/src/main/scala/akka/persistence/dynamodb/cleanup/scaladsl/EventSourcedCleanup.scala index 47ce05d..bf52cfd 100644 --- a/core/src/main/scala/akka/persistence/dynamodb/cleanup/scaladsl/EventSourcedCleanup.scala +++ b/core/src/main/scala/akka/persistence/dynamodb/cleanup/scaladsl/EventSourcedCleanup.scala @@ -15,7 +15,6 @@ import scala.util.Success import akka.Done import akka.actor.ClassicActorSystemProvider import akka.actor.typed.ActorSystem -import akka.actor.typed.scaladsl.LoggerOps import akka.annotation.ApiMayChange import akka.annotation.InternalApi import akka.persistence.SnapshotSelectionCriteria @@ -549,7 +548,7 @@ final class EventSourcedCleanup(systemProvider: ClassicActorSystemProvider, conf case pid :: tail => pidOperation(pid).flatMap { _ => if (n % settings.cleanupSettings.logProgressEvery == 0) - log.infoN("Cleanup {} [{}] of [{}].", operationName, n, size) + log.info("Cleanup {} [{}] of [{}].", operationName, n, size) loop(tail, n + 1) } } @@ -559,7 +558,7 @@ final class EventSourcedCleanup(systemProvider: ClassicActorSystemProvider, conf result.onComplete { case Success(_) => - log.info2("Cleanup completed {} of [{}] persistenceId.", operationName, size) + log.info("Cleanup completed {} of [{}] persistenceId.", operationName, size) case Failure(e) => log.error(s"Cleanup {$operationName} failed.", e) } diff --git a/core/src/main/scala/akka/persistence/dynamodb/internal/BySliceQuery.scala b/core/src/main/scala/akka/persistence/dynamodb/internal/BySliceQuery.scala index 335677c..816a55a 100644 --- a/core/src/main/scala/akka/persistence/dynamodb/internal/BySliceQuery.scala +++ b/core/src/main/scala/akka/persistence/dynamodb/internal/BySliceQuery.scala @@ -11,7 +11,6 @@ import scala.concurrent.ExecutionContext import scala.concurrent.duration.FiniteDuration import akka.NotUsed -import akka.actor.typed.scaladsl.LoggerOps import akka.annotation.InternalApi import akka.persistence.dynamodb.DynamoDBSettings import akka.persistence.query.Offset @@ -118,7 +117,7 @@ import org.slf4j.Logger } if (state.queryCount != 0 && log.isDebugEnabled()) - log.debugN( + log.debug( "{} next query [{}] from slice [{}], between time [{} - {}]. Found [{}] items in previous query.", logPrefix, state.queryCount, @@ -136,7 +135,7 @@ import org.slf4j.Logger .via(deserializeAndAddOffset(state.latest))) } else { if (log.isDebugEnabled) - log.debugN( + log.debug( "{} query [{}] from slice [{}] completed. Found [{}] items in previous query.", logPrefix, state.queryCount, @@ -149,7 +148,7 @@ import org.slf4j.Logger val currentTimestamp = InstantFactory.now() if (log.isDebugEnabled()) - log.debugN( + log.debug( "{} query slice [{}], from time [{}] until now [{}].", logPrefix, slice, @@ -174,7 +173,7 @@ import org.slf4j.Logger val initialOffset = toTimestampOffset(offset) if (log.isDebugEnabled()) - log.debugN("Starting {} query from slice [{}], from time [{}].", logPrefix, slice, initialOffset.timestamp) + log.debug("Starting {} query from slice [{}], from time [{}].", logPrefix, slice, initialOffset.timestamp) def nextOffset(state: QueryState, envelope: Envelope): QueryState = { val offset = extractOffset(envelope) @@ -198,7 +197,7 @@ import org.slf4j.Logger if (log.isDebugEnabled()) { if (state.latestBacktracking.seen.nonEmpty && offset.timestamp.isAfter(state.latestBacktracking.timestamp.plus(firstBacktrackingQueryWindow))) - log.debugN( + log.debug( "{} next offset is outside the backtracking window, latestBacktracking: [{}], offset: [{}]", logPrefix, state.latestBacktracking, @@ -221,7 +220,7 @@ import org.slf4j.Logger if (log.isDebugEnabled) delay.foreach { d => - log.debugN( + log.debug( "{} query [{}] from slice [{}] delay next [{}] ms.", logPrefix, state.queryCount, @@ -308,7 +307,7 @@ import org.slf4j.Logger " in backtracking mode," else "" - log.debugN( + log.debug( "{} next query [{}]{} from slice [{}], between time [{} - {}]. {}", logPrefix, newState.queryCount, @@ -351,7 +350,7 @@ import org.slf4j.Logger throw new IllegalStateException( s"Too many events stored with the same timestamp [$currentTimestamp], buffer size [${settings.querySettings.bufferSize}]") } - log.traceN( + log.trace( "filtering [{}] [{}] as db timestamp is the same as last offset and is in seen [{}]", item.persistenceId, item.seqNr, diff --git a/core/src/main/scala/akka/persistence/dynamodb/internal/ContinuousQuery.scala b/core/src/main/scala/akka/persistence/dynamodb/internal/ContinuousQuery.scala index 89ba063..17691f6 100644 --- a/core/src/main/scala/akka/persistence/dynamodb/internal/ContinuousQuery.scala +++ b/core/src/main/scala/akka/persistence/dynamodb/internal/ContinuousQuery.scala @@ -4,15 +4,15 @@ package akka.persistence.dynamodb.internal -import scala.concurrent.Future import scala.concurrent.duration._ +import scala.concurrent.ExecutionContext +import scala.concurrent.Future import scala.util.Failure import scala.util.Success import scala.util.Try import akka.NotUsed import akka.annotation.InternalApi -import akka.dispatch.ExecutionContexts import akka.stream.Attributes import akka.stream.Outlet import akka.stream.SourceShape @@ -118,7 +118,7 @@ final private[dynamodb] class ContinuousQuery[S, T]( beforeQuery(state) match { case None => runNextQuery() case Some(beforeQueryFuture) => - beforeQueryFuture.onComplete(beforeQueryCallback.invoke)(ExecutionContexts.parasitic) + beforeQueryFuture.onComplete(beforeQueryCallback.invoke)(ExecutionContext.parasitic) } } } diff --git a/core/src/main/scala/akka/persistence/dynamodb/internal/JournalDao.scala b/core/src/main/scala/akka/persistence/dynamodb/internal/JournalDao.scala index 2a23ed0..7dbcb17 100644 --- a/core/src/main/scala/akka/persistence/dynamodb/internal/JournalDao.scala +++ b/core/src/main/scala/akka/persistence/dynamodb/internal/JournalDao.scala @@ -16,7 +16,6 @@ import scala.jdk.FutureConverters._ import akka.Done import akka.actor.typed.ActorSystem import akka.annotation.InternalApi -import akka.dispatch.ExecutionContexts import akka.persistence.Persistence import akka.persistence.dynamodb.DynamoDBSettings import akka.persistence.typed.PersistenceId @@ -115,7 +114,7 @@ import software.amazon.awssdk.services.dynamodb.model.Update response.consumedCapacity.capacityUnits) } } - result.map(_ => Done)(ExecutionContexts.parasitic) + result.map(_ => Done)(ExecutionContext.parasitic) } else { val writeItems = events.map { item => @@ -143,10 +142,10 @@ import software.amazon.awssdk.services.dynamodb.model.Update } } result - .map(_ => Done)(ExecutionContexts.parasitic) + .map(_ => Done)(ExecutionContext.parasitic) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } } @@ -190,7 +189,7 @@ import software.amazon.awssdk.services.dynamodb.model.Update result .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } private def readLowestSequenceNr(persistenceId: String): Future[Long] = { @@ -220,7 +219,7 @@ import software.amazon.awssdk.services.dynamodb.model.Update result .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } def deleteEventsTo(persistenceId: String, toSequenceNr: Long, resetSequenceNumber: Boolean): Future[Unit] = { @@ -284,10 +283,10 @@ import software.amazon.awssdk.services.dynamodb.model.Update } } result - .map(_ => ())(ExecutionContexts.parasitic) + .map(_ => ())(ExecutionContext.parasitic) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } // TransactWriteItems has a limit of 100 @@ -317,7 +316,7 @@ import software.amazon.awssdk.services.dynamodb.model.Update result .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } def updateEventExpiry( @@ -376,10 +375,10 @@ import software.amazon.awssdk.services.dynamodb.model.Update } } result - .map(_ => ())(ExecutionContexts.parasitic) + .map(_ => ())(ExecutionContext.parasitic) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } // TransactWriteItems has a limit of 100 @@ -409,7 +408,7 @@ import software.amazon.awssdk.services.dynamodb.model.Update result .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } } diff --git a/core/src/main/scala/akka/persistence/dynamodb/internal/QueryDao.scala b/core/src/main/scala/akka/persistence/dynamodb/internal/QueryDao.scala index 40644f1..2eee7db 100644 --- a/core/src/main/scala/akka/persistence/dynamodb/internal/QueryDao.scala +++ b/core/src/main/scala/akka/persistence/dynamodb/internal/QueryDao.scala @@ -8,6 +8,7 @@ import java.time.Instant import java.util.concurrent.CompletionException import java.util.{ Map => JMap } +import scala.concurrent.ExecutionContext import scala.concurrent.Future import scala.jdk.CollectionConverters._ import scala.jdk.FutureConverters._ @@ -15,7 +16,6 @@ import scala.jdk.FutureConverters._ import akka.NotUsed import akka.actor.typed.ActorSystem import akka.annotation.InternalApi -import akka.dispatch.ExecutionContexts import akka.persistence.dynamodb.DynamoDBSettings import akka.persistence.typed.PersistenceId import akka.stream.scaladsl.Source @@ -303,7 +303,7 @@ import software.amazon.awssdk.services.dynamodb.model.QueryRequest } .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } def loadEvent(persistenceId: String, seqNr: Long, includePayload: Boolean): Future[Option[SerializedJournalItem]] = { @@ -353,7 +353,7 @@ import software.amazon.awssdk.services.dynamodb.model.QueryRequest } .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } diff --git a/core/src/main/scala/akka/persistence/dynamodb/internal/SnapshotDao.scala b/core/src/main/scala/akka/persistence/dynamodb/internal/SnapshotDao.scala index ea62d44..68cad17 100644 --- a/core/src/main/scala/akka/persistence/dynamodb/internal/SnapshotDao.scala +++ b/core/src/main/scala/akka/persistence/dynamodb/internal/SnapshotDao.scala @@ -17,7 +17,6 @@ import scala.jdk.FutureConverters._ import akka.NotUsed import akka.actor.typed.ActorSystem import akka.annotation.InternalApi -import akka.dispatch.ExecutionContexts import akka.persistence.Persistence import akka.persistence.SnapshotSelectionCriteria import akka.persistence.dynamodb.DynamoDBSettings @@ -106,7 +105,7 @@ import software.amazon.awssdk.services.dynamodb.model.UpdateItemRequest } .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } private def itemHasExpired(item: JMap[String, AttributeValue]): Boolean = { @@ -173,10 +172,10 @@ import software.amazon.awssdk.services.dynamodb.model.UpdateItemRequest } result - .map(_ => ())(ExecutionContexts.parasitic) + .map(_ => ())(ExecutionContext.parasitic) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } def delete(persistenceId: String, criteria: SnapshotSelectionCriteria): Future[Unit] = { @@ -212,7 +211,7 @@ import software.amazon.awssdk.services.dynamodb.model.UpdateItemRequest } result - .map(_ => ())(ExecutionContexts.parasitic) + .map(_ => ())(ExecutionContext.parasitic) // ignore if the criteria conditional check failed .recover { case _: ConditionalCheckFailedException => () @@ -221,7 +220,7 @@ import software.amazon.awssdk.services.dynamodb.model.UpdateItemRequest case _: ConditionalCheckFailedException => () case cause => throw cause } - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } def updateExpiry( @@ -263,7 +262,7 @@ import software.amazon.awssdk.services.dynamodb.model.UpdateItemRequest } result - .map(_ => ())(ExecutionContexts.parasitic) + .map(_ => ())(ExecutionContext.parasitic) // ignore if the criteria conditional check failed .recover { case _: ConditionalCheckFailedException => () @@ -272,7 +271,7 @@ import software.amazon.awssdk.services.dynamodb.model.UpdateItemRequest case _: ConditionalCheckFailedException => () case cause => throw cause } - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } // Used from `BySliceQuery` (only if settings.querySettings.startFromSnapshotEnabled). diff --git a/core/src/main/scala/akka/persistence/dynamodb/journal/DynamoDBJournal.scala b/core/src/main/scala/akka/persistence/dynamodb/journal/DynamoDBJournal.scala index 83e06a6..b408ce4 100644 --- a/core/src/main/scala/akka/persistence/dynamodb/journal/DynamoDBJournal.scala +++ b/core/src/main/scala/akka/persistence/dynamodb/journal/DynamoDBJournal.scala @@ -18,7 +18,6 @@ import akka.actor.ActorRef import akka.actor.typed.ActorSystem import akka.actor.typed.scaladsl.adapter._ import akka.annotation.InternalApi -import akka.dispatch.ExecutionContexts import akka.event.Logging import akka.persistence.AtomicWrite import akka.persistence.PersistentRepr @@ -226,7 +225,7 @@ private[dynamodb] final class DynamoDBJournal(config: Config, cfgPath: String) case Some(f) => log.debug("Write in progress for [{}], deferring replayMessages until write completed", persistenceId) // we only want to make write - replay sequential, not fail if previous write failed - f.recover { case _ => Done }(ExecutionContexts.parasitic) + f.recover { case _ => Done }(ExecutionContext.parasitic) case None => FutureDone } pendingWrite.flatMap { _ => diff --git a/core/src/main/scala/akka/persistence/dynamodb/query/javadsl/DynamoDBReadJournal.scala b/core/src/main/scala/akka/persistence/dynamodb/query/javadsl/DynamoDBReadJournal.scala index cc16031..b1b5f34 100644 --- a/core/src/main/scala/akka/persistence/dynamodb/query/javadsl/DynamoDBReadJournal.scala +++ b/core/src/main/scala/akka/persistence/dynamodb/query/javadsl/DynamoDBReadJournal.scala @@ -9,12 +9,12 @@ import java.util import java.util.Optional import java.util.concurrent.CompletionStage +import scala.concurrent.ExecutionContext import scala.jdk.CollectionConverters._ import scala.jdk.FutureConverters._ import scala.jdk.OptionConverters.RichOption import akka.NotUsed -import akka.dispatch.ExecutionContexts import akka.japi.Pair import akka.persistence.dynamodb.query.scaladsl import akka.persistence.query.Offset @@ -136,7 +136,7 @@ final class DynamoDBReadJournal(delegate: scaladsl.DynamoDBReadJournal) delegate.eventsBySlicesStartingFromSnapshots(entityType, minSlice, maxSlice, offset, transformSnapshot(_)).asJava override def timestampOf(persistenceId: String, sequenceNr: Long): CompletionStage[Optional[Instant]] = - delegate.timestampOf(persistenceId, sequenceNr).map(_.toJava)(ExecutionContexts.parasitic).asJava + delegate.timestampOf(persistenceId, sequenceNr).map(_.toJava)(ExecutionContext.parasitic).asJava override def loadEnvelope[Event](persistenceId: String, sequenceNr: Long): CompletionStage[EventEnvelope[Event]] = delegate.loadEnvelope[Event](persistenceId, sequenceNr).asJava diff --git a/core/src/main/scala/akka/persistence/dynamodb/util/scaladsl/CreateTables.scala b/core/src/main/scala/akka/persistence/dynamodb/util/scaladsl/CreateTables.scala index 949433d..e18f1b0 100644 --- a/core/src/main/scala/akka/persistence/dynamodb/util/scaladsl/CreateTables.scala +++ b/core/src/main/scala/akka/persistence/dynamodb/util/scaladsl/CreateTables.scala @@ -14,7 +14,6 @@ import scala.util.Success import akka.Done import akka.actor.typed.ActorSystem -import akka.dispatch.ExecutionContexts import akka.persistence.dynamodb.DynamoDBSettings import akka.persistence.dynamodb.util.IndexSettings import akka.persistence.dynamodb.util.OnDemandThroughputSettings @@ -122,7 +121,7 @@ object CreateTables { .map(_ => Done) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } def delete(): Future[Done] = { @@ -133,7 +132,7 @@ object CreateTables { .map(_ => Done) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } existingTable.transformWith { @@ -234,7 +233,7 @@ object CreateTables { .map(_ => Done) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } def delete(): Future[Done] = { @@ -245,7 +244,7 @@ object CreateTables { .map(_ => Done) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } existingTable.transformWith { diff --git a/core/src/test/scala/akka/persistence/dynamodb/TestActors.scala b/core/src/test/scala/akka/persistence/dynamodb/TestActors.scala index d673121..a0b031e 100644 --- a/core/src/test/scala/akka/persistence/dynamodb/TestActors.scala +++ b/core/src/test/scala/akka/persistence/dynamodb/TestActors.scala @@ -9,7 +9,6 @@ import akka.actor.typed.ActorRef import akka.actor.typed.Behavior import akka.actor.typed.scaladsl.ActorContext import akka.actor.typed.scaladsl.Behaviors -import akka.actor.typed.scaladsl.LoggerOps import akka.persistence.dynamodb.query.scaladsl.DynamoDBReadJournal import akka.persistence.typed.PersistenceId import akka.persistence.typed.ReplicaId @@ -68,14 +67,14 @@ object TestActors { { (state, command) => command match { case command: Persist => - context.log.debugN( + context.log.debug( "Persist [{}], pid [{}], seqNr [{}]", command.payload, pid.id, EventSourcedBehavior.lastSequenceNumber(context) + 1) Effect.persist(command.payload) case command: PersistWithAck => - context.log.debugN( + context.log.debug( "Persist [{}], pid [{}], seqNr [{}]", command.payload, pid.id, @@ -83,7 +82,7 @@ object TestActors { Effect.persist(command.payload).thenRun(_ => command.replyTo ! Done) case command: PersistAll => if (context.log.isDebugEnabled) - context.log.debugN( + context.log.debug( "PersistAll [{}], pid [{}], seqNr [{}]", command.payloads.mkString(","), pid.id, diff --git a/core/src/test/scala/akka/persistence/dynamodb/util/ClientProviderSpec.scala b/core/src/test/scala/akka/persistence/dynamodb/util/ClientProviderSpec.scala index 5036c9f..c600d5a 100644 --- a/core/src/test/scala/akka/persistence/dynamodb/util/ClientProviderSpec.scala +++ b/core/src/test/scala/akka/persistence/dynamodb/util/ClientProviderSpec.scala @@ -5,13 +5,12 @@ package akka.persistence.dynamodb.util import scala.concurrent.duration._ -import scala.jdk.CollectionConverters.ListHasAsScala +import scala.jdk.DurationConverters._ import scala.jdk.OptionConverters._ import akka.actor.ClassicActorSystemProvider import akka.actor.testkit.typed.scaladsl.ActorTestKit import akka.actor.testkit.typed.scaladsl.ActorTestKitBase -import akka.util.JavaDurationConverters._ import com.typesafe.config.ConfigFactory import org.scalatest.OptionValues import org.scalatest.matchers.should.Matchers @@ -41,7 +40,7 @@ class ClientProviderSpec extends AnyWordSpec with Matchers with OptionValues { clientConfiguration.region shouldBe Region.US_EAST_1 val overrideConfiguration = clientConfiguration.overrideConfiguration - overrideConfiguration.apiCallTimeout.toScala shouldBe Some(9.seconds.asJava) + overrideConfiguration.apiCallTimeout.toScala shouldBe Some(9.seconds.toJava) overrideConfiguration.apiCallAttemptTimeout.toScala shouldBe None val httpSettings = settings.http @@ -124,8 +123,8 @@ class ClientProviderSpec extends AnyWordSpec with Matchers with OptionValues { clientConfiguration.region shouldBe Region.US_EAST_1 val overrideConfiguration = clientConfiguration.overrideConfiguration - overrideConfiguration.apiCallTimeout.toScala shouldBe Some(3.seconds.asJava) - overrideConfiguration.apiCallAttemptTimeout.toScala shouldBe Some(500.millis.asJava) + overrideConfiguration.apiCallTimeout.toScala shouldBe Some(3.seconds.toJava) + overrideConfiguration.apiCallAttemptTimeout.toScala shouldBe Some(500.millis.toJava) val httpSettings = settings.http httpSettings.maxConcurrency shouldBe 100 diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 92ad70f..f8fab62 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -9,9 +9,9 @@ object Dependencies { val Scala3 = "3.3.3" val Scala2Versions = Seq(Scala213) val ScalaVersions = Dependencies.Scala2Versions :+ Dependencies.Scala3 - val AkkaVersion = System.getProperty("override.akka.version", "2.9.5") + val AkkaVersion = System.getProperty("override.akka.version", "2.10.0-M1") val AkkaVersionInDocs = VersionNumber(AkkaVersion).numbers match { case Seq(major, minor, _*) => s"$major.$minor" } - val AkkaProjectionVersion = "1.5.4" + val AkkaProjectionVersion = "1.6.0-M1" val AkkaProjectionVersionInDocs = "current" val AwsSdkVersion = "2.25.59" @@ -36,7 +36,7 @@ object Dependencies { val akkaProjectionTestkit = "com.lightbend.akka" %% "akka-projection-testkit" % AkkaProjectionVersion % Test val akkaJackson = "com.typesafe.akka" %% "akka-serialization-jackson" % AkkaVersion % Test - val logback = "ch.qos.logback" % "logback-classic" % "1.2.13" % Test // EPL 1.0 / LGPL 2.1 + val logback = "ch.qos.logback" % "logback-classic" % "1.5.8" % Test // EPL 1.0 / LGPL 2.1 val scalaTest = "org.scalatest" %% "scalatest" % "3.2.12" % Test // ApacheV2 val junit = "junit" % "junit" % "4.12" % Test // Eclipse Public License 1.0 val junitInterface = "com.novocode" % "junit-interface" % "0.11" % Test // "BSD 2-Clause" diff --git a/projection/src/main/scala/akka/projection/dynamodb/DynamoDBProjectionSettings.scala b/projection/src/main/scala/akka/projection/dynamodb/DynamoDBProjectionSettings.scala index 86fbdce..0b667b6 100644 --- a/projection/src/main/scala/akka/projection/dynamodb/DynamoDBProjectionSettings.scala +++ b/projection/src/main/scala/akka/projection/dynamodb/DynamoDBProjectionSettings.scala @@ -7,12 +7,12 @@ package akka.projection.dynamodb import java.time.{ Duration => JDuration } import scala.concurrent.duration._ +import scala.jdk.DurationConverters._ import scala.jdk.CollectionConverters._ import akka.actor.typed.ActorSystem import akka.persistence.dynamodb.ConfigHelpers import akka.persistence.dynamodb.WildcardMap -import akka.util.JavaDurationConverters._ import com.typesafe.config.Config import com.typesafe.config.ConfigObject @@ -72,7 +72,7 @@ final class DynamoDBProjectionSettings private ( copy(useClient = clientConfigPath) def withTimeWindow(timeWindow: FiniteDuration): DynamoDBProjectionSettings = - copy(timeWindow = timeWindow.asJava) + copy(timeWindow = timeWindow.toJava) def withTimeWindow(timeWindow: JDuration): DynamoDBProjectionSettings = copy(timeWindow = timeWindow) @@ -81,7 +81,7 @@ final class DynamoDBProjectionSettings private ( copy(keepNumberOfEntries = keepNumberOfEntries) def withEvictInterval(evictInterval: FiniteDuration): DynamoDBProjectionSettings = - copy(evictInterval = evictInterval.asJava) + copy(evictInterval = evictInterval.toJava) def withEvictInterval(evictInterval: JDuration): DynamoDBProjectionSettings = copy(evictInterval = evictInterval) @@ -180,7 +180,7 @@ final class ProjectionTimeToLiveSettings private (val offsetTimeToLive: Option[F copy(offsetTimeToLive = Some(offsetTimeToLive)) def withOffsetTimeToLive(offsetTimeToLive: JDuration): ProjectionTimeToLiveSettings = - copy(offsetTimeToLive = Some(offsetTimeToLive.asScala)) + copy(offsetTimeToLive = Some(offsetTimeToLive.toScala)) def withNoOffsetTimeToLive(): ProjectionTimeToLiveSettings = copy(offsetTimeToLive = None) diff --git a/projection/src/main/scala/akka/projection/dynamodb/internal/DynamoDBHandlerAdapter.scala b/projection/src/main/scala/akka/projection/dynamodb/internal/DynamoDBHandlerAdapter.scala index 312dbb7..db11741 100644 --- a/projection/src/main/scala/akka/projection/dynamodb/internal/DynamoDBHandlerAdapter.scala +++ b/projection/src/main/scala/akka/projection/dynamodb/internal/DynamoDBHandlerAdapter.scala @@ -4,13 +4,13 @@ package akka.projection.dynamodb.internal +import scala.concurrent.ExecutionContext import scala.concurrent.Future import scala.jdk.CollectionConverters._ import scala.jdk.FutureConverters._ import akka.Done import akka.annotation.InternalApi -import akka.dispatch.ExecutionContexts import akka.projection.dynamodb.javadsl import akka.projection.dynamodb.scaladsl import software.amazon.awssdk.services.dynamodb.model.TransactWriteItem @@ -23,7 +23,7 @@ import software.amazon.awssdk.services.dynamodb.model.TransactWriteItem extends scaladsl.DynamoDBTransactHandler[Envelope] { override def process(envelope: Envelope): Future[Iterable[TransactWriteItem]] = - delegate.process(envelope).asScala.map(_.asScala)(ExecutionContexts.parasitic) + delegate.process(envelope).asScala.map(_.asScala)(ExecutionContext.parasitic) override def start(): Future[Done] = delegate.start().asScala @@ -40,7 +40,7 @@ import software.amazon.awssdk.services.dynamodb.model.TransactWriteItem extends scaladsl.DynamoDBTransactHandler[Seq[Envelope]] { override def process(envelopes: Seq[Envelope]): Future[Iterable[TransactWriteItem]] = - delegate.process(envelopes.asJava).asScala.map(_.asScala)(ExecutionContexts.parasitic) + delegate.process(envelopes.asJava).asScala.map(_.asScala)(ExecutionContext.parasitic) override def start(): Future[Done] = delegate.start().asScala diff --git a/projection/src/main/scala/akka/projection/dynamodb/internal/DynamoDBOffsetStore.scala b/projection/src/main/scala/akka/projection/dynamodb/internal/DynamoDBOffsetStore.scala index 07340f8..5af1c7c 100644 --- a/projection/src/main/scala/akka/projection/dynamodb/internal/DynamoDBOffsetStore.scala +++ b/projection/src/main/scala/akka/projection/dynamodb/internal/DynamoDBOffsetStore.scala @@ -16,7 +16,6 @@ import scala.concurrent.Future import akka.Done import akka.actor.typed.ActorSystem import akka.annotation.InternalApi -import akka.dispatch.ExecutionContexts import akka.persistence.Persistence import akka.persistence.dynamodb.internal.EnvelopeOrigin import akka.persistence.query.DeletedDurableState @@ -239,7 +238,7 @@ private[projection] class DynamoDBOffsetStore( readTimestampOffset().map { offsetBySlice => if (offsetBySlice.offsets.isEmpty) None else Some(offsetBySlice.asInstanceOf[Offset]) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) case None => // FIXME primitive offsets not supported, maybe we can change the sourceProvider parameter throw new IllegalStateException("BySlicesSourceProvider is required. Primitive offsets not supported.") diff --git a/projection/src/main/scala/akka/projection/dynamodb/internal/DynamoDBProjectionImpl.scala b/projection/src/main/scala/akka/projection/dynamodb/internal/DynamoDBProjectionImpl.scala index a0af2be..b72d9e2 100644 --- a/projection/src/main/scala/akka/projection/dynamodb/internal/DynamoDBProjectionImpl.scala +++ b/projection/src/main/scala/akka/projection/dynamodb/internal/DynamoDBProjectionImpl.scala @@ -14,9 +14,7 @@ import scala.util.control.NonFatal import akka.Done import akka.actor.typed.ActorSystem -import akka.actor.typed.scaladsl.LoggerOps import akka.annotation.InternalApi -import akka.dispatch.ExecutionContexts import akka.event.Logging import akka.event.LoggingAdapter import akka.persistence.query.DeletedDurableState @@ -108,9 +106,9 @@ private[projection] object DynamoDBProjectionImpl { }).map { loadedEnv => val count = loadEnvelopeCounter.incrementAndGet() if (count % 1000 == 0) - log.infoN("Loaded event lazily, persistenceId [{}], seqNr [{}]. Load count [{}]", pid, seqNr, count) + log.info("Loaded event lazily, persistenceId [{}], seqNr [{}]. Load count [{}]", pid, seqNr, count) else - log.debugN("Loaded event lazily, persistenceId [{}], seqNr [{}]. Load count [{}]", pid, seqNr, count) + log.debug("Loaded event lazily, persistenceId [{}], seqNr [{}]. Load count [{}]", pid, seqNr, count) loadedEnv.asInstanceOf[Envelope] } @@ -128,13 +126,13 @@ private[projection] object DynamoDBProjectionImpl { case GetObjectResult(Some(loadedValue), loadedRevision) => val count = loadEnvelopeCounter.incrementAndGet() if (count % 1000 == 0) - log.infoN( + log.info( "Loaded durable state lazily, persistenceId [{}], revision [{}]. Load count [{}]", pid, loadedRevision, count) else - log.debugN( + log.debug( "Loaded durable state lazily, persistenceId [{}], revision [{}]. Load count [{}]", pid, loadedRevision, @@ -202,7 +200,7 @@ private[projection] object DynamoDBProjectionImpl { case Duplicate => FutureDone case RejectedSeqNr => - triggerReplayIfPossible(sourceProvider, offsetStore, envelope).map(_ => Done)(ExecutionContexts.parasitic) + triggerReplayIfPossible(sourceProvider, offsetStore, envelope).map(_ => Done)(ExecutionContext.parasitic) case RejectedBacktrackingSeqNr => triggerReplayIfPossible(sourceProvider, offsetStore, envelope).map { case true => Done @@ -241,7 +239,7 @@ private[projection] object DynamoDBProjectionImpl { case Duplicate => FutureDone case RejectedSeqNr => - triggerReplayIfPossible(sourceProvider, offsetStore, envelope).map(_ => Done)(ExecutionContexts.parasitic) + triggerReplayIfPossible(sourceProvider, offsetStore, envelope).map(_ => Done)(ExecutionContext.parasitic) case RejectedBacktrackingSeqNr => triggerReplayIfPossible(sourceProvider, offsetStore, envelope).map { case true => Done @@ -266,7 +264,7 @@ private[projection] object DynamoDBProjectionImpl { val replayDone = Future.sequence(isAcceptedEnvelopes.map { case (env, RejectedSeqNr) => - triggerReplayIfPossible(sourceProvider, offsetStore, env).map(_ => Done)(ExecutionContexts.parasitic) + triggerReplayIfPossible(sourceProvider, offsetStore, env).map(_ => Done)(ExecutionContext.parasitic) case (env, RejectedBacktrackingSeqNr) => triggerReplayIfPossible(sourceProvider, offsetStore, env).map { case true => Done @@ -317,7 +315,7 @@ private[projection] object DynamoDBProjectionImpl { val replayDone = Future.sequence(isAcceptedEnvelopes.map { case (env, RejectedSeqNr) => - triggerReplayIfPossible(sourceProvider, offsetStore, env).map(_ => Done)(ExecutionContexts.parasitic) + triggerReplayIfPossible(sourceProvider, offsetStore, env).map(_ => Done)(ExecutionContext.parasitic) case (env, RejectedBacktrackingSeqNr) => triggerReplayIfPossible(sourceProvider, offsetStore, env).map { case true => Done @@ -378,7 +376,7 @@ private[projection] object DynamoDBProjectionImpl { case Duplicate => Future.successful(None) case RejectedSeqNr => - triggerReplayIfPossible(sourceProvider, offsetStore, env).map(_ => None)(ExecutionContexts.parasitic) + triggerReplayIfPossible(sourceProvider, offsetStore, env).map(_ => None)(ExecutionContext.parasitic) case RejectedBacktrackingSeqNr => triggerReplayIfPossible(sourceProvider, offsetStore, env).map { case true => None diff --git a/projection/src/main/scala/akka/projection/dynamodb/internal/OffsetStoreDao.scala b/projection/src/main/scala/akka/projection/dynamodb/internal/OffsetStoreDao.scala index 7980d14..226199c 100644 --- a/projection/src/main/scala/akka/projection/dynamodb/internal/OffsetStoreDao.scala +++ b/projection/src/main/scala/akka/projection/dynamodb/internal/OffsetStoreDao.scala @@ -9,6 +9,7 @@ import java.util.Collections import java.util.concurrent.CompletionException import java.util.{ HashMap => JHashMap } +import scala.concurrent.ExecutionContext import scala.concurrent.Future import scala.jdk.CollectionConverters._ import scala.jdk.FutureConverters._ @@ -16,7 +17,6 @@ import scala.jdk.FutureConverters._ import akka.Done import akka.actor.typed.ActorSystem import akka.annotation.InternalApi -import akka.dispatch.ExecutionContexts import akka.persistence.dynamodb.internal.InstantFactory import akka.persistence.query.TimestampOffset import akka.projection.ProjectionId @@ -109,7 +109,7 @@ import software.amazon.awssdk.services.dynamodb.model.WriteRequest } .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } def storeTimestampOffsets(offsetsBySlice: Map[Int, TimestampOffset]): Future[Done] = { @@ -170,10 +170,10 @@ import software.amazon.awssdk.services.dynamodb.model.WriteRequest } } result - .map(_ => Done)(ExecutionContexts.parasitic) + .map(_ => Done)(ExecutionContext.parasitic) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } if (offsetsBySlice.size <= MaxBatchSize) { @@ -182,10 +182,10 @@ import software.amazon.awssdk.services.dynamodb.model.WriteRequest val batches = offsetsBySlice.toVector.sliding(MaxBatchSize, MaxBatchSize) Future .sequence(batches.map(writeBatch)) - .map(_ => Done)(ExecutionContexts.parasitic) + .map(_ => Done)(ExecutionContext.parasitic) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } } @@ -226,7 +226,7 @@ import software.amazon.awssdk.services.dynamodb.model.WriteRequest } } - result.map(_ => Done)(ExecutionContexts.parasitic) + result.map(_ => Done)(ExecutionContext.parasitic) } if (records.size <= MaxBatchSize) { @@ -235,7 +235,7 @@ import software.amazon.awssdk.services.dynamodb.model.WriteRequest val batches = records.sliding(MaxBatchSize, MaxBatchSize) Future .sequence(batches.map(writeBatch)) - .map(_ => Done)(ExecutionContexts.parasitic) + .map(_ => Done)(ExecutionContext.parasitic) } } @@ -269,7 +269,7 @@ import software.amazon.awssdk.services.dynamodb.model.WriteRequest } .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } def transactStoreSequenceNumbers(writeItems: Iterable[TransactWriteItem])(records: Seq[Record]): Future[Done] = { @@ -314,10 +314,10 @@ import software.amazon.awssdk.services.dynamodb.model.WriteRequest } result - .map(_ => Done)(ExecutionContexts.parasitic) + .map(_ => Done)(ExecutionContext.parasitic) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } @@ -371,7 +371,7 @@ import software.amazon.awssdk.services.dynamodb.model.WriteRequest } .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } def updateManagementState(minSlice: Int, maxSlice: Int, paused: Boolean): Future[Done] = { @@ -411,10 +411,10 @@ import software.amazon.awssdk.services.dynamodb.model.WriteRequest } } result - .map(_ => Done)(ExecutionContexts.parasitic) + .map(_ => Done)(ExecutionContext.parasitic) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } val sliceRange = (minSlice to maxSlice).toVector @@ -424,7 +424,7 @@ import software.amazon.awssdk.services.dynamodb.model.WriteRequest val batches = sliceRange.sliding(MaxBatchSize, MaxBatchSize) Future .sequence(batches.map(writeBatch)) - .map(_ => Done)(ExecutionContexts.parasitic) + .map(_ => Done)(ExecutionContext.parasitic) } } } diff --git a/projection/src/main/scala/akka/projection/dynamodb/scaladsl/CreateTables.scala b/projection/src/main/scala/akka/projection/dynamodb/scaladsl/CreateTables.scala index 5e25304..bc032b7 100644 --- a/projection/src/main/scala/akka/projection/dynamodb/scaladsl/CreateTables.scala +++ b/projection/src/main/scala/akka/projection/dynamodb/scaladsl/CreateTables.scala @@ -14,7 +14,6 @@ import scala.util.Success import akka.Done import akka.actor.typed.ActorSystem -import akka.dispatch.ExecutionContexts import akka.persistence.dynamodb.util.OnDemandThroughputSettings import akka.persistence.dynamodb.util.ProvisionedThroughputSettings import akka.persistence.dynamodb.util.TableSettings @@ -75,7 +74,7 @@ object CreateTables { .map(_ => Done) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } def delete(): Future[Done] = { @@ -86,7 +85,7 @@ object CreateTables { .map(_ => Done) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } existingTable.transformWith { diff --git a/projection/src/test/scala/akka/projection/dynamodb/DynamoDBTimestampOffsetProjectionSpec.scala b/projection/src/test/scala/akka/projection/dynamodb/DynamoDBTimestampOffsetProjectionSpec.scala index 22a76ed..46c4677 100644 --- a/projection/src/test/scala/akka/projection/dynamodb/DynamoDBTimestampOffsetProjectionSpec.scala +++ b/projection/src/test/scala/akka/projection/dynamodb/DynamoDBTimestampOffsetProjectionSpec.scala @@ -31,7 +31,6 @@ import akka.actor.testkit.typed.scaladsl.LogCapturing import akka.actor.testkit.typed.scaladsl.ScalaTestWithActorTestKit import akka.actor.typed.ActorRef import akka.actor.typed.ActorSystem -import akka.dispatch.ExecutionContexts import akka.persistence.dynamodb.internal.EnvelopeOrigin import akka.persistence.query.Offset import akka.persistence.query.TimestampOffset @@ -223,7 +222,7 @@ object DynamoDBTimestampOffsetProjectionSpec { .map(_ => Done) .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } } @@ -246,7 +245,7 @@ object DynamoDBTimestampOffsetProjectionSpec { } .recoverWith { case c: CompletionException => Future.failed(c.getCause) - }(ExecutionContexts.parasitic) + }(ExecutionContext.parasitic) } } diff --git a/projection/src/test/scala/akka/projection/dynamodb/EventSourcedPubSubSpec.scala b/projection/src/test/scala/akka/projection/dynamodb/EventSourcedPubSubSpec.scala index de4b906..e2235ca 100644 --- a/projection/src/test/scala/akka/projection/dynamodb/EventSourcedPubSubSpec.scala +++ b/projection/src/test/scala/akka/projection/dynamodb/EventSourcedPubSubSpec.scala @@ -16,7 +16,6 @@ import akka.actor.testkit.typed.scaladsl.ScalaTestWithActorTestKit import akka.actor.testkit.typed.scaladsl.TestProbe import akka.actor.typed.ActorRef import akka.actor.typed.ActorSystem -import akka.actor.typed.scaladsl.LoggerOps import akka.persistence.dynamodb.query.scaladsl.DynamoDBReadJournal import akka.persistence.query.TimestampOffset import akka.persistence.query.typed.EventEnvelope @@ -64,7 +63,7 @@ object EventSourcedPubSubSpec { whenDone(envelope).map { _ => val timestampOffset = envelope.offset.asInstanceOf[TimestampOffset] val directReplication = timestampOffset.timestamp == timestampOffset.readTimestamp - log.debugN( + log.debug( "{} Processed {}, pid {}, seqNr {}, direct {}", projectionId.key, envelope.event, @@ -217,7 +216,7 @@ class EventSourcedPubSubSpec p.envelope.offset.asInstanceOf[TimestampOffset].timestamp == p.envelope.offset .asInstanceOf[TimestampOffset] .readTimestamp) - log.info2("via pub-sub {}: {}", pid, viaPubSub.map(_.envelope.sequenceNr).mkString(", ")) + log.info("via pub-sub {}: {}", pid, viaPubSub.map(_.envelope.sequenceNr).mkString(", ")) } val countViaPubSub = processed.count(p => diff --git a/projection/src/test/scala/akka/projection/dynamodb/TestActors.scala b/projection/src/test/scala/akka/projection/dynamodb/TestActors.scala index 3ebf298..ccb1c26 100644 --- a/projection/src/test/scala/akka/projection/dynamodb/TestActors.scala +++ b/projection/src/test/scala/akka/projection/dynamodb/TestActors.scala @@ -9,7 +9,6 @@ import akka.actor.typed.ActorRef import akka.actor.typed.Behavior import akka.actor.typed.scaladsl.ActorContext import akka.actor.typed.scaladsl.Behaviors -import akka.actor.typed.scaladsl.LoggerOps import akka.persistence.dynamodb.query.scaladsl.DynamoDBReadJournal import akka.persistence.typed.PersistenceId import akka.persistence.typed.ReplicaId @@ -67,14 +66,14 @@ object TestActors { { (state, command) => command match { case command: Persist => - context.log.debugN( + context.log.debug( "Persist [{}], pid [{}], seqNr [{}]", command.payload, pid.id, EventSourcedBehavior.lastSequenceNumber(context) + 1) Effect.persist(command.payload) case command: PersistWithAck => - context.log.debugN( + context.log.debug( "Persist [{}], pid [{}], seqNr [{}]", command.payload, pid.id, @@ -82,7 +81,7 @@ object TestActors { Effect.persist(command.payload).thenRun(_ => command.replyTo ! Done) case command: PersistAll => if (context.log.isDebugEnabled) - context.log.debugN( + context.log.debug( "PersistAll [{}], pid [{}], seqNr [{}]", command.payloads.mkString(","), pid.id, diff --git a/projection/src/test/scala/akka/projection/dynamodb/TestSourceProviderWithInput.scala b/projection/src/test/scala/akka/projection/dynamodb/TestSourceProviderWithInput.scala index af9e754..117bdd8 100644 --- a/projection/src/test/scala/akka/projection/dynamodb/TestSourceProviderWithInput.scala +++ b/projection/src/test/scala/akka/projection/dynamodb/TestSourceProviderWithInput.scala @@ -11,6 +11,7 @@ import java.util.concurrent.atomic.AtomicReference import scala.concurrent.ExecutionContext import scala.concurrent.Future import scala.concurrent.Promise +import scala.jdk.CollectionConverters._ import akka.NotUsed import akka.actor.typed.ActorRef @@ -25,7 +26,6 @@ import akka.projection.BySlicesSourceProvider import akka.projection.scaladsl.SourceProvider import akka.stream.OverflowStrategy import akka.stream.scaladsl.Source -import akka.util.ccompat.JavaConverters._ class TestSourceProviderWithInput()(implicit val system: ActorSystem[_]) extends SourceProvider[TimestampOffset, EventEnvelope[String]] From 701a474bd6261103c736b59fee3583ec2484594d Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 4 Oct 2024 16:26:16 +0200 Subject: [PATCH 2/2] one more import --- .jvmopts | 5 ----- .../akka/persistence/dynamodb/util/ClientProviderSpec.scala | 1 + 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 .jvmopts diff --git a/.jvmopts b/.jvmopts deleted file mode 100644 index 60c96d0..0000000 --- a/.jvmopts +++ /dev/null @@ -1,5 +0,0 @@ -# This is used to configure the sbt instance for local development - --Xms2G --Xmx2G --Xss2M diff --git a/core/src/test/scala/akka/persistence/dynamodb/util/ClientProviderSpec.scala b/core/src/test/scala/akka/persistence/dynamodb/util/ClientProviderSpec.scala index c600d5a..74cc3cd 100644 --- a/core/src/test/scala/akka/persistence/dynamodb/util/ClientProviderSpec.scala +++ b/core/src/test/scala/akka/persistence/dynamodb/util/ClientProviderSpec.scala @@ -5,6 +5,7 @@ package akka.persistence.dynamodb.util import scala.concurrent.duration._ +import scala.jdk.CollectionConverters._ import scala.jdk.DurationConverters._ import scala.jdk.OptionConverters._