Commit graph

70 commits

Author SHA1 Message Date
Roland
f46c6dc533 introducing: MainBus feat. LoggingBus
most tests passing, everything compiling, but docs not updated and nasty
thread-leak preventing me from running the whole test-suite (which is
the reason for this commit: I want to chase down that one first).

- the app.mainbus is classified by Class[_] (currently lookup, will
  possibly change to sub-class-aware) and accepts AnyRef messages
- LoggingBus handles akka.event-handlers from config specially:
  + start them as system services, supervised by SystemGuardian
  + keep their subscriptions in sync when logLevel_= is called
  + send them InitializeLogger(bus) message before subscribing them (so
    they can register for extras like Mute/UnMute)
- two-phased start-up: first phase with actor-less stdout logging, then
  subscription of config loggers, then remove stdout logger (logLevels
  configurable separately)
- MainBusReaper watches registered receivers and unsubscribes them upon
  death (started in phase 2)
- logger factory on Logging object, needs app/bus and log source;
  default instance in app.log
2011-10-27 12:36:22 +02:00
Roland
d55f02e6c1 merge master into parental-supervision, fixing up resulting breakage 2011-10-21 15:11:43 +02:00
Roland
d3837b9fc3 Introduce parental supervision, BUT TESTS ARE STILL FAILING
- every actor is now supervised, where the root of the tree is
  app.guardian, which has its supervisor field set to a special ActorRef
  obtained from provider.theOneWhoWalksTheBubblesOfSpaceTime (this name
  is meant to indicate that this ref is outside of the universe, cf.
  Michio Kaku)
- changed all tests to obtain specially supervised children (i.e. not
  top-level) via (supervisor ? Props).as[ActorRef].get
- add private[akka] ScalaActorRef.sendSystemMessage for sending
  Supervise()
- everything routing or remote is broken wrt. supervision, as that was
  not “properly” implemented to begin with, will be tackled after
  app/supervision/eventbus/AkkaSpec are stabilized enough
2011-10-19 17:18:50 +02:00
Viktor Klang
0dc3c5ad3d Removing receiver from Envelope and switch to use the Mailbox.actor instead, this should speed up the BalancingDispatcher by some since it doesn't entail any allocations in adopting a message 2011-10-19 13:19:44 +02:00
Viktor Klang
01efcd7b50 Removing ActorCell.ref (use ActorCell.self instead), introducing Props.randomAddress which will use the toString of the uuid of the actor ref as address, bypassing deployer for actors with 'randomAddress' since it isn't possible to know what the address will be anyway, removing Address.validate since it serves no useful purpose, removing guard.withGuard in MessageDispatcher in favor of the less costly lock try-finally unlock strategy 2011-10-18 19:14:42 +02:00
Peter Vlugter
d9e0088f3c Get remoting working under the remote actor ref provider 2011-10-13 18:08:09 +02:00
Roland
44b94643e5 Merge with Peter's work (i.e. merging master into tame-globals) 2011-10-13 14:17:07 +02:00
Peter Vlugter
317b8bc03b Merge master into tame-globals branch 2011-10-13 13:41:44 +02:00
Roland
85b7accfd4 make EventHandler non-global
- add Logging trait for nicer interface
- add EventHandlerLogging class for offering the nice interface from
  app.log
- add eventHandler instance to app and use that for all internal logging
  (this means that some places (dispatchers, remoting) were infiltrated
  by app just to do logging, but I think we'll need app in there soon
  enough for other reasons)
2011-10-13 13:21:59 +02:00
Roland
36ec202d94 rename AkkaConfig values to CamelCase 2011-10-12 11:35:45 +02:00
Roland
14751f7d29 make everything except tutorial-second compile
someone should look at remoting vs. timeout (i.e. which is sent around),
because I removed that in some places. It might simply be irrelevant
once we remove the Future special-casing.
2011-10-12 09:10:05 +02:00
Peter Vlugter
972f4b538f Fix publishing and update organization (groupId)
- fix problem with double organization in pom
- fix scaladoc generation by adding class dir to doc classpath in akka-actor
- update organization to com.typesafe.akka
2011-10-06 15:44:15 +02:00
Viktor Klang
5321d02f64 Removing actorClass from ActorRef signature, makes no sense from the perspective of distribution, and with async start it is racy 2011-10-03 20:47:56 +02:00
Viktor Klang
284a8c4d05 Removing getSupervisor and supervisor from ActorRef, doesn't make sense in a distributed setting 2011-10-03 20:29:41 +02:00
Viktor Klang
69768dbc96 Removing the old Supervision-DSL and replacing it with a temporary one 2011-09-30 14:52:07 +02:00
Viktor Klang
a7cb5b5212 Upgrading to SBT 0.11 2011-09-27 10:37:53 +02:00
Jonas Bonér
00d3b87586 Merge branch 'remote-actorref-provider'
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-09-22 04:38:33 +02:00
Roland
7c63f94169 Refactor Mailbox handling
- rename MessageInvocation to Envelope (same for System...)
- rename MessageQueue to Mailbox and include ExecutableMailbox code
- make MailboxType act as factory, so users can provide their own
- properly type mailbox field as Mailbox everywhere
- adapt CallingThreadDispatcher and some tests
- create DeadletterMailbox and use it to replace actor’s mailbox on
  terminate()
2011-09-21 15:16:14 +02:00
Jonas Bonér
978cbe4437 Change the package name of all classes in remote module to 'akka.remote'.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-09-20 22:08:38 +02:00
Peter Vlugter
7b1cdb4457 Remove SelfActorRef and use ActorContext to access state in ActorInstance. See #1202
- removed SelfActorRef
- added an ActorContext interface that provides a view into ActorInstance
- the ActorInstance (as ActorContext) gets injected into the Actor
- moved self methods like sender and reply directly to the Actor
2011-09-19 12:03:15 +02:00
Peter Vlugter
b96f3d9260 Initial breakout of ActorInstance. See #1195 2011-09-15 09:54:40 +02:00
Viktor Klang
4a0358ad7d Removing LifeCycle from Props, it's now a part of AllForOnePermanent, OneForOnePermanent etc 2011-09-14 18:01:43 +02:00
Jonas Bonér
38c2fe1894 Moved remote-only stuff from akka-cluster to new module akka-remote.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-09-09 13:46:36 +02:00
Jonas Bonér
8e4bcb304a Moved remoting code into akka-cluster.
Removed akka-remote.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-06-23 18:15:47 +02:00
Jonas Bonér
bf0515b8e5 Fixed remaining issues in pluggable serializers (cluster impl) 2011-06-14 19:35:18 +02:00
Debasish Ghosh
f27e23bf1d Merged with master 2011-06-13 13:35:39 +05:30
Jonas Bonér
8098a8d9be Added storage models to remote protocol and refactored all clustering to use it.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-06-10 16:31:24 +01:00
Jonas Bonér
04efc440d6 1. Made LocalActorRef aware of replication
2. Added configuration for transaction log replication
3. Added replication schemes WriteThrough and WriteBehind
4. Refactored serializer creation and lookup in Actor.scala
5. Extended network protocol with replication strategy
6. Added BookKeeper management to tests
7. Improved logging and error messages
8. Removed ReplicatedActorRef
9. Added snapshot management to TransactionLog

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-06-07 11:10:29 -07:00
Debasish Ghosh
40d1ca6da2 Issue #595: Pluggable serializers - basic implementation 2011-06-07 06:36:21 +05:30
Jonas Bonér
f75dcdbd15 Full clustering circle now works, remote communication.
Added test for cluster communication.
Refactored deployment parsing.
Added InetSocketAddress to remote protocol.

Signed-off-by: Jonas Bonér <jonasremove@jonasboner.com>
2011-05-24 19:04:25 +02:00
Viktor Klang
41a08237d9 Moved secure cookie exchange to on connect established, this means I could remove the synchronization on send, enabling muuuch more throughput, also, since the cookie isn`t sent in each message, message size should drop considerably when secure cookie handshakes are enabled. I do however have no way of testing this since it seems like the clustering stuff is totally not working when it comes to the RemoteSupport 2011-05-20 19:40:11 +02:00
Jonas Bonér
b95382c3e2 Merge branch 'wip-new-serialization' 2011-05-20 09:31:57 +02:00
Jonas Bonér
b63709d82c Removed typeclass serialization in favor of reflection-based.
Removed possibility to create multiple ClusterNode, now just one in Cluster.node.
Changed timestamp format for default EventHandler listener to display NANOS.
Cleaned up ClusterModule in ReflectiveAccess.

Signed-off-by: Jonas Bonér <jonasremove@jonasboner.com>
2011-05-20 09:08:11 +02:00
Viktor Klang
236d8e07e9 Removing the old typed actors 2011-05-19 14:29:21 +02:00
Jonas Bonér
a7311c83e6 Added Scalariform sbt plugin which formats code on each compile. Also checking in reformatted code 2011-05-18 17:25:30 +02:00
Jonas Bonér
2655d44ee9 Merged wip-2.0 branch with latest master 2011-05-16 12:32:00 +02:00
Jonas Bonér
6c6089e081 Misc fixes everywhere; deployment, serialization etc. 2011-05-16 09:47:23 +02:00
Viktor Klang
aaa8b163f3 Adding tests for the actor ref serialization bug, 837 2011-05-04 22:16:06 +02:00
Viktor Klang
276f30d30f Fixing ticket #837, broken remote actor refs when serialized 2011-05-04 18:00:24 +02:00
Jonas Bonér
517f9a212b Massive refactorings in akka-cluster. Also added ClusterDeployer that manages deployment data in ZooKeeper 2011-04-29 15:47:56 +02:00
Jonas Bonér
868ec62ee7 Rebased from master branch 2011-04-27 01:06:08 +02:00
Jonas Bonér
2e7c76dd98 Rebased from master 2011-04-27 00:38:10 +02:00
Jonas Bonér
d1bdddd588 mid address refactoring 2011-04-20 09:04:57 +02:00
Jonas Bonér
3374eef6ce Merged with Viktors work with removing client managed actors. Also removed actor.id, added actor.address 2011-04-08 21:16:05 +02:00
Patrik Nordwall
9be19a42c2 fixed warnings, serializable 2011-04-08 16:04:04 +02:00
Jonas Bonér
5f918e55bc commit in the middle of address refactoring 2011-04-08 15:29:14 +02:00
Patrik Nordwall
ab05bf9430 fixed warnings, @serializable -> extends scala.Serializable 2011-04-08 14:10:39 +02:00
Viktor Klang
05ba449919 Removing registerSupervisorAsRemoteActor from ActorRef + SerializationProtocol 2011-04-07 13:50:34 +02:00
Viktor Klang
0dff50fa52 Removed client-managed actors, a lot of deprecated methods and DataFlowVariable (superceded by Future) 2011-04-07 12:48:30 +02:00
Viktor Klang
d738674eeb Switching to PoisonPill to shut down Per-Session actors, and restructuring some Future-code to avoid wasteful object creation 2011-03-18 18:03:10 +01:00