Skip to content

Instantly share code, notes, and snippets.

@leogrim
Last active May 2, 2016 17:40
Show Gist options
  • Save leogrim/2feaeb008315eaaaffe1872d0d2bdb90 to your computer and use it in GitHub Desktop.
Save leogrim/2feaeb008315eaaaffe1872d0d2bdb90 to your computer and use it in GitHub Desktop.
class ConfigurationModule(functionalModules: ScalaModule*) extends ScalaModule with Logging {
final def configure() {
log.info(s"Configuring ${this}")
functionalModules.foreach { module =>
log.info(s"Install ${module}")
install(module)
}
}
}
trait FunctionalModuleA extends ScalaModule
trait FunctionalModuleB extends ScalaModule
trait FunctionalModuleCD extends ScalaModule
class ServiceAConfigurationModule(functionalModuleA: FunctionalModuleA, functionalModuleCD: FunctionalModuleCD)
extends ConfigurationModule(functionalModuleA, functionalModuleCD)
class ServiceBConfigurationModule(functionalModuleB: FunctionalModuleB, functionalModuleCD: FunctionalModuleCD)
extends ConfigurationModule(functionalModuleB, functionalModuleCD)
class DevelopmentConfigurationModule(
functionalModuleA: FunctionalModuleA
functionalModuleB: FunctionalModuleB,
functionalModuleCD: FunctionalModuleCD
) extends ConfigurationModule(functionalModuleA, functionalModuleB, functionalModuleCD)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment