* Replacement of spawnAdapter, we could could keep spawnAdapter as
an internal feature (we know about the resource leak risk)
* The new ActorContext.messageAdapter can be used in the
same way as spawnAdapter but without the risk of unbounded
resource leak.
* Only one message transformer per class is supported to avoid
unbounded growth of registered transformers in case they are
registered repeatedly. That is also a way to replace transformers,
if that would be needed.
* It's still encouraged to register the transformers in a top level
deferred, but other usages are possible. It would still be wrong
to capture incoming message specific context in the transformer
function.
* The transformation function is run inside the actor.
* One single spawnAdapter ref is used for all transformers. It wraps
the message in an internal Transform message.
* rename to spawnMessageAdapter and only kept it as internal in scaladsl
* update chat room example to use child actors
* docs
+str #24229 remove protobuf changes, which do not need to be made in this PR
docs
moved things
config object
subscription timeout confifmed working, also, attributes
document attributes for sub timeout
tests for the source also failing when it should
additional demand test
implemented protection from materializing "in cycles"; would be nice in
types but that breaks the niceness of use of the types
SinkRef/SourceRef...
cleanup
no idle timeout built in, can use the Timeout stages
more docs
simplest change to prevent exposing SinkRef => SourceRef => SinkRef cycle
Things to decide:
* is it ok to require using `getSource` / `getSink` as Java API, is there better naming?
* where should the constructors go? I'd say just in regular javadsl/scaladsl `Source`/ `Sink` objects
move constructors to {javadsl,scaladsl}.{Source,Sink} companion objects
Remove now useless "canMaterialize" field
Separate stage (implementation) from ref (wrapped actor ref) to make it clearer what is serialized
Clarify that partner refs are not optional in on-the-wire interfaces
minor cleanup in SourceRefStage
Renamed the stages but questionable if that really helps ;)
cleanups, better docs
cleanup, fix docs compilation
fix mima
got rid of Futures in the materialized values of stream refs
silly serialization mistake, should have fixed serialize as well
tage actors now can have names, which helps a lot in debugging
thread weirdness
make sure to fail properly, actually go over remoting
issue with not receiving the SinkRef... what
initial working SinkRef over remoting
remote Sink failure must fail origin Source as well
cleaning up and adding failyre handling
SinkRef now with low-watermark RequestStrategy
source ref works, yet completely duplicated code
* Utility for stashing, #22275
* The main reason for providing these utilities and promote
a standardized way of doing the buffering is that monitoring
instrumentation can be added to these classes, which is not
possible if we just say "buffer in some collection".
* unstash a few at a time, became rather complicated
* separate api and impl, and more tests
Untyped actor systems currently only support specifying dispatchers via a
name reference to the config. The other selectors can be revived when other
ways of configuring dispatchers are available for untyped actor systems
(see #17568).
* The technical reason for not naming it Behavior is that
it would be duplicate import conflicts of
akka.actor.typed.Behavior and akka.actor.typed.scaladsl.Behavior
* Plural naming is pretty common for factories like this,
e.g. java.util.Collections
* Allow tagging in persistence typed (#23817)
* Use Set[String] for tags
* Documentation for persistence typed tagging
* Rename tagging parameter to tagger