Pentaho(Spoon)の「ユーザ定義Javaクラス」では、フリーや自分の作成したライブラリを外部jarとして読み込み、使用することができます。
Javaが持っている豊富なライブラリ群を利用することが出来ると、少しの手間で様々なことができそうですよね。
Pentaho(Spoon)内で標準のjar以外を使用できるようにするには、起動時に追加のjarを読み込ませる必要があります。
Pentahoのあるディレクトリの「\data-integration\lib」配下にjarを配置すれば自動で読み込んでくれますが、それでは、どのjarを追加したかが分からなくなってしまい、
バージョンアップ時などに苦労するので、別のディレクトリに置いて読み込ませるのがよいでしょう。
そのため良くやるのは、「\data-integration\libext」というディレクトリを作成します。
さらに、Pentaho(Spoon)の起動時に読み込むライブラリ用のディレクトリは、
「\data-integration\launcher\launcher.properties」に記述がありますので、この「launcher.properties」に「:../libext」を追加します。
「:../libext」を追加するのは、下記のように、「libraries」と「classpath」になります。
main=org.pentaho.di.ui.spoon.Spoon
libraries=../test:../lib:../libswt:../libext
classpath=../classes:../:../ui:../ui/images:../lib:../libext
system-property.pentaho.installed.licenses.file=${PENTAHO_INSTALLED_LICENSE_PATH}
「launcher.properties」の記述ができたら、Pentaho(Spoon)を再起動すれば、jarが読み込まれ、下記のように「ユーザ定義Javaクラス」内で使用できます。
うまく読み込んでいない場合は、以下のようなエラーが出てしまいますので、設定をもう一度確認してみてください。
ユーザー定義Javaクラス.0 - ERROR (version 8.0.0.0-28, build 8.0.0.0-28 from 2017-11-05 07.27.50 by buildguy) : Error initializing UserDefinedJavaClass:
ユーザー定義Javaクラス.0 - ERROR (version 8.0.0.0-28, build 8.0.0.0-28 from 2017-11-05 07.27.50 by buildguy) : org.codehaus.janino.CompileException:
Line 1, Column 8: Imported class "com.myclass.MyUtil" could not be loaded
ユーザー定義Javaクラス.0 - ERROR (version 8.0.0.0-28, build 8.0.0.0-28 from 2017-11-05 07.27.50 by buildguy) : Error initializing step [ユーザー定義Javaクラス]
Sample5Java - ERROR (version 8.0.0.0-28, build 8.0.0.0-28 from 2017-11-05 07.27.50 by buildguy) : Step [ユーザー定義Javaクラス.0] failed to initialize!
Spoon - ERROR (version 8.0.0.0-28, build 8.0.0.0-28 from 2017-11-05 07.27.50 by buildguy) : Sample5Java: preparing transformation execution failed
Spoon - ERROR (version 8.0.0.0-28, build 8.0.0.0-28 from 2017-11-05 07.27.50 by buildguy) : org.pentaho.di.core.exception.KettleException:
Spoon - We failed to initialize at least one step. Execution can not begin!
Spoon -
Spoon -
Spoon - at org.pentaho.di.trans.Trans.prepareExecution(Trans.java:1163)
Spoon - at org.pentaho.di.ui.spoon.trans.TransGraph$29.run(TransGraph.java:4202)
Spoon - at java.lang.Thread.run(Thread.java:745)
Sample5Java - ERROR (version 8.0.0.0-28, build 8.0.0.0-28 from 2017-11-05 07.27.50 by buildguy) : Errors detected!
Sample5Java - ERROR (version 8.0.0.0-28, build 8.0.0.0-28 from 2017-11-05 07.27.50 by buildguy) : Errors detected!