From e1a3c9dff5b5a43198f29193f57b411d97ac5d02 Mon Sep 17 00:00:00 2001 From: Viktor Klang Date: Sun, 23 Oct 2011 00:40:09 +0200 Subject: [PATCH] #1059 - Removing ListenerManagement from RemoteSupport, publishing to AkkaApplication.eventHandler --- .../akka/remote/RemoteEventHandler.scala | 51 ------------------- .../scala/akka/remote/RemoteInterface.scala | 16 +----- .../main/scala/akka/remote/RemoteDaemon.scala | 4 +- 3 files changed, 4 insertions(+), 67 deletions(-) delete mode 100644 akka-actor/src/main/scala/akka/remote/RemoteEventHandler.scala diff --git a/akka-actor/src/main/scala/akka/remote/RemoteEventHandler.scala b/akka-actor/src/main/scala/akka/remote/RemoteEventHandler.scala deleted file mode 100644 index 1cc70ad6ee..0000000000 --- a/akka-actor/src/main/scala/akka/remote/RemoteEventHandler.scala +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright (C) 2009-2011 Typesafe Inc. - */ - -package akka.remote - -import akka.actor.Actor - -/** - * RemoteModule client and server event listener that pipes the events to the standard Akka EventHander. - * - * @author Jonas Bonér - */ -class RemoteEventHandler extends Actor { - - def receive = { - - // client - case RemoteClientError(cause, client, address) ⇒ - app.eventHandler.error(cause, client, "RemoteClientError - Address[%s]" format address.toString) - case RemoteClientWriteFailed(request, cause, client, address) ⇒ - app.eventHandler.error(cause, client, "RemoteClientWriteFailed - Request[%s] Address[%s]".format(request, address.toString)) - case RemoteClientDisconnected(client, address) ⇒ - app.eventHandler.info(client, "RemoteClientDisconnected - Address[%s]" format address.toString) - case RemoteClientConnected(client, address) ⇒ - app.eventHandler.info(client, "RemoteClientConnected - Address[%s]" format address.toString) - case RemoteClientStarted(client, address) ⇒ - app.eventHandler.info(client, "RemoteClientStarted - Address[%s]" format address.toString) - case RemoteClientShutdown(client, address) ⇒ - app.eventHandler.info(client, "RemoteClientShutdown - Address[%s]" format address.toString) - - // server - case RemoteServerError(cause, server) ⇒ - app.eventHandler.error(cause, server, "RemoteServerError") - case RemoteServerWriteFailed(request, cause, server, clientAddress) ⇒ - app.eventHandler.error(cause, server, "RemoteServerWriteFailed - Request[%s] Address[%s]" format (request, clientAddress.toString)) - case RemoteServerStarted(server) ⇒ - app.eventHandler.info(server, "RemoteServerStarted") - case RemoteServerShutdown(server) ⇒ - app.eventHandler.info(server, "RemoteServerShutdown") - case RemoteServerClientConnected(server, clientAddress) ⇒ - app.eventHandler.info(server, "RemoteServerClientConnected - Address[%s]" format clientAddress.toString) - case RemoteServerClientDisconnected(server, clientAddress) ⇒ - app.eventHandler.info(server, "RemoteServerClientDisconnected - Address[%s]" format clientAddress.toString) - case RemoteServerClientClosed(server, clientAddress) ⇒ - app.eventHandler.info(server, "RemoteServerClientClosed - Address[%s]" format clientAddress.toString) - - case _ ⇒ //ignore other - } -} - diff --git a/akka-actor/src/main/scala/akka/remote/RemoteInterface.scala b/akka-actor/src/main/scala/akka/remote/RemoteInterface.scala index 5df0607365..c1050c7842 100644 --- a/akka-actor/src/main/scala/akka/remote/RemoteInterface.scala +++ b/akka-actor/src/main/scala/akka/remote/RemoteInterface.scala @@ -185,27 +185,15 @@ case class CannotInstantiateRemoteExceptionDueToRemoteProtocolParsingErrorExcept override def printStackTrace(printWriter: PrintWriter) = cause.printStackTrace(printWriter) } -abstract class RemoteSupport(val app: AkkaApplication) extends ListenerManagement with RemoteServerModule with RemoteClientModule { - - lazy val eventHandler: ActorRef = { - implicit object format extends StatelessActorFormat[RemoteEventHandler] - val clazz = classOf[RemoteEventHandler] - val handler = app.provider.actorOf(Props(clazz), clazz.getName, true) - // add the remote client and server listener that pipes the events to the event handler system - addListener(handler) - handler - } +abstract class RemoteSupport(val app: AkkaApplication) extends RemoteServerModule with RemoteClientModule { def shutdown() { - eventHandler.stop() - removeListener(eventHandler) this.shutdownClientModule() this.shutdownServerModule() clear } - protected override def manageLifeCycleOfListeners = false - protected[akka] override def notifyListeners(message: ⇒ Any): Unit = super.notifyListeners(message) + protected[akka] override def notifyListeners(message: ⇒ Any): Unit = app.eventHandler.notify(message) private[akka] val actors = new ConcurrentHashMap[String, ActorRef] private[akka] val actorsByUuid = new ConcurrentHashMap[String, ActorRef] diff --git a/akka-remote/src/main/scala/akka/remote/RemoteDaemon.scala b/akka-remote/src/main/scala/akka/remote/RemoteDaemon.scala index 5ec6188120..d05b178a9f 100644 --- a/akka-remote/src/main/scala/akka/remote/RemoteDaemon.scala +++ b/akka-remote/src/main/scala/akka/remote/RemoteDaemon.scala @@ -78,8 +78,8 @@ class Remote(val app: AkkaApplication) extends RemoteService { val remote = new akka.remote.netty.NettyRemoteSupport(app) remote.start(hostname, port) remote.register(remoteDaemonServiceName, remoteDaemon) - remote.addListener(eventStream.channel) - remote.addListener(remoteClientLifeCycleHandler) + app.eventHandler.addListener(eventStream.channel) + app.eventHandler.addListener(remoteClientLifeCycleHandler) // TODO actually register this provider in app in remote mode //provider.register(ActorRefProvider.RemoteProvider, new RemoteActorRefProvider) remote