Commit graph

185 commits

Author SHA1 Message Date
Konrad Malawski
d782cf59af !per #16797 rename defer to deferAsync, remove Seq version 2015-05-28 01:37:38 +02:00
kukido
ab0c60eca7 =doc Fixed and normalized spellings 2015-05-23 19:16:41 -07:00
Patrik Nordwall
bcb36c36d9 !con #15331 Support async allocateShard and rebalance 2015-05-19 13:53:07 +02:00
Patrik Nordwall
e8c5254d85 Merge pull request #17455 from akka/wip-17454-cluster-tools-settings-patriknw
!cto #17454 Add/change settings for cluster-tools
2015-05-19 13:30:44 +02:00
Patrik Nordwall
c57a8da744 !cto #17454 Introduce ClusterClientSettings and ClusterReceptionistSettings
* rename ClusterReceptionistExtension to ClusterClientReceptionist
2015-05-19 11:16:00 +02:00
Patrik Nordwall
b8594d475e !cto #17454 Introduce DistributedPubSubSettings
* rename DistributedPubSubExtension to DistributedPubSub
2015-05-19 08:59:16 +02:00
Patrik Nordwall
7ab5da21d3 !cto #17454 Introduce ClusterSingletonManagerSettings and ClusterSingletonProxySettings 2015-05-19 08:59:09 +02:00
Patrik Nordwall
a8687f9c4e =pro #16695 Update dependencies
io.netty:netty: 3.8.0.Final -> 3.10.3.Final
org.slf4j:slf4j-api: 1.7.7 -> 1.7.12
org.fusesource.leveldbjni:leveldbjni-all:optional;provided: 1.7 -> 1.8
org.apache.camel:camel-core: 2.13.0 -> 2.13.4

ch.qos.logback:logback-classic:test: 1.0.13 -> 1.1.3
junit:junit:test: 4.10 -> 4.12
org.scalatest:scalatest:test: 2.1.3 -> 2.2.4
org.mockito:mockito-all:test: 1.9.5 -> 1.10.19
org.scala-lang.modules:scala-xml:test: 1.0.1 -> 1.0.4
com.novocode:junit-interface:test : 0.8 -> 0.11
org.slf4j:jul-to-slf4j:test: 1.7.7  -> 1.7.12
org.slf4j:log4j-over-slf4j:test: 1.7.7  -> 1.7.12
com.codahale.metrics:metrics-core:test: 3.0.1  -> 3.0.2
com.codahale.metrics:metrics-jvm:test: 3.0.1  -> 3.0.2
org.scalacheck:scalacheck:test: 1.11.3 -> 1.11.6
org.apache.commons:commons-math:test: 2.1 -> 2.2
commons-codec:commons-codec:test: 1.7 -> 1.10
2015-05-19 08:37:54 +02:00
Patrik Nordwall
00a481adeb Merge pull request #17354 from akka/wip-17342-bc-patriknw
= #17342 Make 2.4 binary compatible with 2.3
2015-05-12 08:56:44 +02:00
Patrik Nordwall
b30e460be7 = #17342 Make 2.4 binary compatible with 2.3
(cherry picked from commit 89af8bdb90)

* remove final identifier in serializers

i* revert/deprecate ProtobufSerializer.ARRAY_OF_BYTE_ARRAY

* adding back compatible empty constructor in serializers

* make FSM.State compatible

* add back ActorPath.ElementRegex

* revert SocketOption changes and add SocketOptionV2
  see a6d3704ef6

* problem filter for ActorSystem and ActorPath

* problem filter for ByteString

* problem filter for deprecated Timeout methods

* BalancingPool companion

* ask

* problem filter for ActorDSL

* event bus

* exclude hasSubscriptions

* exclude some problems in testkit

* boundAddress and addressFromSocketAddress

* Pool nrOfInstances

* PromiseActorRef

* check with 2.3.9

* migration guide note

* explicit exclude of final class problems
2015-05-11 21:11:52 +02:00
Patrik Nordwall
10a11e415e !cls #13711 Move cluster sharding 2015-05-11 20:07:22 +02:00
Patrik Nordwall
fb72214d99 !clt #13711 Move cluster tools from contrib
* new module akka-cluster-tools containing
  cluster singleton, distributed pub-sub, and cluster client
2015-05-11 20:07:21 +02:00
Patrik Nordwall
c6cb71a421 =ker #15677 Deprecate Microkernel 2015-04-01 12:01:07 +02:00
Patrik Nordwall
7aa9fe25f2 Merge pull request #17024 from carrot-garden/persistence-leveldb-dependency
!per #15884 Make LevelDB an optional dependency
2015-03-25 09:07:55 +01:00
Andrei Pozolotin
5c5e07ec4e !per #15884 Make LevelDB an optional dependency 2015-03-24 13:58:09 -05:00
Julian Tescher
00f6a58e7c Changes all occurances of Typesafe copyright to extend to 2015 2015-03-10 14:12:19 -07:00
Andrei Pozolotin
18dfd39686 +per #15587 Make it possible to use multiple persistence plugins 2015-02-19 21:25:52 -06:00
Roland Kuhn
d9efd041f7 add akka-typed project with generic ActorRef
This is the first step towards more type-safety in Actor interactions,
comprising:

* generic ActorRef[T] that only accepts T messages
* generic ActorSystem[T] extends ActorRef[T] (sending to the guardian,
  whose Props[T] are provided for ActorSystem construction)
* removed the Actor trait: everything in there has been made into
  messages and signals
* new Behavior[T] abstraction that consumes messages (of type T) or
  Signals (lifecycle hooks, Terminated, ReceiveTimeout, Failed),
  producing the next Behavior[T] as the result each time
* the ask pattern is provided and yields properly typed Futures
* variants of ActorContext are provided for synchronous testing of
  Behaviors

All of this is implemented without touching code outside akka-typed
(apart from making guardianProps configurable), creating wrapper objects
around ActorRef, ActorContext, ActorSystem, Props and providing an Actor
implementation that just runs a Behavior.
2015-01-29 11:42:28 +01:00
Andrei Pozolotin
7b9f77a073 + akka-cluster-metrics: new akka module
* new akka module split from akka-cluster
* provide sigar provisioning
* fix ewma usage
* resolve #16121
* see #16354
2015-01-19 10:23:54 -06:00
Sergey Krauchenia
f08f1727fb =act, ker, rem, doc #16330 deprecate akka.util.Crypt
* deprecate akka.util.Crypt
* fix documentation after deprecating
2014-12-20 13:30:37 +03:00
Patrik Nordwall
c566d5a106 per #15423 Remove deprecated features from akka-persistence
* remove channels
* remove View
* remove Processor
* collapse the complicated internal state management
  that was spread out between Processor, Eventsourced and Recovery
* remove Recovery trait, this caused some duplication between Eventsourced
  and PersistentView, but but the enhanced PersistentView will not be based
  on recovery infrastructure, and therefore PersistentView code will be replaced anyway
* remove PersistentBatch
* remove LoopMessage
* remove deleteMessages of individual messages
* remove Persistent, PersistentRepr and PersistentImpl are kept
* remove processorId
* update doc sample code
* note in migration guide about persistenceId
* rename Resequencable to PersistentEnvelope
2014-12-12 16:18:47 +01:00
Patrik Nordwall
6a7133ea21 !tes #16075 Change default awaitAssert interval to 100 ms 2014-11-21 11:36:37 +01:00
Andrei Pozolotin
d83acb92c3 = akka-*: full name space for loggers - resolve #16138
reflect logger name changes in the migration guide

fix typo in migration guide

fix typo in migration guide (xml)
2014-11-18 09:17:07 -06:00
Martin Eigenbrodt
69387bbc45 !act #16125 Timeout Calls through CircuitBreaker.
CircuitBreaker used to wait idenfinitly for a call and only compare
duration after the facts.
It will now increment its failure count early and throw a TimeoutException or return a Failure[TimeoutException].
2014-11-18 05:36:53 +01:00
Konrad 'ktoso' Malawski
3f12ef262f !clu #15042 useRole restriction on local node is now respected
This is an API breaking change if someone implemented their own Routers.
The change is required because the router must know if the local routees
should be started or not so it has to check the roles of the cluster
member (the local one). We could delay this decision of starting local
routees, but that would allow messages to be dead-letter-ed (bad).
2014-10-31 22:33:23 +01:00
Roland Kuhn
3d0cf9d602 Merge remote-tracking branch 'pr/15597' 2014-08-20 11:26:01 +02:00
Martynas Mickevičius
200d6eb0d3 Merge pull request #15627 from 2m/udp-proto-family
!act #15626 expose DatagramChannel creation in SocketOption
2014-08-19 15:25:51 +03:00
Dominic Black
af657880e2 !con #15496 Remember entries in cluster sharding
- Move all entry related logic out of the ShardRegion and into a
  new dedicated child `Shard` actor.
- Shard actor persists entry started and passivated messages.
- Non passivated entries get restarted on termination.
- Shard Coordinator restarts shards on other regions upon region failure or handoff
- Ensures shard rebalance restarts shards.
- Shard buffers messages after an EntryStarted is received until state persisted
- Shard buffers messages (still) after a Passivate is received until state persisted
- Shard will retry persisting state until success
- Shard will restart entries automatically (after a backoff) if not passivated and remembering entries
- Added Entry path change to the migration docs
2014-08-19 13:13:20 +01:00
Martynas Mickevicius
325e05ee27 !act #15626 expose DatagramChannel creation in DatagramChannelCreator
* move channel creation logic to a separate trait
* new Java API: AbstractSocketOption
2014-08-19 14:02:23 +03:00
Patrik Nordwall
e3ee59c94d Merge pull request #15662 from raboof/AtLeastOnceDeliveryDocs
Improve docs for AtLeastOnceDelivery recovery
2014-08-14 16:03:20 +02:00
Arnout Engelen
64c3cabbbc Improve docs for AtLeastOnceDelivery recovery
The Eventsourced migration guide currently suggested AtLeastOnceDelivery is
less useful than it actually is :)
2014-08-13 22:48:35 +02:00
Patrik Nordwall
813543e8f8 +act,slf #11715 Add configurable LoggingFilter
* The filter is used by the LoggingAdapter before publishing
  to the event bus
* Slf4jLoggingFilter uses backend log level configuration
  (e.g. logback.xml)
2014-08-11 20:08:44 +02:00
Michael R. Maletich
a6d3704ef6 !act #13490 Changed the callback to SocketOption to accept a channel instead of a Socket, this allows for using the nio features.
For example in Java 7 you can now join a multicast group:

case class JoinGroup(group: InetAddress, networkInterface: NetworkInterface) extends SocketOption {

  override def afterConnect(c: DatagramChannel): Unit = {
    c.join(group, networkInterface)
  }
}

  IO(Udp) ! Udp.Bind(self, new InetSocketAddress(MulticastListener.port),
    options=List(ReuseAddress(true),
      JoinGroup(MulticastListener.group, MulticastListener.interf)))

Other minor changes:

 - changed all methods in SocketOption to take a Channel instead of a Socket.  The socket can be gotten from the Channel but not the reverse.
 - all methods that are called before the bind are now called beforeBind for consistency.
 - All network connections now call the beforeBind and afterConnect.
2014-07-22 20:22:53 -05:00
Łukasz Dubiel
2c88bb1169
=act #13970 Send transistion on goto(CurrentState) in FSM
When in `A`:
* `goto(A)` will trigger `onTransition(A -> A)`
* `stay()` will NOT trigger `onTransition`

Includes:
* migration guide
* docs updates
* test
2014-07-18 17:36:55 +02:00
Patrik Nordwall
33c7f6bb4f !per Change for journal plugin compatibility
* A few more adjustments, found when verifying source compatibility of a few
  journal plugins
* Note that PersistentId will be removed with deleteMessage and we should
  not break plugins because of that
* Add missing section of at-least-once delivery in migration guide

(cherry picked from commit 6727eac6d07280d277968e2e25db44e02be3b102)

Conflicts:
	akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala
	akka-persistence/src/main/scala/akka/persistence/Persistent.scala
	akka-persistence/src/main/scala/akka/persistence/Snapshot.scala
	akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteProxy.scala
2014-06-28 17:11:06 +02:00
Patrik Nordwall
07e67b90ea !per #15428 Deprecate deleteMessage
(cherry picked from commit 4973d0b37d635a0a2c9a94c2898da988e4f14fc7)
2014-06-28 15:59:33 +02:00
Konrad 'ktoso' Malawski
3fd240384c +per #15424 Added PersistentView, deprecated View
A PersistentView works the same way as View did previously, except:

* it requires an `peristenceId` (no default is provided)
* messages given to `receive` are NOT wrapped in Persistent()

akka-streams not touched, will update them afterwards on different branch

Also solves #15436 by making persistentId in PersistentView abstract.

(cherry picked from commit dcafaf788236fe6d018388dd55d5bf9650ded696)

Conflicts:
	akka-docs/rst/java/lambda-persistence.rst
	akka-docs/rst/java/persistence.rst
	akka-docs/rst/scala/persistence.rst
	akka-persistence/src/main/scala/akka/persistence/Persistent.scala
	akka-persistence/src/main/scala/akka/persistence/View.scala
2014-06-26 10:10:09 +02:00
Patrik Nordwall
d6ffdf521c =per #15429 Rewrite persistence documentation and samples for 2.3.4 changes
(cherry picked from commit 02351e32f110a8c4a249f0f3f84bae5898d1a836)

Conflicts:
	akka-samples/akka-sample-persistence-java-lambda/tutorial/index.html
	akka-samples/akka-sample-persistence-java/tutorial/index.html
	akka-samples/akka-sample-persistence-scala/build.sbt
	akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/ConversationRecoveryExample.scala
	akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/PersistentActorExample.scala
	akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/ProcessorChannelExample.scala
	akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/ProcessorChannelRemoteExample.scala
	akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/SnapshotExample.scala
	akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/StreamExample.scala
	akka-samples/akka-sample-persistence-scala/tutorial/index.html
2014-06-25 15:37:35 +02:00
Konrad 'ktoso' Malawski
4bb321a83a !per #15230 rename processorId => persistentId
* This is NOT binary compatible, we're in an *experimental* module.
* disabled binary compat checks for package akka.persistence
* Source compatibility is retained, but users should migrate do the new
  method name ASAP.
* Plugin APIs were migrated in a way that allows the old plugins to
  compile agains 2.3.4 without having to change anything. Hopefuly this
  will help authors migrate to 2.3.4 sooner. This is only source level compatible, not binary compatible.
* added deprecation warnings on all processorId methods and provided bridges where possible
* for users, the migration should be painless, they can still override
  the old method, and it'll work. But we encourage them to move to
  persistenceId; All delegation code will have to be removed afterwards ofc.

Conflicts:
	akka-persistence/src/main/scala/akka/persistence/Channel.scala
	akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala
	akka-persistence/src/main/scala/akka/persistence/Persistent.scala
	akka-persistence/src/main/scala/akka/persistence/PersistentChannel.scala
	akka-persistence/src/main/scala/akka/persistence/Processor.scala
	akka-persistence/src/main/scala/akka/persistence/Snapshot.scala
	akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteProxy.scala
	akka-persistence/src/main/scala/akka/persistence/journal/inmem/InmemJournal.scala
	akka-persistence/src/main/scala/akka/persistence/journal/leveldb/LeveldbKey.scala
	akka-persistence/src/main/scala/akka/persistence/snapshot/SnapshotStore.scala
	akka-persistence/src/test/scala/akka/persistence/serialization/SerializerSpec.scala
	project/AkkaBuild.scala
2014-06-24 17:05:18 +02:00
Konrad 'ktoso' Malawski
d51b79c95a !per persistAsync
Breaks binary compatibility because adding new methods to Eventsourced
trait. Since akka-persistence is experimental this is ok, yet
source-level compatibility has been perserved thankfuly :-)

Deprecates:
* Rename of EventsourcedProcessor -> PersistentActor
* Processor -> suggest using PersistentActor
* Migration guide for akka-persistence is separate, as wel'll deprecate in minor versions (its experimental)
* Persistent as well as ConfirmablePersistent - since Processor, their
  main user will be removed soon.

Other changes:
* persistAsync works as expected when mixed with persist
* A counter must be kept for pending stashing invocations
* Uses only 1 shared list buffer for persit / persistAsync
* Includes small benchmark
* Docs also include info about not using Persistent() wrapper
* uses java LinkedList, for best performance of append / head on
  persistInvocations; the get(0) is safe, because these msgs only
  come in response to persistInvocations
* Renamed internal *MessagesSuccess/Failure messages because we kept
  small mistakes seeing the class "with s" and "without s" as the same
* Updated everything that refered to EventsourcedProcessor to
  PersistentActor, including samples

Refs #15227

Conflicts:
	akka-docs/rst/project/migration-guides.rst
	akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala
	akka-persistence/src/main/scala/akka/persistence/Persistent.scala
	akka-persistence/src/test/scala/akka/persistence/PersistentActorSpec.scala
	project/AkkaBuild.scala
2014-06-10 11:09:12 +02:00
Konrad Malawski
c046cdff0a !act,doc #3893 Removed isTerminated checks from ActorClassification
Instead of isTerminated we now use death watch on subscribers.

! Breaking change - ActorClassification based event buses now require
  and actor system. Previously no actors were involved, but now someone
  has to `watch` the subscribers. The unsubscriber is an system actor,
  and won't be stopped automagically if a bus stops to be used (hard to
  determine what "stops being used" is)
* Replaced isTerminated checks with watching actors
* backing structure for ActorClassification swaped from
  ConcurrentHashMap to immutable.Map with CAS operations on it. This is
  required to avoid races and guarantee register/unregister ordering
  (messages sent with proper sequence numbers) to the unsubscriber.
  Performance tested it and still above 1.3million subscribe+unsubscribe
  ops per second (mac i7, retina), where as the CHM version was
  4 million - but that one could only work in the presence of
  itTerminated - so we pay the price here for removing it.
* `ActorClassification` starts the unsubscriber instance by itself,
  the unsubscriber is an system actor, and can be stopped via
  `ActorClassification#shutdown`
* Will unregister from unsubscriber, when no more subscriptions for
  given subscriber are left in this bus.
* Added missing "Java API: " for some types
* Updated docs to point out the automatic subscriber purging (on terminated)
2014-04-24 14:08:07 +02:00
Roland Kuhn
6947f15084 =doc switch to GitHub Issues
also remove the `experimental` marker from multi-node-testing’s docs
2014-04-13 18:38:11 +02:00
Roland Kuhn
95d27e3f82 Merge pull request #2067 from akka/wip-WhatIsAkka-∂π
=doc clean up what-is-akka.rst and switch to www.typesafe.com
2014-03-17 14:16:47 +01:00
Patrik Nordwall
66e4ca9e93 !tes #3920 Remove TestKit.dilated 2014-03-14 14:16:29 +01:00
Patrik Nordwall
7d40ca1840 !act #3920 Remove UntypedActorFactory 2014-03-14 14:15:49 +01:00
Patrik Nordwall
54671271e9 !con #3920 Remove JavaLoggingEventHandler 2014-03-14 14:14:31 +01:00
Patrik Nordwall
e1eec61ca5 !act #3920 Remove Timeout constructor without unit 2014-03-14 14:12:33 +01:00
Patrik Nordwall
1e445b4eba !act,rem,clu #3920 Remove deprecated old routers 2014-03-14 14:12:11 +01:00
Patrik Nordwall
b5be06e90c !clu #3920 Remove deprecated akka.cluster.auto-down
* replaced by akka.cluster.auto-down-unreachable-after
2014-03-14 14:11:28 +01:00
Patrik Nordwall
503c4ced8f !clu #3920 Remove deprecated Cluster.publishCurrentClusterState 2014-03-14 14:11:28 +01:00