diff --git a/.github/workflows/scala3-build.yml b/.github/workflows/scala3-build.yml index 2c8e0b976f..7f460d5da1 100644 --- a/.github/workflows/scala3-build.yml +++ b/.github/workflows/scala3-build.yml @@ -24,8 +24,9 @@ jobs: - akka-cluster/Test/compile - akka-coordination/test - akka-discovery/test + - akka-persistence/compile - akka-pki/test - - akka-serialization-jackson/test:compile + - akka-serialization-jackson/Test/compile - akka-slf4j/test - akka-stream/test akka-stream-testkit/test akka-stream-tests/test - akka-stream-tests-tck/test diff --git a/akka-persistence/src/main/mima-filters/2.6.15.backwards.excludes/fsm.excludes b/akka-persistence/src/main/mima-filters/2.6.15.backwards.excludes/fsm.excludes new file mode 100644 index 0000000000..39e66245eb --- /dev/null +++ b/akka-persistence/src/main/mima-filters/2.6.15.backwards.excludes/fsm.excludes @@ -0,0 +1,2 @@ +# Has always been private[akka] +ProblemFilters.exclude[Problem]("akka.persistence.fsm.PersistentFSM#State.copy*") diff --git a/akka-persistence/src/main/scala/akka/persistence/Persistence.scala b/akka-persistence/src/main/scala/akka/persistence/Persistence.scala index 56943794a1..e14d4117a9 100644 --- a/akka-persistence/src/main/scala/akka/persistence/Persistence.scala +++ b/akka-persistence/src/main/scala/akka/persistence/Persistence.scala @@ -198,7 +198,7 @@ class Persistence(val system: ExtendedActorSystem) extends Extension { import Persistence._ - private def log: LoggingAdapter = Logging(system, getClass) + private def log: LoggingAdapter = Logging(system, classOf[Persistence]) private val NoSnapshotStorePluginId = "akka.persistence.no-snapshot-store" diff --git a/akka-persistence/src/main/scala/akka/persistence/PersistencePlugin.scala b/akka-persistence/src/main/scala/akka/persistence/PersistencePlugin.scala index 78ebdd9f84..c319aecec4 100644 --- a/akka-persistence/src/main/scala/akka/persistence/PersistencePlugin.scala +++ b/akka-persistence/src/main/scala/akka/persistence/PersistencePlugin.scala @@ -45,7 +45,7 @@ private[akka] abstract class PersistencePlugin[ScalaDsl, JavaDsl, T: ClassTag](s implicit ev: PluginProvider[T, ScalaDsl, JavaDsl]) { private val plugins = new AtomicReference[Map[String, ExtensionId[PluginHolder[ScalaDsl, JavaDsl]]]](Map.empty) - private val log = Logging(system, getClass) + private val log = Logging(system, classOf[PersistencePlugin[_, _, _]]) @tailrec final protected def pluginFor(pluginId: String, readJournalPluginConfig: Config): PluginHolder[ScalaDsl, JavaDsl] = { diff --git a/akka-persistence/src/main/scala/akka/persistence/fsm/PersistentFSM.scala b/akka-persistence/src/main/scala/akka/persistence/fsm/PersistentFSM.scala index e1dbcff1a2..e1245dfb02 100644 --- a/akka-persistence/src/main/scala/akka/persistence/fsm/PersistentFSM.scala +++ b/akka-persistence/src/main/scala/akka/persistence/fsm/PersistentFSM.scala @@ -160,7 +160,7 @@ trait PersistentFSM[S <: FSMState, D, E] extends PersistentActor with Persistent def applyStateOnLastHandler() = { handlersExecutedCounter += 1 if (handlersExecutedCounter == eventsToPersist.size) { - super.applyState(nextState.copy(stateData = nextData)) + super.applyState(nextState.copy0(stateData = nextData)) currentStateTimeout = nextState.timeout nextState.afterTransitionDo(stateData) if (doSnapshot) { @@ -389,7 +389,7 @@ object PersistentFSM { * Copy object and update values if needed. */ @InternalApi - private[akka] def copy( + private[akka] def copy0( stateName: S = stateName, stateData: D = stateData, timeout: Option[FiniteDuration] = timeout, @@ -409,8 +409,8 @@ object PersistentFSM { * Use Duration.Inf to deactivate an existing timeout. */ def forMax(timeout: Duration): State[S, D, E] = timeout match { - case f: FiniteDuration => copy(timeout = Some(f)) - case _ => copy(timeout = PersistentFSM.SomeMaxFiniteDuration) // we need to differentiate "not set" from disabled + case f: FiniteDuration => copy0(timeout = Some(f)) + case _ => copy0(timeout = PersistentFSM.SomeMaxFiniteDuration) // we need to differentiate "not set" from disabled } /** @@ -431,7 +431,7 @@ object PersistentFSM { * @return this state transition descriptor */ def replying(replyValue: Any): State[S, D, E] = { - copy(replies = replyValue :: replies) + copy0(replies = replyValue :: replies) } @InternalApi @@ -440,7 +440,7 @@ object PersistentFSM { "Internal API easily to be confused with regular FSM's using. Use regular events (`applying`). Internally, `copy` can be used instead.", "2.5.5") private[akka] def using(@deprecatedName(Symbol("nextStateDate")) nextStateData: D): State[S, D, E] = { - copy(stateData = nextStateData) + copy0(stateData = nextStateData) } /** @@ -448,26 +448,26 @@ object PersistentFSM { */ @InternalApi private[akka] def withStopReason(reason: Reason): State[S, D, E] = { - copy(stopReason = Some(reason)) + copy0(stopReason = Some(reason)) } @InternalApi private[akka] def withNotification(notifies: Boolean): State[S, D, E] = { - copy(notifies = notifies) + copy0(notifies = notifies) } /** * Specify domain events to be applied when transitioning to the new state. */ @varargs def applying(events: E*): State[S, D, E] = { - copy(domainEvents = domainEvents ++ events) + copy0(domainEvents = domainEvents ++ events) } /** * Register a handler to be triggered after the state has been persisted successfully */ def andThen(handler: D => Unit): State[S, D, E] = { - copy(afterTransitionDo = handler) + copy0(afterTransitionDo = handler) } } diff --git a/akka-persistence/src/main/scala/akka/persistence/fsm/PersistentFSMBase.scala b/akka-persistence/src/main/scala/akka/persistence/fsm/PersistentFSMBase.scala index b279a34e67..d5e07cfc7f 100644 --- a/akka-persistence/src/main/scala/akka/persistence/fsm/PersistentFSMBase.scala +++ b/akka-persistence/src/main/scala/akka/persistence/fsm/PersistentFSMBase.scala @@ -193,7 +193,7 @@ trait PersistentFSMBase[S, D, E] extends Actor with Listeners with ActorLogging /** * Produce change descriptor to stop this FSM actor including specified reason. */ - final def stop(reason: Reason, stateData: D): State = stay().copy(stopReason = Some(reason), stateData = stateData) + final def stop(reason: Reason, stateData: D): State = stay().copy0(stopReason = Some(reason), stateData = stateData) final class TransformHelper(func: StateFunction) { def using(andThen: PartialFunction[State, State]): StateFunction = diff --git a/akka-persistence/src/main/scala/akka/persistence/journal/EventAdapters.scala b/akka-persistence/src/main/scala/akka/persistence/journal/EventAdapters.scala index a153e75930..6acc1ff580 100644 --- a/akka-persistence/src/main/scala/akka/persistence/journal/EventAdapters.scala +++ b/akka-persistence/src/main/scala/akka/persistence/journal/EventAdapters.scala @@ -118,9 +118,9 @@ private[akka] object EventAdapters { if (classOf[EventAdapter].isAssignableFrom(clazz)) instantiate[EventAdapter](adapterFQN, system) else if (classOf[WriteEventAdapter].isAssignableFrom(clazz)) - instantiate[WriteEventAdapter](adapterFQN, system).map(NoopReadEventAdapter) + instantiate[WriteEventAdapter](adapterFQN, system).map(NoopReadEventAdapter.apply) else if (classOf[ReadEventAdapter].isAssignableFrom(clazz)) - instantiate[ReadEventAdapter](adapterFQN, system).map(NoopWriteEventAdapter) + instantiate[ReadEventAdapter](adapterFQN, system).map(NoopWriteEventAdapter.apply) else throw new IllegalArgumentException(s"Configured $adapterFQN does not implement any EventAdapter interface!") } diff --git a/akka-persistence/src/main/scala/akka/persistence/journal/leveldb/LeveldbIdMapping.scala b/akka-persistence/src/main/scala/akka/persistence/journal/leveldb/LeveldbIdMapping.scala index 54c088a0bf..2dd6d64754 100644 --- a/akka-persistence/src/main/scala/akka/persistence/journal/leveldb/LeveldbIdMapping.scala +++ b/akka-persistence/src/main/scala/akka/persistence/journal/leveldb/LeveldbIdMapping.scala @@ -66,7 +66,7 @@ private[persistence] trait LeveldbIdMapping extends Actor { this: LeveldbStore = private def writeIdMapping(id: String, numericId: Int): Int = { idMap = idMap + (id -> numericId) leveldb.put(keyToBytes(mappingKey(numericId)), id.getBytes(UTF_8)) - newPersistenceIdAdded(id) + this.newPersistenceIdAdded(id) numericId }