/** * Copyright (C) 2009-2016 Lightbend Inc. */ package akka import com.typesafe.tools.mima.core.ProblemFilters import sbt._ import sbt.Keys._ import com.typesafe.tools.mima.plugin.MimaPlugin import com.typesafe.tools.mima.plugin.MimaPlugin.autoImport._ object MiMa extends AutoPlugin { override def requires = MimaPlugin override def trigger = allRequirements override val projectSettings = Seq( mimaBackwardIssueFilters ++= mimaIgnoredProblems, mimaPreviousArtifacts := akkaPreviousArtifacts(name.value, organization.value, scalaBinaryVersion.value) ) def akkaPreviousArtifacts(projectName: String, organization: String, scalaBinaryVersion: String): Set[sbt.ModuleID] = { val versions = { val akka23Versions = Seq("2.3.11", "2.3.12", "2.3.13", "2.3.14", "2.3.15") val akka24NoStreamVersions = Seq("2.4.0", "2.4.1") val akka24StreamVersions = Seq("2.4.2", "2.4.3", "2.4.4", "2.4.6") val akka24NewArtifacts = Seq( "akka-cluster-sharding", "akka-cluster-tools", "akka-cluster-metrics", "akka-persistence", "akka-distributed-data-experimental", "akka-persistence-query-experimental" ) val akka242NewArtifacts = Seq( "akka-stream", "akka-http-core", "akka-http-testkit", "akka-stream-testkit" // TODO enable once not experimental anymore // "akka-http-experimental", // "akka-http-jackson-experimental", // "akka-http-spray-json-experimental", // "akka-http-xml-experimental" ) scalaBinaryVersion match { case "2.11" if !(akka24NewArtifacts ++ akka242NewArtifacts).contains(projectName) => akka23Versions ++ akka24NoStreamVersions ++ akka24StreamVersions case _ if akka242NewArtifacts.contains(projectName) => akka24StreamVersions case _ => akka24NoStreamVersions ++ akka24StreamVersions // Only Akka 2.4.x for scala > than 2.11 } } // check against all binary compatible artifacts versions.map(organization %% projectName % _).toSet } case class FilterAnyProblem(name: String) extends com.typesafe.tools.mima.core.ProblemFilter { import com.typesafe.tools.mima.core._ override def apply(p: Problem): Boolean = p match { case t: TemplateProblem => t.ref.fullName != name && t.ref.fullName != (name + '$') case m: MemberProblem => m.ref.owner.fullName != name && m.ref.owner.fullName != (name + '$') } } case class FilterAnyProblemStartingWith(start: String) extends com.typesafe.tools.mima.core.ProblemFilter { import com.typesafe.tools.mima.core._ override def apply(p: Problem): Boolean = p match { case t: TemplateProblem => !t.ref.fullName.startsWith(start) case m: MemberProblem => !m.ref.owner.fullName.startsWith(start) } } val mimaIgnoredProblems = { import com.typesafe.tools.mima.core._ val bcIssuesBetween23and24 = Seq( FilterAnyProblem("akka.remote.testconductor.Terminate"), FilterAnyProblem("akka.remote.testconductor.TerminateMsg"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.testconductor.Conductor.shutdown"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.testkit.MultiNodeSpec.akka$remote$testkit$MultiNodeSpec$$deployer"), FilterAnyProblem("akka.remote.EndpointManager$Pass"), FilterAnyProblem("akka.remote.EndpointManager$EndpointRegistry"), FilterAnyProblem("akka.remote.EndpointWriter"), FilterAnyProblem("akka.remote.EndpointWriter$StopReading"), FilterAnyProblem("akka.remote.EndpointWriter$State"), FilterAnyProblem("akka.remote.EndpointWriter$TakeOver"), // Change of internal message by #15109 ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor#GotUid.copy"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor#GotUid.this"), ProblemFilters.exclude[MissingTypesProblem]("akka.remote.ReliableDeliverySupervisor$GotUid$"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor#GotUid.apply"), // Change of private method to protected by #15212 ProblemFilters.exclude[MissingMethodProblem]("akka.persistence.snapshot.local.LocalSnapshotStore.akka$persistence$snapshot$local$LocalSnapshotStore$$save"), // Changes in akka-stream-experimental are not binary compatible - still source compatible (2.3.3 -> 2.3.4) // Adding `PersistentActor.persistAsync` // Adding `PersistentActor.defer` // Changes in akka-persistence in #13944 // Changes in private LevelDB Store by #13962 // Renamed `processorId` to `persistenceId` ProblemFilters.excludePackage("akka.persistence"), // Adding wildcardFanOut to internal message ActorSelectionMessage by #13992 FilterAnyProblem("akka.actor.ActorSelectionMessage$"), FilterAnyProblem("akka.actor.ActorSelectionMessage"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ContainerFormats#SelectionEnvelopeOrBuilder.hasWildcardFanOut"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ContainerFormats#SelectionEnvelopeOrBuilder.getWildcardFanOut"), // Adding expectMsg overload to testkit #15425 ProblemFilters.exclude[MissingMethodProblem]("akka.testkit.TestKitBase.expectMsg"), // Adding akka.japi.Option.getOrElse #15383 ProblemFilters.exclude[MissingMethodProblem]("akka.japi.Option.getOrElse"), // Change to internal API to fix #15991 ProblemFilters.exclude[MissingClassProblem]("akka.io.TcpConnection$UpdatePendingWrite$"), ProblemFilters.exclude[MissingClassProblem]("akka.io.TcpConnection$UpdatePendingWrite"), // Change to optimize use of ForkJoin with Akka's Mailbox ProblemFilters.exclude[MissingMethodProblem]("akka.dispatch.Mailbox.status"), // Changes introduced to internal remoting actors by #16623 ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor.unstashAcks"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor.pendingAcks_="), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor.pendingAcks"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor.scheduleAutoResend"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor.autoResendTimer_="), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor.rescheduleAutoResend"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.remote.ReliableDeliverySupervisor.autoResendTimer"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor.lastCumulativeAck"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.remote.ReliableDeliverySupervisor.bailoutAt"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor.lastCumulativeAck_="), // Change to improve cluster heartbeat sender, #16638 FilterAnyProblem("akka.cluster.HeartbeatNodeRing"), FilterAnyProblem("akka.cluster.ClusterHeartbeatSenderState"), //Changes to improve BatchingExecutor, bugfix #16327 ProblemFilters.exclude[MissingMethodProblem]("akka.dispatch.BatchingExecutor.resubmitOnBlock"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.BatchingExecutor$Batch"), ProblemFilters.exclude[MissingMethodProblem]("akka.dispatch.BatchingExecutor#Batch.initial"), ProblemFilters.exclude[MissingMethodProblem]("akka.dispatch.BatchingExecutor#Batch.blockOn"), ProblemFilters.exclude[FinalMethodProblem]("akka.dispatch.BatchingExecutor#Batch.run"), ProblemFilters.exclude[MissingMethodProblem]("akka.dispatch.BatchingExecutor#Batch.akka$dispatch$BatchingExecutor$Batch$$parentBlockContext_="), ProblemFilters.exclude[MissingMethodProblem]("akka.dispatch.BatchingExecutor#Batch.this"), // Exclude observations from downed, #13875 ProblemFilters.exclude[MissingMethodProblem]("akka.cluster.ClusterEvent.diffReachable"), ProblemFilters.exclude[MissingMethodProblem]("akka.cluster.ClusterEvent.diffSeen"), ProblemFilters.exclude[MissingMethodProblem]("akka.cluster.ClusterEvent.diffUnreachable"), ProblemFilters.exclude[MissingMethodProblem]("akka.cluster.ClusterEvent.diffRolesLeader"), ProblemFilters.exclude[MissingMethodProblem]("akka.cluster.ClusterEvent.diffLeader"), ProblemFilters.exclude[MissingMethodProblem]("akka.cluster.Gossip.convergence"), ProblemFilters.exclude[MissingMethodProblem]("akka.cluster.Gossip.akka$cluster$Gossip$$convergenceMemberStatus"), ProblemFilters.exclude[MissingMethodProblem]("akka.cluster.Gossip.isLeader"), ProblemFilters.exclude[MissingMethodProblem]("akka.cluster.Gossip.leader"), ProblemFilters.exclude[MissingMethodProblem]("akka.cluster.Gossip.roleLeader"), // copied everything above from release-2.3 branch // final case classes ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.ThreadPoolConfig"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.UnboundedDequeBasedMailbox"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.CachingConfig$ValuePathEntry"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.MonitorableThreadFactory"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.ThreadPoolConfigBuilder"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.DefaultDispatcherPrerequisites"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.BoundedMailbox"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.UnboundedMailbox"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.SingleConsumerOnlyUnboundedMailbox"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.CachingConfig$StringPathEntry"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.sysmsg.Supervise"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.sysmsg.Recreate"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.sysmsg.Resume"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.sysmsg.Failed"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.sysmsg.DeathWatchNotification"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.sysmsg.Create"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.sysmsg.Suspend"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.sysmsg.Unwatch"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.sysmsg.Terminate"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.AddressTerminated"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.FSM$Event"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.SuppressedDeadLetter"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.FSM$LogEntry"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.FSM$CurrentState"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.StopChild"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.ContextualTypedActorFactory"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.Status$Failure"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.FSM$Transition"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.FSM$SubscribeTransitionCallBack"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.SelectChildPattern"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.SerializedActorRef"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.TypedActor$SerializedMethodCall"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.Status$Success"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.FSM$UnsubscribeTransitionCallBack"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.PostRestartException"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.FSM$StopEvent"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.ActorKilledException"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.ChildRestartStats"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.ActorNotFound"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.TypedProps"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.SchedulerException"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.DeathPactException"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.FSM$Timer"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.Identify"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.InvalidMessageException"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.Terminated"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.PreRestartException"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.ActorIdentity"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.TypedActor$MethodCall"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.TypedActor$SerializedTypedActorInvocationHandler"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.IllegalActorStateException"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.InvalidActorNameException"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.SelectChildName"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.FSM$Failure"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.UnhandledMessage"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.DeadLetter"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.FSM$TimeoutMarker"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.dungeon.ChildrenContainer$Recreation"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.dungeon.ChildrenContainer$TerminatingChildrenContainer"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.dungeon.ChildrenContainer$Creation"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.dsl.Inbox$Select"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.dsl.Inbox$StartWatch"), ProblemFilters.exclude[FinalClassProblem]("akka.actor.dsl.Inbox$Get"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Tcp$Received"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Udp$Send"), ProblemFilters.exclude[FinalClassProblem]("akka.io.TcpConnection$UpdatePendingWriteAndThen"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Tcp$Write"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Tcp$CommandFailed"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Udp$Bound"), ProblemFilters.exclude[FinalClassProblem]("akka.io.TcpConnection$ConnectionInfo"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Tcp$ErrorClosed"), ProblemFilters.exclude[FinalClassProblem]("akka.io.UdpConnected$Send"), ProblemFilters.exclude[FinalClassProblem]("akka.io.UdpConnected$Received"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Udp$CommandFailed"), ProblemFilters.exclude[FinalClassProblem]("akka.io.SelectionHandler$Retry"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Tcp$WriteFile"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Tcp$Bound"), ProblemFilters.exclude[FinalClassProblem]("akka.io.UdpConnected$CommandFailed"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Tcp$Register"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Tcp$ResumeAccepting"), ProblemFilters.exclude[FinalClassProblem]("akka.io.SelectionHandler$WorkerForCommand"), ProblemFilters.exclude[FinalClassProblem]("akka.io.TcpConnection$CloseInformation"), ProblemFilters.exclude[FinalClassProblem]("akka.io.TcpConnection$WriteFileFailed"), ProblemFilters.exclude[FinalClassProblem]("akka.io.TcpListener$RegisterIncoming"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Tcp$Connect"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Tcp$Bind"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Udp$Received"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Tcp$Connected"), ProblemFilters.exclude[FinalClassProblem]("akka.io.UdpConnected$Connect"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Udp$Bind"), ProblemFilters.exclude[FinalClassProblem]("akka.io.Tcp$CompoundWrite"), ProblemFilters.exclude[FinalClassProblem]("akka.io.TcpListener$FailedRegisterIncoming"), ProblemFilters.exclude[FinalClassProblem]("akka.event.Logging$InitializeLogger"), ProblemFilters.exclude[FinalClassProblem]("akka.pattern.PromiseActorRef$StoppedWithPath"), ProblemFilters.exclude[FinalClassProblem]("akka.serialization.Serialization$Information"), ProblemFilters.exclude[FinalClassProblem]("akka.util.WildcardTree"), ProblemFilters.exclude[FinalClassProblem]("akka.routing.AddRoutee"), ProblemFilters.exclude[FinalClassProblem]("akka.routing.ConsistentRoutee"), ProblemFilters.exclude[FinalClassProblem]("akka.routing.SeveralRoutees"), ProblemFilters.exclude[FinalClassProblem]("akka.routing.ScatterGatherFirstCompletedRoutees"), ProblemFilters.exclude[FinalClassProblem]("akka.routing.Deafen"), ProblemFilters.exclude[FinalClassProblem]("akka.routing.Listen"), ProblemFilters.exclude[FinalClassProblem]("akka.routing.AdjustPoolSize"), ProblemFilters.exclude[FinalClassProblem]("akka.routing.ActorSelectionRoutee"), ProblemFilters.exclude[FinalClassProblem]("akka.routing.Broadcast"), ProblemFilters.exclude[FinalClassProblem]("akka.routing.RemoveRoutee"), ProblemFilters.exclude[FinalClassProblem]("akka.routing.ActorRefRoutee"), ProblemFilters.exclude[FinalClassProblem]("akka.routing.Routees"), ProblemFilters.exclude[FinalClassProblem]("akka.routing.WithListeners"), ProblemFilters.exclude[FinalClassProblem]("akka.testkit.TestEvent$Mute"), ProblemFilters.exclude[FinalClassProblem]("akka.testkit.TestActor$UnWatch"), ProblemFilters.exclude[FinalClassProblem]("akka.testkit.ErrorFilter"), ProblemFilters.exclude[FinalClassProblem]("akka.testkit.InfoFilter"), ProblemFilters.exclude[FinalClassProblem]("akka.testkit.TestActor$Watch"), ProblemFilters.exclude[FinalClassProblem]("akka.testkit.WarningFilter"), ProblemFilters.exclude[FinalClassProblem]("akka.testkit.DebugFilter"), ProblemFilters.exclude[FinalClassProblem]("akka.testkit.DeadLettersFilter"), ProblemFilters.exclude[FinalClassProblem]("akka.testkit.TestActor$RealMessage"), ProblemFilters.exclude[FinalClassProblem]("akka.testkit.TestEvent$UnMute"), ProblemFilters.exclude[FinalClassProblem]("akka.testkit.TestActor$SetIgnore"), ProblemFilters.exclude[FinalClassProblem]("akka.testkit.TestActor$SetAutoPilot"), ProblemFilters.exclude[FinalClassProblem]("akka.testkit.CustomEventFilter"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointManager$ListensFailure"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.InvalidAssociation"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.RemoteScope"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.AckedReceiveBuffer"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.RemoteWatcher$WatchRemote"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointManager$Gated"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.AckedSendBuffer"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointManager$Link"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.QuarantinedEvent"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointManager$ManagementCommand"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointManager$Send"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.Ack"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.RemoteWatcher$Stats"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointManager$Quarantined"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.RARP"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointManager$ResendState"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.RemoteWatcher$RewatchRemote"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.Remoting$RegisterTransportActor"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.ShutDownAssociation"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointManager$Quarantine"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.RemoteWatcher$UnwatchRemote"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointWriter$Handle"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.RemoteActorRefProvider$Internals"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointManager$ListensResult"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.RemoteWatcher$ExpectedFirstHeartbeat"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.RemoteDeploymentWatcher$WatchRemote"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.DaemonMsgCreate"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.RemoteWatcher$HeartbeatRsp"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointWriter$StoppedReading"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointManager$Listen"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointWriter$OutboundAck"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.HeartbeatHistory"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.HopelessAssociation"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointWriter$TookOver"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.SeqNo"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.ReliableDeliverySupervisor$GotUid"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.EndpointManager$ManagementCommandAck"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.FailureInjectorTransportAdapter$Drop"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ThrottlerManager$AssociateResult"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ThrottlerManager$Listener"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ProtocolStateActor$OutboundUnassociated"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ProtocolStateActor$Handle"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ThrottlerTransportAdapter$SetThrottle"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ProtocolStateActor$ListenerReady"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ActorTransportAdapter$ListenUnderlying"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ActorTransportAdapter$AssociateUnderlying"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.FailureInjectorTransportAdapter$One"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.TestTransport$DisassociateAttempt"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ProtocolStateActor$HandleListenerRegistered"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ProtocolStateActor$OutboundUnderlyingAssociated"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ProtocolStateActor$InboundUnassociated"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.AkkaProtocolTransport$AssociateUnderlyingRefuseUid"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.TestTransport$AssociateAttempt"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.TestTransport$ListenAttempt"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.AkkaPduCodec$Disassociate"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.AkkaPduCodec$Message"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.Transport$InboundAssociation"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.Transport$InvalidAssociationException"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ProtocolStateActor$AssociatedWaitHandler"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.TestAssociationHandle"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ThrottlerManager$ListenerAndMode"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.AssociationHandle$Disassociated"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.AssociationHandle$InboundPayload"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ThrottledAssociation$FailWith"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.Transport$ActorAssociationEventListener"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.FailureInjectorHandle"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.AkkaPduCodec$Payload"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ThrottledAssociation$ExposedHandle"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.FailureInjectorTransportAdapter$All"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.TestTransport$WriteAttempt"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ThrottlerManager$Handle"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ThrottlerTransportAdapter$TokenBucket"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ThrottlerManager$Checkin"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.HandshakeInfo"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ThrottlerTransportAdapter$ForceDisassociate"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ActorTransportAdapter$DisassociateUnderlying"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.FailureInjectorException"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ThrottlerHandle"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.TestTransport$ShutdownAttempt"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ActorTransportAdapter$ListenerRegistered"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.AkkaPduCodec$Associate"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.ThrottlerTransportAdapter$ForceDisassociateExplicitly"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.transport.AssociationHandle$ActorHandleEventListener"), ProblemFilters.exclude[FinalClassProblem]("akka.camel.FailureResult"), ProblemFilters.exclude[FinalClassProblem]("akka.camel.MessageResult"), ProblemFilters.exclude[FinalClassProblem]("akka.camel.internal.CamelSupervisor$AddWatch"), ProblemFilters.exclude[FinalClassProblem]("akka.camel.internal.AwaitDeActivation"), ProblemFilters.exclude[FinalClassProblem]("akka.camel.internal.CamelSupervisor$CamelProducerObjects"), ProblemFilters.exclude[FinalClassProblem]("akka.camel.internal.CamelSupervisor$DeRegister"), ProblemFilters.exclude[FinalClassProblem]("akka.camel.internal.AwaitActivation"), ProblemFilters.exclude[FinalClassProblem]("akka.camel.internal.CamelSupervisor$Register"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.ClientFSM$Data"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.ToClient"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.BarrierCoordinator$ClientLost"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.EnterBarrier"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.Remove"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.ToServer"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.DisconnectMsg"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.BarrierCoordinator$BarrierEmpty"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.Disconnect"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.ClientFSM$ConnectionFailure"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.RoleName"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.Hello"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.Controller$NodeInfo"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.Controller$CreateServerFSM"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.GetAddress"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.BarrierCoordinator$WrongBarrier"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.AddressReply"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.ClientFSM$Connected"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.BarrierCoordinator$RemoveClient"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.BarrierCoordinator$FailedBarrier"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.ThrottleMsg"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.BarrierCoordinator$Data"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.BarrierResult"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.BarrierCoordinator$BarrierTimeout"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.Controller$ClientDisconnected"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.FailBarrier"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.BarrierCoordinator$DuplicateNode"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testconductor.Throttle"), ProblemFilters.exclude[FinalClassProblem]("akka.remote.testkit.MultiNodeSpec$Replacement"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.InternalClusterAction$Subscribe"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterEvent$SeenChanged"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.VectorClock"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.InternalClusterAction$PublishChanges"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.Metric"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterEvent$ReachableMember"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterUserAction$Down"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterHeartbeatSender$ExpectedFirstHeartbeat"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.InternalClusterAction$PublishEvent"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterEvent$RoleLeaderChanged"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterHeartbeatSender$HeartbeatRsp"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterEvent$ClusterMetricsChanged"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.AutoDown$UnreachableTimeout"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterEvent$CurrentInternalStats"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterEvent$MemberUp"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterEvent$CurrentClusterState"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.GossipOverview"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.GossipStatus"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.GossipStats"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.MetricsGossip"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.InternalClusterAction$Join"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.UniqueAddress"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.InternalClusterAction$SendGossipTo"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.InternalClusterAction$PublisherCreated"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterUserAction$Leave"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.Gossip"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterEvent$ReachabilityChanged"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterEvent$UnreachableMember"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.InternalClusterAction$AddOnMemberUpListener"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterEvent$LeaderChanged"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.InternalClusterAction$JoinSeedNodes"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.StandardMetrics$HeapMemory"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.VectorClockStats"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.NodeMetrics"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.Reachability$Record"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.InternalClusterAction$InitJoinAck"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.StandardMetrics$Cpu"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.InternalClusterAction$InitJoinNack"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.EWMA"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.InternalClusterAction$Unsubscribe"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterHeartbeatSender$Heartbeat"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.MetricsGossipEnvelope"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterEvent$MemberRemoved"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterUserAction$JoinTo"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.ClusterEvent$MemberExited"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.InternalClusterAction$Welcome"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.routing.ClusterRouterPoolSettings"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.routing.MixMetricsSelector"), ProblemFilters.exclude[FinalClassProblem]("akka.cluster.routing.ClusterRouterGroupSettings"), ProblemFilters.exclude[FinalClassProblem]("akka.dispatch.sysmsg.Watch"), // changed to static method, source compatible is enough ProblemFilters.exclude[MissingMethodProblem]("akka.testkit.JavaTestKit.shutdownActorSystem"), // testActorName()java.lang.String in trait akka.testkit.TestKitBase does not have a correspondent in old version ProblemFilters.exclude[MissingMethodProblem]("akka.testkit.TestKitBase.testActorName"), // method remainingOrDefault()scala.concurrent.duration.FiniteDuration in trait akka.testkit.TestKitBase does not have a correspondent in old version ProblemFilters.exclude[MissingMethodProblem]("akka.testkit.TestKitBase.remainingOrDefault"), // synthetic method akka$remote$testkit$MultiNodeSpec$Replacement$$$outer()akka.remote.testkit.MultiNodeSpec in class akka.remote.testkit.MultiNodeSpec#Replacement does not have a correspondent in new version ProblemFilters.exclude[MissingMethodProblem]("akka.remote.testkit.MultiNodeSpec#Replacement.akka$remote$testkit$MultiNodeSpec$Replacement$$$outer"), // method nrOfInstances(akka.actor.ActorSystem) in trait akka.routing.Pool does not have a correspondent in old version // ok to exclude, since we don't call nrOfInstances(sys) for old implementations ProblemFilters.exclude[MissingMethodProblem]("akka.routing.Pool.nrOfInstances"), // method paths(akka.actor.ActorSystem) in trait akka.routing.Group does not have a correspondent in old version // ok to exclude, since we don't call paths(sys) for old implementations ProblemFilters.exclude[MissingMethodProblem]("akka.routing.Group.paths"), ProblemFilters.exclude[MissingMethodProblem]("akka.routing.GroupBase.getPaths"), // removed deprecated ProblemFilters.exclude[MissingClassProblem]("akka.actor.UntypedActorFactory"), ProblemFilters.exclude[MissingMethodProblem]("akka.util.Timeout.longToTimeout"), ProblemFilters.exclude[MissingMethodProblem]("akka.util.Timeout.intToTimeout"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.util.Timeout.apply"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.util.Timeout.this"), FilterAnyProblem("akka.routing.ConsistentHashingRouter"), ProblemFilters.exclude[MissingClassProblem]("akka.routing.SmallestMailboxRouter$"), ProblemFilters.exclude[MissingClassProblem]("akka.routing.RouterRoutees$"), ProblemFilters.exclude[MissingClassProblem]("akka.routing.ScatterGatherFirstCompletedRouter"), ProblemFilters.exclude[MissingClassProblem]("akka.routing.CurrentRoutees$"), ProblemFilters.exclude[MissingClassProblem]("akka.routing.CurrentRoutees"), ProblemFilters.exclude[MissingClassProblem]("akka.routing.RouterRoutees"), ProblemFilters.exclude[MissingClassProblem]("akka.routing.RandomRouter"), // class akka.routing.CollectRouteeRefs does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.routing.CollectRouteeRefs"), // class akka.routing.ConsistentActorRef does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.routing.ConsistentActorRef"), // object akka.routing.ConsistentActorRef does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.routing.ConsistentActorRef$"), // object akka.routing.RandomRouter does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.routing.RandomRouter$"), // object akka.routing.BroadcastRouter does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.routing.BroadcastRouter$"), // class akka.routing.RoundRobinRouter does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.routing.RoundRobinRouter"), // class akka.routing.BroadcastRouter does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.routing.BroadcastRouter"), // class akka.routing.SmallestMailboxRouter does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.routing.SmallestMailboxRouter"), // object akka.routing.ScatterGatherFirstCompletedRouter does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.routing.ScatterGatherFirstCompletedRouter$"), // interface akka.routing.DeprecatedRouterConfig does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.routing.DeprecatedRouterConfig"), // object akka.routing.RoundRobinRouter does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.routing.RoundRobinRouter$"), // method toString()java.lang.String in object akka.routing.BalancingPool does not have a correspondent in new version ProblemFilters.exclude[MissingMethodProblem]("akka.routing.BalancingPool.toString"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.RemoteSettings.LogRemoteLifecycleEvents"), ProblemFilters.exclude[MissingMethodProblem]("akka.cluster.Cluster.publishCurrentClusterState"), ProblemFilters.exclude[MissingClassProblem]("akka.cluster.InternalClusterAction$PublishCurrentClusterState$"), ProblemFilters.exclude[MissingMethodProblem]("akka.cluster.ClusterSettings.AutoDown"), // class akka.cluster.routing.ClusterRouterSettings does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.cluster.routing.ClusterRouterSettings"), // object akka.cluster.routing.ClusterRouterConfig does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.cluster.routing.ClusterRouterConfig$"), // object akka.cluster.routing.AdaptiveLoadBalancingRouter does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.cluster.routing.AdaptiveLoadBalancingRouter$"), // object akka.cluster.routing.ClusterRouterSettings does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.cluster.routing.ClusterRouterSettings$"), // class akka.cluster.routing.AdaptiveLoadBalancingRouter does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.cluster.routing.AdaptiveLoadBalancingRouter"), // class akka.cluster.routing.ClusterRouterConfig does not have a correspondent in new version ProblemFilters.exclude[MissingClassProblem]("akka.cluster.routing.ClusterRouterConfig"), // deprecated method this(Int,java.lang.String,Boolean,java.lang.String)Unit in class akka.cluster.routing.ClusterRouterGroupSettings does not have a correspondent with same parameter signature among (Int,java.lang.Iterable,Boolean,java.lang.String)Unit, (Int,scala.collection.immutable.Seq,Boolean,scala.Option)Unit ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.routing.ClusterRouterGroupSettings.this"), // deprecated method this(Int,java.lang.String,Boolean,scala.Option)Unit in class akka.cluster.routing.ClusterRouterGroupSettings does not have a correspondent with same parameter signature among (Int,java.lang.Iterable,Boolean,java.lang.String)Unit, (Int,scala.collection.immutable.Seq,Boolean,scala.Option)Unit ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.routing.ClusterRouterGroupSettings.this"), ProblemFilters.exclude[MissingMethodProblem]("akka.testkit.TestKit.dilated"), // changed internals ProblemFilters.exclude[MissingMethodProblem]("akka.actor.ActorSystem.terminate"), ProblemFilters.exclude[MissingMethodProblem]("akka.actor.ActorSystem.whenTerminated"), ProblemFilters.exclude[MissingMethodProblem]("akka.actor.ExtendedActorSystem.logFilter"), ProblemFilters.exclude[MissingMethodProblem]("akka.actor.ActorPath.ValidSymbols"), ProblemFilters.exclude[MissingMethodProblem]("akka.actor.LocalActorRefProvider.terminationPromise"), ProblemFilters.exclude[MissingClassProblem]("akka.actor.UntypedActorFactoryConsumer"), ProblemFilters.exclude[MissingMethodProblem]("akka.actor.ActorSystemImpl.terminationFuture"), ProblemFilters.exclude[MissingMethodProblem]("akka.actor.IndirectActorProducer.UntypedActorFactoryConsumerClass"), FilterAnyProblem("akka.actor.ActorSystemImpl"), ProblemFilters.exclude[MissingMethodProblem]("akka.pattern.AskSupport.ask"), FilterAnyProblem("akka.actor.ActorSystemImpl$TerminationCallbacks"), ProblemFilters.exclude[MissingMethodProblem]("akka.event.Logging#LogEvent.getMDC"), ProblemFilters.exclude[MissingMethodProblem]("akka.util.ByteString.byteStringCompanion"), ProblemFilters.exclude[MissingMethodProblem]("akka.util.ByteString.writeToOutputStream"), //method boss()akka.actor.RepointableActorRef in class akka.actor.ActorDSL#Extension does not have a correspondent in new version ProblemFilters.exclude[MissingMethodProblem]("akka.actor.ActorDSL#Extension.boss"), // method hasSubscriptions(java.lang.Object)Boolean in trait akka.event.SubchannelClassification does not have a correspondent in old version // ok to exclude since it is only invoked from new EventStreamUnsubscriber ProblemFilters.exclude[MissingMethodProblem]("akka.event.SubchannelClassification.hasSubscriptions"), FilterAnyProblem("akka.remote.EndpointManager"), FilterAnyProblem("akka.remote.RemoteTransport"), FilterAnyProblem("akka.remote.Remoting"), FilterAnyProblem("akka.remote.PhiAccrualFailureDetector$State"), FilterAnyProblem("akka.cluster.ClusterDomainEventPublisher"), FilterAnyProblem("akka.cluster.InternalClusterAction"), ProblemFilters.exclude[MissingClassProblem]("akka.cluster.InternalClusterAction$PublishCurrentClusterState"), // issue #16327 compared to 2.3.10 // synthetic method akka$dispatch$BatchingExecutor$BlockableBatch$$parentBlockContext_=(scala.concurrent.BlockContext)Unit in class akka.dispatch.BatchingExecutor#BlockableBatch does not have a correspondent in new version ProblemFilters.exclude[MissingMethodProblem]("akka.dispatch.BatchingExecutor#BlockableBatch.akka$dispatch$BatchingExecutor$BlockableBatch$$parentBlockContext_="), // synthetic method akka$dispatch$BatchingExecutor$_setter_$akka$dispatch$BatchingExecutor$$_blockContext_=(java.lang.ThreadLocal)Unit in trait akka.dispatch.BatchingExecutor does not have a correspondent in old version ProblemFilters.exclude[MissingMethodProblem]("akka.dispatch.BatchingExecutor.akka$dispatch$BatchingExecutor$_setter_$akka$dispatch$BatchingExecutor$$_blockContext_="), // synthetic method akka$dispatch$BatchingExecutor$$_blockContext()java.lang.ThreadLocal in trait akka.dispatch.BatchingExecutor does not have a correspondent in old version ProblemFilters.exclude[MissingMethodProblem]("akka.dispatch.BatchingExecutor.akka$dispatch$BatchingExecutor$$_blockContext"), // issue #16327 compared to 2.3.11 // synthetic method akka$dispatch$BatchingExecutor$_setter_$akka$dispatch$BatchingExecutor$$_blockContext_=(java.lang.ThreadLocal)Unit in class akka.dispatch.MessageDispatcher does not have a correspondent in new version ProblemFilters.exclude[MissingMethodProblem]("akka.dispatch.MessageDispatcher.akka$dispatch$BatchingExecutor$_setter_$akka$dispatch$BatchingExecutor$$_blockContext_="), // synthetic method akka$dispatch$BatchingExecutor$$_blockContext()java.lang.ThreadLocal in class akka.dispatch.MessageDispatcher does not have a correspondent in new version ProblemFilters.exclude[MissingMethodProblem]("akka.dispatch.MessageDispatcher.akka$dispatch$BatchingExecutor$$_blockContext"), // issue #16736 ProblemFilters.exclude[MissingClassProblem]("akka.cluster.OnMemberUpListener"), // issue #17554 ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor.maxResendRate"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor.resendLimit"), //changes introduced by #16911 ProblemFilters.exclude[MissingMethodProblem]("akka.remote.RemoteActorRefProvider.afterSendSystemMessage"), FilterAnyProblem("akka.remote.RemoteWatcher"), FilterAnyProblem("akka.remote.RemoteWatcher$WatchRemote"), FilterAnyProblem("akka.remote.RemoteWatcher$UnwatchRemote"), FilterAnyProblem("akka.remote.RemoteWatcher$Rewatch"), FilterAnyProblem("akka.remote.RemoteWatcher$RewatchRemote"), FilterAnyProblem("akka.remote.RemoteWatcher$Stats"), // internal changes introduced by #17253 ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.cluster.ClusterDaemon.coreSupervisor"), ProblemFilters.exclude[MissingMethodProblem]("akka.cluster.ClusterCoreSupervisor.publisher"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.cluster.ClusterCoreSupervisor.coreDaemon"), // protofbuf embedding #13783 FilterAnyProblemStartingWith("akka.remote.WireFormats"), FilterAnyProblemStartingWith("akka.remote.ContainerFormats"), FilterAnyProblemStartingWith("akka.remote.serialization.DaemonMsgCreateSerializer"), FilterAnyProblemStartingWith("akka.remote.testconductor.TestConductorProtocol"), FilterAnyProblemStartingWith("akka.cluster.protobuf.msg.ClusterMessages"), FilterAnyProblemStartingWith("akka.cluster.protobuf.ClusterMessageSerializer"), // #13584 change in internal actor ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.ClusterCoreDaemon.akka$cluster$ClusterCoreDaemon$$isJoiningToUp$1") ) Map( "2.3.11" -> Seq( ProblemFilters.exclude[MissingMethodProblem]("akka.actor.ActorCell.clearActorFields") // #17805, incompatibility with 2.4.x fixed in 2.3.12 ), "2.3.15" -> bcIssuesBetween23and24, "2.4.0" -> Seq( FilterAnyProblem("akka.remote.transport.ProtocolStateActor"), //#18353 Changes to methods and fields private to remoting actors ProblemFilters.exclude[MissingMethodProblem]("akka.remote.EndpointManager.retryGateEnabled"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.remote.EndpointManager.pruneTimerCancellable"), // #18722 internal changes to actor FilterAnyProblem("akka.cluster.sharding.DDataShardCoordinator"), // #18328 optimize VersionVector for size 1 FilterAnyProblem("akka.cluster.ddata.VersionVector") ), "2.4.1" -> Seq( // #19008 FilterAnyProblem("akka.persistence.journal.inmem.InmemJournal"), FilterAnyProblem("akka.persistence.journal.inmem.InmemStore"), // #19133 change in internal actor ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor.gated"), // #18758 report invalid association events ProblemFilters.exclude[MissingTypesProblem]("akka.remote.InvalidAssociation$"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.InvalidAssociation.apply"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.InvalidAssociation.copy"), ProblemFilters.exclude[MissingMethodProblem]("akka.remote.InvalidAssociation.this"), // #19281 BackoffSupervisor updates ProblemFilters.exclude[MissingMethodProblem]("akka.pattern.BackoffSupervisor.akka$pattern$BackoffSupervisor$$child_="), ProblemFilters.exclude[MissingMethodProblem]("akka.pattern.BackoffSupervisor.akka$pattern$BackoffSupervisor$$restartCount"), ProblemFilters.exclude[MissingMethodProblem]("akka.pattern.BackoffSupervisor.akka$pattern$BackoffSupervisor$$restartCount_="), ProblemFilters.exclude[MissingMethodProblem]("akka.pattern.BackoffSupervisor.akka$pattern$BackoffSupervisor$$child"), // #19487 FilterAnyProblem("akka.actor.dungeon.Children"), // #19440 ProblemFilters.exclude[MissingMethodProblem]("akka.pattern.PipeToSupport.pipeCompletionStage"), ProblemFilters.exclude[MissingMethodProblem]("akka.pattern.FutureTimeoutSupport.afterCompletionStage") ), "2.4.2" -> Seq( //internal API FilterAnyProblemStartingWith("akka.http.impl"), FilterAnyProblemStartingWith("akka.stream.impl"), ProblemFilters.exclude[FinalClassProblem]("akka.stream.stage.GraphStageLogic$Reading"), // this class is private // lifting this method to the type where it belongs ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOpsMat.mapMaterializedValue"), // #19815 make HTTP compile under Scala 2.12.0-M3 ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.http.scaladsl.model.headers.CacheDirectives#private.apply"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.http.scaladsl.model.headers.CacheDirectives#no-cache.apply"), // #19983 withoutSizeLimit overrides for Scala API ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.RequestEntity.withoutSizeLimit"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.UniversalEntity.withoutSizeLimit"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.ResponseEntity.withoutSizeLimit"), // #19162 javadsl initialization issues and model cleanup ProblemFilters.exclude[FinalClassProblem]("akka.http.javadsl.model.MediaTypes"), // #19956 Remove exposed case classes in HTTP model ProblemFilters.exclude[MissingTypesProblem]("akka.http.scaladsl.model.HttpRequest$"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.http.scaladsl.model.HttpRequest.unapply"), // returned Option[HttpRequest], now returns HttpRequest – no Option allocations! ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpRequest.$default$1"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpRequest.$default$2"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpRequest.$default$3"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpRequest.$default$4"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpRequest.$default$5"), ProblemFilters.exclude[MissingTypesProblem]("akka.http.scaladsl.model.HttpResponse"), // was a case class (Serializable, Product, Equals) ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpResponse.productElement"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpResponse.productArity"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpResponse.canEqual"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpResponse.productIterator"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpResponse.productPrefix"), ProblemFilters.exclude[MissingTypesProblem]("akka.http.scaladsl.model.HttpRequest"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpRequest.productElement"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpRequest.productArity"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpRequest.canEqual"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpRequest.productIterator"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpRequest.productPrefix"), ProblemFilters.exclude[MissingTypesProblem]("akka.http.scaladsl.model.HttpResponse$"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.http.scaladsl.model.HttpResponse.unapply"), // returned Option[HttpRequest], now returns HttpRequest – no Option allocations! ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpResponse.$default$1"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpResponse.$default$2"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpResponse.$default$3"), ProblemFilters.exclude[MissingMethodProblem]("akka.http.scaladsl.model.HttpResponse.$default$4"), // #19162 fixing javadsl initialization edge-cases ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.javadsl.model.ContentTypes.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.javadsl.model.MediaTypes.this"), // #20014 should have been final always ProblemFilters.exclude[FinalClassProblem]("akka.http.scaladsl.model.EntityStreamSizeException"), // #19849 content negotiation fixes ProblemFilters.exclude[FinalClassProblem]("akka.http.scaladsl.marshalling.Marshal$UnacceptableResponseContentTypeException"), // #20009 internal and shouldn't have been public ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.QueueSource.completion"), // #20015 simplify materialized value computation tree ProblemFilters.exclude[FinalMethodProblem]("akka.stream.impl.StreamLayout#AtomicModule.subModules"), ProblemFilters.exclude[FinalMethodProblem]("akka.stream.impl.StreamLayout#AtomicModule.downstreams"), ProblemFilters.exclude[FinalMethodProblem]("akka.stream.impl.StreamLayout#AtomicModule.upstreams"), ProblemFilters.exclude[FinalMethodProblem]("akka.stream.impl.Stages#DirectProcessor.toString"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.stream.impl.MaterializerSession.materializeAtomic"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.impl.MaterializerSession.materializeAtomic"), ProblemFilters.exclude[MissingTypesProblem]("akka.stream.impl.Stages$StageModule"), ProblemFilters.exclude[FinalMethodProblem]("akka.stream.impl.Stages#GroupBy.toString"), ProblemFilters.exclude[MissingTypesProblem]("akka.stream.impl.FlowModule"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.FlowModule.subModules"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.impl.FlowModule.label"), ProblemFilters.exclude[FinalClassProblem]("akka.stream.impl.fusing.GraphModule"), // #15947 catch mailbox creation failures ProblemFilters.exclude[DirectMissingMethodProblem]("akka.actor.RepointableActorRef.point"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.actor.dungeon.Dispatch.initWithFailure"), // #19877 Source.queue termination support ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.stream.impl.SourceQueueAdapter.this"), // #19828 ProblemFilters.exclude[DirectAbstractMethodProblem]("akka.persistence.Eventsourced#ProcessingState.onWriteMessageComplete"), ProblemFilters.exclude[ReversedAbstractMethodProblem]("akka.persistence.Eventsourced#ProcessingState.onWriteMessageComplete"), // #19390 Add flow monitor ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOpsMat.monitor"), ProblemFilters.exclude[MissingClassProblem]("akka.stream.impl.fusing.GraphStages$TickSource$"), FilterAnyProblemStartingWith("akka.http.impl"), // #20214 ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.DefaultSSLContextCreation.createClientHttpsContext"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.DefaultSSLContextCreation.validateAndWarnAboutLooseSettings") ), "2.4.4" -> Seq( // #20080, #20081 remove race condition on HTTP client ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.scaladsl.Http#HostConnectionPool.gatewayFuture"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.http.scaladsl.Http#HostConnectionPool.copy"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.http.scaladsl.Http#HostConnectionPool.this"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.scaladsl.HttpExt.hostPoolCache"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.scaladsl.HttpExt.cachedGateway"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.http.scaladsl.Http#HostConnectionPool.apply"), ProblemFilters.exclude[FinalClassProblem]("akka.http.impl.engine.client.PoolGateway"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.engine.client.PoolGateway.currentState"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.engine.client.PoolGateway.apply"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.http.impl.engine.client.PoolGateway.this"), ProblemFilters.exclude[MissingClassProblem]("akka.http.impl.engine.client.PoolGateway$NewIncarnation$"), ProblemFilters.exclude[MissingClassProblem]("akka.http.impl.engine.client.PoolGateway$Running$"), ProblemFilters.exclude[MissingClassProblem]("akka.http.impl.engine.client.PoolGateway$IsShutdown$"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.engine.client.PoolInterfaceActor.this"), ProblemFilters.exclude[MissingClassProblem]("akka.http.impl.engine.client.PoolGateway$Running"), ProblemFilters.exclude[MissingClassProblem]("akka.http.impl.engine.client.PoolGateway$IsShutdown"), ProblemFilters.exclude[MissingClassProblem]("akka.http.impl.engine.client.PoolGateway$NewIncarnation"), ProblemFilters.exclude[MissingClassProblem]("akka.http.impl.engine.client.PoolGateway$State"), // #20371, missing method and typo in another one making it impossible to use HTTPs via setting default HttpsConnectionContext ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.http.scaladsl.HttpExt.setDefaultClientHttpsContext"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.DefaultSSLContextCreation.createServerHttpsContext"), // #20342 HttpEntity scaladsl overrides ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.HttpEntity.withoutSizeLimit"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.HttpEntity.withSizeLimit"), // #20293 Use JDK7 NIO Path instead of File ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.javadsl.model.HttpMessage#MessageTransformations.withEntity"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.HttpMessage.withEntity"), // #20401 custom media types registering ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.impl.model.parser.CommonActions.customMediaTypes"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.model.parser.HeaderParser.Settings"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.impl.model.parser.HeaderParser#Settings.customMediaTypes"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.impl.engine.parsing.HttpHeaderParser#Settings.customMediaTypes"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.settings.ParserSettingsImpl.apply"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.settings.ParserSettingsImpl.copy"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.settings.ParserSettingsImpl.this"), // #20123 ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOps.recoverWithRetries"), // #20379 Allow registering custom media types ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.javadsl.settings.ParserSettings.getCustomMediaTypes"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.settings.ParserSettings.customMediaTypes"), // internal api FilterAnyProblemStartingWith("akka.stream.impl"), FilterAnyProblemStartingWith("akka.http.impl"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.util.package.printEvent"), // #20362 - parser private ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.impl.model.parser.CommonRules.expires-date"), // #20319 - remove not needed "no. of persists" counter in sharding ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.sharding.PersistentShard.persistCount"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.sharding.PersistentShard.persistCount_="), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.sharding.PersistentShardCoordinator.persistCount"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.sharding.PersistentShardCoordinator.persistCount_="), // #19225 - GraphStage and removal of isTerminated ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.engine.parsing.HttpMessageParser.isTerminated"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.http.impl.engine.parsing.HttpMessageParser.stage"), // #20131 - flow combinator ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOps.backpressureTimeout"), // #20470 - new JavaDSL for Akka HTTP ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.javadsl.model.DateTime.plus"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.javadsl.model.DateTime.minus"), // #20214 ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.DefaultSSLContextCreation.createClientHttpsContext"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.DefaultSSLContextCreation.validateAndWarnAboutLooseSettings"), // #20257 Snapshots with PersistentFSM (experimental feature) ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.persistence.serialization.MessageFormats#PersistentStateChangeEventOrBuilder.getTimeoutNanos"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.persistence.serialization.MessageFormats#PersistentStateChangeEventOrBuilder.hasTimeoutNanos"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.persistence.fsm.PersistentFSM.saveStateSnapshot"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.persistence.fsm.PersistentFSM.akka$persistence$fsm$PersistentFSM$$currentStateTimeout"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.persistence.fsm.PersistentFSM.akka$persistence$fsm$PersistentFSM$$currentStateTimeout_="), // #19834 ProblemFilters.exclude[MissingTypesProblem]("akka.stream.extra.Timed$StartTimed"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.extra.Timed#StartTimed.onPush"), ProblemFilters.exclude[MissingTypesProblem]("akka.stream.extra.Timed$TimedInterval"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.extra.Timed#TimedInterval.onPush"), ProblemFilters.exclude[MissingTypesProblem]("akka.stream.extra.Timed$StopTimed"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.extra.Timed#StopTimed.onPush"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.extra.Timed#StopTimed.onUpstreamFinish"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.extra.Timed#StopTimed.onUpstreamFailure"), // #20462 - now uses a Set instead of a Seq within the private API of the cluster client ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.client.ClusterClient.contacts_="), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.cluster.client.ClusterClient.contacts"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.cluster.client.ClusterClient.initialContactsSel") ), "2.4.6" -> Seq( // internal api FilterAnyProblemStartingWith("akka.stream.impl"), // #20888 new FoldAsync op for Flow ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOps.foldAsync"), // #20214 SNI disabling for single connections (AkkaSSLConfig being passed around) ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.javadsl.ConnectionContext.sslConfig"), // class meant only for internal extension //#20229 migrate GroupBy to GraphStage ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.scaladsl.GraphDSL#Builder.deprecatedAndThen"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.scaladsl.Flow.deprecatedAndThen"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.scaladsl.Flow.deprecatedAndThenMat"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.scaladsl.Source.deprecatedAndThen"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.scaladsl.FlowOps.deprecatedAndThen"), // #20367 Converts DelimiterFramingStage from PushPullStage to GraphStage ProblemFilters.exclude[MissingTypesProblem]("akka.stream.scaladsl.Framing$DelimiterFramingStage"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.scaladsl.Framing#DelimiterFramingStage.onPush"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.scaladsl.Framing#DelimiterFramingStage.onUpstreamFinish"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.scaladsl.Framing#DelimiterFramingStage.onPull"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.scaladsl.Framing#DelimiterFramingStage.postStop"), // #20345 converts LengthFieldFramingStage to GraphStage ProblemFilters.exclude[MissingTypesProblem]("akka.stream.scaladsl.Framing$LengthFieldFramingStage"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.scaladsl.Framing#LengthFieldFramingStage.onPush"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.scaladsl.Framing#LengthFieldFramingStage.onUpstreamFinish"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.scaladsl.Framing#LengthFieldFramingStage.onPull"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.scaladsl.Framing#LengthFieldFramingStage.postStop"), // #20414 Allow different ActorMaterializer subtypes ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.ActorMaterializer.downcast"), // #20531 adding refuseUid to Gated FilterAnyProblem("akka.remote.EndpointManager$Gated"), // #20683 ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.javadsl.model.HttpMessage.discardEntityBytes"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.HttpMessage.discardEntityBytes"), // #20288 migrate BodyPartRenderer to GraphStage ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.http.impl.engine.rendering.BodyPartRenderer.streamed") ), "2.4.8" -> Seq( // #20717 example snippet for akka http java dsl: SecurityDirectives ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.javadsl.model.HttpMessage#MessageTransformations.addCredentials"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.HttpMessage.addCredentials"), // #20456 adding hot connection pool option ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.javadsl.settings.ConnectionPoolSettings.getMinConnections"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.settings.ConnectionPoolSettings.minConnections"), FilterAnyProblemStartingWith("akka.http.impl"), // #20846 change of internal Status message ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages#StatusOrBuilder.getReplyToStatus"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages#StatusOrBuilder.hasReplyToStatus"), // #20543 GraphStage subtypes should not be private to akka ProblemFilters.exclude[DirectAbstractMethodProblem]("akka.stream.ActorMaterializer.actorOf"), // Interpreter internals change ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.stream.stage.GraphStageLogic.portToConn"), // #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 ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.javadsl.model.HttpMethod.getRequestEntityAcceptance"), // #20976 provide different options to deal with the illegal response header value ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.javadsl.settings.ParserSettings.getIllegalResponseHeaderValueProcessingMode"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.settings.ParserSettings.illegalResponseHeaderValueProcessingMode"), ProblemFilters.exclude[DirectAbstractMethodProblem]("akka.stream.ActorMaterializer.actorOf"), // #20628 migrate Masker to GraphStage ProblemFilters.exclude[MissingTypesProblem]("akka.http.impl.engine.ws.Masking$Masking"), ProblemFilters.exclude[MissingTypesProblem]("akka.http.impl.engine.ws.Masking$Masker"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.engine.ws.Masking#Masker.initial"), ProblemFilters.exclude[MissingClassProblem]("akka.http.impl.engine.ws.Masking$Masker$Running"), ProblemFilters.exclude[MissingTypesProblem]("akka.http.impl.engine.ws.Masking$Unmasking"), // # ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.javadsl.model.HttpEntity.discardBytes"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.HttpEntity.discardBytes"), // #20630 corrected return types of java methods ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.stream.javadsl.RunnableGraph#RunnableGraphAdapter.named"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.javadsl.RunnableGraph.withAttributes"), // #19872 double wildcard for actor deployment config ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.actor.Deployer.lookup"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.util.WildcardTree.apply"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.util.WildcardTree.find"), // #20942 ClusterSingleton ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.singleton.ClusterSingletonManager.addRemoved"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.singleton.ClusterSingletonManager.selfAddressOption") ), "2.4.9" -> Seq( // #21025 new orElse flow op ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOps.orElseGraph"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOps.orElse"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOpsMat.orElseMat"), // #21201 adding childActorOf to TestActor / TestKit / TestProbe ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.testkit.TestKitBase.childActorOf$default$3"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.testkit.TestKitBase.childActorOf$default$2"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.testkit.TestKitBase.childActorOf"), // #21184 add java api for ws testkit ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.ws.TextMessage.asScala"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.ws.TextMessage.getStreamedText"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.ws.BinaryMessage.asScala"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.ws.BinaryMessage.getStreamedData"), // #21131 new implementation for Akka Typed ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.actor.dungeon.DeathWatch.isWatching") ), "2.4.10" -> Seq( // #21290 new zipWithIndex flow op ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOps.zipWithIndex"), // #21541 new ScanAsync flow op ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOps.scanAsync"), // Remove useUntrustedMode which is an internal API and not used anywhere anymore ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.Remoting.useUntrustedMode"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.RemoteTransport.useUntrustedMode"), // Use OptionVal in remote Send envelope FilterAnyProblemStartingWith("akka.remote.EndpointManager"), FilterAnyProblemStartingWith("akka.remote.Remoting"), FilterAnyProblemStartingWith("akka.remote.RemoteTransport"), FilterAnyProblemStartingWith("akka.remote.InboundMessageDispatcher"), FilterAnyProblemStartingWith("akka.remote.DefaultMessageDispatcher"), FilterAnyProblemStartingWith("akka.remote.transport"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.RemoteActorRefProvider.quarantine"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.RemoteWatcher.quarantine"), // #20644 long uids ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.cluster.protobuf.msg.ClusterMessages#UniqueAddressOrBuilder.hasUid2"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.cluster.protobuf.msg.ClusterMessages#UniqueAddressOrBuilder.getUid2"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.cluster.ddata.protobuf.msg.ReplicatorMessages#UniqueAddressOrBuilder.hasUid2"), ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.cluster.ddata.protobuf.msg.ReplicatorMessages#UniqueAddressOrBuilder.getUid2"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.remote.RemoteWatcher.receiveHeartbeatRsp"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.remote.RemoteWatcher.selfHeartbeatRspMsg"), // #21330 takeWhile inclusive flag ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.scaladsl.FlowOps.takeWhile") ), "2.4.11" -> Seq( // #20795 IOResult construction exposed ProblemFilters.exclude[MissingTypesProblem]("akka.stream.IOResult$"), // #21727 moved all of Unfold.scala in package akka.stream.impl ProblemFilters.exclude[MissingClassProblem]("akka.stream.scaladsl.UnfoldAsync"), ProblemFilters.exclude[MissingClassProblem]("akka.stream.scaladsl.Unfold"), // #21194 renamed internal actor method ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.sharding.ShardCoordinator.allocateShardHomes"), // MarkerLoggingAdapter introduced (all internal classes) ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.actor.LocalActorRefProvider.log"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.actor.VirtualPathContainer.log"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.actor.VirtualPathContainer.this"), ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.remote.RemoteSystemDaemon.this") ), "2.4.12" -> Seq( ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.Materializer.materialize"), // #21775 - overrode ByteString.stringPrefix and made it final ProblemFilters.exclude[FinalMethodProblem]("akka.util.ByteString.stringPrefix"), // #20553 Tree flattening should be separate from Fusing ProblemFilters.exclude[MissingClassProblem]("akka.stream.Fusing$StructuralInfo"), ProblemFilters.exclude[MissingClassProblem]("akka.stream.Fusing$StructuralInfo$") ) ) } }