diff --git a/.gitignore b/.gitignore index 898a7a0..7ba73f7 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ *~ #sbt +/project/plugins.sbt /project/target/ /project/project/target diff --git a/build.sbt b/build.sbt index 9189455..342276e 100644 --- a/build.sbt +++ b/build.sbt @@ -12,8 +12,8 @@ resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/release libraryDependencies ++= Seq( "org.scalatest" %% "scalatest" % "1.9.1" % "test", - "com.typesafe.akka" %% "akka-testkit" % "2.1.4", - "com.typesafe.akka" %% "akka-agent" % "2.1.4", + "com.typesafe.akka" %% "akka-testkit" % "2.2.1" % "test", + "com.typesafe.akka" %% "akka-agent" % "2.2.1", "com.typesafe" %% "scalalogging-slf4j" % "1.0.1", "org.slf4j" % "slf4j-api" % "1.7.1", "ch.qos.logback" % "logback-classic" % "1.0.3" @@ -62,4 +62,4 @@ pomExtra := ( http://beachape.com -) \ No newline at end of file +) diff --git a/project/plugins.sbt b/project/plugins.sbt deleted file mode 100644 index f16e234..0000000 --- a/project/plugins.sbt +++ /dev/null @@ -1 +0,0 @@ -addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.4.0") diff --git a/src/main/scala/com/beachape/filemanagement/CallbackActor.scala b/src/main/scala/com/beachape/filemanagement/CallbackActor.scala index a4b7058..163a57d 100644 --- a/src/main/scala/com/beachape/filemanagement/CallbackActor.scala +++ b/src/main/scala/com/beachape/filemanagement/CallbackActor.scala @@ -13,7 +13,7 @@ object CallbackActor { * Factory method for props required to spawn a MonitorActor * @return Props for spawning an actor */ - def apply() = Props(new CallbackActor) + def apply() = Props(classOf[CallbackActor]) } /** diff --git a/src/main/scala/com/beachape/filemanagement/MonitorActor.scala b/src/main/scala/com/beachape/filemanagement/MonitorActor.scala index e3bd574..371f5a7 100644 --- a/src/main/scala/com/beachape/filemanagement/MonitorActor.scala +++ b/src/main/scala/com/beachape/filemanagement/MonitorActor.scala @@ -12,6 +12,7 @@ import scala.language.existentials import scala.language.postfixOps import akka.routing.SmallestMailboxRouter import com.beachape.filemanagement.Messages._ +import scala.concurrent.Await /** * Companion object for creating Monitor actor instances @@ -26,7 +27,7 @@ object MonitorActor { */ def apply(concurrency: Int = 5) = { require(concurrency > 1, s"Callback concurrency requested is $concurrency but it should at least be 1") - Props(new MonitorActor(concurrency)) + Props(classOf[MonitorActor], concurrency) } } @@ -40,6 +41,7 @@ class MonitorActor(concurrency: Int = 5) extends Actor with Logging with Recursi implicit val timeout = Timeout(10 seconds) implicit val system = context.system + implicit val ec = context.dispatcher // Round-robin of callback performers helps control concurrency val callbackActorsRoundRobin = context.actorOf( @@ -181,7 +183,7 @@ class MonitorActor(concurrency: Int = 5) extends Actor with Logging with Recursi def callbacksForPath(eventType: WatchEvent.Kind[Path], path: Path): Option[Callbacks] = { eventTypeCallbackRegistryMap. get(eventType). - flatMap(registryAgent => registryAgent.await.callbacksForPath(path)) + flatMap(registryAgent => Await.result(registryAgent.future, 10 seconds).callbacksForPath(path)) } /**