chore: Remove compat Future (#2212)

This commit is contained in:
He-Pin(kerr) 2025-09-19 22:16:21 +08:00 committed by GitHub
parent e66cda2899
commit 5acdace08c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 3 additions and 60 deletions

View file

@ -19,3 +19,5 @@
ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.compat.PartialFunction") ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.compat.PartialFunction")
ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.compat.PartialFunction$") ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.compat.PartialFunction$")
ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.util.ccompat.ccompatUsedUntil213") ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.util.ccompat.ccompatUsedUntil213")
ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.compat.Future")
ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.compat.Future$")

View file

@ -1,59 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* license agreements; and to You under the Apache License, version 2.0:
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* This file is part of the Apache Pekko project, which was derived from Akka.
*/
/*
* Copyright (C) 2009-2022 Lightbend Inc. <https://www.lightbend.com>
*/
package org.apache.pekko.compat
import scala.collection.immutable
import scala.concurrent.{ ExecutionContext, Future => SFuture }
import org.apache.pekko.annotation.InternalApi
/**
* INTERNAL API
*
* Compatibility wrapper for `scala.concurrent.Future` to be able to compile the same code
* against Scala 2.12, 2.13
*
* Remove these classes as soon as support for Scala 2.12 is dropped!
*/
@InternalApi private[pekko] object Future {
def fold[T, R](futures: IterableOnce[SFuture[T]])(zero: R)(op: (R, T) => R)(
implicit executor: ExecutionContext): SFuture[R] = {
// This will have performance implications since the elements are copied to a Vector
SFuture.foldLeft[T, R](futures.iterator.to(immutable.Iterable))(zero)(op)(executor)
}
def fold[T, R](futures: immutable.Iterable[SFuture[T]])(zero: R)(op: (R, T) => R)(
implicit executor: ExecutionContext): SFuture[R] =
SFuture.foldLeft[T, R](futures)(zero)(op)(executor)
def reduce[T, R >: T](futures: IterableOnce[SFuture[T]])(op: (R, T) => R)(
implicit executor: ExecutionContext): SFuture[R] = {
// This will have performance implications since the elements are copied to a Vector
SFuture.reduceLeft[T, R](futures.iterator.to(immutable.Iterable))(op)(executor)
}
def reduce[T, R >: T](futures: immutable.Iterable[SFuture[T]])(op: (R, T) => R)(
implicit executor: ExecutionContext): SFuture[R] =
SFuture.reduceLeft[T, R](futures)(op)(executor)
def find[T](futures: IterableOnce[SFuture[T]])(p: T => Boolean)(
implicit executor: ExecutionContext): SFuture[Option[T]] = {
// This will have performance implications since the elements are copied to a Vector
SFuture.find[T](futures.iterator.to(immutable.Iterable))(p)(executor)
}
def find[T](futures: immutable.Iterable[SFuture[T]])(p: T => Boolean)(
implicit executor: ExecutionContext): SFuture[Option[T]] =
SFuture.find[T](futures)(p)(executor)
}

View file

@ -677,7 +677,7 @@ private[remote] class EndpointManager(conf: Config, log: LoggingAdapter)
case ManagementCommand(cmd) => case ManagementCommand(cmd) =>
val allStatuses: immutable.Seq[Future[Boolean]] = val allStatuses: immutable.Seq[Future[Boolean]] =
transportMapping.values.iterator.map(transport => transport.managementCommand(cmd)).to(immutable.IndexedSeq) transportMapping.values.iterator.map(transport => transport.managementCommand(cmd)).to(immutable.IndexedSeq)
pekko.compat.Future.fold(allStatuses)(true)(_ && _).map(ManagementCommandAck.apply).pipeTo(sender()) Future.foldLeft(allStatuses)(true)(_ && _).map(ManagementCommandAck.apply).pipeTo(sender())
case Quarantine(address, uidToQuarantineOption) => case Quarantine(address, uidToQuarantineOption) =>
// Stop writers // Stop writers