Commit graph

183 commits

Author SHA1 Message Date
Roland
4fb0858e55 remote cleanup: include feedback from Viktor and Patrik
- re-label Client/Server to Inbound/Outbound for netty settings
  description
- move to just using exactly one class loader for all reflective
  activities of the ActorSystem, which is either the context class
  loader or the one which loaded the ActorSystem’s class; document that
  putting Akka on boot class path will not work
- be more careful with initializing the Client- and ServerBootstrap
- rename Port to DesiredPortFromConfig to discourage misuse
- write test for NettySettings
- various small fixes
2012-01-30 11:57:24 +01:00
Roland
4482f14650 properly fix the port==0 issue and use it in more tests
- add documentation to RemoteTransport interface what is expected wrt.
  address’ availability before, during and after start()
2012-01-27 15:21:05 +01:00
Roland
ac1ee9ae91 rework use of ClassLoaders, see #1736 2012-01-27 14:21:54 +01:00
Roland
c5fc153a10 rework system initialization, remove remote address from LocalActorRef
- move all creation of ActorRefs into the ActorRefProvider (deadLetters,
  locker)
- rootPath does not contain remote transport address any longer in order
  to start the LocalActorRefProvider before the RemoteTransport; the
  transport address is inserted during serialization only, which enables
  us later to have more than one transport available for one actor
  system (maybe even needed for clustering)
- fix inheritance between DeadLetterActorRef and EmptyLocalActorRef
- document some start-up dependencies by reordering constructor code
- fix remote tests which used self.path for identifying remote actors
  (since that no longer includes the remote transport address)
2012-01-27 12:14:28 +01:00
Roland
edceda8edf restructure remoting
- remove Remote, incorporate its few fields into RemoteActorRefProvider
- rename RemoteSupport to RemoteTransport to sync up with conf and
  the way we talk about it
- remove LocalAddress/RemoteAddress etc. and just have a final case
  class Address(protocol, system, host, port)
- split netty settings out or RemoteSettings into NettySettings
- split out from NettyRemoteSupport.scala: Server.scala, Client.scala,
  Settings.scala

plus a few fixes, including using the contextClassLoader when loading
the provider for ActorSystemImpl
2012-01-20 14:41:15 +01:00
Viktor Klang
6db3e59ce1 Restructuring ActiveRemoteClient, moving to a shared NioClientChannelFactory, making the timer optionally a daemon, switching to channel groups 2012-01-19 15:06:58 +01:00
Viktor Klang
7a3cbdf86f #1656 - Adding support for configuringthreads created by remoting as daemons 2012-01-18 18:10:56 +01:00
Viktor Klang
1756b6aa54 FIXMEs, young grasshopper 2012-01-16 20:18:08 +01:00
Roland
d0498eb32e add Class[_] to LogEvent
- it is customary to use class name for categorizing logs, hence we
  should support it; class is taken from logSource.getClass
- update SLF4J module to use logClass as category and set logSource in
  MDC "akkaSource"
- add docs
2012-01-12 13:29:17 +01:00
Viktor Klang
9c6a856df2 Avoiding 'releaseExternalResources' for the Remote Server's executionHandler 2012-01-09 14:45:29 +01:00
Viktor Klang
f029b8dc91 Adding null-checks in shutdown of ActiveRemoteClient 2012-01-09 14:40:57 +01:00
Viktor Klang
442d597b81 Avoiding to releaseExternalResources on the ExecutionHandler 2012-01-09 14:31:24 +01:00
Viktor Klang
602a036194 Removing the ChannelGroup from the ActiveRemoteClient since it's only going to have one channel at a time anyway 2012-01-09 14:19:40 +01:00
Viktor Klang
07b27ba3de Fixing a logic error inte the ActiveRemoteClient 2012-01-09 13:50:54 +01:00
Viktor Klang
2a05ec288c Switching to backing off by cancel the ChannelFuture 2011-12-30 17:40:11 +01:00
Viktor Klang
dfcd1571fd Adding backoff-timeout to remote configuration 2011-12-30 17:24:23 +01:00
Viktor Klang
018033b9d5 Removing some leftovers in the remoting and tweaking the ActorTimeoutSpec 2011-12-30 12:49:53 +01:00
Viktor Klang
f704eb476d Switching to encoding and decoding the remote messages inside the Netty pipeline 2011-12-30 12:38:27 +01:00
Viktor Klang
5d2bd2492f Switching to using OrderedMemoryAware executor same for all of the remoting, added more remote config tests and switched to mem size conf 2011-12-30 12:04:20 +01:00
Roland
fa2440aeca Merge branch 'wip-1190-remote-DeathWatch-∂π' 2011-12-30 00:22:33 +01:00
Roland
023f4eb0ec fix review comments 2011-12-30 00:12:49 +01:00
Viktor Klang
64fb2d853d Re-adding the ExecutionHandler to try to combat OOME 2011-12-29 18:00:44 +01:00
Roland
b15f4a2f1a remove wasteful way of logging 2011-12-29 16:27:10 +01:00
Viktor Klang
2dffb2b659 Removing wasteful DNS resolve 2011-12-27 20:17:48 +01:00
Viktor Klang
c2597ed33d Adding debug messages for all remote exceptions, to ease debugging of remoting 2011-12-17 15:54:09 +01:00
Roland
92e7693203 Merge remote-tracking branch 'origin/master' into wip-remote-supervision-rk 2011-12-13 16:59:43 +01:00
Roland
7f0275bca2 that was one hell of a FIXME
- fixed so that netty pipeline when generating addresses does not need
  to know the system name of the connecting client (which might differ
  from the local one, of course)
- this entailed differentiating between transport addresses and system
  addresses, which I took as an opportunity to separate everything out
  properly so that address schemas can easily be made pluggable
- made RemoteSupport generic in the address format it supports
- adapt netty stuff, and made everything else work with the most
  generic: ParsedTransportAddress
- did I mention that I statically separated unparsed from parsed
  addresses?
2011-12-11 20:00:26 +01:00
Jonas Bonér
4d649c3903 Removed all @author tags for Jonas Bonér since it has lost its meaning.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-12-09 18:44:59 +01:00
Roland
fac840adfc make remote lookup work
- create RemoteActorRef in actorFor
- simplify send/receive because Futures/Exceptions do not go over the
  wire anymore
- add RemoteCommunicationSpec which uses two ActorSystems communicating
  in the same JVM via TCP socket
2011-12-08 14:44:05 +01:00
Roland
25e23a3378 remove references to Remote* from akka-actor
- moved RemoteInterface.scala into akka-remote, not needed anymore since
  the plugin is loaded as ActorRefProvider now
- removed some old unused imports
- split out remote aspects from Deployer & DeployerSpec into
  RemoteDeployer & RemoteDeployerSpec (the latter in akka-remote)
- created a ticket for cleaning up the rest, mostly remove all
  occurrences of “remote” and “cluster” from akka-actor in this way

All of this was triggered by wanting to:
- change the signature of RemoteSupport.send to require a RemoteActorRef
  recipient
2011-12-07 16:31:29 +01:00
Roland
ea4d30e732 annotate my new FIXMEs with RK 2011-12-03 22:42:13 +01:00
Roland
e38cd19af9 Merge branch 'master' into wip-ActorPath-rk 2011-12-02 13:31:48 +01:00
Patrik Nordwall
82bbca43ab Merge branch 'master' into wip-1378-fixme-patriknw
Conflicts:
	akka-actor/src/main/scala/akka/actor/ActorRef.scala
	akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala
	akka-remote/src/main/scala/akka/remote/netty/NettyRemoteSupport.scala
2011-12-02 09:03:03 +01:00
Viktor Klang
e590a4877a Making the ConsistencySpec a tad more awesomized 2011-12-01 10:27:28 +01:00
Viktor Klang
b42c6b6bd1 Adding the origin address to the SHUTDOWN CommandType when sent and also removed a wasteful FIXME 2011-11-30 18:23:58 +01:00
Viktor Klang
16dee0e481 #1409 - offsetting the raciness and also refrain from having a separate Timer for each Active connection handler 2011-11-30 18:05:11 +01:00
Patrik Nordwall
80ac1737cd First walk throught of FIXME. See #1378
* Fixed obvious
* Created tickets for several, #1408, #1409, #1410, #1412, #1415, 1416, #1418
* Moved LoggingReceive from akka.actor to akka.event
* Touched several of the FIXME to make them visible in code review
2011-11-30 10:48:26 +01:00
Roland
afda539324 merge master into wip-ActorPath-rk 2011-11-29 21:52:18 +01:00
Roland
3182fa3d73 second step: remove LocalActorRefProvider.actors
- duplicate name detection done within ActorCell/ActorSystem (i.e. at
  parent level)
- no caching needed for local look-ups, might re-introduce cache in
  remote layer
- implement suitable equals/hashCode on ActorPaths
- fix some (unintended => buggy) name reuses which previously silently
  returned a different actor
- serialization & EventStreamSpec still failing, need to commit to merge
  in other stuff on which the future fixes will depend
2011-11-29 16:32:50 +01:00
Viktor Klang
16850388e0 Fixing #1379 - making the DLAR the default sender in tell 2011-11-28 17:24:41 +01:00
Viktor Klang
bf20f3fa44 Reinterpretation of Extensions 2011-11-24 18:53:18 +01:00
Roland
dad1c98c48 first step: sanitize ActorPath interface
- remove references to ActorSystem
- make ChildActorPath light-weight (name & parent plus tailrec methods
  for traversing towards root, e.g. toString)
- string rep is full URI always (akka://system-name@host:port/user/bla)
2011-11-24 17:22:53 +01:00
Patrik Nordwall
c53d5e16e5 Merge branch 'master' into wip-1361-modularize-config-reference-patriknw
Conflicts:
	akka-actor/src/main/resources/akka-actor-reference.conf
	akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala
	akka-actor/src/main/scala/akka/actor/ActorSystem.scala
	akka-remote/src/main/scala/akka/remote/Gossiper.scala
	akka-remote/src/main/scala/akka/remote/netty/NettyRemoteSupport.scala
2011-11-24 14:56:19 +01:00
Viktor Klang
4a64428e48 Moving the untrustedMode setting into the marshalling ops 2011-11-24 10:38:36 +01:00
Patrik Nordwall
179399296e Modularize configuration. See #1361
* Split config reference to one for each module/extension.
* Adjusted signature of registerExtension to avoid race of extension init
* Moved Duration.dilated to testkit
* TestKitExtension
* RemoteExtension
* SerializationExtension
* Durable mailboxes extensions
* Fixed broken serialization bindings and added test
* Updated configuration documentation
* System properties akka.remote.hostname akka.remote.port replaced with akka.remote.server.hostname and akka.remote.server.port
* Adjustments of ActorSystem initialization. Still don't like the two-phase constructor/init flow. Very fragile for changes.

Review fixes. SerializationExtension
2011-11-23 20:31:58 +01:00
Patrik Nordwall
e5f8a41cb8 Remove default time unit in config. All durations explicit. See #1363
* Also changed in dispatcher to use explicit Duration instead of Int/Long
2011-11-21 15:18:52 +01:00
Roland
6a8e516b6c change source tag in log events from AnyRef to String
- ensure that no “complex” things are attached to a LogEvent (think
  serialization)
- ensure no escaping the “this” reference via LoggingBus during
  constructors (e.g. ActorSystem)
- change it so that
    + Actor/ActorRef are represented by their address
    + Class[_] by simpleName
    + String by itself
- this means that people need to think a little more while deciding how
  “this” should look like in logging (which I think is a good thing)
2011-11-18 12:24:04 +01:00
Viktor Klang
d63c511401 #1351 - Making sure that the remoting is shut down when the ActorSystem is shut down 2011-11-18 11:16:23 +01:00
Roland
62032cb1ff merge system-cleanup into master 2011-11-17 14:38:49 +01:00
Roland
d381b72061 rename app: ActorSystem to system everywhere 2011-11-17 12:36:35 +01:00