Dear hAkkers,
we—the Akka committers—are pleased to announce the THIRD PRE-RELEASE MILESTONE of Akka 2.2 “Coltrane”. As discussed earlier this is meant to be the final and feature-complete milestone, so please take a good look and give feedback. We will gladly fix all rough edges you report while we will thoroughly test and benchmark and if necessary improve the current state of the toolkit. We do this so that we can then confidently proclaim the first release candidate in a few weeks.
Reliable delivery of system messages, meaning that remote DeathWatch and remote deployment now work properly even if the network fails (DeathWatch worked already for the cluster case)
Failure and DeathWatch communication is reliable (technically the corresponding messages became a system messages to profit from reliable delivery); failure signaling semantics changed such that the supervisor strategy may be invoked earlier than in previous versions (the Failed message “jumps the queue”)
The generation of the Terminated message has been made more intuitive: you will no longer receive it after having unwatched the actor in question; also DeathPactException now leads to Stop instead of Restart in the defaultStrategy
Mailboxes can now be configured separately from dispatchers, either from Props or from deployment configuration section, for example this means that it is easier to use the stashing mailbox
Cluster nodes cannot rejoin a cluster, UIDs have been introduced to prevent communication with systems which were removed from the cluster
ActorRefs now refer to a specific actor incarnation at a path; if you create a new actor at the same path then old ActorRefs will not send to it (this used to be the case only locally, hence we removed the difference in semantics observed with remoting); this change means that actorFor() needed to be deprecated in favor of actorSelection() which has been brought up to speed wrt. remote look-ups
The IO layer learned SSL and WriteFile for TCP, names have been cleaned up for UDP, spray-io’s pipelines have been incorporated, complete samples including ACK- and NACK-based back-pressure have been added and more documentation updates will be coming
Props have been restructured to not rely on closures internally but only on Class[_] and arrays of (serializable) arguments; this has been done to avoid closing over actor internal state or other non-serializable data; consequently the closure-taking Props(new Actor ...) and the UntypedActorFactory have been deprecated (in the Java case this usually even saves a few lines of code on your end); there will be a more detailed blog post on this soon
Lots of little fixes and hardening, especially of the cluster code
Cluster-aware distributed Pub-Sub module and external cluster client
This is a lot and should probably justify the time it took since the last milestone which was released exactly one month ago.
Besides testing and benchmarking there are some things we need to clean up internally before calling it a final, and we also want to comb through especially the JavaDoc since that is just a machine translation of the ScalaDoc and does not everywhere look as complete as it could.
Release Details
When migrating an existing project from Akka 2.1.2 please have a look at our migration guide: http://doc.akka.io/docs/akka/2.2-M3/project/migration-guide-2.1.x-2.2.x.html
v2.2-M2 compared to Akka v2.2-M3:
* 84 tickets closed
* 553 files changed, 32738 insertions(+), 15684 deletions(-)
* 637 pages of docs vs 489 in v2.2-M2
* … and a total of 10 committers!
Special thanks go to Christophe and Raman for their contribution of an OSGi sample application, and to Mathias and Johannes of spray.io for their continued work on the IO layer.
Website:
Binary distribution:
http://download.akka.io/downloads/akka-2.2-M3.tgz
http://download.akka.io/downloads/akka-2.2-M3.zip
Documentation:
http://doc.akka.io/docs/akka/2.2-M3/
http://doc.akka.io/japi/akka/2.2-M3/
http://doc.akka.io/api/akka/2.2-M3/
Issue tracker:
http://www.assembla.com/spaces/akka/
Mailing list:
https://groups.google.com/group/akka-user
Akka is released under the Apache V2 license.
Tickets:
1165 create remote client for decoupling Akka application (clusters)
1478 system messages shall “eventually” be delivered
1910 Create Protobuf messages out of all the Gossip protocol classes
1994 THOUGHTSTORMING: DOCS: investigate JavaDoc-like output format for Java API
2299 make Failed a SystemMessage
2594 - Implement quarantining of addresses upon request in remoting
2687 Solve the problem of needing different mailbox for some actors (e.g. Stash) while sharing the dispatcher with others
2728 Public TestFSMRef constructor takes ActorSystemImpl
2734 Should router always stop when all routees terminated?
2774 DOC: Don't hardcode config JAR version in migration guide
2788 add tombstone for nodes in REMOVED state
2797 ClusterRouterConfig doesn't stop routees
2802 Add membership state transition guards
2811 Improve docs for Akka IO
2839 Add dispatcherId to deployment config
2873 Disallow Re-JOINING (incl. tests)
2896 add Transfer command for TCP
2930 UnreachableNodeRejoinsClusterSpec failed - timeout changing throttler mode
2970 Use a lightweight ExecutionContext to execute the PromiseActorRef cleanup instead of defaultDispatcher
2993 Reliable remote supervision and death watch
3018 Enable -Xlint
3042 Make JavaTestKit match TestKit
3058 Discuss simplification/unification of Udp APIs
3070 Don't close Associations when unserializable or oversized messages are encountered
3072 add UID to RemoteActorRef
3074 deprecate actorFor() in favor of ActorSelection
3077 deprecate ActorRef.isTerminated
3078 create matrix for ordering requirements between all well-known message types
3081 deprecate closure-taking Props factories
3082 decide upon which implementation of Iteratees to support in the new akka.io package
3107 Config comment refers to secure cookie script which doesn't exist
3119 improve ActorCell “stash” for SystemMessages
3127 - ship 2.2-M3 "feature complete"
3128 TcpConnectionSpec - Connection reset by peer != Broken pipe
3134 FAILED: leaking threads again?
3137 sending systemA’s LocalActorRef to systemB’s RemoteActorRef will inject wrong host:port information
3139 Assert that we don't get conflicting vector clocks in the mergeSeen
3140 FAILED: TransitionSpec failure on scalable1
3142 Compile a list of messages that needs Protobuf serialization
3144 Publishing on Windows has a problem with the path sent to genjavadoc
3150 Skip joining members when looking for convergence
3151 Strange logging in SuperVisorHierarchySpec
3156 make Terminated a SystemMessage
3161 SSL truststores ignored on server side
3162 Cleanup after failed init of Cluster extension
3165 Stack overflow when warning about serialization
3166 FSM.initialize should have empty parentheses
3168 awaitAssert = awaitCond with better error reporting
3170 FAILED: Coroner's Report: akka.io.TcpConnectionSpec
3171 FAILED: akka.cluster.MembershipChangeListenerExiting
3174 transport spray-io pipelines over to akka.io package
3179 FAILED: akka.cluster.SplitBrainWithFailureDetectorPuppet
3181 NPE in FaultHandling
3185 TcpConnection must close only one direction when remote endpoint closes.
3188 add @throws clause to UntypedActor life-cycle hooks
3190 update to Netty 3.6.4
3191 Race in SelectionHandler leading to CancelledKeyExceptions
3197 ScalaDoc for ExtensionKey (Scala API) incorrect
3198 FAILED: CoronerSpec
3199 ActWithStash ignores whenStopping and whenRestarted
3200 TCP: introduce ResumeWriting to recover from NACK
3202 deprecate HashedWheelTimer
3203 Distributed pub-sub
3204 Key password and key store password are not the same
3206 Add expectTerminated method to TestKit
3207 FAILED: docs.future.FutureDocSpec
3209 Don't send Remove command to unreachable
3212 FAILED: OSGI sample doesn't build
3213 RemotingSpec fails on master
3215 FAILED: JavaTestKitSpec expectTerminated
3216 FAILED: akka-sample-osgi-dining-hakkers
3218 Update Netty to 3.6.5
3219 FAILED: TcpConnectionSpec
3221 FSM setTimer throws NPE if used in preStart
3222 DeathPactException leads to Restart by default
3229 FAILED: SupervisorSpec
3230 Tcp / Udp: add actually bound port in Bound message
3231 clear ActorCell’s sysmsgStash upon termination
3232 Wrong sender for first message delivered to deadLetters when trying to send to unknown host
3234 FAILED: take actor incarnation into account when comparing actor references
3235 DOCS: make sure that IO error handling is properly described
3236 port SslTlsSupport from spray-io
3239 Duplicate MemberUp events
3249 FAILED: NewRemoteActorSpec
Credits:
commits added removed
20 6439 2396 Patrik Nordwall
13 4035 2077 Viktor Klang
10 7806 2061 Roland
8 1781 341 Björn Antonsson
8 5586 3101 Endre Sándor Varga
8 265 93 Johannes Rudolph
4 40 22 Mathias
3 1212 490 Raman Gupta
3 1336 240 Christophe Pache
1 129 23 Rich Dougherty
Patrik Nordwall
Typesafe - The software stack for applications that scale
Twitter: @patriknw
Hello! Congratulations and thank you for your work!
I have started playing with 2.2 cluster several days ago, so it is time to update to M3. I will give you feedback.
Have you decided in M3 how spray-io and new akka-io will divide their work?
----- Weitergeleitete Message -----
Von: Markus Jais <marku...@yahoo.de>
An: Patrik Nordwall <patrik....@gmail.com>
Gesendet: 21:43 Sonntag, 21.April 2013
Betreff: Re: [scala-user] ANNOUNCE: Akka 2.2-M3 (PRE-RELEASE MILESTONE)
Awesome work. Thanks to everyone who worked in this.Akka is the most interesting technology on the JVM that I've come across - and I've used a lot.Markus
Von: Patrik Nordwall <patrik....@gmail.com>
An: "akka...@googlegroups.com" <akka...@googlegroups.com>; scala-user <scala...@googlegroups.com>; "akka...@googlegroups.com" <akka...@googlegroups.com>
Gesendet: 21:51 Freitag, 19.April 2013
Betreff: [scala-user] ANNOUNCE: Akka 2.2-M3 (PRE-RELEASE MILESTONE)
--
You received this message because you are subscribed to the Google Groups "scala-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-user+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
-->>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://akka.io/faq/
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user?hl=en.
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://akka.io/faq/
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.