Merge branch 'master' into wip-akka-docs-new

This commit is contained in:
Patrik Nordwall 2017-05-15 12:22:32 +02:00
commit 55f3c68ca4
21 changed files with 124 additions and 70 deletions

View file

@ -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. 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 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. 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 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. 1. All source files in the project must have a Lightbend copyright notice in the file header.

View file

@ -0,0 +1,47 @@
/**
* Copyright (C) 2015-2017 Lightbend Inc. <http://www.lightbend.com>
*/
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
}

View file

@ -8,11 +8,11 @@ import java.util.concurrent.TimeUnit
import akka.NotUsed import akka.NotUsed
import akka.actor.ActorSystem import akka.actor.ActorSystem
import akka.stream.scaladsl._ import akka.stream.scaladsl._
import akka.util.ConstantFun
import org.openjdk.jmh.annotations._ import org.openjdk.jmh.annotations._
import scala.concurrent.Await import scala.concurrent.Await
import scala.concurrent.duration._ import scala.concurrent.duration._
import scala.concurrent.Future import scala.concurrent.Future
import akka.stream.impl.ConstantFun
import akka.Done import akka.Done
object MaterializationBenchmark { object MaterializationBenchmark {

View file

@ -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 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 events (it accepts `Object`) and subscribe listeners to the corresponding JVM
classes. classes.

View file

@ -3,9 +3,9 @@
*/ */
package akka.stream.tck package akka.stream.tck
import akka.stream.impl.ConstantFun
import akka.stream.scaladsl.Sink import akka.stream.scaladsl.Sink
import akka.stream.scaladsl.Source import akka.stream.scaladsl.Source
import akka.util.ConstantFun
import org.reactivestreams.Publisher import org.reactivestreams.Publisher
class FlattenTest extends AkkaPublisherVerification[Int] { class FlattenTest extends AkkaPublisherVerification[Int] {

View file

@ -10,7 +10,7 @@ import akka.japi.JavaPartialFunction;
import akka.japi.Pair; import akka.japi.Pair;
import akka.japi.function.*; import akka.japi.function.*;
import akka.stream.*; import akka.stream.*;
import akka.stream.impl.ConstantFun; import akka.util.ConstantFun;
import akka.stream.javadsl.GraphDSL.Builder; import akka.stream.javadsl.GraphDSL.Builder;
import akka.stream.stage.*; import akka.stream.stage.*;
import akka.testkit.AkkaSpec; import akka.testkit.AkkaSpec;

View file

@ -11,7 +11,7 @@ import akka.japi.Pair;
import akka.japi.function.*; import akka.japi.function.*;
import akka.japi.pf.PFBuilder; import akka.japi.pf.PFBuilder;
import akka.stream.*; import akka.stream.*;
import akka.stream.impl.ConstantFun; import akka.util.ConstantFun;
import akka.stream.stage.*; import akka.stream.stage.*;
import akka.testkit.AkkaSpec; import akka.testkit.AkkaSpec;
import akka.stream.testkit.TestPublisher; import akka.stream.testkit.TestPublisher;

View file

@ -4,12 +4,12 @@
package akka.stream.impl.fusing package akka.stream.impl.fusing
import akka.stream.impl.ConstantFun
import akka.stream.stage._ import akka.stream.stage._
import akka.stream.testkit.StreamSpec import akka.stream.testkit.StreamSpec
import akka.testkit.EventFilter import akka.testkit.EventFilter
import akka.stream._ import akka.stream._
import akka.stream.impl.fusing.GraphStages.SimpleLinearGraphStage import akka.stream.impl.fusing.GraphStages.SimpleLinearGraphStage
import akka.util.ConstantFun
class InterpreterSpec extends StreamSpec with GraphInterpreterSpecKit { class InterpreterSpec extends StreamSpec with GraphInterpreterSpecKit {
import Supervision.stoppingDecider import Supervision.stoppingDecider

View file

@ -4,10 +4,10 @@
package akka.stream.impl.fusing package akka.stream.impl.fusing
import akka.stream.impl.ConstantFun
import akka.stream.Supervision import akka.stream.Supervision
import akka.stream.testkit.StreamSpec import akka.stream.testkit.StreamSpec
import akka.testkit.LongRunningTest import akka.testkit.LongRunningTest
import akka.util.ConstantFun
class InterpreterStressSpec extends StreamSpec with GraphInterpreterSpecKit { class InterpreterStressSpec extends StreamSpec with GraphInterpreterSpecKit {
import Supervision.stoppingDecider import Supervision.stoppingDecider

View file

@ -4,7 +4,7 @@
package akka.stream.scaladsl package akka.stream.scaladsl
import akka.NotUsed import akka.NotUsed
import akka.stream.impl.ConstantFun import akka.util.ConstantFun
import scala.util.control.NoStackTrace import scala.util.control.NoStackTrace
import akka.stream.ActorMaterializer import akka.stream.ActorMaterializer

View file

@ -10,6 +10,7 @@ import akka.japi.{ Pair ⇒ JPair }
/** /**
* INTERNAL API * INTERNAL API
*/ */
@deprecated("Use akka.util.ConstantFun instead", "2.5.0")
@InternalApi private[akka] object ConstantFun { @InternalApi private[akka] object ConstantFun {
private[this] val JavaIdentityFunction = new JFun[Any, Any] { private[this] val JavaIdentityFunction = new JFun[Any, Any] {
@throws(classOf[Exception]) override def apply(param: Any): Any = param @throws(classOf[Exception]) override def apply(param: Any): Any = param

View file

@ -3,10 +3,11 @@
*/ */
package akka.stream.javadsl package akka.stream.javadsl
import akka.util.ConstantFun
import akka.{ Done, NotUsed } import akka.{ Done, NotUsed }
import akka.event.LoggingAdapter import akka.event.LoggingAdapter
import akka.japi.{ Pair, function } import akka.japi.{ Pair, function }
import akka.stream.impl.{ ConstantFun, StreamLayout } import akka.stream.impl.StreamLayout
import akka.stream._ import akka.stream._
import org.reactivestreams.Processor import org.reactivestreams.Processor

View file

@ -6,8 +6,8 @@ package akka.stream.javadsl
import akka.NotUsed import akka.NotUsed
import akka.stream._ import akka.stream._
import akka.japi.{ Pair, function } import akka.japi.{ Pair, function }
import akka.util.ConstantFun
import scala.annotation.unchecked.uncheckedVariance import scala.annotation.unchecked.uncheckedVariance
import akka.stream.impl.ConstantFun
/** /**
* Merge several streams, taking elements as they arrive from input streams * Merge several streams, taking elements as they arrive from input streams

View file

@ -6,12 +6,13 @@ package akka.stream.javadsl
import java.util import java.util
import java.util.Optional import java.util.Optional
import akka.util.ConstantFun
import akka.{ Done, NotUsed } import akka.{ Done, NotUsed }
import akka.actor.{ ActorRef, Cancellable, Props } import akka.actor.{ ActorRef, Cancellable, Props }
import akka.event.LoggingAdapter import akka.event.LoggingAdapter
import akka.japi.{ Pair, Util, function } import akka.japi.{ Pair, Util, function }
import akka.stream._ import akka.stream._
import akka.stream.impl.{ ConstantFun, LinearTraversalBuilder, SourceQueueAdapter, StreamLayout } import akka.stream.impl.{ LinearTraversalBuilder, SourceQueueAdapter, StreamLayout }
import org.reactivestreams.{ Publisher, Subscriber } import org.reactivestreams.{ Publisher, Subscriber }
import scala.annotation.unchecked.uncheckedVariance import scala.annotation.unchecked.uncheckedVariance

View file

@ -7,7 +7,7 @@ import akka.NotUsed
import akka.event.LoggingAdapter import akka.event.LoggingAdapter
import akka.japi.function import akka.japi.function
import akka.stream._ import akka.stream._
import akka.stream.impl.ConstantFun import akka.util.ConstantFun
import scala.collection.JavaConverters._ import scala.collection.JavaConverters._
import scala.annotation.unchecked.uncheckedVariance import scala.annotation.unchecked.uncheckedVariance

View file

@ -7,7 +7,7 @@ import akka.NotUsed
import akka.event.LoggingAdapter import akka.event.LoggingAdapter
import akka.japi.function import akka.japi.function
import akka.stream._ import akka.stream._
import akka.stream.impl.ConstantFun import akka.util.ConstantFun
import scala.collection.JavaConverters._ import scala.collection.JavaConverters._
import scala.annotation.unchecked.uncheckedVariance import scala.annotation.unchecked.uncheckedVariance

View file

@ -9,6 +9,7 @@ import akka.Done
import akka.stream.impl._ import akka.stream.impl._
import akka.stream.impl.fusing._ import akka.stream.impl.fusing._
import akka.stream.stage._ import akka.stream.stage._
import akka.util.ConstantFun
import org.reactivestreams.{ Processor, Publisher, Subscriber, Subscription } import org.reactivestreams.{ Processor, Publisher, Subscriber, Subscription }
import scala.annotation.unchecked.uncheckedVariance import scala.annotation.unchecked.uncheckedVariance

View file

@ -10,6 +10,7 @@ import akka.stream.impl.fusing.GraphStages
import akka.stream.impl.Stages.DefaultAttributes import akka.stream.impl.Stages.DefaultAttributes
import akka.stream.scaladsl.Partition.PartitionOutOfBoundsException import akka.stream.scaladsl.Partition.PartitionOutOfBoundsException
import akka.stream.stage.{ GraphStage, GraphStageLogic, InHandler, OutHandler } import akka.stream.stage.{ GraphStage, GraphStageLogic, InHandler, OutHandler }
import akka.util.ConstantFun
import scala.annotation.unchecked.uncheckedVariance import scala.annotation.unchecked.uncheckedVariance
import scala.annotation.tailrec import scala.annotation.tailrec

View file

@ -4,6 +4,7 @@
package akka.stream.scaladsl package akka.stream.scaladsl
import akka.stream.impl.Stages.DefaultAttributes import akka.stream.impl.Stages.DefaultAttributes
import akka.util.ConstantFun
import akka.{ Done, NotUsed } import akka.{ Done, NotUsed }
import akka.actor.{ ActorRef, Cancellable, Props } import akka.actor.{ ActorRef, Cancellable, Props }
import akka.stream.actor.ActorPublisher import akka.stream.actor.ActorPublisher

View file

@ -56,12 +56,12 @@ object MiMa extends AutoPlugin {
if (!akka242NewArtifacts.contains(projectName)) akka24NoStreamVersions if (!akka242NewArtifacts.contains(projectName)) akka24NoStreamVersions
else Seq.empty else Seq.empty
} ++ akka24StreamVersions ++ akka24WithScala212 ++ akka25Versions } ++ akka24StreamVersions ++ akka24WithScala212 ++ akka25Versions
case "2.12" => case "2.12" =>
akka24WithScala212 ++ akka25Versions akka24WithScala212 ++ akka25Versions
} }
} }
val akka25PromotedArtifacts = Set( val akka25PromotedArtifacts = Set(
"akka-distributed-data" "akka-distributed-data"
) )
@ -71,7 +71,7 @@ object MiMa extends AutoPlugin {
val adjustedProjectName = val adjustedProjectName =
if (akka25PromotedArtifacts(projectName) && v.startsWith("2.4")) if (akka25PromotedArtifacts(projectName) && v.startsWith("2.4"))
projectName + "-experimental" projectName + "-experimental"
else else
projectName projectName
organization %% adjustedProjectName % v organization %% adjustedProjectName % v
}.toSet }.toSet
@ -99,7 +99,7 @@ object MiMa extends AutoPlugin {
val bcIssuesBetween24and25 = Seq( val bcIssuesBetween24and25 = Seq(
// ##22269 GSet as delta-CRDT // ##22269 GSet as delta-CRDT
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.GSet.this"), // constructor supplied by companion object ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.GSet.this"), // constructor supplied by companion object
// # 18262 embed FJP, Mailbox extends ForkJoinTask // # 18262 embed FJP, Mailbox extends ForkJoinTask
ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.dispatch.ForkJoinExecutorConfigurator#ForkJoinExecutorServiceFactory.threadFactory"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.dispatch.ForkJoinExecutorConfigurator#ForkJoinExecutorServiceFactory.threadFactory"),
ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.dispatch.ForkJoinExecutorConfigurator#ForkJoinExecutorServiceFactory.this"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.dispatch.ForkJoinExecutorConfigurator#ForkJoinExecutorServiceFactory.this"),
@ -118,7 +118,7 @@ object MiMa extends AutoPlugin {
// #21875 delta-CRDT // #21875 delta-CRDT
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.GCounter.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.GCounter.this"),
// #22188 ORSet delta-CRDT // #22188 ORSet delta-CRDT
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.ORSet.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.ORSet.this"),
ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.cluster.ddata.protobuf.SerializationSupport.versionVectorToProto"), 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[ReversedMissingMethodProblem]("akka.cluster.ddata.protobuf.SerializationSupport.versionVectorFromBinary"),
ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.cluster.ddata.protobuf.ReplicatedDataSerializer.versionVectorToProto"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.cluster.ddata.protobuf.ReplicatedDataSerializer.versionVectorToProto"),
ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.ddata.protobuf.ReplicatedDataSerializer.versionVectorFromProto"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.ddata.protobuf.ReplicatedDataSerializer.versionVectorFromProto"),
// #22141 sharding minCap // #22141 sharding minCap
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.sharding.DDataShardCoordinator.updatingStateTimeout"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.sharding.DDataShardCoordinator.updatingStateTimeout"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.sharding.DDataShardCoordinator.waitingForStateTimeout"), 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.callThrough"),
ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.pattern.CircuitBreaker#State.invoke"), 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[DirectMissingMethodProblem]("akka.cluster.ClusterReadView.clusterMetrics"),
ProblemFilters.exclude[MissingClassProblem]("akka.cluster.InternalClusterAction$MetricsTick$"), ProblemFilters.exclude[MissingClassProblem]("akka.cluster.InternalClusterAction$MetricsTick$"),
ProblemFilters.exclude[MissingClassProblem]("akka.cluster.MetricsCollector"), 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"),
ProblemFilters.exclude[MissingClassProblem]("akka.cluster.protobuf.msg.ClusterMessages$NodeMetrics$Metric$Builder"), ProblemFilters.exclude[MissingClassProblem]("akka.cluster.protobuf.msg.ClusterMessages$NodeMetrics$Metric$Builder"),
ProblemFilters.exclude[MissingClassProblem]("akka.cluster.protobuf.msg.ClusterMessages$NodeMetrics$Number$Builder"), ProblemFilters.exclude[MissingClassProblem]("akka.cluster.protobuf.msg.ClusterMessages$NodeMetrics$Number$Builder"),
// #22154 Sharding remembering entities with ddata, internal actors // #22154 Sharding remembering entities with ddata, internal actors
FilterAnyProblemStartingWith("akka.cluster.sharding.Shard"), FilterAnyProblemStartingWith("akka.cluster.sharding.Shard"),
FilterAnyProblemStartingWith("akka.cluster.sharding.PersistentShard"), FilterAnyProblemStartingWith("akka.cluster.sharding.PersistentShard"),
FilterAnyProblemStartingWith("akka.cluster.sharding.ClusterShardingGuardian"), FilterAnyProblemStartingWith("akka.cluster.sharding.ClusterShardingGuardian"),
FilterAnyProblemStartingWith("akka.cluster.sharding.ShardRegion"), FilterAnyProblemStartingWith("akka.cluster.sharding.ShardRegion"),
// #21647 pruning // #21647 pruning
FilterAnyProblemStartingWith("akka.cluster.ddata.PruningState"), FilterAnyProblemStartingWith("akka.cluster.ddata.PruningState"),
ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.cluster.ddata.RemovedNodePruning.modifiedByNodes"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.cluster.ddata.RemovedNodePruning.modifiedByNodes"),
@ -230,7 +230,7 @@ object MiMa extends AutoPlugin {
// #21537 coordinated shutdown // #21537 coordinated shutdown
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ClusterCoreDaemon.removed"), 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 //#21717 Improvements to AbstractActor API
FilterAnyProblemStartingWith("akka.japi.pf.ReceiveBuilder"), FilterAnyProblemStartingWith("akka.japi.pf.ReceiveBuilder"),
@ -244,8 +244,8 @@ object MiMa extends AutoPlugin {
ProblemFilters.exclude[MissingTypesProblem]("akka.routing.RoutedActorCell"), ProblemFilters.exclude[MissingTypesProblem]("akka.routing.RoutedActorCell"),
ProblemFilters.exclude[MissingTypesProblem]("akka.routing.ResizablePoolCell"), ProblemFilters.exclude[MissingTypesProblem]("akka.routing.ResizablePoolCell"),
ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.persistence.AbstractPersistentActor.createReceiveRecover"), 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) // #21423 removal of deprecated stages (in 2.5.x)
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.javadsl.Source.transform"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.javadsl.Source.transform"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.javadsl.SubSource.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.isTerminated"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.actor.ActorSystem.awaitTermination"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.actor.ActorSystem.awaitTermination"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.actor.ActorSystem.awaitTermination"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.actor.ActorSystem.awaitTermination"),
// #21423 remove deprecated ActorPath.ElementRegex // #21423 remove deprecated ActorPath.ElementRegex
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.actor.ActorPath.ElementRegex"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.actor.ActorPath.ElementRegex"),
// #21423 remove some deprecated event bus classes // #21423 remove some deprecated event bus classes
ProblemFilters.exclude[MissingClassProblem]("akka.event.ActorClassification"), ProblemFilters.exclude[MissingClassProblem]("akka.event.ActorClassification"),
ProblemFilters.exclude[MissingClassProblem]("akka.event.EventStream$"), ProblemFilters.exclude[MissingClassProblem]("akka.event.EventStream$"),
ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.event.EventStream.this"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.event.EventStream.this"),
ProblemFilters.exclude[MissingClassProblem]("akka.event.japi.ActorEventBus"), ProblemFilters.exclude[MissingClassProblem]("akka.event.japi.ActorEventBus"),
// #21423 remove deprecated util.Crypt // #21423 remove deprecated util.Crypt
ProblemFilters.exclude[MissingClassProblem]("akka.util.Crypt"), ProblemFilters.exclude[MissingClassProblem]("akka.util.Crypt"),
ProblemFilters.exclude[MissingClassProblem]("akka.util.Crypt$"), ProblemFilters.exclude[MissingClassProblem]("akka.util.Crypt$"),
// #21423 removal of deprecated serializer constructors (in 2.5.x) // #21423 removal of deprecated serializer constructors (in 2.5.x)
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.serialization.ProtobufSerializer.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.serialization.ProtobufSerializer.this"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.serialization.MessageContainerSerializer.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.JavaSerializer.this"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.serialization.ByteArraySerializer.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.serialization.ByteArraySerializer.this"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.protobuf.ClusterMessageSerializer.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.protobuf.ClusterMessageSerializer.this"),
// #21423 removal of deprecated constructor in PromiseActorRef // #21423 removal of deprecated constructor in PromiseActorRef
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.PromiseActorRef.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.PromiseActorRef.this"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.PromiseActorRef.apply"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.PromiseActorRef.apply"),
// #21423 remove deprecated methods in routing // #21423 remove deprecated methods in routing
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.routing.Pool.nrOfInstances"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.routing.Pool.nrOfInstances"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.routing.Group.paths"), 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.remote.routing.RemoteRouterConfig.nrOfInstances"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.routing.ClusterRouterGroup.paths"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.routing.ClusterRouterGroup.paths"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.routing.ClusterRouterPool.nrOfInstances"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.routing.ClusterRouterPool.nrOfInstances"),
// #21423 remove deprecated persist method (persistAll) // #21423 remove deprecated persist method (persistAll)
// This might filter changes to the ordinary persist method also, but not much to do about that // This might filter changes to the ordinary persist method also, but not much to do about that
ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.persistence.UntypedPersistentActor.persist"), 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.PersistentShardCoordinator.persistAsync"),
ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.sharding.RemoveInternalClusterShardingData#RemoveOnePersistenceId.persist"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.sharding.RemoveInternalClusterShardingData#RemoveOnePersistenceId.persist"),
ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.sharding.RemoveInternalClusterShardingData#RemoveOnePersistenceId.persistAsync"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.sharding.RemoveInternalClusterShardingData#RemoveOnePersistenceId.persistAsync"),
// #21423 remove deprecated ARRAY_OF_BYTE_ARRAY // #21423 remove deprecated ARRAY_OF_BYTE_ARRAY
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.serialization.ProtobufSerializer.ARRAY_OF_BYTE_ARRAY"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.serialization.ProtobufSerializer.ARRAY_OF_BYTE_ARRAY"),
// #21423 remove deprecated constructor in DeadlineFailureDetector // #21423 remove deprecated constructor in DeadlineFailureDetector
ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.remote.DeadlineFailureDetector.this"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.remote.DeadlineFailureDetector.this"),
// #21423 removal of deprecated `PersistentView` (in 2.5.x) // #21423 removal of deprecated `PersistentView` (in 2.5.x)
ProblemFilters.exclude[MissingClassProblem]("akka.persistence.Update"), ProblemFilters.exclude[MissingClassProblem]("akka.persistence.Update"),
ProblemFilters.exclude[MissingClassProblem]("akka.persistence.Update$"), ProblemFilters.exclude[MissingClassProblem]("akka.persistence.Update$"),
@ -866,7 +866,7 @@ object MiMa extends AutoPlugin {
// Interpreter internals change // Interpreter internals change
ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.stream.stage.GraphStageLogic.portToConn"), 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"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.util.ByteString.decodeString"),
// #20508 HTTP: Document how to be able to support custom request methods // #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 // * this list ends with the latest released version number
// * is kept in sync between release-2.4 and master branch // * is kept in sync between release-2.4 and master branch
) )
val Release25Filters = Seq( val Release25Filters = Seq(
"2.5.0" -> Seq( "2.5.0" -> Seq(
// #22759 LMDB files // #22759 LMDB files
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.env"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.env"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.db"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.db"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.keyBuffer"), 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[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.valueBuffer"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.ddata.LmdbDurableStore.valueBuffer"),
ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOps.groupedWeightedWithin"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOps.groupedWeightedWithin"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FileSubscriber.props"), 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.FileSource.this"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FileSink.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.FilePublisher.props"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FileSubscriber.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FileSubscriber.this"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FilePublisher.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.io.FilePublisher.this"),
ProblemFilters.exclude[MissingClassProblem]("akka.stream.impl.fusing.GroupedWithin"), ProblemFilters.exclude[MissingClassProblem]("akka.stream.impl.fusing.GroupedWithin"),
ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.traversalBuilder"), ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.traversalBuilder"),
ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.named"), ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.named"),
ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.addAttributes"), ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.addAttributes"),
ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.async") ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("akka.stream.Graph.async")
), ),
"2.5.1" -> Seq( "2.5.1" -> Seq(
// #21213 Feature request: Let BackoffSupervisor reply to messages when its child is stopped // #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.BackoffSupervisor.this"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOptionsImpl.copy"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOptionsImpl.copy"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOptionsImpl.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOptionsImpl.this"),
ProblemFilters.exclude[MissingTypesProblem]("akka.pattern.BackoffOptionsImpl$"), ProblemFilters.exclude[MissingTypesProblem]("akka.pattern.BackoffOptionsImpl$"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOptionsImpl.apply"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOptionsImpl.apply"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOnRestartSupervisor.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.pattern.BackoffOnRestartSupervisor.this"),
ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.pattern.HandleBackoff.replyWhileStopped"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.pattern.HandleBackoff.replyWhileStopped"),
ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.pattern.BackoffOptions.withReplyWhileStopped") ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.pattern.BackoffOptions.withReplyWhileStopped")
) )
) )

View file

@ -30,13 +30,13 @@ addSbtPlugin("pl.project13.sbt" % "sbt-jol" % "0.1.1")
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.0-RC1") addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.0-RC1")
// for advanced PR validation features // 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" libraryDependencies += "org.kohsuke" % "github-api" % "1.68"
addSbtPlugin("io.spray" % "sbt-boilerplate" % "0.6.0") 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.url("2m-sbt-plugin-releases", url("https://dl.bintray.com/2m/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)
resolvers += Resolver.bintrayRepo("2m", "sbt-plugin-releases") resolvers += Resolver.bintrayRepo("2m", "sbt-plugin-releases")