USER MANUALS

拡張機能 (プラグイン)

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

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

拡張機能を実装したら、構成メタデータ (拡張機能のタイプ、名前、入力パラメータ) を指定する 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 )。

    • displayName が指定されない場合は、パラメータのラベルに name パラメータが使用されます。

  • 構成ウィザードでヒントとして表示されるヘルプテキスト ( helpText )。

  • 値が環境に依存するかどうか ( environmentDependent )。

    • true に設定すると、このパラメータはプロパティとともに、別のプロパティファイルにエクスポートされます ( エクスポート で説明)。

パラメータが複合型の場合、パラメータのコンポーネントは 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 default-parameters 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 で新しい拡張機能をインストールする方法が説明されています。

Add feedback