拡張機能 (プラグイン)

Denodo Scheduler では、ユーザーは独自のエクスポーターまたはハンドラーを作成できます。

以降のセクションでは、新しい exporter または handler の実装方法を説明します。

拡張機能の開発後、Denodo ナレッジベースの記事「 How to debug Denodo custom extensions with Eclipse 」の指示に従ってその拡張機能のデバックを実行できます。

拡張機能を実装したら、構成メタデータ (拡張機能のタイプ、名前、入力パラメータ) を指定する XML ファイル、および (オプションで) メタデータに指定された入力パラメータのデフォルト値を指定する別の XML ファイルとともに、JAR ファイルにパッケージ化する必要があります。メタデータは自動生成された構成ウィザードを通じて拡張機能を構成するために管理ツールで使用され (メタデータは、拡張機能が init メソッドで受け取るパラメータの値を指定)、デフォルト値は構成ウィザードでパラメータの値を初期設定するために使用できます。

メタデータファイルの名前と場所は、拡張機能を実装するクラスのものと同じでなければなりません (つまり、実装クラスと同じパッケージ内になければなりません)。また、JAR ファイル <DENODO_HOME>/lib/contrib/denodo-configuration.jar 内で定義されている DTD custom-metaconfig.dtd に従っている必要があります。この XML ファイルでは、 element タグを使用して拡張機能のタイプ (type) とサブタイプ (subType) を指定できます。各構成パラメータは param エレメントを使用して指定されます。このエレメントは、パラメータについて、名前 (name)、必須かどうか (mandatory)、複数の値を持てるかどうか (multivalued)、Java タイプ (javaType)、機密データを含むかどうか (hidden)、構成ウィザードに表示されるラベル (displayName)、および構成ウィザードでヒントとして表示されるヘルプテキスト (helpText)、といった属性を指定します。hidden パラメータの値は構成ウィザードではドットの文字列として表示され、 displayName が指定されていない場合は、パラメータ name がパラメータラベルとして使用されます。パラメータが複合型の場合は、パラメータのコンポーネントが components エレメント内にリストされます。

Scheduler サンプルに含まれている XMLCustomHandler ハンドラーの以下のメタデータ XML ファイルは、例として示されています。下の例が示すとおり、これは「xml-custom-handler」と呼ばれるハンドラーエレメントであり、入力パラメータとして入力ファイルパスと出力ファイルパスがあります。

 <?xml version="1.0" encoding="UTF-8"?>

 <!DOCTYPE metaconfig SYSTEM "custom-metaconfig.dtd">

 <metaconfig>
   <element type="handler" subType="xml-custom-handler"
       class="com.denodo.scheduler.demo.XMLCustomHandler" />

   <param javaType="java.lang.String" mandatory="false" multivalued="false"
       name="Input file absolute path" />
   <param javaType="java.lang.String" mandatory="true" multivalued="false"
       name="Output XML file absolute path" />
</metaconfig>

重要

エクスポート/インポートプロセス (詳細については、「 バックアップのインポート/エクスポート 」のセクションを参照) は、「datasource」と呼ばれるすべてのパラメータの値について、ID から名前への変換を試みた後、名前から ID への変換を試みます (データソースの ID はインストールごとに異なるため)。そのため、拡張機能のパラメータの値としてデータソースの ID を使用する必要がある場合は、それを「datasource」と呼ぶ必要があります。拡張機能のパラメータの値としてデータソースの名前を使用する必要がある場合は、「datasource」とは異なるパラメータ名を使用する必要があります (それ以外の場合は、この拡張機能を使用してジョブをエクスポートしてからインポートした後、「datasource」パラメータの値が ID で置き換えられます)。

オプションのデフォルト値ファイルはメタデータファイルと同じディレクトリ内に配置し、「default_」が先頭に付加された同じ名前にする必要があります。また、JAR ファイル <DENODO_HOME>/lib/contrib/denodo-configuration.jar 内で見つかる DTD default-custom-config.dtd に従っている必要があります。この XML ファイルでは、 simple-param タグと compound-param タグを使用して、それぞれ単純型パラメータと複合型パラメータのデフォルト値を設定できます。どちらもパラメータの名前を指定するための属性 (name) を受け入れます。値はネストされた value タグを使用して指定されます。単純型パラメータの場合、 value タグにはパラメータの値自体が含まれ、複合型パラメータの場合は、それを構成するパラメータの値を指定するためのネストされた simple-param タグまたは compound-param タグが含まれます。単純型と複合型のパラメータが複数値を持つ場合でも、それぞれデフォルト値は 1 つずつしか指定できません。パラメータが複数の値を持つ場合は、最初に作成されるそのタイプのパラメータの数を指定するために、パラメータタグで属性 instances を使用できます (デフォルト値は 1 で、そのタイプのパラメータを作成する必要がない場合は 0 に設定できます)。ユーザーによって後から追加されたインスタンスも含めて、複数値パラメータのすべてのインスタンスが、その複数値パラメータを構成するパラメータに指定されたデフォルト値を使用して最初に作成されます。パラメータが複数値ではなく、オプションの場合は、パラメータを最初に作成する (instances を 1 に設定) か、作成しない (instances を 0 に設定) かを指定するために属性 instances を使用できます。

以下のデフォルト値 XML ファイルは、前出の XMLCustomHandler ハンドラーで使用できます。下の例が示すとおり、 Output XML file absolute path パラメータのデフォルト値として「/tmp」を指定しています。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE metaconfig SYSTEM "default-custom-config.dtd">

<default-parameters>

    <simple-param name="Output XML file absolute path">
        <value>/tmp</value>
    </simple-param>

</default-parameters>

最後に、 META-INF/MANIFEST.MF JAR ファイルでは、以下のメタデータを指定する必要があります。

  • Name: CustomElement

  • PluginType: エクスポーター | ハンドラー

  • PluginName: 拡張機能の名前 (管理ツールで拡張機能の名前として使用)

  • PluginClass: 拡張機能実装クラスの名前

Scheduler サンプルに含まれる XMLCustomHandler ハンドラーの以下の MANIFEST.MF フラグメントは、例として示されています。

Manifest-Version: 1.0
...

Name: CustomElement
PluginType: handler
PluginName: XMLCustomHandler
PluginClass: com.denodo.scheduler.demo.XMLCustomHandler

プラグイン 」のセクションでは、Scheduler で新しい拡張機能をインストールする方法が説明されています。