在Scala中创建KieSession(Drools 6.1)

时间:2015-02-13 13:09:55

标签: scala drools

在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)

0 个答案:

没有答案