diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2015-08-28 13:02:09 +0200 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2015-08-28 13:02:09 +0200 |
commit | ec91eede73e20fef3b694fa45009ddd0ef0b345b (patch) | |
tree | b3aa59dfaa1da122072864b1b343a1ea9835a57b /kamon-core/src/main/scala/kamon/ModuleLoader.scala | |
parent | df3711e177b58ce752592736f0a327c920adb3f0 (diff) | |
download | Kamon-ec91eede73e20fef3b694fa45009ddd0ef0b345b.tar.gz Kamon-ec91eede73e20fef3b694fa45009ddd0ef0b345b.tar.bz2 Kamon-ec91eede73e20fef3b694fa45009ddd0ef0b345b.zip |
wip, core/akka/spray are kind of migrated.
Diffstat (limited to 'kamon-core/src/main/scala/kamon/ModuleLoader.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/ModuleLoader.scala | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/kamon-core/src/main/scala/kamon/ModuleLoader.scala b/kamon-core/src/main/scala/kamon/ModuleLoader.scala index a26fd339..f240f6ce 100644 --- a/kamon-core/src/main/scala/kamon/ModuleLoader.scala +++ b/kamon-core/src/main/scala/kamon/ModuleLoader.scala @@ -21,6 +21,7 @@ import _root_.akka.actor._ import _root_.akka.event.Logging import org.aspectj.lang.ProceedingJoinPoint import org.aspectj.lang.annotation.{ Around, Pointcut, Aspect } +import org.slf4j.LoggerFactory private[kamon] object ModuleLoader extends ExtensionId[ModuleLoaderExtension] with ExtensionIdProvider { def lookup(): ExtensionId[_ <: actor.Extension] = ModuleLoader @@ -28,23 +29,22 @@ private[kamon] object ModuleLoader extends ExtensionId[ModuleLoaderExtension] wi } private[kamon] class ModuleLoaderExtension(system: ExtendedActorSystem) extends Kamon.Extension { - val log = Logging(system, "ModuleLoader") + val log = LoggerFactory.getLogger(getClass) val settings = ModuleLoaderSettings(system) if (settings.modulesRequiringAspectJ.nonEmpty && !isAspectJPresent && settings.showAspectJMissingWarning) logAspectJWeaverMissing(settings.modulesRequiringAspectJ) // Force initialization of all modules marked with auto-start. - settings.availableModules.filter(_.autoStart).foreach { module ⇒ - if (module.extensionClass == "none") - log.debug("Ignoring auto start of the [{}] module with no extension class.", module.name) - else - system.dynamicAccess.getObjectFor[ExtensionId[Kamon.Extension]](module.extensionClass).map { moduleID ⇒ - log.debug("Auto starting the [{}] module.", module.name) + settings.availableModules.filter(_.startInfo.nonEmpty).foreach { + case AvailableModuleInfo(name, requiresAJ, Some(ModuleStartInfo(autoStart, extensionClass))) if autoStart ⇒ + + system.dynamicAccess.getObjectFor[ExtensionId[Kamon.Extension]](extensionClass).map { moduleID ⇒ + log.debug(s"Auto starting the [$name] module.") moduleID.get(system) } recover { - case th: Throwable ⇒ log.error(th, "Failed to auto start the [{}] module.", module.name) + case th: Throwable ⇒ log.error(s"Failed to auto start the [$name] module.", th) } } @@ -82,7 +82,8 @@ private[kamon] class ModuleLoaderExtension(system: ExtendedActorSystem) extends } } -private[kamon] case class AvailableModuleInfo(name: String, extensionClass: String, requiresAspectJ: Boolean, autoStart: Boolean) +private[kamon] case class AvailableModuleInfo(name: String, requiresAspectJ: Boolean, startInfo: Option[ModuleStartInfo]) +private[kamon] case class ModuleStartInfo(autoStart: Boolean, extensionClass: String) private[kamon] case class ModuleLoaderSettings(showAspectJMissingWarning: Boolean, availableModules: List[AvailableModuleInfo]) { val modulesRequiringAspectJ = availableModules.filter(_.requiresAspectJ) } @@ -98,12 +99,15 @@ private[kamon] object ModuleLoaderSettings { val modules = config.firstLevelKeys val availableModules = modules.map { moduleName ⇒ val moduleConfig = config.getConfig(moduleName) + val requiresAspectJ = moduleConfig.getBoolean("requires-aspectj") + + val startInfo = + if (moduleConfig.hasPath("auto-start") && moduleConfig.hasPath("extension-class")) + Some(ModuleStartInfo(moduleConfig.getBoolean("auto-start"), moduleConfig.getString("extension-class"))) + else + None - AvailableModuleInfo( - moduleName, - moduleConfig.getString("extension-id"), - moduleConfig.getBoolean("requires-aspectj"), - moduleConfig.getBoolean("auto-start")) + AvailableModuleInfo(moduleName, requiresAspectJ, startInfo) } toList |