diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 67cdeb82ae..754a01e61a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -192,6 +192,7 @@ For a pull request to be considered at all it has to meet these requirements: 1. Regardless if the code introduces new features or fixes bugs or regressions, it must have comprehensive tests. 1. The code must be well documented in the Lightbend's standard documentation format (see the ‘Documentation’ section below). 1. The commit messages must properly describe the changes, see further below. +1. A pull request must indicate (link to) the issue it is aimed to resolve in the description (or comments) of the PR, in order to establish a link between PR and Issue. This can be achieved by writing "Fixes #1234" or similar in PR description. 1. All Lightbend projects must include Lightbend copyright notices. Each project can choose between one of two approaches: 1. All source files in the project must have a Lightbend copyright notice in the file header. 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-docs/src/main/paradox/java/event-bus.md b/akka-docs/src/main/paradox/java/event-bus.md index 605066bf09..6363b0cbbf 100644 --- a/akka-docs/src/main/paradox/java/event-bus.md +++ b/akka-docs/src/main/paradox/java/event-bus.md @@ -201,4 +201,4 @@ or all dead letters (including the suppressed ones): The event stream is always there and ready to be used, just publish your own events (it accepts `Object`) and subscribe listeners to the corresponding JVM -classes. \ No newline at end of file +classes. 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") ) ) diff --git a/project/plugins.sbt b/project/plugins.sbt index fb3a026aef..ac11ace0db 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -30,13 +30,13 @@ addSbtPlugin("pl.project13.sbt" % "sbt-jol" % "0.1.1") addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.0-RC1") // for advanced PR validation features -addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.8.0") +addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.8.2") libraryDependencies += "org.kohsuke" % "github-api" % "1.68" addSbtPlugin("io.spray" % "sbt-boilerplate" % "0.6.0") -addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.1.8") +addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.1.10") resolvers += Resolver.url("2m-sbt-plugin-releases", url("https://dl.bintray.com/2m/sbt-plugin-releases/"))(Resolver.ivyStylePatterns) resolvers += Resolver.bintrayRepo("2m", "sbt-plugin-releases")