バッチ更新タスクの拡張

バッチ更新タスクは、IBM® Rational® Asset Manager サーバーにデータをマイグレーションしたり、アセットを移動したりする際に役立ちます。 ファイル・システム・オプションを使用してバッチ更新タスクを拡張したり、任意の種類のソース・データを読み取って、それをアセットにマップするようにこのタスクを拡張したりすることができます。

このタスクについて

バッチ更新タスクの拡張

バッチ更新タスクは、任意の種類のソース・データを読み取って、Rational Asset Manager 内のアセットにマップするように拡張できます。

Rational Asset Manager のバッチ更新タスクは、毎回アセットを作成するのではなく、アセットの検出とマージの実行によるインテリジェント・マッピングを実行します。

com.ibm.ram.rich.ui.extension プラグインには、ファイル・システム拡張のソースが含まれており、このプラグインは インストールされた Rational Asset Manager Eclipse クライアントの一部として、 /plugins フォルダーに格納されています。JAR ファイルは、インストールされた Eclipse クライアントの /eclipse/plugins/com.ibm.ram.rich.ui.extension_7.5.1.v.jar にあります。 このファイルを解凍すると、Java ファイルが /src ディレクトリーに作成されます。

ファイル・システム拡張のコードは、src¥com¥ibm¥ram¥internal¥batch¥filesystem¥src¥com¥ibm¥ram¥internal¥batch¥filesystem¥ui¥ の 2 つのディレクトリーにあります。

拡張およびデータ・ソースの準備

すべてのデータ・ソースで、以下のようにして拡張およびデータを準備します。
  1. どのデータを Rational Asset Manager に移動するかを決定します。
  2. アップロード用のデータを準備します。
  3. Rational Asset Manager のバッチ更新タスク・クラスを拡張する Eclipse プラグインを作成します。
  4. Eclipse プラグインを作成してデプロイします。
「サンプル」セクションでは、データ・ソースとして Microsoft Excel を使用しています。 Excel のスプレッドシートを使用して、ステップ 1 および 2 を実行します。

ファイル・システム・オプションを使用してバッチ更新タスクを拡張するには、新規のプラグイン・プロジェクトを作成して、拡張ポイントに拡張を実装する必要があります。

バッチ更新タスクには、実装の対象となる 2 つの拡張ポイント、batchDataSource および batchDataSourceUI があります。

バッチ更新タスクは、次の 2 つの拡張ポイントによって実装できます。
  • batchDataSource: com.ibm.ram.rich.core プラグインには batchDataSource 拡張ポイントが用意されています。 この拡張ポイントを使用すると、Rational Asset Manager のバッチ・クライアントに対するデータ・ソースの拡張を定義できます。 バッチ更新時、batchDataSource 拡張ポイントはリポジトリーからデータをプルし、そのデータを Rational Asset Manager サーバーに移行させます。
  • batchDataSourceUI: com.ibm.ram.rich.ui.extension プラグインには batchDataSourceUI 拡張ポイントが用意されています。 この拡張ポイントを使用すると、ユーザー・インターフェース・エレメントを Rational Asset Manager のバッチ更新エディターにコントリビュートすることができます。

単純なファイル・システム拡張

ここでは、 デプロイ可能なプラグインとしてエクスポートできるファイル・システム拡張の単純なバージョンを示します。 このファイル・システム拡張は、指定されたルート・フォルダーにあるフォルダーと .zip ファイルからアセットを作成します。この例では、ルート・フォルダーが 1 つ指定され、サブフォルダーや .zip ファイルがアセットになります。サブフォルダーやアーカイブ・ファイルの名前が、アセットの名前となります。サブフォルダーやファイルの内容は、必須の .asset_info ファイルを除いて成果物となります。

次の 2 つの Java クラスが、 Rational Asset Manager のバッチ API クラスを拡張します。
  • FileSystemBatchDataSource.java - BatchDataSource を拡張します。
  • FileSystemBatchUIContributor.java - AbstractBatchUIContributor を拡張します。

FileSystemBatchDataSource クラスは、ルート・パスに基づいてアセットを作成し、返します。このファイルの中で、データ・ソースを指定します。バッチ・クライアント拡張は、これを使用して特定のルート・フォルダー内にあるフォルダーと .zip ファイルからアセットを作成します。このフォルダーや .zip ファイルの中に、 .asset_info という名前のファイルが存在している必要があります。

.asset_info ファイルの内容は、 .properties ファイルの形式 (一般的には、 key=value のペアを 1 行に 1 つ記述) でなければなりません。このファイルには、アセット固有のプロパティー (FileSystemBatchDataSource.java ファイル内で定義されている) が含まれている必要があります。
  • name (任意。省略した場合は、ファイル/フォルダーの名前が使用されます)
  • version (任意。省略した場合は、1.0 が使用されます)
  • community (必須)
  • asset_type (必須)
  • short_description (任意。省略した場合は、ファイル/フォルダーの名前が使用されます)
  • description (任意)

FileSystemBatchUIContributor クラスは、新しいデータ・ソースを作成するために ディレクトリー選択ダイアログを開きます。このダイアログでユーザーが ルート・ディレクトリーを選択し、その選択に基づいてアセットが作成されます。 ルート・ディレクトリーの構造の要件については、FileSystemBatchDataSource java ファイルを参照してください。

この単純なファイル・システムの例でバッチ・クライアントをフックするために使用される拡張ポイントは、 plugin.xml ファイルの中で次のとおりに定義されています。
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension point="com.ibm.ram.rich.core.batchDataSource">
      <dataSourceType
            class="com.ibm.ram.batch.example.FileSystemBatchDataSource"
            id="com.ibm.ram.batch.example.filesystem">
      </dataSourceType>
   </extension>
   <extension point="com.ibm.ram.rich.ui.extension.batchDataSourceUI">
      <batchDataSourceUI
            class="com.ibm.ram.batch.example.FileSystemBatchUIContributor"
            dataSourceID="com.ibm.ram.batch.example.filesystem"
            icon="icon.gif"
            name="File System Example">
      </batchDataSourceUI>
   </extension>
</plugin>

これらの拡張のコード例は、 バッチ・アップロードのファイル・システム拡張の使用にあります。

Rational Asset Manager Java API を使用して、バッチ・アップロード操作を実行し、 複数のアセットをアップロードすることもできます。詳しくは、バッチ・アップロードの実行を参照してください。

サンプル

このサンプルでは、Microsoft Excel ファイルの拡張を作成する方法について説明します。 このサンプルでは、データ・ソースとして Microsoft Excel ファイルを使用し、バッチ更新タスクの拡張を Eclipse プラグインとして作成します。 バッチ更新タスクは、フォーマット設定された Excel ファイルを読み取り、Excel の行を Rational Asset Manager 内のアセットにマップします。 その後、ユーザーは Rational Asset Manager に登録する前にデータを変更できます。 バッチ・アップロードの例 (Batch upload example) も参照してください。

データ・ソースの準備

Excel のスプレッドシートをアップロードする前に、スプレッドシートをフォーマット設定する必要があります。 このサンプルでは、スプレッドシートを以下のようにフォーマット設定しています。
表 1.
  A B C D E F
1 AssetType: Compiler Community: Technical Infrastructure        
2 Asset:GUID Asset:Version Asset:Name Asset Attribute: Author Category Schema: Licenses Ignore: IDE
  • スプレッドシートの最初の 2 行は、Rational Asset Manager にマップする情報モデルを記述しています。
    • 最初の行は、アセット・タイプおよびコミュニティーを示しています。 サンプル内のセル・フォーマット (「Asset Type: Compiler」など) を使用してください。
    • 2 行目は、以下のようなアセット・レベル・マッピングを示しています。
      • Asset:GUID
      • Asset:Version
      • Asset:Name
      • Asset Attribute: <attribute name>
      • Category Schema: <category schema name> 各行には、「a/b/c」というフォーマットを使用したスキーマの値が含まれています。
      • Ignore: <name> アップロード時にこの列は無視されます。
      アセットに対する行に値がない場合、Rational Asset Manager でアセットが作成されます。それ以外の場合は、マージが実行されます。
  • 行 1 および 2 に続く各行が、アセットとしてマップされます。

列見出しでは、このアセットのパーサーが使用する特殊なフォーマット設定を使用します。 行 1 および行 2 は予約されています。 行 1 には、アセット・タイプおよびコミュニティーの宣言が含まれています。 行 2 には、GUID、バージョン、名前、およびアセットの属性など、アセットの列の記述が含まれています。 予想されるフォーマットの表示を確認するには、サンプル・スプレッドシートを使用してください。

Eclipse プラグインの作成

コードは通常の Eclipse プラグインとして構造化されているため、ユーザーは拡張ポイントを定義します。

Rational Asset Manager のバッチ更新タスク・クラスを拡張する Eclipse プラグインを作成する際には、以下のガイドラインに従ってください。
  • アクティベーター・クラスの作成には、Eclipse プラグイン・ウィザードを使用してください。
  • 少なくとも 2 つのクラスを作成してください。この場合は、ExcelBatchDataSource と ExcelBatchUIContributor です。 解析ロジックはデータ・ソース・クラス内に置いてください。
  • Eclipse でバッチ更新タスクを実行する場合は、データ・ソースを選択してから、Rational Asset Manager への接続を選択してください。
  • クライアントで Rational Asset Manager への接続を選択する場合は、データ・ソース・クラスで fetchAssets メソッドが呼び出されます。 ExcelBatchDataSource.fetchAssets() メソッドを使用してください。解析コードの大部分はここにあります。 注: コード内に Rational Asset Manager セッション・オブジェクトは必要ありません。
  • ワークシートを取得するには、createSpreadsheetAssets を呼び出して、Excel のブック・オブジェクトを開いてください。
  • GUID を処理するには、新規の GUID を作成してください。 ただし、「Asset:GUID」列がある場合には、バッチ更新タスクがアセットの作成ではなく更新を実行するように、アセットをその GUID に設定してください。
  • 行ごとに、アップロードする列を選択して、それらをアセットにマップしてください。
新規プラグイン・プロジェクトを作成するには、以下のようにします。
  1. Eclipse メニューから 、「ファイル」 > 「新規」 > 「プロジェクト」とクリックします。
  2. 「プラグイン 開発」 > 「プラグイン・ プロジェクト」と展開します。
  3. プロジェクトの名前を入力します。
  4. 次へ」をクリックします。
  5. 「完了」をクリックします。MANIFEST.MF ファイルが開きます。
  6. 依存関係エディター」タブを開きます。
  7. 「必須プラグイン」セクションで、「追加」をクリックします。
  8. com.ibm.ram.rich.ui.extension プラグインを選択して、「OK」をクリックします。
  9. 「完了」をクリックします。
  10. 「必須プラグイン」セクションで、「追加」をクリックします。
  11. com.ibm.ram.rich.ui.extension.batchDataSourceUI 拡張ポイントを選択します。
  12. 「完了」をクリックします。
  13. MANIFEST ファイルを保存します。

バッチ更新タスクは、Rational Asset Manager へのアセットの登録を実行します。

バッチ更新タスクの使用

このサンプルでは、マシン上に Eclipse プラグインがデプロイされます。

Rational Asset Manager の Excel バッチ更新拡張を実行し、Excel ファイルを使用したバッチ・アップロード操作として新規アセットの作成および登録を行うには、以下のステップに従います。
  1. 「ファイル」 > 「新規」 > 「バッチ更新タスク」とクリックします。
  2. Excel データ・ソースを選択して、Excel ファイルを選択します。 Rational Asset Manager のバッチ更新エディターが表示されます。
  3. Rational Asset Manager にマップするデータ・ソースのアイコンをクリックします。 このアイコンには、Excel アイコンが含まれています。 準備済みの Excel ファイルへのナビゲートに使用されたファイル・エクスプローラーが表示されます。
  4. Eclipse ワークスペースに定義されている Rational Asset Manager リポジトリー接続を選択します。
  5. アセットのアップロード先となる Rational Asset Manager リポジトリーを選択します。 このサンプルでは、ローカル・マシン上の Rational Asset Manager インスタンスにアセットがアップロードされます。
  6. Rational Asset Manager へのマッピングを完了させるため、コミュニティーなどの構成項目を追加して、カテゴリーをマップします。

    ターゲットとなる Rational Asset Manager リポジトリーを選択すると、バッチ・エディターが Excel ファイルを読み取って、それをターゲットとなる Rational Asset Manager インスタンスにマップします。 この時点では、アセットはアップロードされません。 Rational Asset Manager のバッチ・エディターは、初期マッピングの要約を提供します。 このサンプルでは、Excel ファイル内のアセットが特定の Rational Asset Manager コミュニティーをターゲットにし、バッチ・エディターではこれが Rational Asset Manager 内で検出されませんでした。 このサンプルに示されているとおり、アクセス権限を持つユーザーが即時にコミュニティーを作成できます。

    マッピング・アクティビティーでは、引き続きアセット・タイプ、アセットのバージョン情報、関係のタイプなどを調べます。 それぞれについて、ユーザーは Rational Asset Manager 内の既存の構成情報にマップするか、アクセス権限がある場合には、その情報を追加することができます。

  7. マッピングが完了したら、「アセットをすべて更新」ボタンをクリックします。 アセットが Rational Asset Manager にアップロードされます。 アップロード結果がバッチ・エディターに表示されます。

クラスの構成およびオブジェクト

Rational Asset Manager API には、アセット用に以下の 2 つの主なクラス構成があります。
  • 「RAM」で始まる名前を持つクラス (RAMAsset クラスなど)。
  • 「RAM」で始まらない名前を持つクラス (Asset クラスなど)。
RAM クラスのオブジェクトは、Rational Asset Manager セッション・オブジェクトを必要とする Rational Asset Manager サーバーから取得されます。このサンプルではセッション・オブジェクトを使用していません。 Asset など、クラスのオブジェクトは、既知の Rational Asset Manager セッションなしで作成され、その後、バッチ更新タスクに提供されてから、Rational Asset Manager で登録または更新されます。

フィードバック