在 pentaho 数据集成中使用 java 8 个特性(较新的 janino 版本)

Use java 8 features (newer janino version) in pentaho data integration

Pentaho 数据集成 8.0.x 使用 Janino 2.5.16,于 2010 年发布,用于编译用户定义的 Java Class 步骤。 pentaho 中有一个 JIRA 用于更新它以使用更新的 Janino 版本,这将在 pentaho v8.2.0 GA 中带来新的 java 8 相关功能。但是具体什么时候发布还没有消息

有没有其他方法可以使用较新的 janino 版本(janino-3.0.8.jar)退出 UDJC 的 pentaho?我试图在 lib 中复制更新的 jar,还添加了 commons-compiler-3.0.8.jar 来实现依赖。现在,当我打开 Spoon 时,出现以下错误:

请告知如何实现这一点。我知道仅仅更换罐子可能还不够,但我只是想做点别的事情。

这并不容易。即使是现在,由于您获得了 ClassNotFound,janino 的 public api 也发生了变化。一些 类 被删除,一些被更改。什么是实际需要更新呢?

如果您需要非常复杂的业务逻辑,请创建自定义插件。文档和教程可用,您可以查看当前内置插件的源代码(源代码可在 github 上找到)。

新版本的 janino 有哪些重要的旧版本没有(除了 java8 支持)?检查 kettle 引擎,查看 UserDefinedClass 步骤的来源,更改代码以支持新的 janino 版本,测试并构建自己的 pdi kettle,并尝试向存储库的维护者发送推送请求。

这些都很复杂,这个插件是引擎内置的,你必须自己构建。自己构建意味着,你必须自己支持它。这很重要,项目很大,现在更大,并且还在不断发展,我花了几天时间制作我的第一个自定义构建(4 的版本,在常春藤中)只是为了更好地了解和调试复杂的案例,它从未使用过在生产中。

存储库的维护者必须有充分的理由将您的更改包含到流中,它必须经过充分测试,而且这是一个漫长的过程,很可能不值得。自 2010 年以来发生了很多变化,我可能已经在发行说明中看到,java 的新版本已经具有在运行时编译的能力。

我的建议是制作自己的插件。