def validateResource(filePath: Path, defaultFolder: String): Validation[Resource] = {
val defaultPath = defaultFolder / filePath
val classPathResource = Option(getClass.getClassLoader.getResource(defaultPath.toString.replace('\\', '/'))).map { url =>
url.getProtocol match {
case "file" => FileResource(url.getFile.toFile)
case "jar" => ClassPathResource(url, filePath.extension)
case _ => throw new UnsupportedOperationException
}
}
val resource = classPathResource.orElse(filePath.ifFile(path => FileResource(path.toFile)))
resource.map(_.success).getOrElse(s"file $filePath doesn't exist".failure)
}
def feederResource(filePath: Path) = feederFileMemo.getOrElseUpdate(filePath, validateResource(filePath, "data"))
are actually the culprit.