目前我们的应用程序在Drools5.x上,我们计划迁移到Drools6.x并计划逐步进行。是否可以在同一个应用程序中运行两个引擎?在类路径上安装两个不同版本的jar可能会导致运行时问题。
非常感谢任何回复
答案 0 :(得分:1)
基本上,它看起来应该是可能的。
Drools 5的所有稳定API都在包org.drools
之内和之下,而Drools 6的稳定API在包org.kie
之内和之下。
但是Drools的所有内部类都保持在包org.drools
之下。这为冲突提供了充足的空间,我建议不要尝试在同一个应用程序中运行这两个版本。更不用说Drools使用的第三方库了。
但是,应该可以使用Drools 6(或Drools 5)设置运行会话的单独的应用程序,而主应用程序使用Drools 5(或Drools 6)运行另一个会话。单独的应用程序使用标准的消息传递技术接收事实并返回结果,这应该保持界面足够简单。使用不同的Drools库构建两个应用程序是一个相对简单的CM练习。
最后,我不会回避一步到位的迁移。 DRL文件保持兼容,除非您使用了非常奇特的功能,并且可以轻松迁移用于编译DRL和启动会话的常用API。