Commit graph

130 commits

Author SHA1 Message Date
Christopher Batey
a2ecd915cb
Remove extensions to protobuf config checker messages (#27400)
* Remove extensions to protobuf config checker messages

AFAICT these are never serialized/deserialized. Removing as they use a
deprecated feature of protobuf (required fields in extensions)
* Remove extensions from protobuf
2019-08-02 09:16:57 +01:00
Johan Andrén
d03294d359
Align SpawnProtocol with style guide #27318 2019-07-16 11:36:12 +02:00
Johan Andrén
f0e42d2b9c
Cluster aware routers for typed #26355 2019-07-15 15:25:00 +02:00
Patrik Nordwall
3efc1c2877
Disable Java serialization by default, #22333 (#27285)
* 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
2019-07-11 14:04:24 +02:00
Helena Edelson
501848dcca
cluster.joinSeedNodes(...) does not throw warnings when seed hostname contains underscores #25287 (#27222) 2019-07-08 05:52:22 -07:00
Patrik Nordwall
b53469500b
Reduce boilerplate for interaction with Typed Replicator #27116 (#27118)
* Reduce boilerplate for interaction with Typed Replicator #27116

* By introducing a message adapter "helper" that is specific the Replicator
* Specific methods for askUpdate, askGet and askDelete, subscribe, unsubscribe

* add thread safetey warnings

* DistributedData.withReplicatorMessageAdapter for creating the ReplicatorMessageAdapter
2019-06-27 16:56:21 +01:00
Patrik Nordwall
4e52432706 Rolling update when adding akka-cluster-typed dependency, #27191 (#27210) 2019-06-26 15:47:15 +01:00
Christopher Batey
31def7049a Make Behaviors.intercept a factory () => BehaviorInterceptor, #26728 (#27102) 2019-06-14 11:16:12 +02:00
Patrik Nordwall
893bd8b74b
Remove ActorContext parameter from javadsl.ReceiveBuilder, #27120 (#27121)
* Remove ActorContext parameter from javadsl.ReceiveBuilder, #27120

* functional style in javadsl
* in Java it's more practical to have an enclosing class to hold
  initialization parameters and ActorContext
* writing behaviors as pure static methods will be unlikely be used in Java
* it's still possible to write behaviors as static methods by passing
  the context around, in same way as all other things
* better to embrace the enclosing class pattern and therefore remove
  the context parameter from the message handlers
* style cleanup of ChatRoom sample
* migration guide
2019-06-13 16:10:40 +02:00
Patrik Nordwall
631ea2faa2 Remove request parameter in Typed Replicator messages, #27115
* Simplifies the API
* Ask can be used instead, with better type safety since
  the request parameter was Any
2019-06-12 11:28:08 +02:00
Patrik Nordwall
5bb83899e7 Remove Behavior.same/empty/etc, #26730 (#27119)
* Removed `Behavior.same`, `Behavior.unhandled`, `Behavior.stopped`, `Behavior.empty`, and `Behavior.ignore` since
  they were redundant with corresponding in Behaviors
* Also moved several of the internal things from Behavior to BehaviorImpl
2019-06-12 09:38:37 +01:00
Patrik Nordwall
10d32fceb9 scheduleWithFixedDelay vs scheduleAtFixedRate, #26910
* 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
2019-06-05 11:38:04 +02:00
Patrik Nordwall
375228273f
Improve logging in DistributedData extension (#27051)
* and don't load extension from ClusterReceptionist since that will
  trigger the warning logging if role is defined
2019-06-03 09:31:28 +02:00
Johan Andrén
515be3a085
No printlns on my guard (#27046) 2019-05-29 13:43:36 +02:00
Johan Andrén
604523ba18 Specific minimal scheduler API for typed #26971
* migration guide entry
* ManualTime was making assumptions about scheduler
* Add API compile tests for good measure
* named scheduleAtFixedRate instead of schedule
2019-05-24 10:05:53 +02:00
Patrik Nordwall
8d1dcea5d2
ClusterReceptionist using own ddata Replicator #26936 (#26994)
* ClusterReceptionist using own ddata Replicator #26936

* otherwise application configuration, such as role may break it
* creating it as a child actor, path will be same on all nodes
* rolling update from 2.5 not supported
* mention in migration guide

* update migration note about receptionist rolling update
2019-05-23 18:21:34 +02:00
Patrik Nordwall
7e31ff719b
Merge pull request #26943 from akka/wip-26942-ddata-alias-patriknw
add missing unapply for response types in DData Typed, #26942
2019-05-21 21:12:33 +02:00
Patrik Nordwall
0141e83f00 add missing unapply for response types in DData Typed, #26942 2019-05-16 15:59:01 +02:00
Patrik Nordwall
71e9bdc262 more classic remoting leftovers
* 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
2019-05-15 19:34:50 +02:00
Johan Andrén
cd877e126f
Typed receptionist clashes with the clusterclient receptionist #26848 2019-05-09 12:59:45 +02:00
Patrik Nordwall
2bbf13f707
Run CoordinatedShutdown from ActorSystem.terminate #25213 (#26830) 2019-05-03 10:47:47 +02:00
Johan Andrén
81b1e2ef9b Internal dispatcher to protect against starvation (#26816)
* Allow for dispatcher aliases and define a internal dispatcher
* Test checking dispatcher name
* MiMa for Dispatchers
* Migration guide entry
* No need to have custom dispatcher lookup logic in streams anymore
* Default dispatcher size and migration note about that
* Test checking exact config values...
* Typed receptionist on internal dispatcher
* All internal usages of system.dispatcher gone through
2019-05-02 22:35:25 +02:00
Christopher Batey
efc3adc08d
Make artery the default remoting (#26772) 2019-05-01 08:12:09 +01:00
Patrik Nordwall
a5e9741d35 replace unicode arrows again (#26732) 2019-04-15 15:40:26 +00:00
Christopher Batey
5a81e973b4 Make compilation options for akka typed modules strict (#26565) 2019-04-04 10:58:21 +02:00
Tzu-Chiao Yeh
7cc6266ad0 Change typed whenTerminated signature to Future[Done], #25647
This change ignore the terminated passed from untyped and map it into Done,
with some minor changes for testing termination.

termiate() returns Unit to not bias it towards the Scala API, completion
can be observed with whenTerminated or getWhenTerminated
2019-04-01 09:09:38 +02:00
Patrik Nordwall
725728f346 cleanup Receptionist example 2019-03-28 16:14:23 +01:00
Patrik Nordwall
825d90bf63 Avoid false removals in ClusterReceptionist, #26284
* The scenario was (probably) that a node was restarted with
  same host:port and then didn't join the same cluster. The DData
  Replicator in the original cluster would continue sending messages
  to the new incarnation resulting in false removals.
* The fix is that DData Replicator includes the system uid of the sending
  or target system in messages and if recipient gets a message that is from/to
  unknown it will discard it and thereby not spreading information across
  different clusters.
* Reproduced in ClusterReceptionistSpec
* Much hardening of other things in ClusterReceptionistSpec
* There are also some improvements to ClusterReceptionist to not leak
  Listing with refs of removed nodes.
* use ClusterShuttingDown
* The reason for using sender system uid instead of target uid in messages
  like Read and Write is that then the optimization for sending same message
  to many destinations can remain.
2019-03-27 16:32:19 +01:00
Patrik Nordwall
076b16485b fix typed ActorSystemSpec #26614 2019-03-27 08:30:42 +01:00
Arnout Engelen
b214115051
Update scalatest 2019-03-19 11:25:48 +01:00
Vasilis Nicolaou
4a04eddf7d give cached value back in ddata sample(#26476) 2019-03-19 08:06:26 +01:00
Auto Format
75579bed17 format source with scalafmt, #26511 2019-03-15 10:23:46 +01:00
Patrik Nordwall
48a43e1e74 Issue references to FIXMEs in Typed (#26513)
* Issue references to FIXMEs in Typed

* comment out ctx.ask example with 2 param

* doesn't compile with 2.13, separarate issue created
2019-03-14 10:07:08 +01:00
Patrik Nordwall
eb5dd7d297 fix wrong headers 2019-03-11 16:58:55 +01:00
Auto Format
ce404e4f53 format source with scalafmt 2019-03-11 16:58:55 +01:00
Patrik Nordwall
5c96a5f556 replace unicode arrows
* ⇒, →, ←
* 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
2019-03-11 16:58:51 +01:00
Johan Andrén
9fc3251a03 Update test and sample usages of ActorRef.? to .ask 2019-02-21 13:55:14 +01:00
Seth Tisue
fc23f03031 upgrade to latest ScalaTest (#26387)
stuff moved to a new package. you wouldn't expect that in a point
release, but they put type aliases in place so Scala users wouldn't
notice. but the change is visible to Java code.

the upgrade is not strictly necessary, but it would be convenient
for the Scala 2.13 community build to have this merged, so I don't
have to maintain these changes in our Akka fork
2019-02-17 19:45:39 +00:00
Johan Andrén
8fabb73f2b Make the AbstractBehavior builder mutable (#26309)
* Make the AbstractBehavior builder mutable #26260

* Use mutable builder style in first sample, mention that fluent is an option

* A bit of rework of the Java builders:

 * onAnyMessage added
 * use the japi SAMs throughout in the APIs
 * avoid wrapping the japi functions in Scala functions for the most common cases
 * more Java test coverage

* Not just any exception

* Works on 2.11 as well as 2.12
2019-02-12 15:38:35 +01:00
Johan Andrén
84e8e41193
Logger class for typed actors #25677
* Walk stack to figure out logger class
* User API for getting a customized logger
* API to set logger class, use in receptionists, auto-good-class for EventSourcedBehavior
2019-02-11 17:18:17 +01:00
Patrik Nordwall
31b700fb7b support nested restart and backoff supervision strategies
* problem found by new EventSourcedBehaviorStashSpec
* added tests of this in SupervisionSpec
* the scheduled ScheduledRestart and ResetRestartCount need an
  owner field so that they can be passed on if not scheduled by
  the strategy instance itself
2019-01-18 17:47:52 +01:00
Christopher Batey
ae39edc5a5 Increase patience for ReceptionistExampleSpec
* Increase patience for ReceptionistExampleSpec

This test doesn't extend AkkaSpec doesn't pick up the larger patience
for other tests

* Remove unused examples from example specs

* Formatting
2019-01-15 15:36:55 +01:00
Patrik Nordwall
f4defb139b
use receiveOne instead of receiveMessageType, #25914
* use receiveOne instead of receiveMessageType, #25914

* when the type is the same as the probe's type

* formatting

* rename receiveOne to receiveMessage

* rename receiveN to receiveMessages

* have to use different name in javadsl so that became receiveSeveralMessages
2019-01-15 09:23:30 +01:00
Helena Edelson
5514afbe54
Fix compiler warnings in akka-cluster* #26087 (#26241)
* Fix compiler warnings in akka-cluster* #26087
* Added new mima filters for 2.5.19 bin compat.
2019-01-14 05:50:59 -08:00
hepin1989
998c5a9285 Formatting java codes with sbt-java-formatter. 2019-01-12 04:00:53 +08:00
kerr
0848a5c02c Import akka.actor as untyped but not a. (#26079) 2019-01-07 14:45:51 +01:00
kerr
bdc90052aa Update headers from 2018 to 2019 once for all. (#26165)
* Add CopyrightHeader support for sbt-boilerplate plugin.
* Add CopyrightHeader support for `*.proto` files.
* Add regex match for both `–` and `-` for CopyrightHeader.
* Add CopyrightHeader support for sbt build files.
* Update copyright from 2018 to 2019.
2019-01-02 11:55:26 +01:00
hepin1989
c38a5dcf9c Run scalafix to remove unused imports again. 2018-12-17 21:10:11 +08:00
Helena Edelson
8a44fca087
Typed Distributed Data requires untyped Cluster #25746 (#26074)
Typed Distributed Data requires untyped Cluster [#25746](https://github.com/akka/akka/issues/25746)
2018-12-14 15:53:08 -05:00
Christopher Batey
da71e2044e
Allign typed singleton with typed sharding (#26013)
* Allign typed singleton with typed sharding

* Singleton class for setting proerties
* Make stop message optional

Closes #25670
2018-12-06 16:26:38 +00:00