* Deprecate LevelDB
In preparation of moving into the testing infra (or deleting it completely) at some distant future point in time
* Remove leveldb tests where there also is an inmem one
* More details in deprecation text, recommend inmem + journal proxy for testing etc.
* Remove @switch when it doesn't take effect
* Use ActorRef.noSender
* Minor tweaks to SchedulerSpec
* Disambiguate TypedActor for Scala 3
* Bump ScalaTest to a version compatible with Scala 3
* Bump ScalaCheck
* Disambiguate Event in SupervisorHierarchySpec
* Scala 3 compatible EventBusSpec
* Prevent private unused variables to be erased by Scala 3
* Bump mockito
* Explicit actorRef2Scala import
* restore original .scalafix.conf
* Scala 3 compatible tailrec
* Reminder to re add switch annotation in case
* Move to nowarn instead of silencer
* Bump to Scala 2.12.13
* Cross compatible annotations
* fix docs generation
* adapt the build for Scala 3
* fix errors but bus
* remove more SerialVersion from trait
* scalacheck only from scalatest
* cross-compile akka-actor-tests
* restore cross-compilation
* early initializers workaround
* scalacheck switch
* cross compatible FSM.State class
* cross compatible LARS spec
* Change results to pass LineNumberSpec
* fix stackoverflow in AsyncDnsResolverIntegrationSpec
* FSM.State unapply
* fix Scala 2.13 mima
* SerialVersionRemover compiler plugin
* removed unused nowarns
* 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>
Remove an unused local variable that cause error when scalafix Any2StringAdd
```
scalafix.internal.v1.FileException: unexpected error processing file /Users/thanhbv/ohze/oss/akka/akka-bench-jmh/src/main/scala/akka/actor/TellOnlyBenchmark.scala
Caused by: org.scalameta.UnreachableError: this code path should've been unreachable
at org.scalameta.UnreachableError$.raise(package.scala:40)
at scala.meta.internal.prettyprinters.TreeSyntax$SyntaxInstances.isAmbiguousWithPatVarTerm$1(TreeSyntax.scala:251)
at scala.meta.internal.prettyprinters.TreeSyntax$SyntaxInstances.guessIsBackquoted(TreeSyntax.scala:273)
| => aat scala.meta.internal.prettyprinters.TreeSyntax$SyntaxInstances.$anonfun$syntaxTree$1(TreeSyntax.scala:331)
at scala.meta.prettyprinters.Syntax$$anon$1.apply(Syntax.scala:9)
at scala.meta.internal.prettyprinters.TreeSyntax$.$anonfun$apply$1(TreeSyntax.scala:1018)
at scala.meta.prettyprinters.Syntax$$anon$1.apply(Syntax.scala:9)
at scala.meta.prettyprinters.Api$XtensionSyntax.syntax(Api.scala:11)
at scalafix.internal.v1.TreePos$.symbol(TreePos.scala:9)
at scalafix.internal.v1.InternalSemanticDoc.fromTextDocument$1(InternalSemanticDoc.scala:53)
at scalafix.internal.v1.InternalSemanticDoc.symbol(InternalSemanticDoc.scala:60)
at scalafix.v1.package$XtensionTreeScalafix.symbol(package.scala:12)
at scalafix.v1.SymbolMatcher.unapply(SymbolMatcher.scala:16)
at scalafix.v1.SymbolMatcher.unapply$(SymbolMatcher.scala:15)
at scalafix.v1.SymbolMatcher$$anon$2.unapply(SymbolMatcher.scala:29)
at fix.Any2StringAdd$$anonfun$fix$1.applyOrElse(/Users/thanhbv/ohze/oss/scalafix-rules/scalafix/rules/src/main/scala/fix/Any2StringAdd.scala:41)
```
* Benchmark with numbers
* Better optimization, now on par with 2.12
* Simplify
* Review do'hs and unused errors fixed
* Move build up of composite out to setup
* A little thing to make MiMa happy
* Apply suggestions from code review
Co-authored-by: Arnout Engelen <github@bzzt.net>
* Merge benchmark projects
* Make SingleConsumerMultiProducer the default mail box for typed
* Make SingleConsumerMultiProducer the default mail box for typed
* Add default mailbox back to classic + define default mailbox for typed in reference
* Fix custom dispatcher
* change config structure to be able to support other compression
algorithms, such as lz4 in the future
* enable compression for json (as before) but disable it by default
for cbor
Co-Authored-By: Ignasi Marimon-Clos <ignasi@lightbend.com>
* Update Jackson to 2.10.0
* Support configuration for new features introduced in Jackson 2.10
* WRITE_DURATIONS_AS_TIMESTAMPS is the new config used to serialize durations
Previously WRITE_DATES_AS_TIMESTAMPS was used for both date/time and duration, but
in Jackson 2.10 WRITE_DURATIONS_AS_TIMESTAMPS is used for durations, so it needs to
be configured consistently with WRITE_DATES_AS_TIMESTAMPS.
* 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
* Add doc clarification about IOResult on sources
* Better error message for IOOperationIncompleteException
Co-Authored-By: Johannes Rudolph <johannes.rudolph@gmail.com>
* Replace MaterializerSettings with Attributes #25559
* Field access to settings deprecated to make stages use attributes instead
* Internal stages updated to use attributes
* Docs on ActorMaterializerSettings updated to recommend away from using it
* Verify all stages stopped after each testcase in FlowGroupBySpec
* Subscription timeout attributes merged into one
* akka.actor.allow-java-serialization = off
* Moved primitive (Long, Int, String, ByteString) serializers
from akka-remote to akka-actor since they had no dependency
and are useful also in local systems, e.g. persistence.
* e.g. needed for persistence-tck
* less allow-java-serialization=on in tests
* CborSerializable in Jackson/test module for ease of use
* JavaSerializable for Java serialization in tests, already in akka-testkit,
but misconfigured
* Made tests pass
* allow-java-serialization=on in akka-persistence
* allow-java-serialization=on in classic remoting tests
* JavaSerializable and CborSerializable in other remoting tests
* Added serialization for
* Boolean
* java.util.concurrent.TimeoutException, AskTimeoutException
* support for testing serialization with the inmem journal
* utility to verifySerialization, in SerializationTestKit
* remove AccountExampleWithCommandHandlersInState becuase not possible to serialize State when it's not static
* Effect() is factory in EventSourcedBehavior class
* test the account examples
* SharedLeveldbJournal.configToEnableJavaSerializationForTest
* support for exceptions from remote deployed child actors
* fallback to akka.remote.serialization.ThrowableNotSerializableException
if exception is not serializable when wrapped in system messages from
remote deployed child actors and Status.Failure messages
* it's implemented in `WrappedPayloadSupport.payloadBuilder`
* update reference documentation
* serialize-messages=off in most places, separate ticket for
improving or removing that feature
* migration guide, including description of rolling update
* fix 2.13 compiler error
* minor review feedback
* Log Dropped from DeadLetterListener, #26432
* Move Dropped from akka-actor-typed to akka-actor
* Use it in Artery
* Use in right way from GroupRouter, not via deadLetters
* Remove "without sender" in log message from DeadLetterListener,
since there is no sender in Typed
* mima filter
* add sender to Dropped
* No clear advantage over CBOR
* One less choice for users
* CBOR seems to have a stronger specification and therefore potential
for wider adoption
* Performance of CBOR is equals to Smile
* Smile can be slightly more compact
(I think it does more to reduce repeated field names),
but that might be better to solve with good compression