diff --git a/akka-actor/src/main/scala/akka/util/ConstantFun.scala b/akka-actor/src/main/scala/akka/util/ConstantFun.scala new file mode 100644 index 0000000000..5d2ac06a5a --- /dev/null +++ b/akka-actor/src/main/scala/akka/util/ConstantFun.scala @@ -0,0 +1,47 @@ +/** + * Copyright (C) 2015-2017 Lightbend Inc. + */ +package akka.util + +import akka.annotation.InternalApi +import akka.japi.function.{ Function ⇒ JFun, Function2 ⇒ JFun2 } +import akka.japi.{ Pair ⇒ JPair } + +/** + * INTERNAL API + */ +@InternalApi private[akka] object ConstantFun { + private[this] val JavaIdentityFunction = new JFun[Any, Any] { + @throws(classOf[Exception]) override def apply(param: Any): Any = param + } + + val JavaPairFunction = new JFun2[AnyRef, AnyRef, AnyRef JPair AnyRef] { + def apply(p1: AnyRef, p2: AnyRef): AnyRef JPair AnyRef = JPair(p1, p2) + } + + def javaCreatePairFunction[A, B]: JFun2[A, B, JPair[A, B]] = JavaPairFunction.asInstanceOf[JFun2[A, B, JPair[A, B]]] + + def javaIdentityFunction[T]: JFun[T, T] = JavaIdentityFunction.asInstanceOf[JFun[T, T]] + + def scalaIdentityFunction[T]: T ⇒ T = conforms.asInstanceOf[Function[T, T]] + + def scalaAnyToNone[A, B]: A ⇒ Option[B] = none + def scalaAnyTwoToNone[A, B, C]: (A, B) ⇒ Option[C] = two2none + def javaAnyToNone[A, B]: A ⇒ Option[B] = none + def nullFun[T] = _nullFun.asInstanceOf[Any ⇒ T] + + val zeroLong = (_: Any) ⇒ 0L + + val oneLong = (_: Any) ⇒ 1L + + val oneInt = (_: Any) ⇒ 1 + + private val _nullFun = (_: Any) ⇒ null + + private val conforms = (a: Any) ⇒ a + + private val none = (_: Any) ⇒ None + + private val two2none = (_: Any, _: Any) ⇒ None + +} diff --git a/akka-bench-jmh/src/main/scala/akka/stream/MaterializationBenchmark.scala b/akka-bench-jmh/src/main/scala/akka/stream/MaterializationBenchmark.scala index d2aa1d86c4..847547c0a1 100644 --- a/akka-bench-jmh/src/main/scala/akka/stream/MaterializationBenchmark.scala +++ b/akka-bench-jmh/src/main/scala/akka/stream/MaterializationBenchmark.scala @@ -8,11 +8,11 @@ import java.util.concurrent.TimeUnit import akka.NotUsed import akka.actor.ActorSystem import akka.stream.scaladsl._ +import akka.util.ConstantFun import org.openjdk.jmh.annotations._ import scala.concurrent.Await import scala.concurrent.duration._ import scala.concurrent.Future -import akka.stream.impl.ConstantFun import akka.Done object MaterializationBenchmark { diff --git a/akka-stream-tests-tck/src/test/scala/akka/stream/tck/FlattenTest.scala b/akka-stream-tests-tck/src/test/scala/akka/stream/tck/FlattenTest.scala index 550fd98c13..0337f99b15 100644 --- a/akka-stream-tests-tck/src/test/scala/akka/stream/tck/FlattenTest.scala +++ b/akka-stream-tests-tck/src/test/scala/akka/stream/tck/FlattenTest.scala @@ -3,9 +3,9 @@ */ package akka.stream.tck -import akka.stream.impl.ConstantFun import akka.stream.scaladsl.Sink import akka.stream.scaladsl.Source +import akka.util.ConstantFun import org.reactivestreams.Publisher class FlattenTest extends AkkaPublisherVerification[Int] { diff --git a/akka-stream-tests/src/test/java/akka/stream/javadsl/FlowTest.java b/akka-stream-tests/src/test/java/akka/stream/javadsl/FlowTest.java index 487570cc24..a1b7c8d26b 100644 --- a/akka-stream-tests/src/test/java/akka/stream/javadsl/FlowTest.java +++ b/akka-stream-tests/src/test/java/akka/stream/javadsl/FlowTest.java @@ -10,7 +10,7 @@ import akka.japi.JavaPartialFunction; import akka.japi.Pair; import akka.japi.function.*; import akka.stream.*; -import akka.stream.impl.ConstantFun; +import akka.util.ConstantFun; import akka.stream.javadsl.GraphDSL.Builder; import akka.stream.stage.*; import akka.testkit.AkkaSpec; diff --git a/akka-stream-tests/src/test/java/akka/stream/javadsl/SourceTest.java b/akka-stream-tests/src/test/java/akka/stream/javadsl/SourceTest.java index 516cf66af7..511d6342ec 100644 --- a/akka-stream-tests/src/test/java/akka/stream/javadsl/SourceTest.java +++ b/akka-stream-tests/src/test/java/akka/stream/javadsl/SourceTest.java @@ -11,7 +11,7 @@ import akka.japi.Pair; import akka.japi.function.*; import akka.japi.pf.PFBuilder; import akka.stream.*; -import akka.stream.impl.ConstantFun; +import akka.util.ConstantFun; import akka.stream.stage.*; import akka.testkit.AkkaSpec; import akka.stream.testkit.TestPublisher; diff --git a/akka-stream-tests/src/test/scala/akka/stream/impl/fusing/InterpreterSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/impl/fusing/InterpreterSpec.scala index 4d9366620f..1d03d26214 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/impl/fusing/InterpreterSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/impl/fusing/InterpreterSpec.scala @@ -4,12 +4,12 @@ package akka.stream.impl.fusing -import akka.stream.impl.ConstantFun import akka.stream.stage._ import akka.stream.testkit.StreamSpec import akka.testkit.EventFilter import akka.stream._ import akka.stream.impl.fusing.GraphStages.SimpleLinearGraphStage +import akka.util.ConstantFun class InterpreterSpec extends StreamSpec with GraphInterpreterSpecKit { import Supervision.stoppingDecider diff --git a/akka-stream-tests/src/test/scala/akka/stream/impl/fusing/InterpreterStressSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/impl/fusing/InterpreterStressSpec.scala index ffc58c9343..6488780a65 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/impl/fusing/InterpreterStressSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/impl/fusing/InterpreterStressSpec.scala @@ -4,10 +4,10 @@ package akka.stream.impl.fusing -import akka.stream.impl.ConstantFun import akka.stream.Supervision import akka.stream.testkit.StreamSpec import akka.testkit.LongRunningTest +import akka.util.ConstantFun class InterpreterStressSpec extends StreamSpec with GraphInterpreterSpecKit { import Supervision.stoppingDecider diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowConcatAllSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowConcatAllSpec.scala index 2509c203c9..a0f40331b6 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowConcatAllSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowConcatAllSpec.scala @@ -4,7 +4,7 @@ package akka.stream.scaladsl import akka.NotUsed -import akka.stream.impl.ConstantFun +import akka.util.ConstantFun import scala.util.control.NoStackTrace import akka.stream.ActorMaterializer diff --git a/akka-stream/src/main/scala/akka/stream/impl/ConstantFun.scala b/akka-stream/src/main/scala/akka/stream/impl/ConstantFun.scala index 256a2860c5..641c64d4da 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/ConstantFun.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/ConstantFun.scala @@ -10,6 +10,7 @@ import akka.japi.{ Pair ⇒ JPair } /** * INTERNAL API */ +@deprecated("Use akka.util.ConstantFun instead", "2.5.0") @InternalApi private[akka] object ConstantFun { private[this] val JavaIdentityFunction = new JFun[Any, Any] { @throws(classOf[Exception]) override def apply(param: Any): Any = param diff --git a/akka-stream/src/main/scala/akka/stream/javadsl/Flow.scala b/akka-stream/src/main/scala/akka/stream/javadsl/Flow.scala index 013559f163..913d2c590a 100644 --- a/akka-stream/src/main/scala/akka/stream/javadsl/Flow.scala +++ b/akka-stream/src/main/scala/akka/stream/javadsl/Flow.scala @@ -3,10 +3,11 @@ */ package akka.stream.javadsl +import akka.util.ConstantFun import akka.{ Done, NotUsed } import akka.event.LoggingAdapter import akka.japi.{ Pair, function } -import akka.stream.impl.{ ConstantFun, StreamLayout } +import akka.stream.impl.StreamLayout import akka.stream._ import org.reactivestreams.Processor diff --git a/akka-stream/src/main/scala/akka/stream/javadsl/Graph.scala b/akka-stream/src/main/scala/akka/stream/javadsl/Graph.scala index 93f157189c..e009ef3398 100644 --- a/akka-stream/src/main/scala/akka/stream/javadsl/Graph.scala +++ b/akka-stream/src/main/scala/akka/stream/javadsl/Graph.scala @@ -6,8 +6,8 @@ package akka.stream.javadsl import akka.NotUsed import akka.stream._ import akka.japi.{ Pair, function } +import akka.util.ConstantFun import scala.annotation.unchecked.uncheckedVariance -import akka.stream.impl.ConstantFun /** * Merge several streams, taking elements as they arrive from input streams diff --git a/akka-stream/src/main/scala/akka/stream/javadsl/Source.scala b/akka-stream/src/main/scala/akka/stream/javadsl/Source.scala index 21962ad1f8..9fed0bfa93 100644 --- a/akka-stream/src/main/scala/akka/stream/javadsl/Source.scala +++ b/akka-stream/src/main/scala/akka/stream/javadsl/Source.scala @@ -6,12 +6,13 @@ package akka.stream.javadsl import java.util import java.util.Optional +import akka.util.ConstantFun import akka.{ Done, NotUsed } import akka.actor.{ ActorRef, Cancellable, Props } import akka.event.LoggingAdapter import akka.japi.{ Pair, Util, function } import akka.stream._ -import akka.stream.impl.{ ConstantFun, LinearTraversalBuilder, SourceQueueAdapter, StreamLayout } +import akka.stream.impl.{ LinearTraversalBuilder, SourceQueueAdapter, StreamLayout } import org.reactivestreams.{ Publisher, Subscriber } import scala.annotation.unchecked.uncheckedVariance diff --git a/akka-stream/src/main/scala/akka/stream/javadsl/SubFlow.scala b/akka-stream/src/main/scala/akka/stream/javadsl/SubFlow.scala index 61f080f56d..57aa2cf385 100644 --- a/akka-stream/src/main/scala/akka/stream/javadsl/SubFlow.scala +++ b/akka-stream/src/main/scala/akka/stream/javadsl/SubFlow.scala @@ -7,7 +7,7 @@ import akka.NotUsed import akka.event.LoggingAdapter import akka.japi.function import akka.stream._ -import akka.stream.impl.ConstantFun +import akka.util.ConstantFun import scala.collection.JavaConverters._ import scala.annotation.unchecked.uncheckedVariance diff --git a/akka-stream/src/main/scala/akka/stream/javadsl/SubSource.scala b/akka-stream/src/main/scala/akka/stream/javadsl/SubSource.scala index 7fa5a1466c..d871b04ce7 100644 --- a/akka-stream/src/main/scala/akka/stream/javadsl/SubSource.scala +++ b/akka-stream/src/main/scala/akka/stream/javadsl/SubSource.scala @@ -7,7 +7,7 @@ import akka.NotUsed import akka.event.LoggingAdapter import akka.japi.function import akka.stream._ -import akka.stream.impl.ConstantFun +import akka.util.ConstantFun import scala.collection.JavaConverters._ import scala.annotation.unchecked.uncheckedVariance diff --git a/akka-stream/src/main/scala/akka/stream/scaladsl/Flow.scala b/akka-stream/src/main/scala/akka/stream/scaladsl/Flow.scala index d6b38ec173..56225be88a 100644 --- a/akka-stream/src/main/scala/akka/stream/scaladsl/Flow.scala +++ b/akka-stream/src/main/scala/akka/stream/scaladsl/Flow.scala @@ -9,6 +9,7 @@ import akka.Done import akka.stream.impl._ import akka.stream.impl.fusing._ import akka.stream.stage._ +import akka.util.ConstantFun import org.reactivestreams.{ Processor, Publisher, Subscriber, Subscription } import scala.annotation.unchecked.uncheckedVariance diff --git a/akka-stream/src/main/scala/akka/stream/scaladsl/Graph.scala b/akka-stream/src/main/scala/akka/stream/scaladsl/Graph.scala index bdc5a2579f..06481014aa 100644 --- a/akka-stream/src/main/scala/akka/stream/scaladsl/Graph.scala +++ b/akka-stream/src/main/scala/akka/stream/scaladsl/Graph.scala @@ -10,6 +10,7 @@ import akka.stream.impl.fusing.GraphStages import akka.stream.impl.Stages.DefaultAttributes import akka.stream.scaladsl.Partition.PartitionOutOfBoundsException import akka.stream.stage.{ GraphStage, GraphStageLogic, InHandler, OutHandler } +import akka.util.ConstantFun import scala.annotation.unchecked.uncheckedVariance import scala.annotation.tailrec diff --git a/akka-stream/src/main/scala/akka/stream/scaladsl/Source.scala b/akka-stream/src/main/scala/akka/stream/scaladsl/Source.scala index 0f434810f9..46e6b26097 100644 --- a/akka-stream/src/main/scala/akka/stream/scaladsl/Source.scala +++ b/akka-stream/src/main/scala/akka/stream/scaladsl/Source.scala @@ -4,6 +4,7 @@ package akka.stream.scaladsl import akka.stream.impl.Stages.DefaultAttributes +import akka.util.ConstantFun import akka.{ Done, NotUsed } import akka.actor.{ ActorRef, Cancellable, Props } import akka.stream.actor.ActorPublisher diff --git a/project/MiMa.scala b/project/MiMa.scala index 6980b41bde..55723042c8 100644 --- a/project/MiMa.scala +++ b/project/MiMa.scala @@ -56,12 +56,12 @@ object MiMa extends AutoPlugin { if (!akka242NewArtifacts.contains(projectName)) akka24NoStreamVersions else Seq.empty } ++ akka24StreamVersions ++ akka24WithScala212 ++ akka25Versions - - case "2.12" => + + case "2.12" => akka24WithScala212 ++ akka25Versions } } - + val akka25PromotedArtifacts = Set( "akka-distributed-data" ) @@ -71,7 +71,7 @@ object MiMa extends AutoPlugin { val adjustedProjectName = if (akka25PromotedArtifacts(projectName) && v.startsWith("2.4")) projectName + "-experimental" - else + else projectName organization %% adjustedProjectName % v }.toSet @@ -99,7 +99,7 @@ object MiMa extends AutoPlugin { val bcIssuesBetween24and25 = Seq( // ##22269 GSet as delta-CRDT ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.GSet.this"), // constructor supplied by companion object - + // # 18262 embed FJP, Mailbox extends ForkJoinTask ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.dispatch.ForkJoinExecutorConfigurator#ForkJoinExecutorServiceFactory.threadFactory"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.dispatch.ForkJoinExecutorConfigurator#ForkJoinExecutorServiceFactory.this"), @@ -118,7 +118,7 @@ object MiMa extends AutoPlugin { // #21875 delta-CRDT ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.GCounter.this"), - + // #22188 ORSet delta-CRDT ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.ORSet.this"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.cluster.ddata.protobuf.SerializationSupport.versionVectorToProto"), @@ -126,7 +126,7 @@ object MiMa extends AutoPlugin { ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.cluster.ddata.protobuf.SerializationSupport.versionVectorFromBinary"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.cluster.ddata.protobuf.ReplicatedDataSerializer.versionVectorToProto"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.ddata.protobuf.ReplicatedDataSerializer.versionVectorFromProto"), - + // #22141 sharding minCap ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.sharding.DDataShardCoordinator.updatingStateTimeout"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.sharding.DDataShardCoordinator.waitingForStateTimeout"), @@ -136,7 +136,7 @@ object MiMa extends AutoPlugin { ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.pattern.CircuitBreaker#State.callThrough"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.pattern.CircuitBreaker#State.invoke"), - // #21423 Remove deprecated metrics + // #21423 Remove deprecated metrics ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ClusterReadView.clusterMetrics"), ProblemFilters.exclude[MissingClassProblem]("akka.cluster.InternalClusterAction$MetricsTick$"), ProblemFilters.exclude[MissingClassProblem]("akka.cluster.MetricsCollector"), @@ -209,13 +209,13 @@ object MiMa extends AutoPlugin { ProblemFilters.exclude[MissingClassProblem]("akka.cluster.protobuf.msg.ClusterMessages$NodeMetrics$Metric"), ProblemFilters.exclude[MissingClassProblem]("akka.cluster.protobuf.msg.ClusterMessages$NodeMetrics$Metric$Builder"), ProblemFilters.exclude[MissingClassProblem]("akka.cluster.protobuf.msg.ClusterMessages$NodeMetrics$Number$Builder"), - + // #22154 Sharding remembering entities with ddata, internal actors FilterAnyProblemStartingWith("akka.cluster.sharding.Shard"), FilterAnyProblemStartingWith("akka.cluster.sharding.PersistentShard"), FilterAnyProblemStartingWith("akka.cluster.sharding.ClusterShardingGuardian"), FilterAnyProblemStartingWith("akka.cluster.sharding.ShardRegion"), - + // #21647 pruning FilterAnyProblemStartingWith("akka.cluster.ddata.PruningState"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.cluster.ddata.RemovedNodePruning.modifiedByNodes"), @@ -230,7 +230,7 @@ object MiMa extends AutoPlugin { // #21537 coordinated shutdown ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ClusterCoreDaemon.removed"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.Gossip.convergence"), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.Gossip.convergence"), //#21717 Improvements to AbstractActor API FilterAnyProblemStartingWith("akka.japi.pf.ReceiveBuilder"), @@ -244,8 +244,8 @@ object MiMa extends AutoPlugin { ProblemFilters.exclude[MissingTypesProblem]("akka.routing.RoutedActorCell"), ProblemFilters.exclude[MissingTypesProblem]("akka.routing.ResizablePoolCell"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.persistence.AbstractPersistentActor.createReceiveRecover"), - ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.persistence.AbstractPersistentActor.createReceive"), - + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.persistence.AbstractPersistentActor.createReceive"), + // #21423 removal of deprecated stages (in 2.5.x) ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.javadsl.Source.transform"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.javadsl.SubSource.transform"), @@ -307,20 +307,20 @@ object MiMa extends AutoPlugin { ProblemFilters.exclude[DirectMissingMethodProblem]("akka.actor.ActorSystem.isTerminated"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.actor.ActorSystem.awaitTermination"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.actor.ActorSystem.awaitTermination"), - + // #21423 remove deprecated ActorPath.ElementRegex ProblemFilters.exclude[DirectMissingMethodProblem]("akka.actor.ActorPath.ElementRegex"), - + // #21423 remove some deprecated event bus classes ProblemFilters.exclude[MissingClassProblem]("akka.event.ActorClassification"), ProblemFilters.exclude[MissingClassProblem]("akka.event.EventStream$"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.event.EventStream.this"), ProblemFilters.exclude[MissingClassProblem]("akka.event.japi.ActorEventBus"), - + // #21423 remove deprecated util.Crypt ProblemFilters.exclude[MissingClassProblem]("akka.util.Crypt"), ProblemFilters.exclude[MissingClassProblem]("akka.util.Crypt$"), - + // #21423 removal of deprecated serializer constructors (in 2.5.x) ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.serialization.ProtobufSerializer.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.serialization.MessageContainerSerializer.this"), @@ -328,11 +328,11 @@ object MiMa extends AutoPlugin { ProblemFilters.exclude[DirectMissingMethodProblem]("akka.serialization.JavaSerializer.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.serialization.ByteArraySerializer.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.protobuf.ClusterMessageSerializer.this"), - + // #21423 removal of deprecated constructor in PromiseActorRef ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.PromiseActorRef.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.PromiseActorRef.apply"), - + // #21423 remove deprecated methods in routing ProblemFilters.exclude[DirectMissingMethodProblem]("akka.routing.Pool.nrOfInstances"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.routing.Group.paths"), @@ -343,7 +343,7 @@ object MiMa extends AutoPlugin { ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.routing.RemoteRouterConfig.nrOfInstances"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.routing.ClusterRouterGroup.paths"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.routing.ClusterRouterPool.nrOfInstances"), - + // #21423 remove deprecated persist method (persistAll) // This might filter changes to the ordinary persist method also, but not much to do about that ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.persistence.UntypedPersistentActor.persist"), @@ -365,13 +365,13 @@ object MiMa extends AutoPlugin { ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.sharding.PersistentShardCoordinator.persistAsync"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.sharding.RemoveInternalClusterShardingData#RemoveOnePersistenceId.persist"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.sharding.RemoveInternalClusterShardingData#RemoveOnePersistenceId.persistAsync"), - + // #21423 remove deprecated ARRAY_OF_BYTE_ARRAY ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.serialization.ProtobufSerializer.ARRAY_OF_BYTE_ARRAY"), - + // #21423 remove deprecated constructor in DeadlineFailureDetector ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.remote.DeadlineFailureDetector.this"), - + // #21423 removal of deprecated `PersistentView` (in 2.5.x) ProblemFilters.exclude[MissingClassProblem]("akka.persistence.Update"), ProblemFilters.exclude[MissingClassProblem]("akka.persistence.Update$"), @@ -866,7 +866,7 @@ object MiMa extends AutoPlugin { // Interpreter internals change ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.stream.stage.GraphStageLogic.portToConn"), - // #20994 adding new decode method, since we're on JDK7+ now + // #20994 adding new decode method, since we're on JDK7+ now ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.util.ByteString.decodeString"), // #20508 HTTP: Document how to be able to support custom request methods @@ -1163,41 +1163,41 @@ object MiMa extends AutoPlugin { // * this list ends with the latest released version number // * is kept in sync between release-2.4 and master branch ) - + val Release25Filters = Seq( "2.5.0" -> Seq( - - // #22759 LMDB files - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.env"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.db"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.keyBuffer"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.valueBuffer_="), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.valueBuffer"), - - ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOps.groupedWeightedWithin"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FileSubscriber.props"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FileSource.this"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FileSink.this"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FilePublisher.props"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FileSubscriber.this"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FilePublisher.this"), - ProblemFilters.exclude[MissingClassProblem]("akka.stream.impl.fusing.GroupedWithin"), - - ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.traversalBuilder"), - ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.named"), - ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.addAttributes"), - ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.async") + + // #22759 LMDB files + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.env"), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.db"), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.keyBuffer"), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.valueBuffer_="), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.valueBuffer"), + + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOps.groupedWeightedWithin"), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FileSubscriber.props"), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FileSource.this"), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FileSink.this"), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FilePublisher.props"), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FileSubscriber.this"), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FilePublisher.this"), + ProblemFilters.exclude[MissingClassProblem]("akka.stream.impl.fusing.GroupedWithin"), + + ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.traversalBuilder"), + ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.named"), + ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.addAttributes"), + ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.async") ), "2.5.1" -> Seq( - // #21213 Feature request: Let BackoffSupervisor reply to messages when its child is stopped - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffSupervisor.this"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOptionsImpl.copy"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOptionsImpl.this"), - ProblemFilters.exclude[MissingTypesProblem]("akka.pattern.BackoffOptionsImpl$"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOptionsImpl.apply"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOnRestartSupervisor.this"), - ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.pattern.HandleBackoff.replyWhileStopped"), - ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.pattern.BackoffOptions.withReplyWhileStopped") + // #21213 Feature request: Let BackoffSupervisor reply to messages when its child is stopped + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffSupervisor.this"), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOptionsImpl.copy"), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOptionsImpl.this"), + ProblemFilters.exclude[MissingTypesProblem]("akka.pattern.BackoffOptionsImpl$"), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOptionsImpl.apply"), + ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOnRestartSupervisor.this"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.pattern.HandleBackoff.replyWhileStopped"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.pattern.BackoffOptions.withReplyWhileStopped") ) )