import com.ckkloverdos.convert.Converters.{DefaultConverters => TheDefaultConverters}
import gr.grnet.aquarium.actor.provider.ActorProvider
-import gr.grnet.aquarium.service.{IMEventProcessorService, ResourceEventProcessorService}
import gr.grnet.aquarium.util.{Lifecycle, Loggable}
import gr.grnet.aquarium.store._
+import service.{AkkaService, IMEventProcessorService, ResourceEventProcessorService}
/**
* The master configurator. Responsible to load all of application configuration and provide the relevant services.
private[this] lazy val _imEventProc = new IMEventProcessorService
- private[this] lazy val _lifecycleServices = List(_restService, _actorProvider, _resEventProc, _imEventProc)
+ private[this] lazy val _lifecycleServices = List(AkkaService, _restService, _actorProvider, _resEventProc, _imEventProc)
def get(key: String, default: String = ""): String = props.getOr(key, default)
import ch.qos.logback.classic.joran.JoranConfigurator
import ch.qos.logback.core.util.StatusPrinter
import com.ckkloverdos.maybe.{NoVal, Maybe, Failed, Just}
+import util.date.TimeHelpers
import util.{LazyLoggable, Loggable}
/**
}
}
- def main(args: Array[String]) = {
+ def doStart(): Unit = {
import ResourceLocator.{AQUARIUM_HOME, AQUARIUM_HOME_FOLDER, CONF_HERE, AKKA_HOME}
-
- configureLogging()
-
- logger.info("Starting Aquarium from {}", AQUARIUM_HOME_FOLDER)
-
// We have AKKA builtin, so no need to mess with pre-existing installation.
if(AKKA_HOME.value.isJust) {
val error = new AquariumException("%s is set. Please unset and restart Aquarium".format(AKKA_HOME.name))
Runtime.getRuntime.addShutdownHook(new Thread(new Runnable {
def run = {
- logger.info("Shutting down Aquarium")
- mc.stopServices()
- Actor.registry.shutdownAll()
+ logStopping()
+ val (ms0, ms1, _) = TimeHelpers.timed {
+ mc.stopServices()
+ }
+ logStopped(ms0, ms1)
}
}))
+ }
+
+ def main(args: Array[String]) = {
+ import ResourceLocator.AQUARIUM_HOME_FOLDER
- logger.info("Started Aquarium")
+ configureLogging()
+
+ logStarting("Aquarium from %s", AQUARIUM_HOME_FOLDER)
+ val (ms0, ms1, _) = TimeHelpers.timed {
+ doStart()
+ }
+ logStarted(ms0, ms1, "Aquarium")
}
}
\ No newline at end of file