Akka 2.2.0-RC1 Released

Dear hAkkers,

we—the Akka committers—proudly announce the FIRST RELEASE CANDIDATE for Akka 2.2.0 “Coltrane”. Half a year has passed since the release of Akka 2.1.0 “Mingus” and much has happened in our code base. User-visible API changes have been kept to a minimum, though, as most work happened under the hood; more on that later. First let us take a look at what Coltrane brings you:

This is just a very high-level overview of the biggest pieces, there have also been improvements in other areas like test coverage of our OSGi bundles, or how actor failures are logged, or in the semantics of ActorContext.unwatch(), or a more performant rewrite of Agents, or how dispatchers and mailboxes can be configured outside of your code.

This is what we intend to ship as 2.2.0 final unless issues are found, so please test it thoroughly and report back. Failures are important to hear about, but praise also does not hurt :-)

What changes for existing code?

We have continued on our path to unify the semantics between local and remote actor references. The most obvious difference was that remote references were bound to a name whereas local ones were bound to a specific actor lifecycle. If the local actor stops, the reference stops working, which was not the case for the remote reference in case a new actor was created at the same path. We changed it such that the local rules apply to remote references as well, making the “self” references of actors created subsequently with the same name distinct from each other. As a consequence, ActorRef equality was changed by taking into account the actor’s UID (which you can see in ActorRef.toString now).

The other most visible change concerns the creation of Props. Using anonymous inner classes as factories for your actors means that the required “$outer reference”—the reference to the enclosing scope—will have an influence on the serializability of your Props as well as on the thread-safety. Therefore we have rebased the inner workings of Props on the desired actor’s Class<?> and its constructor arguments. The benefit is that no closures are formed which would invite you e.g. to call methods on the enclosing actor, and also that serialization bindings are used to serialize the constructor arguments. Previously all Props were serialized only with Java serialization. In order to make full use of the potential of this approach we have deprecated some of the existing ways to obtain Props and introduced new ones.

Besides these changes there have been several smaller modifications, please read the migration guide to see if you may need to adapt your application while upgrading.

Where do I get it from?

The artifacts have been published to Maven Central as usual, but this time for two different Scala versions:

using Scala 2.10.1

“com.typesafe.akka” % “akka-actor_2.10” % “2.2.0-RC1”

using Scala 2.11.0-M3

“com.typesafe.akka” % “akka-actor_2.11.0-M3” % “2.2.0-RC1”

Development Statistics (compared to v2.1.0)

1044 files changed, 85693 insertions, 35814 deletions, 23 committers

commits added removed

commits added removed

 127   20030    9910 Patrik Nordwall
  99   20073    8543 Roland
  79   17228    9401 Endre Sándor Varga
  69    7482    6618 Viktor Klang
  49    4820    2677 Björn Antonsson
  20    1610     422 Johannes Rudolph
  18    1586     942 Mathias
  10     135     175 Dario Rexin
   9    1764     440 Rich Dougherty
   5     311     139 RickLatrine
   5    1463     306 Christophe Pache
   3    1212     490 Raman Gupta
   2      83      20 Kaspar Fischer (hbf)
   2      12      12 Ricky Elrod
   2      95      53 Kevin Wright
   2     163      66 Raymond Roestenburg
   2      48      29 Jonas Boner
   1      10       3 Michael Pilquist
   1     548      77 Helena Edelson
   1      38      24 Matthew Neeley
   1       8      10 Peter Vlugter
   1       3       3 Thomas Lockney
   1      36      35 Derek Mahar

Thanks for all the external contributions, 23 committers is quite an outstanding number for a toolkit like Akka.

Assembla milestones:

https://www.assembla.com/spaces/akka/milestones/2690943-2-2-m1

https://www.assembla.com/spaces/akka/milestones/2896213-2-2-m2

https://www.assembla.com/spaces/akka/milestones/2896943-2-2-m3

https://www.assembla.com/spaces/akka/milestones/3089253-2-2-0-rc1

In total we closed 508 tickets on these four milestones.

Website:

http://akka.io

Binary distribution:

http://download.akka.io/downloads/akka-2.2.0-RC1.tgz

http://download.akka.io/downloads/akka-2.2.0-RC1.zip

Documentation:

http://doc.akka.io/docs/akka/2.2.0-RC1/

http://doc.akka.io/japi/akka/2.2.0-RC1/

http://doc.akka.io/api/akka/2.2.0-RC1/

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.

Happy Hakking!

Recent comments

Blog comments powered by Disqus