* Add scalafix plugin for jdk 9.
* Add command alias sortImports.
* Excludes some sources from SortImports.
* Update SortImports to 0.4.0
* Sort imports with `sortImports` command.
* scalafix ExplicitNonNullaryApply prepare
+ Temporarily use com.sandinh:sbt-scalafix because scalacenter/scalafix#1098
+ Add ExplicitNonNullaryApply rule to .scalafix.conf
+ Manually fix a NonNullaryApply case in DeathWatchSpec that cause
`fixall` fail because ExplicitNonNullaryApply rule incorrectly rewrite
`context unbecome` to `context unbecome()` instead of `context.unbecome()`
* scalafix ExplicitNonNullaryApply
fix by enabling only ExplicitNonNullaryApply rule in .scalafix.conf then:
```
% sbt -Dakka.build.scalaVersion=2.13.1
> fixall
```
* scalafmtAll
* Revert to ch.epfl.scala:sbt-scalafix
Co-authored-by: Bùi Việt Thành <thanhbv@sandinh.net>
* notify subscribers when node added and removed
* If the change from ddata arrives before the join information
* One difficulty is that that the removal tick may trigger removal
for entries that are in the ddata state but not in the membership yet.
* it's possible that the Entry arrives before MemberJoined, but
such entries should not be removed by the RemoveTick
* by adding a timestamp of when the entry is created we can
avoid removing such early entries and the MemberJoined should be
visible before that duration has elapsed
* add test
* the check for valid config is not needed in RemoteActorRefProvider,
since it is delegating to LocalActorRefProvider for all cases but the
remote deployment case
Different approach than in classic AtLeastOnceDelivery because I would like:
* support flow control, with a work pulling approach
* be possible to use with or without persistence (without it may loose
messages if producer node crashes)
* detect lost messages on the consumer side and let that drive resends,
instead of aggressively resending from producer side
* deliver messages in order and deduplicate resent messages
* have an efficient protocol for acknowledgments over the network (not ack each message),
but still have a simple one-by-one protocol for the end user
* support 3 use cases (building blocks)
* point-to-point
* work pulling
* sharding
* optional durable queue, with one event sourced implementation
* protobuf serialization
* ApiMayChange
* reference docs and examples
* api docs
* doc example code missing so far
* First stab at distributed pubsub for typed
* Also allow sending to a single subscriber across the topic
* Revert "Also allow sending to a single subscriber across the topic"
This reverts commit 4fd4f0b75c0dda01706dcde70645dcfa09da889b.
* Serializer and basic multi-jvm test
* docs
* Review feedback
* This reads better
* One brace too many
* sample formatting/headers/yadi
* Hide actual messages to ease bincomp evolution
* More tesssssts
* And even moar tessssssssts
* Review feedback addressed
* Same serialization as typed sharding
Mention turnaround in docs
* Link to replicator case object (#28427)
Unfortunately apidoc cannot detect when you link to a class but only the
corresponding object exists in the scaladoc, not the class itself.
* Further clarifications
* Scala 2.13.0 -> Scala 2.13.1
* Update to genjavadoc 0.15
* Allow 'higherKinds' without explicit import
To follow the 2.13.1 convention
* Remaining higherKinds imports
* Mima excludes for missing value classes in generics
* Add convenience method to start timer without key
It is probably common that there is no need to allow different timers
that send the same message, and this makes that more convenient to write.
Updated one method to gather feedback, if we like the change I can apply
it to the others as well.
* Add alternative to all typed timer API's
Update java/scaladoc, update tests
Not updated classic actors and FSM API's
* add withDataCenter in Entity, following same patterna as the role
* update cluster-dc.md, split in classic and new pages
* fix bug in ClusterSharding shouldHostShard
* contains on String
* update multi-dc singleton sample
* moved to cluster tests, in new package akka.cluster.testkit
* changed config in tests
* migration guide
* documentation clarificiations for Downing and Leaving
* update warnings in Singleton and Sharding
* methods like cluster.join and cluster.subscribe may throw exception if called
with invalid parameters
* the manager and subscriptions actors should survive such exceptions
* Config to exclude class prefix from serialize-messages, #24273
* Adding no-serialization-verification-needed-class-prefix, with "akka." included
by default
* This is important now when we disable Java serialization by default.
There will be many complaints about Akka internal classes that are not marked with
NoSerializationVerificationNeeded, and we can't really sprinkle that everywhere.
* Not removing NoSerializationVerificationNeeded usage in Akka classes because that
may break bin compat, even though it's needed any more.
* fix DisabledJavaSerializerWarningSpec
* Use akka.japi.function types for adapter lambdas
The Java lambda types does not allow for throwing exceptions but
because of how we run the adapter lambdas in-actor that is fine, so
use our own akka.japi.function types to allow for that.
* Use akka.japi.function types for lambdas where it makes sense
* Reference docs for SL4J logging in Typed, #27648
* mention package implicit for LoggerOps
* reference docs of log testing utilities
* cleanup classic logging.md
* most of it is still relevant, and different enough from
typed/logging.md to keep it separate
* use ThresholdFilter instead of LevelFilter
Co-Authored-By: Will Sargent <will.sargent@gmail.com>