diff --git a/project/build.properties b/project/build.properties index c9db036..0eb4904 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,8 +1,9 @@ -#Project properties -#Wed Sep 29 21:20:19 PDT 2010 +#Project Properties +#Wed Sep 29 23:36:32 PDT 2010 project.organization=Urban Airship project.name=Octobot sbt.version=0.7.4 +scala.version=2.8.0 project.version=1.0 build.scala.versions=2.8.0 project.initialize=false diff --git a/src/main/scala/com/urbanairship/octobot/Beanstalk.scala b/src/main/scala/com/urbanairship/octobot/Beanstalk.scala index 02a5574..e9228c8 100644 --- a/src/main/scala/com/urbanairship/octobot/Beanstalk.scala +++ b/src/main/scala/com/urbanairship/octobot/Beanstalk.scala @@ -33,7 +33,6 @@ object Beanstalk { } } - // This code can never be reached, but the compiler wants it. client } } diff --git a/src/main/scala/com/urbanairship/octobot/Metrics.scala b/src/main/scala/com/urbanairship/octobot/Metrics.scala index 5445270..d79eb74 100644 --- a/src/main/scala/com/urbanairship/octobot/Metrics.scala +++ b/src/main/scala/com/urbanairship/octobot/Metrics.scala @@ -41,8 +41,8 @@ object Metrics { executionTimes.put(task, timeList) } else { val timeList = executionTimes.get(task) - if (timeList.size() == 10000) timeList.removeLast() + timeList.addFirst(time) executionTimes.put(task, timeList) } @@ -55,10 +55,8 @@ object Metrics { if (!taskRetries.containsKey(task)) { taskRetries.put(task, retries) } else { - var retriesForTask = taskRetries.get(task) - - retriesForTask += retries - taskRetries.put(task, retriesForTask) + val retriesForTask = taskRetries.get(task) + taskRetries.put(task, retriesForTask + retries) } } } @@ -70,14 +68,14 @@ object Metrics { if (!taskSuccesses.containsKey(task)) { taskSuccesses.put(task, 1) } else { - var success = taskSuccesses.get(task) + val success = taskSuccesses.get(task) taskSuccesses.put(task, success + 1) } } else { if (!taskFailures.containsKey(task)) { taskFailures.put(task, 1) } else { - var failure = taskFailures.get(task) + val failure = taskFailures.get(task) taskFailures.put(task, failure + 1) } } diff --git a/src/main/scala/com/urbanairship/octobot/Octobot.scala b/src/main/scala/com/urbanairship/octobot/Octobot.scala index a4e48c7..76d3f7a 100644 --- a/src/main/scala/com/urbanairship/octobot/Octobot.scala +++ b/src/main/scala/com/urbanairship/octobot/Octobot.scala @@ -20,18 +20,18 @@ object Octobot { if (configFile != null && !configFile.equals("")) { PropertyConfigurator.configure(configFile) } else { - BasicConfigurator.configure() + BasicConfigurator.configure() logger.warn("log4j.configuration not set - logging to stdout.") } // If a startup hook is configured, call it before launching workers. val startupHook = Settings.get("Octobot", "startup_hook") - if (startupHook != null && !startupHook.equals("")) + if (startupHook != null) launchStartupHook(startupHook) // If a shutdown hook is configured, register it. val shutdownHook = Settings.get("Octobot", "shutdown_hook") - if (shutdownHook != null && !shutdownHook.equals("")) + if (shutdownHook != null) registerShutdownHook(shutdownHook) val enableEmailErrors = Settings.getAsBoolean("Octobot", "email_enabled") @@ -44,13 +44,15 @@ object Octobot { new Thread(new Introspector(), "Introspector").start() logger.info("Launching Workers...") - var queues: List[HashMap[String, Any]] = null - try { - queues = getQueues() - } catch { - case ex : NullPointerException => { - logger.fatal("Error: No valid queues found in Settings. Exiting.") - throw new Error("Error: No valid queues found in Settings. Exiting.") + + val queues: List[HashMap[String, Any]] = { + try { + getQueues() + } catch { + case ex : NullPointerException => { + logger.fatal("Error: No valid queues found in Settings. Exiting.") + throw new Error("Error: No valid queues found in Settings. Exiting.") + } } } @@ -64,8 +66,8 @@ object Octobot { // Spawn worker threads for each queue in our configuration. for (i <- 0 until numWorkers) { - var consumer = new QueueConsumer(queue) - var worker = new Thread(consumer, "Worker") + val consumer = new QueueConsumer(queue) + val worker = new Thread(consumer, "Worker") logger.info("Attempting to connect to " + queueConf.get("protocol") + " queue: " + queueConf.get("name") + " with priority " + diff --git a/src/main/scala/com/urbanairship/octobot/TaskExecutor.scala b/src/main/scala/com/urbanairship/octobot/TaskExecutor.scala index 914f1d2..99bd78c 100644 --- a/src/main/scala/com/urbanairship/octobot/TaskExecutor.scala +++ b/src/main/scala/com/urbanairship/octobot/TaskExecutor.scala @@ -6,19 +6,17 @@ import org.json.JSONObject object TaskExecutor { val taskCache = new mutable.HashMap[String, Method] + val argClass = new JSONObject().getClass def execute(taskName: String, message: JSONObject) { - var method: Method = null - if (taskCache.contains(taskName)) { - // TODO refactor as getOrElse - method = taskCache.get(taskName).get - } else { - val task = Class.forName(taskName) - val klass = new JSONObject().getClass - - method = task.getMethod("run", klass) - taskCache.put(taskName, method) + val method: Method = { + taskCache.getOrElse(taskName, { + val task = Class.forName(taskName) + val meth = task.getMethod("run", argClass) + taskCache.put(taskName, meth) + meth + }) } method.invoke(null, message)