在pentaho数据集成中使用Java 8功能(最新的janino版本)

时间:2018-10-03 05:33:18

标签: pentaho kettle pentaho-spoon pentaho-data-integration janino

Pentaho Data Integration 8.0.x使用2010年发布的Janino 2.5.16来编译“用户定义的Java类”步骤。 pentaho中有一个JIRA,用于更新它以使用更新的Janino版本,它将在pentaho v8.2.0 GA中带来与Java 8相关的新功能。但是没有有关何时发布的信息。

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

error image

请告知如何实现此目标。我了解仅更换罐子是不够的,而只是想做点其他事情即可。

1 个答案:

答案 0 :(得分:1)

这不容易。即使是现在,由于有了ClassNotFound,janino的公共api也已更改。一些类被删除,一些被更改。实际需要更新什么?

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

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

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

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

我的建议是让您拥有自己的插件。