Этот метод заменяет typsafe включающие пути к файлам в файле, размещенном в каталоге ресурсов. Он работает локально, но не работает при работе в банке на GCP dataproc
def getTypeSafeConfig(conf: DatalakeConfig): Config = {
val env = conf.env
val resourcesPath = getClass
.getResource("/activity/mlmActivityProducer.conf")
.getPath.replace("/activity/mlmActivityProducer.conf", "")
println(resourcesPath)
val accountsConfigPath = s"${resourcesPath}/accounts/$env/accounts.conf"
val mlmConfigPath = s"${resourcesPath}/mlm.conf"
val accountsTestScenarioConfigPath = s"${resourcesPath}/activity/testScenario.conf"
val stream =
getClass.getResourceAsStream("/activity/mlmActivityProducer.conf")
val lines = scala.io.Source.fromInputStream( stream ).getLines
var s = ""
lines.foreach(l => {
val ll = l
.replace(ACCOUNTS_CONFIG_PATH, accountsConfigPath)
.replace(MLM_CONFIG_PATH, mlmConfigPath)
.replace(ACCOUNTS_TEST_SCENARIO_CONFIG_PATH,
accountsTestScenarioConfigPath)
// println(s"floki: ${ll}")
s += s"\n${ll}"
})
println(s"res: $s")
ConfigFactory.parseString(s)
}
Это пути, назначенные в Dataproc:
include file("file:/tmp/87a59d76c5814f30aa29935f397593cf/common-1.0.0-SNAPSHOT.jar!/accounts/qe/accounts.conf")
include file("file:/tmp/87a59d76c5814f30aa29935f397593cf/common-1.0.0-SNAPSHOT.jar!/mlm.conf")
include file("file:/tmp/87a59d76c5814f30aa29935f397593cf/common-1.0.0-SNAPSHOT.jar!/activity/testScenario.conf")