Commit graph

31 commits

Author SHA1 Message Date
Nafer Sanabria
1dffa344c4 Fail fast on empty string persistenceId in PersistentActor (#24239) 2018-01-03 22:22:44 +01:00
ortigali
5ee25d9d40 customise test for race between GetState and persistAsync handler #22052 2017-01-26 19:11:08 +05:00
Philippus Baalman
6c7085252a extended copyright into 2017 2017-01-04 17:37:15 +01:00
Johan "Party Cannon" Andrén
3fe131652f Fail fast on null persistenceId in PersistentActor #22025 2016-12-16 16:54:53 +01:00
ortigali
ef1e0e01a2 =per Allow persisting events when recovery has completed (#21893)
* be able to persist events that happen during recovery, #21736

* prohibit persiting events during recovery, #21736

* change error message #21736
2016-12-14 13:32:27 +01:00
Nafer Sanabria
80d48ead5a per bugfix #21824 pass the message which cause restart in PersistentActor 2016-11-17 14:11:34 +01:00
Johan Andrén
62e30b3c08 Update copyrights and links to the new company name #19851 2016-02-23 12:58:39 +01:00
Prayag Verma
b7783968a0 =pro #19068 All copyrights ranges and single years updated to a range ending in 2016 2016-01-25 10:20:30 +01:00
Konrad Malawski
4a3bc59c48 =per #18728 allow persistAll(Nil) 2015-10-26 14:42:33 -07:00
Patrik Nordwall
d2cc69e65a =per #18497 Handle large deleteMessages ranges in leveldb journal
* creating a large scala range is very inefficient and also impossible
  above Int.MaxValue, which can happen if deleteMessages(Long.MaxValue)
  is used
* solved by capping the upper seq nr by the highest know seq nr
* similar issue in inmem journal
2015-09-17 14:04:10 +02:00
Johan Andrén
4d95fd569d =per #16528 improved persistent actor stash test coverage
Existing tests covering stashin in PersistentActor moved to separate
test class.

New async write journal for tests SteppingInmemJournal allows to
control the async journal operations tightly from a test. Each journal
operation requires a token which the test then can wait for consumption of.
2015-09-16 15:27:43 +02:00
Patrik Nordwall
6d0416f0aa !per #17918 Make deleteMessages reply msgs public 2015-08-13 17:13:13 +02:00
Konrad Malawski
f9201c7e05 Merge pull request #17960 from ktoso/wip-additional-test-ktoso
=act,per additional test for onTransition behaviour when initialize() called
2015-07-14 15:51:28 +02:00
Konrad Malawski
5d746b40b1 =act,per additional test for onTransition behaviour when initialize() called 2015-07-10 00:52:26 +02:00
Konrad Malawski
874d07c0ae !per #17518 harmonize and document failure handling in persistence
+ added tests for all failure scenarios (callbacks)
2015-07-07 14:50:42 +02:00
Konrad Malawski
33fbfec222 !per,doc,sam #17574 #17626 make recovery a method, move lambda samples
+ LambdaDoc samples now in the docs project
= simplified internal state by removing recoveryPending
= recovery is now triggered in around* method, so user is free to use
  preStart freely - recovery works even if one forgets to call super on
  preStart
2015-06-30 16:01:52 +02:00
Konrad Malawski
83e931ea7e Merge pull request #17828 from ktoso/wip-nested-persist-ktoso
~per #15640 support nested persist calls
2015-06-26 12:53:16 +02:00
Patrik Nordwall
77df1372ad +per #17799 Fix refactoring bug in deleteMessages
* add missing test
* use DeleteMessagesFailure and add onDeleteMessagesFailure (logging)
2015-06-26 12:05:38 +02:00
Konrad Malawski
a59c9f73b6 =per #15640 support nested persist/persistAsync 2015-06-26 10:54:32 +02:00
Patrik Nordwall
8c47e01e9d !per #15377 Mandate atomic writes for persistAll, and support rejections
* changing Plugin API for asyncWriteMessages and writeMessages
* passing explicit AtomicWrite that represents the events of
  persistAll, or a single event from persist
* journal may reject events before storing them, and that
  will result in onPersistRejected (logging) and continue in the
  persistent actor
* clarified the semantics with regards to batches and atomic writes,
  and failures and rejections in the api docs of asyncWriteMessages
  and writeMessages
* adjust the Java plugin API, asyncReplayMessages, doLoadAsync
2015-06-25 15:28:37 +02:00
Patrik Nordwall
74b97b3bd4 !per #15644 Rename persist(seq) to persistAll 2015-06-16 15:26:48 +02:00
Patrik Nordwall
d2a00d3b98 Merge pull request #16255 from leonidb/master
+per #15279 FSM for PersistentActor
2015-06-01 13:13:47 +02:00
leonidb
09b6abd614 +per #15279 FSM for PersistentActor 2015-05-29 18:30:38 +03:00
Konrad Malawski
d782cf59af !per #16797 rename defer to deferAsync, remove Seq version 2015-05-28 01:37:38 +02:00
Julian Tescher
00f6a58e7c Changes all occurances of Typesafe copyright to extend to 2015 2015-03-10 14:12:19 -07: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
Michał Węgrzyn
4f52158b0a =per #15937 Allow PersistentActor to be used as a stackable modification
* PersistentActor correctly calls `super.around*` and allows to be mixed into e.g. ActorSubscriber
 * Tests have been added on PersistentActor and Processor to verify the stackable behavior of `around*` and `pre*` methods
 * Delegation in Processor has been simplified
2014-10-27 21:58:47 +01:00
Patrik Nordwall
8eec3f92d3 =per #15457 Correlate persistAsync handlers with journal messages
We have assumed that the handlers can be popped when replies come back from journal, but if messages to journal are in flight when the actor is restarted the handlers does not match up with journal replies.

This solution ignores journal replies that were emitted by an old PersistentActor instance
by passing an uid with the journal messages. This means that the handler will not be
invoked for such messages.

(cherry picked from commit 7ebaaab669c9e467a1ffb4d9ed8b6500e1801a7c)

Conflicts:
	akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala
	akka-persistence/src/main/scala/akka/persistence/Processor.scala
	akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteJournal.scala
2014-06-28 17:21:55 +02:00
Konrad 'ktoso' Malawski
a71790bb18 +per #15229 defer for PersistentActor
* Deferred events are not persisted, thus will not participate in replays
  etc. If users want events to be persisted, they can simply use
  `persistAsync` instead.
* This, 3rd, rewrite extends the Persistent hierarchy by a top level
  trait "Resequenceable", which is used to mark every event to be sent
  in sequence back to the PersistentActor. These are split into
  NonPersistentRepr or PersistentRepr, and acted upon accordingly.
* defer is guaranteed to be called, even after persistence failures
* Includes docs updates for java/scala/java8

Resolves #15229
Depends on #15227

Conflicts:
	akka-docs/rst/scala/code/docs/persistence/PersistenceDocSpec.scala
	akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala
	akka-persistence/src/main/scala/akka/persistence/Processor.scala
	akka-persistence/src/test/scala/akka/persistence/PersistentActorSpec.scala
	project/AkkaBuild.scala
2014-06-10 17:09:24 +02:00
Björn Antonsson
9bcaeff87d +per #13944 Send RecoveryComplete message at end of recovery
Fixes #13944

Conflicts:
	akka-docs/rst/scala/code/docs/persistence/PersistenceDocSpec.scala
	akka-persistence/src/main/scala/akka/persistence/Processor.scala
	project/AkkaBuild.scala
2014-06-10 13:22:10 +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
Renamed from akka-persistence/src/test/scala/akka/persistence/EventsourcedSpec.scala (Browse further)