tJavaコンポーネントを利用してJavaのコードを直接書く

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。DI部の大高です。

今回はTalendのコンポーネント「tJava」を紹介したいと思います。

前提条件

Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.0.1」で検証しています。

tJavaについて

「tJava」を利用するとコンポーネント内にJavaのコードを直接記述することができます。

「tJava」コンポーネントのTalend Helpページはこちらです。

tJava

では、具体的に以下で解説していきます。

ジョブの説明

「tLibraryLoad」で利用したいJavaのライブラリをロードし、「tJava」でロードしたライブラリを利用してJavaのコードの処理結果を標準出力に表示します。

「tJava」で記述するJavaのコードが標準ライブラリのみを利用していればライブラリのロードは不要ですが、標準ライブラリ以外を利用する場合には「tLibraryLoad」で事前にロードしてあげる必要があります。

「tLibraryLoad」コンポーネントの設定

「tLibraryLoad」コンポーネントでロードするライブラリを設定します。「基本設定」のライブラリの箇所にある「...」をクリックします。

今回は「commons-lang3-3.6.jar」を利用します。これは「Apache Commons Lang」のライブラリです。

これで設定は完了です。

「tJava」コンポーネントの設定

「tJava」コンポーネントでは、ある文字列を「WordUtils」の「capitalize」メソッドを利用して変換し、標準出力に表示します。

コードは以下の通りとなり、設定した文字列の各ワードの先頭文字が大文字になる想定です。

// org.apache.commons.lang3.text.WordUtilsを利用する
String action = "mighty critical strike";
System.out.println(WordUtils.capitalize(action));

実行するJavaのコード以外に、importの設定も必要となるので、「詳細設定」で以下のように設定します。

import org.apache.commons.lang3.text.WordUtils;

実行結果

設定は以上です。実際にこのジョブを実行すると以下のように出力されます。

[statistics] connecting to socket on port 3378
[statistics] connected
Mighty Critical Strike
[statistics] disconnected

「tJava」で記述した通りに出力されました!

まとめ

以上、「tJava」コンポーネントの紹介でした。

なお、個人的には「tJava」にJavaコードを大量に記述してしまうと可読性やメンテナンス性が下がるので、別途ルーチンを利用するか、コンポーネントで処理できるものはコンポーネントで処理し、「tJava」に記述するコードは必要最小限にとどめるのが良いかと思います。

それでは。