在Scala中创建新的Drools KieSession的“正确”方法是什么?我发现的资源主要是基于Java的,我已经适应了Scala并获得了某种类型(可行):

def getKieSession(fileName: String): KieSession = {
    val kieServices = KieServices.Factory.get()

    val kfs = kieServices.newKieFileSystem()
    val fis = new FileInputStream(fileName)

    kfs.write("src/main/resources/rulesfile.drl", kieServices.getResources().newInputStreamResource(fis))

    val kieBuilder = kieServices.newKieBuilder(kfs).buildAll()

    val results = kieBuilder.getResults()
    if (results.hasMessages(Message.Level.ERROR)) {
      throw new RuntimeException(results.getMessages().toString())
    }

    val kieContainer = kieServices.newKieContainer(kieServices.getRepository().getDefaultReleaseId())
    val kieBase = kieContainer.getKieBase() //Necessary?

    kieContainer.newKieSession()
  }

我正在尝试简化代码并在调用Kie服务和创建新的KieSession之间拆分功能 . 我相信创建一个新会话需要整个方法,但我不确定中间位是否必要(kfs.write) .

对此有何指导? (还有,是的,还在修补Scala Drools)