* 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
* previous `schedule` method is trying to maintain a fixed average frequency
over time, but that can result in undesired bursts of scheduled tasks after a long
GC or if the JVM process has been suspended, same with all other periodic
scheduled message sending via various Timer APIs
* most of the time "fixed delay" is more desirable
* we can't just change because it's too big behavioral change and some might
depend on previous behavior
* deprecate the old `schedule` and introduce new `scheduleWithFixedDelay`
and `scheduleAtFixedRate`, when fixing the deprecation warning users should
make a concious decision of which behavior to use (scheduleWithFixedDelay in
most cases)
* Streams
* SchedulerSpec
* test both fixed delay and fixed rate
* TimerSpec
* FSM and PersistentFSM
* mima
* runnable as second parameter list, also in typed.Scheduler
* IllegalStateException vs SchedulerException
* deprecated annotations
* api and reference docs, all places
* migration guide
* Copied from Lagom, with the following differences
* Jsonable and CompressedJsonable not included
* pcollection and guava modules not enabled by default
* added scala and afterburner modules
* JSON, CBOR and Smile options (different serializers)
* JMH benchmark
* jackson version 2.9.9
* test polymorphism
* serializer for ActorRef
* Address serializer
* FiniteDuration serializer, same as java.time.Duration
* use blacklist from Jackson databind against gadgets
* disallow binding to open ended types, such as java.io.Serializable
* Configurable ObjectMapper ser/deser features
* testing date formats with WRITE_DATES_AS_TIMESTAMPS on/off
* ActorSystemSetup for ObjectMapper creation
* and possibility to lookup created ObjectMapper via ObjectMapperProvider extension
* createObjectMapper without ActorSystem, needed by Lagom test
* add basic docs
* skip Scala 2.13 for akka-serialization-jackson for now, until the Jackson
Scala module has been released
* fix several tests that were using akka.remote.netty.tcp config
* replace akka.tcp with akka in more places
* some doc cross references to remoting.md
* ⇒, →, ←
* because we don't want to show them in documentation snippets and
then it's complicated to avoid that when snippets are
located in src/test/scala in individual modules
* dont replace object `→` in FSM.scala and PersistentFSM.scala
* Typed modules not compiled on 2.11
* Dependent modules also not on 2.11:
* docs
* akka-bench-jmh split into a separate one for typed
Still doesn't work because something with sbt