拡張機能 (プラグイン)

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 で新しい拡張機能をインストールする方法が説明されています。