diff --git a/README.textile b/README.textile index 1960754d56..bdc09d7ff0 100755 --- a/README.textile +++ b/README.textile @@ -1,15 +1,15 @@ h1. Akka -We believe that writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it's because we are using the wrong tools and the wrong level of abstraction. +We believe that writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it's because we are using the wrong tools and the wrong level of abstraction. -Akka is here to change that. +Akka is here to change that. -Using the Actor Model together with Software Transactional Memory we raise the abstraction level and provide a better platform to build correct concurrent and scalable applications. +Using the Actor Model together with Software Transactional Memory we raise the abstraction level and provide a better platform to build correct concurrent and scalable applications. -For fault-tolerance we adopt the "Let it crash" / "Embrace failure" model which have been used with great success in the telecom industry to build applications that self-heal, systems that never stop. +For fault-tolerance we adopt the "Let it crash" / "Embrace failure" model which have been used with great success in the telecom industry to build applications that self-heal, systems that never stop. -Actors also provide the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications. +Actors also provide the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications. Akka is Open Source and available under the Apache 2 License. -Learn more at "http://akkasource.org":http://akkasource.org \ No newline at end of file +Learn more at "http://akkasource.org":http://akkasource.org. \ No newline at end of file diff --git a/akka-core/src/main/scala/remote/RemoteClient.scala b/akka-core/src/main/scala/remote/RemoteClient.scala index d731a07d57..0728f07758 100644 --- a/akka-core/src/main/scala/remote/RemoteClient.scala +++ b/akka-core/src/main/scala/remote/RemoteClient.scala @@ -52,7 +52,9 @@ case class RemoteClientDisconnected( @BeanProperty val client: RemoteClient) extends RemoteClientLifeCycleEvent case class RemoteClientConnected( @BeanProperty val client: RemoteClient) extends RemoteClientLifeCycleEvent -case class RemoteClientStopped( +case class RemoteClientStarted( + @BeanProperty val client: RemoteClient) extends RemoteClientLifeCycleEvent +case class RemoteClientShutdown( @BeanProperty val client: RemoteClient) extends RemoteClientLifeCycleEvent /** @@ -213,6 +215,7 @@ class RemoteClient private[akka] (val hostname: String, val port: Int, val loade foreachListener(l => l ! RemoteClientError(connection.getCause, this)) log.error(connection.getCause, "Remote client connection to [%s:%s] has failed", hostname, port) } + foreachListener(l => l ! RemoteClientStarted(this)) isRunning = true } } @@ -221,11 +224,11 @@ class RemoteClient private[akka] (val hostname: String, val port: Int, val loade log.info("Shutting down %s", name) if (isRunning) { isRunning = false + foreachListener(l => l ! RemoteClientShutdown(this)) timer.stop openChannels.close.awaitUninterruptibly bootstrap.releaseExternalResources log.info("%s has been shut down", name) - foreachListener(l => l ! RemoteClientStopped(this)) } } diff --git a/akka-core/src/main/scala/remote/RemoteServer.scala b/akka-core/src/main/scala/remote/RemoteServer.scala index c28c0b5a0d..5f3c12d5a4 100644 --- a/akka-core/src/main/scala/remote/RemoteServer.scala +++ b/akka-core/src/main/scala/remote/RemoteServer.scala @@ -406,7 +406,7 @@ class RemoteServerHandler( def operationComplete(future: ChannelFuture): Unit = { if (future.isSuccess) { openChannels.add(future.getChannel) - server.foreachListener(_ ! RemoteServerClientConnected(server)) + server.foreachListener(_ ! RemoteServerClientConnected(server)) } else future.getChannel.close } }) @@ -415,7 +415,7 @@ class RemoteServerHandler( override def channelClosed(ctx: ChannelHandlerContext, event: ChannelStateEvent) = { log.debug("Remote client disconnected from [%s]", server.name) - server.foreachListener(_ ! RemoteServerClientDisconnected(server)) + server.foreachListener(_ ! RemoteServerClientDisconnected(server)) } override def handleUpstream(ctx: ChannelHandlerContext, event: ChannelEvent) = { diff --git a/akka-http/src/main/scala/AkkaLoader.scala b/akka-http/src/main/scala/AkkaLoader.scala index 886c2c0688..e7169e94d2 100644 --- a/akka-http/src/main/scala/AkkaLoader.scala +++ b/akka-http/src/main/scala/AkkaLoader.scala @@ -45,33 +45,30 @@ class AkkaLoader extends Logging { } private def printBanner = { - log.info( -""" - t - t t t - t t tt t - tt t t tt t - t ttttttt t ttt t - t tt ttt t ttt t - t t ttt t ttt t t - tt t ttt ttt ttt t - t t ttt ttt t tt t - t ttt ttt t t - tt ttt ttt t - ttt ttt - tttttttt ttt ttt ttt ttt tttttttt - ttt tt ttt ttt ttt ttt ttt ttt - ttt ttt ttt ttt ttt ttt ttt ttt - ttt ttt ttt ttt ttt tt ttt ttt - tttt ttttttttt tttttttt tttt - ttttttttt ttt ttt ttt ttt ttttttttt - ttt ttt ttt ttt ttt ttt ttt ttt - ttt ttt ttt ttt ttt ttt ttt ttt - ttt tt ttt ttt ttt ttt ttt ttt - tttttttt ttt ttt ttt ttt tttttttt - -================================================== -""") + log.info("==================================================") + log.info(" t") + log.info(" t t t") + log.info(" t t tt t") + log.info(" tt t t tt t") + log.info(" t ttttttt t ttt t") + log.info(" t tt ttt t ttt t") + log.info(" t t ttt t ttt t t") + log.info(" tt t ttt ttt ttt t") + log.info(" t t ttt ttt t tt t") + log.info(" t ttt ttt t t") + log.info(" tt ttt ttt t") + log.info(" ttt ttt") + log.info(" tttttttt ttt ttt ttt ttt tttttttt") + log.info(" ttt tt ttt ttt ttt ttt ttt ttt") + log.info(" ttt ttt ttt ttt ttt ttt ttt ttt") + log.info(" ttt ttt ttt ttt ttt tt ttt ttt") + log.info(" tttt ttttttttt tttttttt tttt") + log.info(" ttttttttt ttt ttt ttt ttt ttttttttt") + log.info(" ttt ttt ttt ttt ttt ttt ttt ttt") + log.info(" ttt ttt ttt ttt ttt ttt ttt ttt") + log.info(" ttt tt ttt ttt ttt ttt ttt ttt") + log.info(" tttttttt ttt ttt ttt ttt tttttttt") + log.info("==================================================") log.info(" Running version %s", Config.VERSION) log.info("==================================================") } diff --git a/project/build/AkkaProject.scala b/project/build/AkkaProject.scala index 1bf8cb883f..116f577e41 100644 --- a/project/build/AkkaProject.scala +++ b/project/build/AkkaProject.scala @@ -81,20 +81,20 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) { // Versions // ------------------------------------------------------------------------------------------------------------------- - lazy val ATMO_VERSION = "0.6.1" - lazy val CAMEL_VERSION = "2.4.0" - lazy val CASSANDRA_VERSION = "0.6.1" - lazy val DispatchVersion = "0.7.4" - lazy val HAWTDISPATCH_VERSION = "1.0" - lazy val JacksonVersion = "1.2.1" - lazy val JERSEY_VERSION = "1.2" - lazy val LIFT_VERSION = "2.1-M1" - lazy val MULTIVERSE_VERSION = "0.6" - lazy val SCALATEST_VERSION = "1.2-for-scala-2.8.0.final-SNAPSHOT" - lazy val LOGBACK_VERSION = "0.9.24" - lazy val SLF4J_VERSION = "1.6.0" - lazy val SPRING_VERSION = "3.0.3.RELEASE" - lazy val WerkzVersion = "2.2.1" + lazy val ATMO_VERSION = "0.6.1" + lazy val CAMEL_VERSION = "2.4.0" + lazy val CASSANDRA_VERSION = "0.6.1" + lazy val DISPATCH_VERSION = "0.7.4" + lazy val HAWT_DISPATCH_VERSION = "1.0" + lazy val JACKSON_VERSION = "1.2.1" + lazy val JERSEY_VERSION = "1.2" + lazy val LIFT_VERSION = "2.1-M1" + lazy val MULTIVERSE_VERSION = "0.6" + lazy val SCALATEST_VERSION = "1.2-for-scala-2.8.0.final-SNAPSHOT" + lazy val LOGBACK_VERSION = "0.9.24" + lazy val SLF4J_VERSION = "1.6.0" + lazy val SPRING_VERSION = "3.0.3.RELEASE" + lazy val ASPECTWERKZ_VERSION = "2.2.1" // ------------------------------------------------------------------------------------------------------------------- // Dependencies @@ -131,8 +131,8 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) { lazy val configgy = "net.lag" % "configgy" % "2.8.0-1.5.5" % "compile" - lazy val dispatch_http = "net.databinder" % "dispatch-http_2.8.0" % DispatchVersion % "compile" - lazy val dispatch_json = "net.databinder" % "dispatch-json_2.8.0" % DispatchVersion % "compile" + lazy val dispatch_http = "net.databinder" % "dispatch-http_2.8.0" % DISPATCH_VERSION % "compile" + lazy val dispatch_json = "net.databinder" % "dispatch-json_2.8.0" % DISPATCH_VERSION % "compile" lazy val grizzly = "com.sun.grizzly" % "grizzly-comet-webserver" % "1.9.18-i" % "compile" @@ -140,11 +140,11 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) { lazy val h2_lzf = "voldemort.store.compress" % "h2-lzf" % "1.0" % "compile" - lazy val hawtdispatch = "org.fusesource.hawtdispatch" % "hawtdispatch-scala" % HAWTDISPATCH_VERSION % "compile" + lazy val hawtdispatch = "org.fusesource.hawtdispatch" % "hawtdispatch-scala" % HAWT_DISPATCH_VERSION % "compile" - lazy val jackson = "org.codehaus.jackson" % "jackson-mapper-asl" % JacksonVersion % "compile" - lazy val jackson_core = "org.codehaus.jackson" % "jackson-core-asl" % JacksonVersion % "compile" - lazy val jackson_core_asl = "org.codehaus.jackson" % "jackson-core-asl" % JacksonVersion % "compile" + lazy val jackson = "org.codehaus.jackson" % "jackson-mapper-asl" % JACKSON_VERSION % "compile" + lazy val jackson_core = "org.codehaus.jackson" % "jackson-core-asl" % JACKSON_VERSION % "compile" + lazy val jackson_core_asl = "org.codehaus.jackson" % "jackson-core-asl" % JACKSON_VERSION % "compile" lazy val jersey = "com.sun.jersey" % "jersey-core" % JERSEY_VERSION % "compile" lazy val jersey_json = "com.sun.jersey" % "jersey-json" % JERSEY_VERSION % "compile" @@ -196,8 +196,8 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) { lazy val thrift = "com.facebook" % "thrift" % "r917130" % "compile" - lazy val werkz = "org.codehaus.aspectwerkz" % "aspectwerkz-nodeps-jdk5" % WerkzVersion % "compile" - lazy val werkz_core = "org.codehaus.aspectwerkz" % "aspectwerkz-jdk5" % WerkzVersion % "compile" + lazy val werkz = "org.codehaus.aspectwerkz" % "aspectwerkz-nodeps-jdk5" % ASPECTWERKZ_VERSION % "compile" + lazy val werkz_core = "org.codehaus.aspectwerkz" % "aspectwerkz-jdk5" % ASPECTWERKZ_VERSION % "compile" // Test