Commit graph

104 commits

Author SHA1 Message Date
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
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
Patrik Nordwall
4b977361eb !tra #3920 Remove deprecated durable mailboxes 2014-03-14 14:11:28 +01:00
Patrik Nordwall
9cc586b674 !tra #3920 Remove deprecated akka-transactor 2014-03-14 14:11:28 +01:00
Patrik Nordwall
9f906b2de9 !dat #3920 Remove deprecated akka-dataflow 2014-03-14 14:11:18 +01:00
Roland Kuhn
98c282f115 =doc clean up what-is-akka.rst and switch to www.typesafe.com
the latter is necessary because of broken DNS requirements which make
apex domains brittle (since they must resolve to an A record with a
single IP)
2014-03-13 12:42:47 +01:00
dario.rexin
826cc74de3 !tes #2971 Make TestKit.remaining throw AssertionError outside of within 2014-03-11 11:23:12 +01:00
Roland Kuhn
94bcbfc69c =doc #3899 duration2TestDuration migration 2014-03-04 17:28:45 +01:00
Roland Kuhn
6cb4ed381d =doc document why Deliver takes an ActorPath 2014-02-27 15:04:38 +01:00
Roland Kuhn
fa1717eead Merge pull request #2034 from krasserm/wip-3883-eventsourced-migration-guide-krasserm
=doc #3883 Eventsourced to Akka Persistence comparison/migration
2014-02-27 09:56:41 +01:00
Martin Krasser
dc3164d1b1 =doc #3883 Eventsourced to Akka Persistence comparison/migration 2014-02-27 07:54:13 +01:00
Roland Kuhn
585267666c =doc #3897 Routers migration guide format fix 2014-02-26 16:54:05 +01:00
Patrik Nordwall
947b49c5b7 Merge pull request #1993 from akka/wip-2922-event-bus-sample-patriknw
!act,doc #2922 Doc event bus and fix Java API
2014-02-13 12:24:24 +01:00
Patrik Nordwall
a247365b57 !act,doc #2922 Doc event bus and fix Java API 2014-02-13 12:23:51 +01:00
Patrik Nordwall
12746fe555 Merge pull request #1989 from akka/wip-3620-doc-deploy-conf-patriknw
=doc #3620 Add unified documentation of deployment section
2014-02-13 12:21:33 +01:00
Patrik Nordwall
fa215ff965 =doc #3620 Add unified documentation of deployment section 2014-02-13 12:20:26 +01:00
Adam Voss
cce29dfa51 Changes all occurances of Typesafe copyright to extend to 2014. 2014-02-04 21:20:09 -06:00
Björn Antonsson
e98dd13cd6 !osg, pro Updated OSGi dependencies and using a BundleDelegatingClassLoader
* Numerous version upgrades to dependencies
* Publish integration test maven dependencies automatically
* Use slf4j logging, with standard OPS4j Pax Logging
* Maven and sbt use different target directories
* Add a custom serializer to the integration test
* Add akka-persistence to the integration test
* Removing reference copying and using a BundleDelegatingClassLoader
* Make akka-actor a proper bundle, and remove duplicate classes and
  reference.conf files from akka-osgi
* Remove akka-osgi-aries

This is a hackathon team effort by:
* Björn Antonsson
* Endre Sándor Varga
* Roland Kuhn
* Patrik Nordwall
2014-02-02 16:21:44 +01:00
Eric Pederson
0a8f0e8dd8 =con #3834 Doc fixes for ReliableProxy 2014-01-23 13:19:40 -05:00
Eric Pederson
fcb7a6c292 !con #3820 Add reconnection to ReliableProxy 2014-01-20 11:41:48 +01:00
Patrik Nordwall
a11fb1dafc =act #3572 Add parens to sender
* because it is not referentially transparent; normally we reserved parens for
  side-effecting code but given how people thoughtlessly close over it we revised
  that that decision for sender
* caller can still omit parens
2014-01-17 18:21:14 +01:00
Patrik Nordwall
537840bd2a Merge pull request #1931 from drewhk/wip-3689-remove-typed-channels-drewhk
!cha #3789: Remove typed channels
2014-01-17 09:10:06 -08:00
Endre Sándor Varga
293dd0b9d2 !act #3812: Remove Pipelines 2014-01-17 15:52:24 +01:00
Roland Kuhn
453815c073 Merge pull request #1933 from akka/wip-3764-props-docs-∂π
clean up docs and deprecation around how to create Props
2014-01-17 05:57:37 -08:00
Endre Sándor Varga
31c4d76ba7 !cha #3789: Remove typed channels 2014-01-17 14:56:51 +01:00
Patrik Nordwall
497c0c3924 Merge pull request #1934 from akka/wip-3781-remove-sbt-plugin-patriknw
!pro,sbt #3781 Remove akka-sbt-plugin
2014-01-17 05:42:11 -08:00
Endre Sándor Varga
cf58402dd9 !rem #3765: Change the defaults for remoting
- removed retry-window and related settings
 - removed gate-invalid-addresses-for
 - gate is now mandatory
 - remoting has a dedicated dispatcher by default
 - updated tests to work with changed timings
 - added doc section for association lifecycle
2014-01-17 11:29:22 +01:00
Patrik Nordwall
bedfad5435 !pro,sbt #3781 Remove akka-sbt-plugin 2014-01-17 11:09:28 +01:00
Roland Kuhn
5bcb750441 !act,doc,rem,tes 3823 remove deprecated Props methods
- rewrite deprecated usages to their recommended counterparts
- TestActorRef now verifies mailbox requirements
- CallingThreadMailbox now exposes proper messageQueue type for
  inspection
2014-01-17 09:12:44 +01:00
Patrik Nordwall
32b76adb9a Merge pull request #1918 from akka/wip-2927-balancing-pool-patriknw
!act #2927 Add BalancingPool and deprecate BalancingDispatcher
2014-01-16 12:30:26 -08:00
Patrik Nordwall
d7aab50da0 !act #2927 Add BalancingPool and deprecate BalancingDispatcher 2014-01-16 19:06:42 +01:00
Patrik Nordwall
2e5193347e !clu #3617 API improvements related to CurrentClusterState
* Getter for CurrentClusterState in Cluster extension, updated via
  ClusterReadView
* Remove lazy init of readView. Otherwise the cluster.state will be
  empty on first access, wich is probably surprising
* Subscribe to several cluster event types at once, to ensure *one*
  CurrentClusterEvent followed by change events
* Deprecate publishCurrentClusterState, was a bad idea, use sendCurrentClusterState
  instead
* Possibility to subscribe with InitialStateAsEvents to receive events corresponding
  to CurrentClusterState
* CurrentClusterState not a ClusterDomainEvent, ticket #3614
2014-01-16 16:17:44 +01:00
Patrik Nordwall
dd3d3da452 =tra #3668 Deprecate transactors 2013-12-13 11:00:06 +01:00