You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@esme.apache.org by le...@apache.org on 2012/08/22 13:12:19 UTC

svn commit: r1375985 - in /esme/branches/akka: ./ src/main/scala/bootstrap/liftweb/ src/main/scala/org/apache/esme/actor/ src/main/scala/org/apache/esme/model/

Author: lester
Date: Wed Aug 22 11:12:18 2012
New Revision: 1375985

URL: http://svn.apache.org/viewvc?rev=1375985&view=rev
Log:
ESME-360: Finished work on XMPP Consumer component action.

Modified:
    esme/branches/akka/build.sbt
    esme/branches/akka/pom.xml
    esme/branches/akka/src/main/scala/bootstrap/liftweb/Boot.scala
    esme/branches/akka/src/main/scala/org/apache/esme/actor/UserActor.scala
    esme/branches/akka/src/main/scala/org/apache/esme/actor/XmppReceiver.scala
    esme/branches/akka/src/main/scala/org/apache/esme/actor/XmppSupervisor.scala
    esme/branches/akka/src/main/scala/org/apache/esme/model/Action.scala

Modified: esme/branches/akka/build.sbt
URL: http://svn.apache.org/viewvc/esme/branches/akka/build.sbt?rev=1375985&r1=1375984&r2=1375985&view=diff
==============================================================================
--- esme/branches/akka/build.sbt (original)
+++ esme/branches/akka/build.sbt Wed Aug 22 11:12:18 2012
@@ -48,7 +48,7 @@ libraryDependencies ++= {
     "org.scalaz" %% "scalaz-core" % scalazVersion % "compile->default",
     "com.typesafe.akka" % "akka-actor" % akkaVersion % "compile->default",
     "com.typesafe.akka" % "akka-camel" % "2.1-20120701-002745" % "compile->default",
-    "org.apache.camel" % "camel-xmpp" % "2.8.0" % "compile->default",
+    "org.apache.camel" % "camel-xmpp" % "2.10.0" % "compile->default",
     "javax.servlet" % "servlet-api" % "2.5" % "provided->default",
     "org.compass-project" % "compass" % compassVersion % "compile->default",
     "org.apache.lucene" % "lucene-core" % luceneVersion % "compile->default",

Modified: esme/branches/akka/pom.xml
URL: http://svn.apache.org/viewvc/esme/branches/akka/pom.xml?rev=1375985&r1=1375984&r2=1375985&view=diff
==============================================================================
--- esme/branches/akka/pom.xml (original)
+++ esme/branches/akka/pom.xml Wed Aug 22 11:12:18 2012
@@ -226,7 +226,7 @@
         <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-xmpp</artifactId>
-            <version>2.8.0</version>
+            <version>2.10.0</version>
         </dependency>
         <dependency>
             <groupId>org.compass-project</groupId>

Modified: esme/branches/akka/src/main/scala/bootstrap/liftweb/Boot.scala
URL: http://svn.apache.org/viewvc/esme/branches/akka/src/main/scala/bootstrap/liftweb/Boot.scala?rev=1375985&r1=1375984&r2=1375985&view=diff
==============================================================================
--- esme/branches/akka/src/main/scala/bootstrap/liftweb/Boot.scala (original)
+++ esme/branches/akka/src/main/scala/bootstrap/liftweb/Boot.scala Wed Aug 22 11:12:18 2012
@@ -251,8 +251,9 @@ class Boot extends Loggable {
     ConvDistributor.touch
     // ScalaInterpreter.touch
 
-    val sys = ActorSystem("camel")
-    val xmppSupervisor = sys.actorOf(AkkaProps(new XmppSupervisor()), "XmppSupervisor")
+
+    val xmppSupervisor = AkkaActorSystem.sys.actorOf(AkkaProps(new XmppSupervisor()), "XmppSupervisor")
+    xmppSupervisor ! XmppSupervisor.Init()
 
     // Initiating popular links and resent messages
     val resentPeriod = Props.getLong("stats.resent.period", 1 week)
@@ -300,6 +301,11 @@ class Boot extends Loggable {
   private def makeUtf8(req: HTTPRequest) = {req.setCharacterEncoding("UTF-8")}
 }
 
+
+object AkkaActorSystem {
+  lazy val sys = ActorSystem("camel")
+}
+
 /*
 * Set up compass search environment
 */

Modified: esme/branches/akka/src/main/scala/org/apache/esme/actor/UserActor.scala
URL: http://svn.apache.org/viewvc/esme/branches/akka/src/main/scala/org/apache/esme/actor/UserActor.scala?rev=1375985&r1=1375984&r2=1375985&view=diff
==============================================================================
--- esme/branches/akka/src/main/scala/org/apache/esme/actor/UserActor.scala (original)
+++ esme/branches/akka/src/main/scala/org/apache/esme/actor/UserActor.scala Wed Aug 22 11:12:18 2012
@@ -31,6 +31,7 @@ import model._
 import lib._
 
 import akka.actor.{Props => AkkaProps, ActorSystem}
+import bootstrap.liftweb.AkkaActorSystem.sys
 import XmppSender._
 
 import java.util.{TimeZone, Calendar}
@@ -64,7 +65,6 @@ object UserActor {
   val xmppUsr = Props.get("xmpp.user") openOr ""
   val xmppPwd = Props.get("xmpp.password") openOr ""
   val xmppServiceName = Props.get("xmpp.serviceName") openOr ""
-  val sys = ActorSystem("camel")
   val XmppSender = sys.actorOf(AkkaProps(new XmppSender(xmppHost, xmppPort.toInt, xmppUsr, xmppPwd, xmppServiceName)), "XmppSender")
 }
 
@@ -290,8 +290,7 @@ class UserActor extends LiftActor {
               Distributor.AddMessageToMailbox(id, msg, ResendReason(userId))
 
             case XmppFrom(_) => {
-              val sys = ActorSystem("camel")
-              sys.actorFor("XmppSupervisor") ! XmppSupervisor.Fetch(td.performId)
+              sys.actorFor("akka://camel/user/XmppSupervisor") ! XmppSupervisor.Fetch(td.performId)
             }
 
 

Modified: esme/branches/akka/src/main/scala/org/apache/esme/actor/XmppReceiver.scala
URL: http://svn.apache.org/viewvc/esme/branches/akka/src/main/scala/org/apache/esme/actor/XmppReceiver.scala?rev=1375985&r1=1375984&r2=1375985&view=diff
==============================================================================
--- esme/branches/akka/src/main/scala/org/apache/esme/actor/XmppReceiver.scala (original)
+++ esme/branches/akka/src/main/scala/org/apache/esme/actor/XmppReceiver.scala Wed Aug 22 11:12:18 2012
@@ -20,6 +20,10 @@ class XmppReceiver(esmeSrv: String, esme
 
   def endpointUri = {val uri = "xmpp://%s@%s:%s/%s?password=%s" format (esmeUsr, esmeSrv, esmePort, participant, esmePwd); logger.info("XMPP URI is: %s".format(uri)); uri}
 
+  override def preStart() {
+    logger.info("XmppReceiver - preStart() called")
+  }
+
   def receive = {
     case msg: CamelMessage => {
       messages = (msg.bodyAs[String], System.currentTimeMillis) :: messages

Modified: esme/branches/akka/src/main/scala/org/apache/esme/actor/XmppSupervisor.scala
URL: http://svn.apache.org/viewvc/esme/branches/akka/src/main/scala/org/apache/esme/actor/XmppSupervisor.scala?rev=1375985&r1=1375984&r2=1375985&view=diff
==============================================================================
--- esme/branches/akka/src/main/scala/org/apache/esme/actor/XmppSupervisor.scala (original)
+++ esme/branches/akka/src/main/scala/org/apache/esme/actor/XmppSupervisor.scala Wed Aug 22 11:12:18 2012
@@ -11,6 +11,7 @@ object XmppSupervisor {
 
 
   sealed trait XmppSupervisorActions
+  case class Init() extends XmppSupervisorActions
   case class Fetch(id: Long) extends XmppSupervisorActions
   case class Start(id: Long, who: String, usr: User) extends XmppSupervisorActions
   case class Stop(id: Long) extends XmppSupervisorActions
@@ -30,7 +31,7 @@ class XmppSupervisor extends Actor {
 
 
   override def preStart() {
-    logger.info("preStart() called")
+    logger.info("XmppSupervisor - preStart() called")
 
     xmppHost = Props.get("xmpp.host") openOr ""
     xmppPort = Props.get("xmpp.port") openOr ""
@@ -40,20 +41,22 @@ class XmppSupervisor extends Actor {
   }
 
   def receive = {
+    case Init() => logger.info("XmppSupervisor - Init message received")
     case Start(id, who, usr) => {
-      logger.info("Start message received. User: %s, who: %s".format(usr, who))
+      logger.info("XmppSupervisor - Start message received. User: %s, who: %s".format(usr, who))
       xmppPullActors += (id -> context.actorOf(AkkaProps(new XmppReceiver(xmppHost, xmppPort.toInt, xmppUsr, xmppPwd, xmppServiceName, who, usr))))
     }
     case Stop(id) => {
+      logger.info("XmppSupervisor - Stop message received")
       xmppPullActors.get(id).foreach { ref =>
         context.stop(ref)
         xmppPullActors -= id
       }
     }
     case Fetch(id) => {
-      logger.info("Fetch message received")
+      logger.info("XmppSupervisor - Fetch message received")
       xmppPullActors.get(id).foreach(ref => ref ! FetchMessages)
     }
-    case _ => logger.info("Unknown message received")
+    case _ => logger.info("XmppSupervisor - Unknown message received")
   }
 }

Modified: esme/branches/akka/src/main/scala/org/apache/esme/model/Action.scala
URL: http://svn.apache.org/viewvc/esme/branches/akka/src/main/scala/org/apache/esme/model/Action.scala?rev=1375985&r1=1375984&r2=1375985&view=diff
==============================================================================
--- esme/branches/akka/src/main/scala/org/apache/esme/model/Action.scala (original)
+++ esme/branches/akka/src/main/scala/org/apache/esme/model/Action.scala Wed Aug 22 11:12:18 2012
@@ -35,13 +35,11 @@ import java.util.Date
 import scala.xml.{Text, Node, Elem => XmlElem}
 
 import akka.actor.{Props => AkkaProps, ActorSystem}
+import bootstrap.liftweb.AkkaActorSystem.sys
 
 object Action extends Action with LongKeyedMetaMapper[Action] with Logger {
 
   val logger: Logger = Logger("org.apache.esme.model")
-  val sys = ActorSystem("camel")
-  val xmppSupervisor = sys.actorFor("XmppSupervisor")
-
 
   override def afterCommit = notifyDistributor _ :: super.afterCommit
 
@@ -50,7 +48,7 @@ object Action extends Action with LongKe
                                                 Distributor.PerformTrackingType)
   
   }
-  
+
   override def create: Action = {
     val ap = super.create
     ap.createdDate(new Date())
@@ -66,7 +64,7 @@ object Action extends Action with LongKe
     } else {
       SchedulerActor ! SchedulerActor.StopRegular(in.id)
       MessagePullActor ! MessagePullActor.StopPullActor(in.id)
-      xmppSupervisor ! XmppSupervisor.Stop(in.id)
+      sys.actorFor("akka://camel/user/XmppSupervisor") ! XmppSupervisor.Stop(in.id)
     }
   }
   
@@ -194,7 +192,6 @@ object Action extends Action with LongKe
  */
 class Action extends LongKeyedMapper[Action] {
 
-  import Action.xmppSupervisor
   import Action.logger
 
   /**
@@ -230,8 +227,9 @@ class Action extends LongKeyedMapper[Act
       }
       case XmppFrom(who) => {
         User.find(user) match {
-          case Full(u) =>
-            xmppSupervisor ! XmppSupervisor.Start(id.is, who, u)
+          case Full(u) => {
+            sys.actorFor("akka://camel/user/XmppSupervisor") ! XmppSupervisor.Start(id.is, who, u)
+          }
           case _ =>
         }
       }