Remove API may change from akka typed (#27027)
Note that it will become fully stable in 2.6.0 so this doesn't mean that there will be no more API changes. * Remove from event sourced behavior * Remove api may change settings from typed modules * Dont check mima for typed until 2.6
This commit is contained in:
parent
11453aad5d
commit
37f42d3220
31 changed files with 10 additions and 191 deletions
|
|
@ -11,7 +11,7 @@ import akka.actor.setup.ActorSystemSetup
|
|||
import akka.actor.typed.internal.{ EventStreamExtension, InternalRecipientRef }
|
||||
import akka.actor.typed.internal.adapter.{ ActorSystemAdapter, GuardianStartupBehavior, PropsAdapter }
|
||||
import akka.actor.typed.receptionist.Receptionist
|
||||
import akka.annotation.{ ApiMayChange, DoNotInherit }
|
||||
import akka.annotation.DoNotInherit
|
||||
import akka.util.Helpers.Requiring
|
||||
import akka.util.Timeout
|
||||
import akka.{ Done, actor => untyped }
|
||||
|
|
@ -29,7 +29,6 @@ import scala.concurrent.{ ExecutionContextExecutor, Future }
|
|||
* Not for user extension.
|
||||
*/
|
||||
@DoNotInherit
|
||||
@ApiMayChange
|
||||
abstract class ActorSystem[-T] extends ActorRef[T] with Extensions { this: InternalRecipientRef[T] =>
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import akka.actor.InvalidMessageException
|
|||
import akka.actor.typed.internal.{ BehaviorImpl, InterceptorImpl }
|
||||
import akka.actor.typed.internal.BehaviorImpl.OrElseBehavior
|
||||
import akka.util.{ LineNumbers, OptionVal }
|
||||
import akka.annotation.{ ApiMayChange, DoNotInherit, InternalApi }
|
||||
import akka.annotation.{ DoNotInherit, InternalApi }
|
||||
import akka.actor.typed.scaladsl.{ ActorContext => SAC }
|
||||
|
||||
import scala.annotation.switch
|
||||
|
|
@ -54,7 +54,6 @@ private[akka] object BehaviorTags {
|
|||
*
|
||||
* Not for user extension.
|
||||
*/
|
||||
@ApiMayChange
|
||||
@DoNotInherit
|
||||
abstract class Behavior[T](private[akka] val _tag: Int) { behavior =>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
package akka.actor.typed
|
||||
|
||||
import akka.annotation.ApiMayChange
|
||||
import akka.annotation.DoNotInherit
|
||||
import akka.annotation.InternalApi
|
||||
|
||||
|
|
@ -33,7 +32,6 @@ object Props {
|
|||
* Not for user extension.
|
||||
*/
|
||||
@DoNotInherit
|
||||
@ApiMayChange
|
||||
abstract class Props private[akka] () extends Product with Serializable {
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@
|
|||
package akka.actor.typed
|
||||
|
||||
import akka.annotation.DoNotInherit
|
||||
import akka.annotation.ApiMayChange
|
||||
|
||||
/**
|
||||
* This trait is not meant to be extended by user code. If you do so, you may
|
||||
|
|
@ -14,7 +13,6 @@ import akka.annotation.ApiMayChange
|
|||
* Not for user extension.
|
||||
*/
|
||||
@DoNotInherit
|
||||
@ApiMayChange
|
||||
trait TypedActorContext[T] {
|
||||
// this should be a pure interface, i.e. only abstract methods
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import java.time.Duration
|
|||
import java.util.function.{ BiFunction, Function => JFunction }
|
||||
|
||||
import akka.annotation.DoNotInherit
|
||||
import akka.annotation.ApiMayChange
|
||||
import akka.actor.typed._
|
||||
import java.util.Optional
|
||||
import java.util.concurrent.CompletionStage
|
||||
|
|
@ -36,7 +35,6 @@ import scala.concurrent.ExecutionContextExecutor
|
|||
* Not for user extension.
|
||||
*/
|
||||
@DoNotInherit
|
||||
@ApiMayChange
|
||||
trait ActorContext[T] extends TypedActorContext[T] {
|
||||
// this must be a pure interface, i.e. only abstract methods
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import java.util.function.{ Function => JFunction }
|
|||
|
||||
import akka.actor.typed._
|
||||
import akka.actor.typed.internal.{ BehaviorImpl, Supervisor, TimerSchedulerImpl, WithMdcBehaviorInterceptor }
|
||||
import akka.annotation.ApiMayChange
|
||||
import akka.japi.function.{ Effect, Function2 => JapiFunction2 }
|
||||
import akka.japi.pf.PFBuilder
|
||||
import akka.util.unused
|
||||
|
|
@ -20,7 +19,6 @@ import scala.reflect.ClassTag
|
|||
/**
|
||||
* Factories for [[akka.actor.typed.Behavior]].
|
||||
*/
|
||||
@ApiMayChange
|
||||
object Behaviors {
|
||||
|
||||
private[this] val _two2same = new JapiFunction2[ActorContext[Any], Any, Behavior[Any]] {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
package akka.actor.typed.scaladsl
|
||||
|
||||
import akka.actor.typed._
|
||||
import akka.annotation.{ ApiMayChange, DoNotInherit }
|
||||
import akka.annotation.DoNotInherit
|
||||
import akka.util.Timeout
|
||||
|
||||
import scala.concurrent.{ ExecutionContextExecutor, Future }
|
||||
|
|
@ -35,7 +35,6 @@ import akka.annotation.InternalApi
|
|||
* Not for user extension.
|
||||
*/
|
||||
@DoNotInherit
|
||||
@ApiMayChange
|
||||
trait ActorContext[T] extends TypedActorContext[T] {
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
package akka.actor.typed
|
||||
package scaladsl
|
||||
|
||||
import akka.annotation.{ ApiMayChange, DoNotInherit, InternalApi }
|
||||
import akka.annotation.{ DoNotInherit, InternalApi }
|
||||
import akka.actor.typed.internal._
|
||||
|
||||
import scala.reflect.{ classTag, ClassTag }
|
||||
|
|
@ -13,7 +13,6 @@ import scala.reflect.{ classTag, ClassTag }
|
|||
/**
|
||||
* Factories for [[akka.actor.typed.Behavior]].
|
||||
*/
|
||||
@ApiMayChange
|
||||
object Behaviors {
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -12,14 +12,6 @@ To use Akka Actor Typed, you must add the following dependency in your project:
|
|||
|
||||
## Introduction
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
As discussed in @ref:[Actor Systems](../general/actor-systems.md) Actors are about
|
||||
sending messages between independent units of computation, but how does that
|
||||
look like?
|
||||
|
|
|
|||
|
|
@ -15,14 +15,6 @@ To use Akka Cluster Sharding Typed, you must add the following dependency in you
|
|||
For an introduction to Sharding concepts see @ref:[Cluster Sharding](../cluster-sharding.md). This documentation shows how to use the typed
|
||||
Cluster Sharding API.
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
## Basic example
|
||||
|
||||
Sharding is accessed via the `ClusterSharding` extension
|
||||
|
|
|
|||
|
|
@ -12,14 +12,6 @@ To use Cluster Singleton, you must add the following dependency in your project:
|
|||
|
||||
## Introduction
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
For some use cases it is convenient and sometimes also mandatory to ensure that
|
||||
you have exactly one actor of a certain type running somewhere in the cluster.
|
||||
|
||||
|
|
|
|||
|
|
@ -15,14 +15,6 @@ To use Akka Cluster Typed, you must add the following dependency in your project
|
|||
For an introduction to Akka Cluster concepts see @ref:[Cluster Specification](../common/cluster.md). This documentation shows how to use the typed
|
||||
Cluster API.
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
## Examples
|
||||
|
||||
All of the examples below assume the following imports:
|
||||
|
|
|
|||
|
|
@ -12,14 +12,6 @@ To use Akka Cluster Distributed Data Typed, you must add the following dependenc
|
|||
|
||||
## Introduction
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
*Akka Distributed Data* is useful when you need to share data between nodes in an
|
||||
Akka Cluster. The data is accessed with an actor providing a key-value store like API.
|
||||
The keys are unique identifiers with type information of the data values. The values
|
||||
|
|
|
|||
|
|
@ -1,13 +1,5 @@
|
|||
# How the Actor Model Meets the Needs of Modern, Distributed Systems
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
As described in the previous topic, common programming practices do not properly
|
||||
address the needs of demanding modern systems. Thankfully, we
|
||||
don't need to scrap everything we know. Instead, the actor model addresses these
|
||||
|
|
|
|||
|
|
@ -1,13 +1,5 @@
|
|||
# Why modern systems need a new programming model
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
The actor model was proposed decades ago by @extref[Carl Hewitt](wikipedia:Carl_Hewitt#Actor_model) as a way to handle parallel processing in a high performance network — an environment that was not available at the time. Today, hardware and infrastructure capabilities have caught up with and exceeded Hewitt's vision. Consequently, organizations building distributed systems with demanding requirements encounter challenges that cannot fully be solved with a traditional object-oriented programming (OOP) model, but that can benefit from the actor model.
|
||||
|
||||
Today, the actor model is not only recognized as a highly effective solution — it has been proven in production for some of the world's most demanding applications. To highlight issues that the actor model addresses, this topic discusses the following mismatches between traditional programming assumptions and the reality of modern multi-threaded, multi-CPU architectures:
|
||||
|
|
|
|||
|
|
@ -1,13 +1,5 @@
|
|||
# Getting Started Guide
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
@@toc { depth=2 }
|
||||
|
||||
@@@ index
|
||||
|
|
|
|||
|
|
@ -1,13 +1,5 @@
|
|||
# Introduction to Akka
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
Welcome to Akka, a set of open-source libraries for designing scalable, resilient systems that span processor cores and networks. Akka allows you to focus on meeting business needs instead of writing low-level code to provide reliable behavior, fault tolerance, and high performance.
|
||||
|
||||
Many common practices and accepted programming models do not address important challenges
|
||||
|
|
|
|||
|
|
@ -1,13 +1,5 @@
|
|||
# Overview of Akka libraries and modules
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
Before delving into some best practices for writing actors, it will be helpful to preview the most commonly used Akka libraries. This will help you start thinking about the functionality you want to use in your system. All core Akka functionality is available as Open Source Software (OSS). Lightbend sponsors Akka development but can also help you with [commercial offerings ](https://www.lightbend.com/platform/subscription) such as training, consulting, support, and [Enterprise Suite](https://www.lightbend.com/platform/production) — a comprehensive set of tools for managing Akka systems.
|
||||
|
||||
The following capabilities are included with Akka OSS and are introduced later on this page:
|
||||
|
|
|
|||
|
|
@ -1,13 +1,5 @@
|
|||
# Introduction to the Example
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
When writing prose, the hardest part is often composing the first few sentences. There is a similar "blank canvas" feeling
|
||||
when starting to build an Akka system. You might wonder: Which should be the first actor? Where should it live? What should it do?
|
||||
Fortunately — unlike with prose — established best practices can guide us through these initial steps. In the remainder of this guide, we examine the core logic of a simple Akka application to introduce you to actors and show you how to formulate solutions with them. The example demonstrates common patterns that will help you kickstart your Akka projects.
|
||||
|
|
|
|||
|
|
@ -12,14 +12,6 @@ Add the following dependency in your project:
|
|||
|
||||
## Introduction
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
Use of Akka relieves you from creating the infrastructure for an actor system and from writing the low-level code necessary to control basic behavior. To appreciate this, let's look at the relationships between actors you create in your code and those that Akka creates and manages for you internally, the actor lifecycle, and failure handling.
|
||||
|
||||
## The Akka actor hierarchy
|
||||
|
|
|
|||
|
|
@ -2,14 +2,6 @@
|
|||
|
||||
## Introduction
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
With an understanding of actor hierarchy and behavior, the remaining question is how to map the top-level components of our IoT system to actors. The _user guardian_ can be an actor that represents the whole application. In other words, we will have a single top-level actor in our IoT system. The components that create and manage devices and dashboards will be children of this actor. This allows us to refactor the example use case architecture diagram into a tree of actors:
|
||||
|
||||

|
||||
|
|
|
|||
|
|
@ -2,14 +2,6 @@
|
|||
|
||||
## Introduction
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
In the previous topics we explained how to view actor systems _in the large_, that is, how components should be represented, how actors should be arranged in the hierarchy. In this part, we will look at actors _in the small_ by implementing the device actor.
|
||||
|
||||
If we were working with objects, we would typically design the API as _interfaces_, a collection of abstract methods to be filled out by the actual implementation. In the world of actors, protocols take the place of interfaces. While it is not possible to formalize general protocols in the programming language, we can compose their most basic element, messages. So, we will start by identifying the messages we will want to send to device actors.
|
||||
|
|
|
|||
|
|
@ -2,14 +2,6 @@
|
|||
|
||||
## Introduction
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
Let's take a closer look at the main functionality required by our use case. In a complete IoT system for monitoring home temperatures, the steps for connecting a device sensor to our system might look like this:
|
||||
|
||||
1. A sensor device in the home connects through some protocol.
|
||||
|
|
|
|||
|
|
@ -2,14 +2,6 @@
|
|||
|
||||
## Introduction
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
The conversational patterns that we have seen so far are simple in the sense that they require the actor to keep little or no state. Specifically:
|
||||
|
||||
* Device actors return a reading, which requires no state change
|
||||
|
|
|
|||
|
|
@ -1,13 +1,5 @@
|
|||
# Akka Typed
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
@@toc { depth=2 }
|
||||
|
||||
@@@ index
|
||||
|
|
|
|||
|
|
@ -23,14 +23,6 @@ Akka Persistence is a library for building event sourced actors. For background
|
|||
see the @ref:[untyped Akka Persistence section](../persistence.md). This documentation shows how the typed API for persistence
|
||||
works and assumes you know what is meant by `Command`, `Event` and `State`.
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
## Example
|
||||
|
||||
Let's start with a simple example. The minimum required for a `EventSourcedBehavior` is:
|
||||
|
|
|
|||
|
|
@ -19,14 +19,6 @@ This module contains typed alternatives to the @ref:[already existing `ActorRef`
|
|||
|
||||
The materializer created from these factory methods and sources together with sinks contained in this module can be mixed and matched with the original Akka Streams building blocks from the original module.
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
## Actor Source
|
||||
|
||||
A stream that is driven by messages sent to a particular actor can be started with @scala[@scaladoc[`ActorSource.actorRef`](akka.stream.typed.scaladsl.ActorSource#actorRef)]@java[@javadoc[`ActorSource.actorRef`](akka.stream.typed.javadsl.ActorSource#actorRef)]. This source materializes to a typed `ActorRef` which only accepts messages that are of the same type as the stream.
|
||||
|
|
|
|||
|
|
@ -35,14 +35,6 @@ Certain @apidoc[Behavior]s will be hard to test synchronously e.g. if they spawn
|
|||
before observing the effect you want to test. Further support for controlling the scheduler and execution context used
|
||||
will be added.
|
||||
|
||||
@@@ note
|
||||
|
||||
This module is ready to be used in production, but it is still marked as @ref:[may change](../common/may-change.md).
|
||||
This means that API or semantics can change without warning or deprecation period, but such changes will
|
||||
be collected and be performed in Akka 2.6.0 rather than in 2.5.x patch releases.
|
||||
|
||||
@@@
|
||||
|
||||
## Synchronous behavior testing
|
||||
|
||||
The following demonstrates how to test:
|
||||
|
|
|
|||
|
|
@ -12,14 +12,12 @@ import akka.actor.typed.BackoffSupervisorStrategy
|
|||
import akka.actor.typed.Behavior
|
||||
import akka.actor.typed.Behavior.DeferredBehavior
|
||||
import akka.actor.typed.javadsl.ActorContext
|
||||
import akka.annotation.ApiMayChange
|
||||
import akka.annotation.InternalApi
|
||||
import akka.persistence.typed.EventAdapter
|
||||
import akka.persistence.typed._
|
||||
import akka.persistence.typed.internal._
|
||||
import akka.util.unused
|
||||
|
||||
@ApiMayChange
|
||||
abstract class EventSourcedBehavior[Command, Event, State] private[akka] (
|
||||
val persistenceId: PersistenceId,
|
||||
onPersistFailure: Optional[BackoffSupervisorStrategy])
|
||||
|
|
@ -205,7 +203,6 @@ abstract class EventSourcedBehavior[Command, Event, State] private[akka] (
|
|||
* There will be compilation errors if the returned effect isn't a [[ReplyEffect]], which can be
|
||||
* created with `Effects().reply`, `Effects().noReply`, [[Effect.thenReply]], or [[Effect.thenNoReply]].
|
||||
*/
|
||||
@ApiMayChange
|
||||
abstract class EventSourcedBehaviorWithEnforcedReplies[Command, Event, State](
|
||||
persistenceId: PersistenceId,
|
||||
backoffSupervisorStrategy: Optional[BackoffSupervisorStrategy])
|
||||
|
|
|
|||
10
build.sbt
10
build.sbt
|
|
@ -368,7 +368,6 @@ lazy val testkit = akkaModule("akka-testkit")
|
|||
|
||||
lazy val actorTyped = akkaModule("akka-actor-typed")
|
||||
.dependsOn(actor)
|
||||
.settings(AkkaBuild.mayChangeSettings)
|
||||
.settings(AutomaticModuleName.settings("akka.actor.typed")) // fine for now, eventually new module name to become typed.actor
|
||||
.settings(OSGi.actorTyped)
|
||||
.settings(initialCommands :=
|
||||
|
|
@ -380,7 +379,6 @@ lazy val actorTyped = akkaModule("akka-actor-typed")
|
|||
import akka.util.Timeout
|
||||
implicit val timeout = Timeout(5.seconds)
|
||||
""")
|
||||
.disablePlugins(MimaPlugin)
|
||||
|
||||
lazy val persistenceTyped = akkaModule("akka-persistence-typed")
|
||||
.dependsOn(
|
||||
|
|
@ -390,10 +388,8 @@ lazy val persistenceTyped = akkaModule("akka-persistence-typed")
|
|||
actorTypedTests % "test->test",
|
||||
actorTestkitTyped % "compile->compile;test->test")
|
||||
.settings(Dependencies.persistenceShared)
|
||||
.settings(AkkaBuild.mayChangeSettings)
|
||||
.settings(AutomaticModuleName.settings("akka.persistence.typed"))
|
||||
.settings(OSGi.persistenceTyped)
|
||||
.disablePlugins(MimaPlugin)
|
||||
|
||||
lazy val clusterTyped = akkaModule("akka-cluster-typed")
|
||||
.dependsOn(
|
||||
|
|
@ -407,9 +403,7 @@ lazy val clusterTyped = akkaModule("akka-cluster-typed")
|
|||
actorTestkitTyped % "test->test",
|
||||
actorTypedTests % "test->test",
|
||||
remoteTests % "test->test")
|
||||
.settings(AkkaBuild.mayChangeSettings)
|
||||
.settings(AutomaticModuleName.settings("akka.cluster.typed"))
|
||||
.disablePlugins(MimaPlugin)
|
||||
.configs(MultiJvm)
|
||||
.enablePlugins(MultiNodeScalaTest)
|
||||
|
||||
|
|
@ -422,11 +416,9 @@ lazy val clusterShardingTyped = akkaModule("akka-cluster-sharding-typed")
|
|||
actorTypedTests % "test->test",
|
||||
persistenceTyped % "test->test",
|
||||
remoteTests % "test->test")
|
||||
.settings(AkkaBuild.mayChangeSettings)
|
||||
.settings(AutomaticModuleName.settings("akka.cluster.sharding.typed"))
|
||||
// To be able to import ContainerFormats.proto
|
||||
.settings(Protobuf.importPath := Some(baseDirectory.value / ".." / "akka-remote" / "src" / "main" / "protobuf"))
|
||||
.disablePlugins(MimaPlugin)
|
||||
.configs(MultiJvm)
|
||||
.enablePlugins(MultiNodeScalaTest)
|
||||
|
||||
|
|
@ -437,9 +429,7 @@ lazy val streamTyped = akkaModule("akka-stream-typed")
|
|||
streamTestkit % "test->test",
|
||||
actorTestkitTyped % "test->test",
|
||||
actorTypedTests % "test->test")
|
||||
.settings(AkkaBuild.mayChangeSettings)
|
||||
.settings(AutomaticModuleName.settings("akka.stream.typed"))
|
||||
.disablePlugins(MimaPlugin)
|
||||
.enablePlugins(ScaladocNoVerificationOfDiagrams)
|
||||
|
||||
lazy val actorTestkitTyped = akkaModule("akka-actor-testkit-typed")
|
||||
|
|
|
|||
|
|
@ -35,8 +35,11 @@ object MiMa extends AutoPlugin {
|
|||
else if (projectName.contains("coordination")) 22
|
||||
else 0
|
||||
|
||||
expandVersions(2, 5, firstPatchOf25 to latestPatchOf25) ++
|
||||
expandVersions(2, 6, 0 to latestPatchOf26)
|
||||
if (!projectName.contains("typed")) {
|
||||
expandVersions(2, 5, firstPatchOf25 to latestPatchOf25)
|
||||
} else {
|
||||
Nil
|
||||
} ++ expandVersions(2, 6, 0 to latestPatchOf26)
|
||||
case v if v.startsWith("2.13") =>
|
||||
// When 2.13.0 is actually out, release 2.5.latestPatchOf25 for that
|
||||
// and add it here. https://github.com/akka/akka/issues/26764
|
||||
|
|
@ -45,6 +48,7 @@ object MiMa extends AutoPlugin {
|
|||
}
|
||||
|
||||
val akka25PromotedArtifacts = Set("akka-distributed-data")
|
||||
val akkaTypedModules = Set("akka-actor-typed")
|
||||
|
||||
// check against all binary compatible artifacts
|
||||
versions.map { v =>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue