Commit graph

11916 commits

Author SHA1 Message Date
Roland
c362e8168f update copyright headers 2013-01-31 11:42:39 +01:00
Roland
7ef5ace8d8 add docs on how to create child actors with channels 2013-01-31 11:40:39 +01:00
Roland
f86fa61613 make all arrows invertible 2013-01-31 11:12:17 +01:00
Roland
5e763bbb38 change synthetic sender’s reply type to UnknownDoNotWriteMeDown 2013-01-31 09:05:49 +01:00
Roland
aec29618e3 require “Actor with Channels” by using self-typing 2013-01-31 08:49:12 +01:00
Roland
6e6e7f7e55 first cut of the docs for typed channels 2013-01-31 00:23:35 +01:00
Roland
172a579b3e add ReplyChannels[T] to model fully polymorphic channel forwarding
this enables

class F[T <: ChannelList : TypeTag](t: ChannelRef[T]) extends Channels[T] {
  channel[T] { (x, snd) => x -?-> t -!-> snd }
}

which can then be extended to bunching, filtering, transforming of
message streams.
2013-01-26 22:49:52 +01:00
Roland
6c1edc1f67 the great wrapping
- you can tell/ask WrappedMessage and it will be checked precisely and
  sent naked
- ask() always returns Future[WrappedMessage[_ <: ChannelList, LUB]]
- FutureOps.lub will collapse such a Future into Future[LUB]
- sending a Future[WrappedMessage[_, _]] to a ChannelRef will check it
  precisely and send naked
2013-01-26 22:49:51 +01:00
Roland
f5934b9cca the great beautification
- reify() all trees, no bricolage
- use rediscovered c.TypeTag factory to splice in calculated types
- give meaningful names to type parameters and humunguosly explode val
  names
2013-01-26 22:49:51 +01:00
Roland
e55e57060b finally found out how to splice types
- add Helpers.weakTT for producing a WeakTypeTag from a tpe
- use that to simplify Ask.scala (the others will follow)
- and this way make forwarding actually work
2013-01-26 22:49:46 +01:00
Roland
e862890ded major facelift: -!-> and -?-> appear
- rename projects to akka-channels and akka-channels-tests
- move implementation into akka.channels.macros package
- remove picking up ActorRef as sender (or none at all)
- factor out logic to make different façades acting upon Future[] or Any
  so that -!-> and -?-> can complement the traditional <-!- and <-?-
- the new operators are easily distinguishable from !/? and the
  rightwards-pointing go with the flow and compose better, let’s try
  them out
2013-01-22 23:03:43 +01:00
Roland
cfcc9da9bc add verification of ping-pong chains
- basic principle is that if we get a reply of type T1 and our channels
  allow us to reply to such a message with type T2, then the target
  needs to support that as well, and so on.
- due to this, forwarding will have to be restricted; but it might well
  be that forwarding will not be completely safe in any case
2013-01-08 12:08:41 +01:00
Roland
74f6dd789b add check that all channels were declared 2013-01-07 16:49:08 +01:00
Roland
dc254d7ab1 add check for same-erasure channels 2013-01-07 16:16:43 +01:00
Roland
697a7f863b add typed ask support 2013-01-06 22:05:07 +01:00
Roland
df4a6f1dd9 add polymorphic channels
- channel[T <: ChannelList] takes a WrappedMessage[T] => Unit function
  because there cannot be a typed sender reference (which type would it
  have?)
- ChannelRef[T] allows forwarding of WrappedMessage[T] (and nothing
  else; keeping the sender is essential)
- move ActorRef.narrow implicit into the package object
- do not accept top-level Channels which send to their parent
2013-01-06 18:50:49 +01:00
Roland
da10291cdd add narrowing from ActorRef to ChannelRef 2013-01-03 23:36:44 +01:00
Roland
4b2a28887d add ChannelRef.narrow[] 2013-01-03 21:11:20 +01:00
Roland
cc2cda8752 add tests for parentChannel 2013-01-03 19:53:22 +01:00
Roland
363fa71f4b change Recv[] from partial to total function
- also change :=: to :+: for faster typing pleasure on US keyboards
2013-01-03 19:44:37 +01:00
Roland
b004f1210e replace Channel[] trait with simple Tuple2 for nicer syntax 2013-01-02 21:22:49 +01:00
Roland
3521e27efe clean it up a little
- remove Parent trait and use ChannelList to describe the parent
- remove ugly hack and switch to erasure-based dispatch to the channels
- add parentChannel
- make ChannelRef a value class
2013-01-01 21:30:59 +01:00
Roland
8a4fca72f7 add selfChannel and createChildren 2012-12-31 18:38:06 +01:00
Roland
db40d51c05 half-done PoC of typed channels 2012-12-31 16:37:58 +01:00
Viktor Klang (√)
3cd9cca74a Merge pull request #982 from akka/wip-minor-cleanup-√
Moderate restructuring of NettyTransport
2012-12-23 13:16:51 -08:00
Roland
8c547aa2e6 update multi-jvm docs for scalatest 1.9.1 2012-12-23 20:18:19 +01:00
Roland
f48bdbecf2 update to CrossVersion.binary deps
- scala-stm_2.10 % 0.7
- scalatest_2.10 % 1.9.1
- scalacheck_2.10 % 1.10.0
2012-12-23 10:24:07 +01:00
Björn Antonsson
b197fc2664 Merge pull request #977 from akka/wip-2820-transformationsamplejapispec-failure-ban
#2820 TransformationSampleJapiSpec failure
2012-12-23 00:52:41 -08:00
Viktor Klang
1a770621f7 Moderate restructuring of NettyTransport 2012-12-21 21:44:07 +01:00
Roland
40d2d482e0 update link of migration guide to 2.0.4 2012-12-21 21:23:52 +01:00
Björn Antonsson
4b55276f59 Merge pull request #979 from akka/wip-2822-resizerspec-fix-ban
Harden ResizerSpec a bit more. See #2822
2012-12-21 11:07:58 -08:00
Viktor Klang (√)
7e91e48b69 Merge pull request #981 from akka/wip-minor-cleanup-√
Minor cleanups in new remoting
2012-12-21 10:11:51 -08:00
Viktor Klang
bf2593300b Minor restructuring of the EndpointWriter 2012-12-21 18:12:22 +01:00
Roland
ea08994d24 update to staged 2.10.0 release, CrossVersion.binary, see #2684 2012-12-21 17:18:03 +01:00
Viktor Klang
40204de3e7 Minor cleanups in new remoting 2012-12-21 15:51:52 +01:00
Björn Antonsson
0bb55870cd Harden ResizerSpec a bit more. See #2822 2012-12-21 14:52:38 +01:00
Björn Antonsson
8bf7c03158 Bump allowed times to 20 seconds since MemberUp comes later now. See #2820 2012-12-21 14:27:36 +01:00
drewhk
8a9f30d4ac Merge pull request #970 from drewhk/wip-2844-promise-already-completed-drewhk
Fixes in NettyTransport, ThrottlerTransportAdapter, removal of Status #2844
2012-12-21 04:41:05 -08:00
Endre Sándor Varga
af5e756508 Fixes in NettyTransport, ThrottlerTransportAdapter, removal of Status #2844
- Promise was completed twice erroneously
 - Purged the trait Status from Transport, using failed futures instead
 - using intercept instead of try ... catch in tests
 - added termination hook for UntrustedSpec to shut down second system
 - Fixed threading issues in ThrottlerTransportAdapter
 - Removed nulls from exception constructors
 - replaced Promise.successful(...).future with Future.successful
2012-12-21 13:04:49 +01:00
Roland Kuhn
0585651794 Merge pull request #974 from akka/wip-2851-PeekMailbox-∂π
fix sometimes-off-by-one in PeekMailbox, see #2851
2012-12-21 01:48:06 -08:00
Roland
298bab0cd8 fix sometimes-off-by-one in PeekMailbox, see #2851 2012-12-21 10:46:45 +01:00
Roland Kuhn
a7f8fe7e8e Merge pull request #952 from akka/wip-2783-guarantees-∂π
discuss message delivery guarantees in more detail, see #2783
2012-12-20 10:34:35 -08:00
Roland
7535c24164 discuss message delivery guarantees in more detail, see #2783
- also add PeekMailbox extension for demonstration of that principle
2012-12-20 19:31:24 +01:00
Viktor Klang (√)
970ea36184 Merge pull request #967 from akka/wip-2818-prolong-timeouts-typedactorspec-√
#2818 - prolonging TypedActorSpec timeouts for the Option-returning met...
2012-12-20 06:13:16 -08:00
Viktor Klang
08ea72aa35 Merge branch 'master' of github.com:akka/akka 2012-12-20 15:12:39 +01:00
Viktor Klang
c2a7fc3ed3 Minor boyscouting substituting a null for Actor.noSender 2012-12-20 15:12:25 +01:00
Viktor Klang (√)
fa13c7d401 Merge pull request #968 from drewhk/wip-2834-fix-address-in-weightedrouteespec-drewhk
Changed protocol fields from "akka" to "tcp.akka"
2012-12-20 05:43:36 -08:00
Viktor Klang (√)
e6bb697812 Merge pull request #971 from akka/wip-2841-remove-stacktraces-√
#2841 – remove stack traces from new remoting exceptions
2012-12-20 05:08:18 -08:00
Viktor Klang
da84f03e46 #2841 – remove stack traces from new remoting exceptions 2012-12-20 13:57:53 +01:00
Patrik Nordwall
a3efff4141 Merge pull request #972 from akka/wip-2837-jul-toc-master-patriknw
Add java.util.logging to contrib toc, see #2837
2012-12-20 04:53:11 -08:00