in scrooge-sbt-plugin/src/main/scala/com/twitter/ScroogeSBT.scala [12:57]
private[this] def generatedExtensionPattern(language: String): String =
if (language.endsWith("java")) "*.java" else "*.scala"
private[this] def compile(
log: Logger,
outputDir: File,
thriftFiles: Set[File],
thriftIncludes: Set[File],
namespaceMappings: Map[String, String],
language: String,
flags: Set[ServiceOption],
disableStrict: Boolean,
scalaWarnOnJavaNSFallback: Boolean,
defaultNamespace: String,
addRootDirImporter: Boolean
): Unit = {
val originalLoader: Option[ClassLoader] =
// We have to change the class loader so Mustache resolver can see resources.
// TODO: Please, remove it once Mustache is updated to >=0.9.
if (language.toLowerCase == "java") {
val original = Thread.currentThread.getContextClassLoader
Thread.currentThread.setContextClassLoader(getClass.getClassLoader)
Some(original)
} else None
val cfg = ScroogeConfig(
destFolder = outputDir.getPath,
includePaths = thriftIncludes.map(_.getPath).toList,
thriftFiles = thriftFiles.map(_.getPath).toList,
flags = flags,
namespaceMappings = namespaceMappings,
strict = !disableStrict,
scalaWarnOnJavaNSFallback = scalaWarnOnJavaNSFallback,
defaultNamespace = defaultNamespace,
language = language.toLowerCase,
addRootDirImporter = addRootDirImporter
)
try {
val compiler = new Compiler(cfg)
compiler.run()
} finally {
originalLoader.foreach(Thread.currentThread.setContextClassLoader)
}
}