diff options
Diffstat (limited to 'kamon-core/src/main/scala/kamon/supervisor/ModuleSupervisorSettings.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/supervisor/ModuleSupervisorSettings.scala | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/kamon-core/src/main/scala/kamon/supervisor/ModuleSupervisorSettings.scala b/kamon-core/src/main/scala/kamon/supervisor/ModuleSupervisorSettings.scala new file mode 100644 index 00000000..c5556004 --- /dev/null +++ b/kamon-core/src/main/scala/kamon/supervisor/ModuleSupervisorSettings.scala @@ -0,0 +1,33 @@ +package kamon.supervisor + +import akka.actor.ActorSystem + +case class AvailableModuleInfo(name: String, extensionClass: String, requiresAspectJ: Boolean, autoStart: Boolean) +case class ModuleSupervisorSettings(disableAspectJMissingWarning: Boolean, availableModules: List[AvailableModuleInfo]) { + val modulesRequiringAspectJ = availableModules.filter(_.requiresAspectJ) +} + +object ModuleSupervisorSettings { + + def apply(system: ActorSystem): ModuleSupervisorSettings = { + import kamon.util.ConfigTools.Syntax + + val config = system.settings.config.getConfig("kamon.modules") + val disableAspectJMissingWarning = system.settings.config.getBoolean("kamon.disable-aspectj-missing-warning") + + val modules = config.firstLevelKeys + val availableModules = modules.map { moduleName ⇒ + val moduleConfig = config.getConfig(moduleName) + + AvailableModuleInfo( + moduleName, + moduleConfig.getString("extension-id"), + moduleConfig.getBoolean("requires-aspectj"), + moduleConfig.getBoolean("auto-start")) + + } toList + + ModuleSupervisorSettings(disableAspectJMissingWarning, availableModules) + } + +} |